summaryrefslogtreecommitdiff
path: root/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
downloadqtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp')
-rw-r--r--Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp b/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
index d0ad80fe2..328ef7b20 100644
--- a/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
+++ b/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
@@ -26,20 +26,17 @@
#include "config.h"
#include "NPObjectMessageReceiver.h"
-#if ENABLE(PLUGIN_PROCESS)
+#if ENABLE(NETSCAPE_PLUGIN_API)
#include "NPIdentifierData.h"
#include "NPRemoteObjectMap.h"
#include "NPRuntimeUtilities.h"
#include "NPVariantData.h"
+#include "Plugin.h"
+#include "PluginController.h"
namespace WebKit {
-PassOwnPtr<NPObjectMessageReceiver> NPObjectMessageReceiver::create(NPRemoteObjectMap* npRemoteObjectMap, Plugin* plugin, uint64_t npObjectID, NPObject* npObject)
-{
- return adoptPtr(new NPObjectMessageReceiver(npRemoteObjectMap, plugin, npObjectID, npObject));
-}
-
NPObjectMessageReceiver::NPObjectMessageReceiver(NPRemoteObjectMap* npRemoteObjectMap, Plugin* plugin, uint64_t npObjectID, NPObject* npObject)
: m_npRemoteObjectMap(npRemoteObjectMap)
, m_plugin(plugin)
@@ -85,6 +82,8 @@ void NPObjectMessageReceiver::invoke(const NPIdentifierData& methodNameData, con
NPVariant result;
VOID_TO_NPVARIANT(result);
+ PluginController::PluginDestructionProtector protector(m_plugin->controller());
+
returnValue = m_npObject->_class->invoke(m_npObject, methodNameData.createNPIdentifier(), arguments.data(), arguments.size(), &result);
if (returnValue) {
// Convert the NPVariant to an NPVariantData.
@@ -113,6 +112,8 @@ void NPObjectMessageReceiver::invokeDefault(const Vector<NPVariantData>& argumen
NPVariant result;
VOID_TO_NPVARIANT(result);
+ PluginController::PluginDestructionProtector protector(m_plugin->controller());
+
returnValue = m_npObject->_class->invokeDefault(m_npObject, arguments.data(), arguments.size(), &result);
if (returnValue) {
// Convert the NPVariant to an NPVariantData.
@@ -147,14 +148,15 @@ void NPObjectMessageReceiver::getProperty(const NPIdentifierData& propertyNameDa
NPVariant result;
VOID_TO_NPVARIANT(result);
+ PluginController::PluginDestructionProtector protector(m_plugin->controller());
+
returnValue = m_npObject->_class->getProperty(m_npObject, propertyNameData.createNPIdentifier(), &result);
if (!returnValue)
return;
- // Convert the NPVariant to an NPVariantData.
+
resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
- // And release the result.
releaseNPVariantValue(&result);
}
@@ -167,10 +169,10 @@ void NPObjectMessageReceiver::setProperty(const NPIdentifierData& propertyNameDa
NPVariant propertyValue = m_npRemoteObjectMap->npVariantDataToNPVariant(propertyValueData, m_plugin);
- // Set the property.
+ PluginController::PluginDestructionProtector protector(m_plugin->controller());
+
returnValue = m_npObject->_class->setProperty(m_npObject, propertyNameData.createNPIdentifier(), &propertyValue);
- // And release the value.
releaseNPVariantValue(&propertyValue);
}
@@ -218,21 +220,19 @@ void NPObjectMessageReceiver::construct(const Vector<NPVariantData>& argumentsDa
NPVariant result;
VOID_TO_NPVARIANT(result);
+ PluginController::PluginDestructionProtector protector(m_plugin->controller());
+
returnValue = m_npObject->_class->construct(m_npObject, arguments.data(), arguments.size(), &result);
- if (returnValue) {
- // Convert the NPVariant to an NPVariantData.
+ if (returnValue)
resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
- }
- // Release all arguments.
for (size_t i = 0; i < argumentsData.size(); ++i)
releaseNPVariantValue(&arguments[i]);
- // And release the result.
releaseNPVariantValue(&result);
}
} // namespace WebKit
-#endif // ENABLE(PLUGIN_PROCESS)
+#endif // ENABLE(NETSCAPE_PLUGIN_API)