SearchBox preloading fixes.

It now seems to work pretty reliably. Nice. Requires changes to SearchBox
API in frameworks/base:
Depends on change: If283ecdfa62aecb1fa697b1a2cd43b771b908d72

Change-Id: I5af94c8df8f24dfafb02c4052381aa547c72684c
diff --git a/src/com/android/browser/Preloader.java b/src/com/android/browser/Preloader.java
index 336b77a..bc84523 100644
--- a/src/com/android/browser/Preloader.java
+++ b/src/com/android/browser/Preloader.java
@@ -19,6 +19,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
+import android.webkit.WebView;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -62,6 +63,7 @@
             if (LOGD_ENABLED) Log.d(LOGTAG, "Create new preload session " + id);
             s = new PreloaderSession(id);
             mSessions.put(id, s);
+            WebViewTimersControl.getInstance().onPrerenderStart(s.getWebView());
         }
         return s;
     }
@@ -71,6 +73,9 @@
         if (s != null) {
             s.cancelTimeout();
         }
+        if (mSessions.size() == 0) {
+            WebViewTimersControl.getInstance().onPrerenderDone(s == null ? null : s.getWebView());
+        }
         return s;
     }
 
@@ -139,6 +144,11 @@
             return mTabControl;
         }
 
+        public WebView getWebView() {
+            Tab t = mTabControl.getTab();
+            return t == null? null : t.getWebView();
+        }
+
     }
 
 }