Fix a monkey reported crash in the instant search engine.

Also preemptively fixes another possible crash that
monkey might expose. (It is imporbable that users will ever
see these crashes).

bug:4177054
Change-Id: I5ff156ff4f4eb3a9cd7970c7ca4880ae598ee27c
diff --git a/src/com/android/browser/InstantSearchEngine.java b/src/com/android/browser/InstantSearchEngine.java
index 85e494a..6ff7db7 100644
--- a/src/com/android/browser/InstantSearchEngine.java
+++ b/src/com/android/browser/InstantSearchEngine.java
@@ -174,7 +174,12 @@
      * visible tab.
      */
     private void switchSearchboxIfNeeded() {
-        final SearchBox searchBox = getCurrentWebview().getSearchBox();
+        final WebView current = getCurrentWebview();
+        if (current == null) {
+            return;
+        }
+
+        final SearchBox searchBox = current.getSearchBox();
         if (searchBox != mSearchBox) {
             if (mSearchBox != null) {
                 mSearchBox.removeSearchBoxListener(mListener);
@@ -188,7 +193,12 @@
     }
 
     private boolean isInstantPage() {
-        String currentUrl = getCurrentWebview().getUrl();
+        final WebView current = getCurrentWebview();
+        if (current == null) {
+            return false;
+        }
+
+        final String currentUrl = current.getUrl();
 
         if (currentUrl != null) {
             Uri uri = Uri.parse(currentUrl);
@@ -210,7 +220,10 @@
         mController.getActivity().runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                getCurrentWebview().loadUrl(getInstantBaseUrl());
+                final WebView current = getCurrentWebview();
+                if (current != null) {
+                    current.loadUrl(getInstantBaseUrl());
+                }
             }
         });
     }
@@ -292,7 +305,12 @@
     }
 
     private int rescaleHeight(int height) {
-        final float scale = getCurrentWebview().getScale();
+        final WebView current = getCurrentWebview();
+        if (current == null) {
+            return 0;
+        }
+
+        final float scale = current.getScale();
         if (scale != 0) {
             return (int) (height / scale);
         }
@@ -306,8 +324,10 @@
 
         if (rescaledHeight != mHeight) {
             mHeight = rescaledHeight;
-            mSearchBox.setDimensions(0, 0, 0, rescaledHeight);
-            mSearchBox.onresize();
+            if (mSearchBox != null) {
+                mSearchBox.setDimensions(0, 0, 0, rescaledHeight);
+                mSearchBox.onresize();
+            }
         }
     }