diff options
| -rw-r--r-- | core/java/android/webkit/BrowserFrame.java | 8 | ||||
| -rw-r--r-- | core/java/android/webkit/WebView.java | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 9568e4f..8f92458 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -571,8 +571,11 @@ class BrowserFrame extends Handler { Iterator iter = mJSInterfaceMap.keySet().iterator(); while (iter.hasNext()) { String interfaceName = (String) iter.next(); - nativeAddJavascriptInterface(nativeFramePointer, - mJSInterfaceMap.get(interfaceName), interfaceName); + Object object = mJSInterfaceMap.get(interfaceName); + if (object != null) { + nativeAddJavascriptInterface(nativeFramePointer, + mJSInterfaceMap.get(interfaceName), interfaceName); + } } } } @@ -595,6 +598,7 @@ class BrowserFrame extends Handler { } public void addJavascriptInterface(Object obj, String interfaceName) { + assert obj != null; if (mJSInterfaceMap == null) { mJSInterfaceMap = new HashMap<String, Object>(); } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index be475ca..be20a1c 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -3492,10 +3492,14 @@ public class WebView extends AbsoluteLayout * <li> The Java object that is bound runs in another thread and not in * the thread that it was constructed in.</li> * </ul></p> - * @param obj The class instance to bind to Javascript - * @param interfaceName The name to used to expose the class in Javascript + * @param obj The class instance to bind to Javascript, null instances are + * ignored. + * @param interfaceName The name to used to expose the class in JavaScript. */ public void addJavascriptInterface(Object obj, String interfaceName) { + if (obj == null) { + return; + } WebViewCore.JSInterfaceData arg = new WebViewCore.JSInterfaceData(); arg.mObject = obj; arg.mInterfaceName = interfaceName; |
