JSObject* pluginScriptObject(ExecState* exec, JSHTMLElement* jsHTMLElement) { HTMLElement& element = jsHTMLElement->impl(); if (!isPluginElement(element)) return 0; HTMLPlugInElement& pluginElement = toHTMLPlugInElement(element); // Choke point for script/plugin interaction; notify DOMTimer of the event. DOMTimer::scriptDidInteractWithPlugin(pluginElement); // First, see if the element has a plug-in replacement with a script. if (JSObject* scriptObject = pluginElement.scriptObjectForPluginReplacement()) return scriptObject; // Next, see if we can ask the plug-in view for its script object. if (JSObject* scriptObject = pluginScriptObjectFromPluginViewBase(pluginElement, jsHTMLElement->globalObject())) return scriptObject; // Otherwise, fall back to getting the object from the instance. // The plugin element holds an owning reference, so we don't have to. Instance* instance = pluginElement.getInstance().get(); if (!instance || !instance->rootObject()) return 0; return instance->createRuntimeObject(exec); }
static RuntimeObjectImp* getRuntimeObject(ExecState* exec, Node* node) { Instance* instance = pluginInstance(node); if (!instance) return 0; return instance->createRuntimeObject(exec); }
JSObject* pluginScriptObject(ExecState* exec, JSHTMLElement* jsHTMLElement) { HTMLElement* element = jsHTMLElement->impl(); if (!isPluginElement(element)) return 0; HTMLPlugInElement* pluginElement = static_cast<HTMLPlugInElement*>(element); // First, see if we can ask the plug-in view for its script object. if (JSObject* scriptObject = pluginScriptObjectFromPluginViewBase(pluginElement, jsHTMLElement->globalObject())) return scriptObject; // Otherwise, fall back to getting the object from the instance. // The plugin element holds an owning reference, so we don't have to. Instance* instance = pluginElement->getInstance().get(); if (!instance || !instance->rootObject()) return 0; return instance->createRuntimeObject(exec); }