summaryrefslogtreecommitdiffstats
path: root/core/java/android/webkit/BrowserFrame.java
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2011-02-22 12:05:34 +0000
committerNarayan Kamath <narayan@google.com>2011-03-01 11:11:00 +0000
commit9497c5f8c4bc7c47789e5ccde01179abc31ffeb2 (patch)
tree3f5080139a3fd6809df6b7ce077e885def2d7e36 /core/java/android/webkit/BrowserFrame.java
parent43cdf9b4191e18b5a4d646d23b06438c0e10b8dd (diff)
downloadframeworks_base-9497c5f8c4bc7c47789e5ccde01179abc31ffeb2.zip
frameworks_base-9497c5f8c4bc7c47789e5ccde01179abc31ffeb2.tar.gz
frameworks_base-9497c5f8c4bc7c47789e5ccde01179abc31ffeb2.tar.bz2
A Java implementation of the SearchBox API.
Implemented as a Java bridge object and a JS adapter. Works on both V8 and JSC. Change-Id: I8a4268fb3c6688b5ece9e27c11724c0776017255
Diffstat (limited to 'core/java/android/webkit/BrowserFrame.java')
-rw-r--r--core/java/android/webkit/BrowserFrame.java40
1 files changed, 24 insertions, 16 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java
index fc1240f..ab4bfe1 100644
--- a/core/java/android/webkit/BrowserFrame.java
+++ b/core/java/android/webkit/BrowserFrame.java
@@ -46,7 +46,6 @@ import java.lang.ref.WeakReference;
import java.net.URLEncoder;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
@@ -89,6 +88,9 @@ class BrowserFrame extends Handler {
// Key store handler when Chromium HTTP stack is used.
private KeyStoreHandler mKeyStoreHandler = null;
+ // Implementation of the searchbox API.
+ private final SearchBoxImpl mSearchBox;
+
// message ids
// a message posted when a frame loading is completed
static final int FRAME_COMPLETED = 1001;
@@ -225,6 +227,9 @@ class BrowserFrame extends Handler {
sConfigCallback.addHandler(this);
mJSInterfaceMap = javascriptInterfaces;
+ if (mJSInterfaceMap == null) {
+ mJSInterfaceMap = new HashMap<String, Object>();
+ }
mSettings = settings;
mContext = context;
@@ -232,6 +237,9 @@ class BrowserFrame extends Handler {
mDatabase = WebViewDatabase.getInstance(appContext);
mWebViewCore = w;
+ mSearchBox = new SearchBoxImpl(mWebViewCore, mCallbackProxy);
+ mJSInterfaceMap.put(SearchBoxImpl.JS_INTERFACE_NAME, mSearchBox);
+
AssetManager am = context.getAssets();
nativeCreateFrame(w, am, proxy.getBackForwardList());
@@ -587,17 +595,17 @@ class BrowserFrame extends Handler {
* We should re-attach any attached js interfaces.
*/
private void windowObjectCleared(int nativeFramePointer) {
- if (mJSInterfaceMap != null) {
- Iterator iter = mJSInterfaceMap.keySet().iterator();
- while (iter.hasNext()) {
- String interfaceName = (String) iter.next();
- Object object = mJSInterfaceMap.get(interfaceName);
- if (object != null) {
- nativeAddJavascriptInterface(nativeFramePointer,
- mJSInterfaceMap.get(interfaceName), interfaceName);
- }
+ Iterator<String> iter = mJSInterfaceMap.keySet().iterator();
+ while (iter.hasNext()) {
+ String interfaceName = iter.next();
+ Object object = mJSInterfaceMap.get(interfaceName);
+ if (object != null) {
+ nativeAddJavascriptInterface(nativeFramePointer,
+ mJSInterfaceMap.get(interfaceName), interfaceName);
}
}
+
+ stringByEvaluatingJavaScriptFromString(SearchBoxImpl.JS_BRIDGE);
}
/**
@@ -620,16 +628,11 @@ class BrowserFrame extends Handler {
public void addJavascriptInterface(Object obj, String interfaceName) {
assert obj != null;
removeJavascriptInterface(interfaceName);
- if (mJSInterfaceMap == null) {
- mJSInterfaceMap = new HashMap<String, Object>();
- }
+
mJSInterfaceMap.put(interfaceName, obj);
}
public void removeJavascriptInterface(String interfaceName) {
- if (mJSInterfaceMap == null) {
- return;
- }
if (mJSInterfaceMap.containsKey(interfaceName)) {
mJSInterfaceMap.remove(interfaceName);
}
@@ -1234,6 +1237,11 @@ class BrowserFrame extends Handler {
}
}
+
+ /*package*/ SearchBox getSearchBox() {
+ return mSearchBox;
+ }
+
//==========================================================================
// native functions
//==========================================================================