diff options
author | Andrei Popescu <andreip@google.com> | 2009-09-03 13:56:07 +0100 |
---|---|---|
committer | Andrei Popescu <andreip@google.com> | 2009-09-03 22:31:55 +0100 |
commit | 4950b2b6951bbdc2b0023130bfbaca2a4044044f (patch) | |
tree | 5c90e85eab5236bf702a60307e9261f10365833e /core/java/android/webkit/BrowserFrame.java | |
parent | e131b7466c8b817896a618efe4b34eed5d3e51f9 (diff) | |
download | frameworks_base-4950b2b6951bbdc2b0023130bfbaca2a4044044f.zip frameworks_base-4950b2b6951bbdc2b0023130bfbaca2a4044044f.tar.gz frameworks_base-4950b2b6951bbdc2b0023130bfbaca2a4044044f.tar.bz2 |
Fix appcache layout test that was timing out due to race condition in WebView::addJavascriptInterface.
Diffstat (limited to 'core/java/android/webkit/BrowserFrame.java')
-rw-r--r-- | core/java/android/webkit/BrowserFrame.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 599c6b0..e96ba11 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -31,6 +31,7 @@ import junit.framework.Assert; import java.net.URLEncoder; import java.util.HashMap; +import java.util.Map; import java.util.Iterator; class BrowserFrame extends Handler { @@ -59,7 +60,7 @@ class BrowserFrame extends Handler { private boolean mIsMainFrame; // Attached Javascript interfaces - private HashMap mJSInterfaceMap; + private Map<String, Object> mJSInterfaceMap; // message ids // a message posted when a frame loading is completed @@ -98,7 +99,7 @@ class BrowserFrame extends Handler { * XXX: Called by WebCore thread. */ public BrowserFrame(Context context, WebViewCore w, CallbackProxy proxy, - WebSettings settings) { + WebSettings settings, Map<String, Object> javascriptInterfaces) { // Create a global JWebCoreJavaBridge to handle timers and // cookies in the WebCore thread. if (sJavaBridge == null) { @@ -112,6 +113,7 @@ class BrowserFrame extends Handler { // create PluginManager with current Context PluginManager.getInstance(context); } + mJSInterfaceMap = javascriptInterfaces; mSettings = settings; mContext = context; @@ -453,6 +455,8 @@ class BrowserFrame extends Handler { mJSInterfaceMap.remove(interfaceName); } mJSInterfaceMap.put(interfaceName, obj); + nativeAddJavascriptInterface(0, mJSInterfaceMap.get(interfaceName), + interfaceName); } /** |