OSDN Git Service

do not merge -- original checkin to mr2 here:
authorCary Clark <cary@android.com>
Thu, 15 Oct 2009 19:29:08 +0000 (15:29 -0400)
committerCary Clark <cary@android.com>
Fri, 6 Nov 2009 15:29:30 +0000 (10:29 -0500)
https://android-git.corp.google.com/g/#change,30204

check for native initialization before calling public function

Added more checks where it is possible to call a native function
after creating a WebView but before the native side is initialized.

These cases can be triggered by the monkey.

Fixes http://b/issue?id=2187719

core/java/android/webkit/WebView.java

index fe91229..06c70ca 100644 (file)
@@ -1713,6 +1713,7 @@ public class WebView extends AbsoluteLayout
      *            as the data member with "url" as key. The result can be null.
      */
     public void requestImageRef(Message msg) {
+        if (0 == mNativeClass) return; // client isn't initialized
         int contentX = viewToContentX((int) mLastTouchX + mScrollX);
         int contentY = viewToContentY((int) mLastTouchY + mScrollY);
         String ref = nativeImageURI(contentX, contentY);
@@ -2331,6 +2332,7 @@ public class WebView extends AbsoluteLayout
      * @param forward Direction to search.
      */
     public void findNext(boolean forward) {
+        if (0 == mNativeClass) return; // client isn't initialized
         nativeFindNext(forward);
     }
 
@@ -2341,6 +2343,7 @@ public class WebView extends AbsoluteLayout
      *              that were found.
      */
     public int findAll(String find) {
+        if (0 == mNativeClass) return 0; // client isn't initialized
         if (mFindIsUp == false) {
             recordNewContentSize(mContentWidth, mContentHeight + mFindHeight,
                     false);
@@ -3431,6 +3434,7 @@ public class WebView extends AbsoluteLayout
      * @hide
      */
     public void emulateShiftHeld() {
+        if (0 == mNativeClass) return; // client isn't initialized
         mExtendSelection = false;
         mShiftIsPressed = true;
         nativeHideCursor();