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();
+ }
+
}
}