Merge "Update WebView.addJavascriptInterface() to ignore null instances"
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 @@
             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 @@
     }
 
     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 @@
      * <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;