[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 15:24:26 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 0dea75de502534355c03cda05bc5e32a2f71676e
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 2 21:54:41 2010 +0000
Implement PluginProxy::pluginScriptableNPObject
https://bugs.webkit.org/show_bug.cgi?id=48874
Reviewed by Sam Weinig.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::getPluginScriptableNPObject):
Ask the plug-in for its scriptable NPObject, register it with the map and return its object ID.
* PluginProcess/PluginControllerProxy.messages.in:
Add GetPluginScriptableNPObject message.
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::pluginScriptableNPObject):
Send the GetPluginScriptableNPObject message.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 3fee795..b6d070b 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,23 @@
2010-11-02 Anders Carlsson <andersca at apple.com>
+ Reviewed by Sam Weinig.
+
+ Implement PluginProxy::pluginScriptableNPObject
+ https://bugs.webkit.org/show_bug.cgi?id=48874
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::getPluginScriptableNPObject):
+ Ask the plug-in for its scriptable NPObject, register it with the map and return its object ID.
+
+ * PluginProcess/PluginControllerProxy.messages.in:
+ Add GetPluginScriptableNPObject message.
+
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::pluginScriptableNPObject):
+ Send the GetPluginScriptableNPObject message.
+
+2010-11-02 Anders Carlsson <andersca at apple.com>
+
Reviewed by Dan Bernstein.
Add strings to NPVariantData
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.cpp b/WebKit2/PluginProcess/PluginControllerProxy.cpp
index 83fe195..91a0059 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -30,6 +30,7 @@
#include "BackingStore.h"
#include "DataReference.h"
#include "NPRemoteObjectMap.h"
+#include "NPRuntimeUtilities.h"
#include "NetscapePlugin.h"
#include "NotImplemented.h"
#include "PluginProcess.h"
@@ -313,6 +314,18 @@ void PluginControllerProxy::didUpdate()
startPaintTimer();
}
+void PluginControllerProxy::getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID)
+{
+ NPObject* pluginScriptableNPObject = m_plugin->pluginScriptableNPObject();
+ if (!pluginScriptableNPObject) {
+ pluginScriptableNPObjectID = 0;
+ return;
+ }
+
+ pluginScriptableNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginScriptableNPObject);
+ releaseNPObject(pluginScriptableNPObject);
+}
+
#if PLATFORM(MAC)
void PluginControllerProxy::windowFocusChanged(bool hasFocus)
{
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.h b/WebKit2/PluginProcess/PluginControllerProxy.h
index b32f778..06c5338 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.h
+++ b/WebKit2/PluginProcess/PluginControllerProxy.h
@@ -97,6 +97,8 @@ private:
void paintEntirePlugin();
void setFocus(bool);
void didUpdate();
+ void getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID);
+
#if PLATFORM(MAC)
void windowFocusChanged(bool);
void windowFrameChanged(const WebCore::IntRect&);
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.messages.in b/WebKit2/PluginProcess/PluginControllerProxy.messages.in
index 1276e4d..e21c9f7 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.messages.in
+++ b/WebKit2/PluginProcess/PluginControllerProxy.messages.in
@@ -64,7 +64,10 @@ messages -> PluginControllerProxy {
# Paint the entire plug-in.
PaintEntirePlugin() -> ()
-
+
+ # Get a reference to the plug-in's scriptable NPObject.
+ GetPluginScriptableNPObject() -> (uint64_t pluginScriptableNPObjectID)
+
#if PLATFORM(MAC)
# Sent when the containing NSWindow's focus changes
WindowFocusChanged(bool hasFocus)
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.cpp b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
index fa1b3da..b074507 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
@@ -295,8 +295,15 @@ void PluginProxy::setFocus(bool hasFocus)
NPObject* PluginProxy::pluginScriptableNPObject()
{
- notImplemented();
- return 0;
+ uint64_t pluginScriptableNPObjectID = 0;
+
+ if (!m_connection->connection()->sendSync(Messages::PluginControllerProxy::GetPluginScriptableNPObject(), Messages::PluginControllerProxy::GetPluginScriptableNPObject::Reply(pluginScriptableNPObjectID), m_pluginInstanceID))
+ return 0;
+
+ if (!pluginScriptableNPObjectID)
+ return 0;
+
+ return m_connection->npRemoteObjectMap()->createNPObjectProxy(pluginScriptableNPObjectID);
}
#if PLATFORM(MAC)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list