Add SearchBox support to preloader.
Depends on change: I0119243ed0e19e237c1f51de887af5c954f96693
Change-Id: I2a2d3ff3c9d0d79f34af4c8daee828fb4efd7519
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 2e66c84..7343f32 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -67,6 +67,7 @@
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.HttpAuthHandler;
+import android.webkit.SearchBox;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
@@ -2182,23 +2183,37 @@
}
}
+ private Tab showPreloadedTab(final UrlData urlData) {
+ if (!urlData.isPreloaded()) {
+ return null;
+ }
+ final PreloadedTabControl tabControl = urlData.getPreloadedTab();
+ final String sbQuery = urlData.getSearchBoxQueryToSubmit();
+ if (sbQuery != null) {
+ if (!tabControl.searchBoxSubmit(sbQuery, urlData.mUrl, urlData.mHeaders)) {
+ // Could not submit query. Fallback to regular tab creation
+ tabControl.destroy();
+ return null;
+ }
+ }
+ Tab t = tabControl.getTab();
+ mTabControl.addPreloadedTab(t);
+ addTab(t);
+ setActiveTab(t);
+ return t;
+ }
+
// open a non inconito tab with the given url data
// and set as active tab
public Tab openTab(UrlData urlData) {
- if (urlData.isPreloaded()) {
- Tab tab = urlData.getPreloadedTab();
- tab.getWebView().clearHistory();
- mTabControl.addPreloadedTab(tab);
- addTab(tab);
- setActiveTab(tab);
- return tab;
- } else {
- Tab tab = createNewTab(false, true, true);
+ Tab tab = showPreloadedTab(urlData);
+ if (tab == null) {
+ tab = createNewTab(false, true, true);
if ((tab != null) && !urlData.isEmpty()) {
loadUrlDataIn(tab, urlData);
}
- return tab;
}
+ return tab;
}
@Override