[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