[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:31:25 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 8a1511be400354c6aaf0b296674f83c957833232
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 5 17:58:18 2010 +0000

    Implement pluginElementNPObject
    https://bugs.webkit.org/show_bug.cgi?id=49077
    
    Reviewed by Adam Roben.
    
    WebKit2:
    
    * PluginProcess/PluginControllerProxy.cpp:
    (WebKit::PluginControllerProxy::pluginElementNPObject):
    Send the GetPluginElementNPObject message.
    
    * WebProcess/Plugins/PluginProxy.cpp:
    (WebKit::PluginProxy::getPluginElementNPObject):
    Get the plug-in element NPObject and expose it to the other side of the connection.
    
    * WebProcess/Plugins/PluginProxy.messages.in:
    Add GetPluginElementNPObject.
    
    LayoutTests:
    
    Remove now passing test.
    
    * platform/mac-snowleopard/Skipped:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71432 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e8eb5b5..8275e16 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-11-05  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Implement pluginElementNPObject
+        https://bugs.webkit.org/show_bug.cgi?id=49077
+
+        Remove now passing test.
+
+        * platform/mac-snowleopard/Skipped:
+
 2010-11-04  Ryosuke Niwa  <rniwa at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/LayoutTests/platform/mac-snowleopard/Skipped b/LayoutTests/platform/mac-snowleopard/Skipped
index 20fde57..d461dc7 100644
--- a/LayoutTests/platform/mac-snowleopard/Skipped
+++ b/LayoutTests/platform/mac-snowleopard/Skipped
@@ -12,7 +12,6 @@ plugins/private-browsing-mode.html
 plugins/private-browsing-mode-2.html
 plugins/netscape-plugin-property-access-exception.html
 plugins/npruntime/throw-exception.html
-plugins/netscape-dom-access.html
 plugins/npruntime/browser-object-identity.html
 plugins/destroy-plugin-from-callback.html
 
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 4ae9f9d..d9092aa 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,21 @@
+2010-11-05  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Implement pluginElementNPObject
+        https://bugs.webkit.org/show_bug.cgi?id=49077
+
+        * PluginProcess/PluginControllerProxy.cpp:
+        (WebKit::PluginControllerProxy::pluginElementNPObject):
+        Send the GetPluginElementNPObject message.
+
+        * WebProcess/Plugins/PluginProxy.cpp:
+        (WebKit::PluginProxy::getPluginElementNPObject):
+        Get the plug-in element NPObject and expose it to the other side of the connection.
+
+        * WebProcess/Plugins/PluginProxy.messages.in:
+        Add GetPluginElementNPObject.
+
 2010-11-04  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Oliver Hunt.
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.cpp b/WebKit2/PluginProcess/PluginControllerProxy.cpp
index 6beb25a..0ac6483 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -180,8 +180,15 @@ NPObject* PluginControllerProxy::windowScriptNPObject()
 
 NPObject* PluginControllerProxy::pluginElementNPObject()
 {
-    notImplemented();
-    return 0;
+    uint64_t pluginElementNPObjectID = 0;
+
+    if (!m_connection->connection()->sendSync(Messages::PluginProxy::GetPluginElementNPObject(), Messages::PluginProxy::GetPluginElementNPObject::Reply(pluginElementNPObjectID), m_pluginInstanceID))
+        return 0;
+
+    if (!pluginElementNPObjectID)
+        return 0;
+
+    return m_connection->npRemoteObjectMap()->createNPObjectProxy(pluginElementNPObjectID);
 }
 
 bool PluginControllerProxy::evaluate(NPObject*, const String& scriptString, NPVariant* result, bool allowPopups)
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.cpp b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
index 983d40e..e77310d 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
@@ -367,6 +367,18 @@ void PluginProxy::getWindowScriptNPObject(uint64_t& windowScriptNPObjectID)
     releaseNPObject(windowScriptNPObject);
 }
 
+void PluginProxy::getPluginElementNPObject(uint64_t& pluginElementNPObjectID)
+{
+    NPObject* pluginElementNPObject = m_pluginController->pluginElementNPObject();
+    if (!pluginElementNPObject) {
+        pluginElementNPObjectID = 0;
+        return;
+    }
+
+    pluginElementNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginElementNPObject);
+    releaseNPObject(pluginElementNPObject);
+}
+
 void PluginProxy::update(const IntRect& paintedRect)
 {
     if (paintedRect == m_frameRect)
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.h b/WebKit2/WebProcess/Plugins/PluginProxy.h
index 38cf676..059eafe 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.h
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.h
@@ -109,6 +109,7 @@ private:
     void cookiesForURL(const String& urlString, String& cookieString);
     void setCookiesForURL(const String& urlString, const String& cookieString);
     void getWindowScriptNPObject(uint64_t& windowScriptNPObjectID);
+    void getPluginElementNPObject(uint64_t& pluginElementNPObjectID);
 
     RefPtr<PluginProcessConnection> m_connection;
     uint64_t m_pluginInstanceID;
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.messages.in b/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
index 3a844f2..7bf8573 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
@@ -40,6 +40,10 @@ messages -> PluginProxy {
 
     # Gets a reference to the window NPObject.
     GetWindowScriptNPObject() -> (uint64_t windowScriptNPObjectID)
+
+    # Gets a reference to the plug-in element NPObject.
+    GetPluginElementNPObject() -> (uint64_t pluginElementNPObjectID)
+
 }
 
 #endif

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list