Index: third_party/WebKit/WebCore/bindings/js/ScriptController.cpp |
=================================================================== |
--- third_party/WebKit/WebCore/bindings/js/ScriptController.cpp (revision 9118) |
+++ third_party/WebKit/WebCore/bindings/js/ScriptController.cpp (working copy) |
@@ -318,21 +318,30 @@ |
NPObject* ScriptController::createScriptObjectForPluginElement(HTMLPlugInElement* plugin) |
{ |
- // Can't create NPObjects when JavaScript is disabled |
- if (!isEnabled()) |
+ JSObject* object = jsObjectForPluginElement(plugin); |
+ if (!object) |
return _NPN_CreateNoScriptObject(); |
+ // Wrap the JSObject in an NPObject |
+ return _NPN_CreateScriptObject(0, object, bindingRootObject()); |
+} |
+#endif |
+ |
+JSObject* ScriptController::jsObjectForPluginElement(HTMLPlugInElement* plugin) |
+{ |
+ // Can't create JSObjects when JavaScript is disabled |
+ if (!isEnabled()) |
+ return 0; |
+ |
// Create a JSObject bound to this element |
JSLock lock(false); |
ExecState* exec = globalObject()->globalExec(); |
JSValuePtr jsElementValue = toJS(exec, plugin); |
if (!jsElementValue || !jsElementValue.isObject()) |
- return _NPN_CreateNoScriptObject(); |
- |
- // Wrap the JSObject in an NPObject |
- return _NPN_CreateScriptObject(0, jsElementValue.getObject(), bindingRootObject()); |
+ return 0; |
+ |
+ return jsElementValue.getObject(); |
} |
-#endif |
#if !PLATFORM(MAC) |
void ScriptController::updatePlatformScriptObjects() |