diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp')
-rw-r--r-- | Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp index fca8909d6..9956f1f80 100644 --- a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp +++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp @@ -39,7 +39,11 @@ #include <JavaScriptCore/SourceCode.h> #include <JavaScriptCore/Strong.h> #include <JavaScriptCore/StrongInlines.h> +#include <WebCore/DOMWrapperWorld.h> #include <WebCore/Frame.h> +#include <WebCore/Page.h> +#include <WebCore/PageThrottler.h> +#include <WebCore/ScriptController.h> using namespace JSC; using namespace WebCore; @@ -49,7 +53,7 @@ namespace WebKit { NPRuntimeObjectMap::NPRuntimeObjectMap(PluginView* pluginView) : m_pluginView(pluginView) - , m_finalizationTimer(WebProcess::shared().runLoop(), this, &NPRuntimeObjectMap::invalidateQueuedObjects) + , m_finalizationTimer(RunLoop::main(), this, &NPRuntimeObjectMap::invalidateQueuedObjects) { } @@ -64,7 +68,7 @@ NPRuntimeObjectMap::PluginProtector::~PluginProtector() { } -NPObject* NPRuntimeObjectMap::getOrCreateNPObject(JSGlobalData& globalData, JSObject* jsObject) +NPObject* NPRuntimeObjectMap::getOrCreateNPObject(VM& vm, JSObject* jsObject) { // If this is a JSNPObject, we can just get its underlying NPObject. if (jsObject->classInfo() == &JSNPObject::s_info) { @@ -81,7 +85,7 @@ NPObject* NPRuntimeObjectMap::getOrCreateNPObject(JSGlobalData& globalData, JSOb return npJSObject; } - NPJSObject* npJSObject = NPJSObject::create(globalData, this, jsObject); + NPJSObject* npJSObject = NPJSObject::create(vm, this, jsObject); m_npJSObjects.set(jsObject, npJSObject); return npJSObject; @@ -170,7 +174,7 @@ void NPRuntimeObjectMap::convertJSValueToNPVariant(ExecState* exec, JSValue valu } if (value.isObject()) { - NPObject* npObject = getOrCreateNPObject(exec->globalData(), asObject(value)); + NPObject* npObject = getOrCreateNPObject(exec->vm(), asObject(value)); OBJECT_TO_NPVARIANT(npObject, variant); return; } @@ -180,18 +184,21 @@ void NPRuntimeObjectMap::convertJSValueToNPVariant(ExecState* exec, JSValue valu bool NPRuntimeObjectMap::evaluate(NPObject* npObject, const String& scriptString, NPVariant* result) { - Strong<JSGlobalObject> globalObject(this->globalObject()->globalData(), this->globalObject()); + Strong<JSGlobalObject> globalObject(this->globalObject()->vm(), this->globalObject()); if (!globalObject) return false; + if (m_pluginView && !m_pluginView->isBeingDestroyed()) { + if (Page* page = m_pluginView->frame()->page()) + page->pageThrottler()->reportInterestingEvent(); + } + ExecState* exec = globalObject->globalExec(); JSLockHolder lock(exec); JSValue thisValue = getOrCreateJSObject(globalObject.get(), npObject); - globalObject->globalData().timeoutChecker.start(); JSValue resultValue = JSC::evaluate(exec, makeSource(scriptString), thisValue); - globalObject->globalData().timeoutChecker.stop(); convertJSValueToNPVariant(exec, resultValue, *result); return true; @@ -211,7 +218,7 @@ void NPRuntimeObjectMap::invalidate() Vector<NPObject*> objects; - for (HashMap<NPObject*, JSC::Weak<JSNPObject> >::iterator ptr = m_jsNPObjects.begin(), end = m_jsNPObjects.end(); ptr != end; ++ptr) { + for (HashMap<NPObject*, JSC::Weak<JSNPObject>>::iterator ptr = m_jsNPObjects.begin(), end = m_jsNPObjects.end(); ptr != end; ++ptr) { JSNPObject* jsNPObject = ptr->value.get(); if (!jsNPObject) // Skip zombies. continue; |