summaryrefslogtreecommitdiff
path: root/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp
diff options
context:
space:
mode:
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)