[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 11:18:35 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit a4b920b733ff93f905c25a78f611be87987e9801
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Jul 18 18:57:38 2010 +0000

    Begin work on NPRuntime support
    https://bugs.webkit.org/show_bug.cgi?id=42519
    
    Reviewed by Dan Bernstein.
    
    * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
    (WebKit::NPN_GetValue):
    Handle NPNVWindowNPObject and NPNVPluginElementNPObject.
    
    * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
    (WebKit::NetscapePlugin::windowScriptNPObject):
    (WebKit::NetscapePlugin::pluginElementNPObject):
    Call the plug-in controller.
    
    * WebProcess/Plugins/PluginController.h:
    Add new windowScriptNPObject and pluginElementNPObject functions.
    
    * WebProcess/Plugins/PluginView.cpp:
    (WebKit::PluginView::windowScriptNPObject):
    (WebKit::PluginView::pluginElementNPObject):
    Add stubbed out functions.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 0193ec6..ee4bcc5 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -2,6 +2,30 @@
 
         Reviewed by Dan Bernstein.
 
+        Begin work on NPRuntime support
+        https://bugs.webkit.org/show_bug.cgi?id=42519
+
+        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+        (WebKit::NPN_GetValue):
+        Handle NPNVWindowNPObject and NPNVPluginElementNPObject.
+
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::windowScriptNPObject):
+        (WebKit::NetscapePlugin::pluginElementNPObject):
+        Call the plug-in controller.
+
+        * WebProcess/Plugins/PluginController.h:
+        Add new windowScriptNPObject and pluginElementNPObject functions.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::windowScriptNPObject):
+        (WebKit::PluginView::pluginElementNPObject):
+        Add stubbed out functions.
+
+2010-07-18  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Dan Bernstein.
+
         Implement some NPRuntime related NPN_ functions
         https://bugs.webkit.org/show_bug.cgi?id=42518
 
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
index b4504c8..a998562 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
@@ -148,9 +148,23 @@ static NPError NPN_PostURLNotify(NPP instance, const char* url, const char* targ
     return NPERR_GENERIC_ERROR;
 }
 
-static NPError NPN_GetValue(NPP instance, NPNVariable variable, void *value)
+static NPError NPN_GetValue(NPP npp, NPNVariable variable, void *value)
 {
     switch (variable) {
+        case NPNVWindowNPObject: {
+            RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
+
+            NPObject* windowNPObject = plugin->windowScriptNPObject();
+            *(NPObject**)value = windowNPObject;
+            break;
+        }
+        case NPNVPluginElementNPObject: {
+            RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
+
+            NPObject* pluginElementNPObject = plugin->pluginElementNPObject();
+            *(NPObject**)value = pluginElementNPObject;
+            break;
+        }
 #if PLATFORM(MAC)
         case NPNVsupportsCoreGraphicsBool:
             // Always claim to support the Core Graphics drawing model.
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
index 05089c8..6d67f8c 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
@@ -143,6 +143,16 @@ NPError NetscapePlugin::destroyStream(NPStream* stream, NPReason reason)
     return pluginStream->destroy(reason);
 }
 
+NPObject* NetscapePlugin::windowScriptNPObject()
+{
+    return m_pluginController->windowScriptNPObject();
+}
+
+NPObject* NetscapePlugin::pluginElementNPObject()
+{
+    return m_pluginController->pluginElementNPObject();
+}
+
 void NetscapePlugin::cancelStreamLoad(NetscapePluginStream* pluginStream)
 {
     // Ask the plug-in controller to cancel this stream load.
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index 1b2ea63..88b47bd 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -55,6 +55,10 @@ public:
     void loadURL(const WebCore::String& urlString, const WebCore::String& target, bool sendNotification, void* notificationData);
     NPError destroyStream(NPStream*, NPReason);
 
+    // These return retained objects.
+    NPObject* windowScriptNPObject();
+    NPObject* pluginElementNPObject();
+
     void cancelStreamLoad(NetscapePluginStream*);
     void removePluginStream(NetscapePluginStream*);
 
diff --git a/WebKit2/WebProcess/Plugins/PluginController.h b/WebKit2/WebProcess/Plugins/PluginController.h
index 0160e35..bba6dc9 100644
--- a/WebKit2/WebProcess/Plugins/PluginController.h
+++ b/WebKit2/WebProcess/Plugins/PluginController.h
@@ -26,6 +26,8 @@
 #ifndef PluginController_h
 #define PluginController_h
 
+struct NPObject;
+
 namespace WebCore {
     class IntRect;
     class KURL;
@@ -54,6 +56,12 @@ public:
     /// Cancels the load of a stream that was requested by loadURL.
     virtual void cancelStreamLoad(uint64_t streamID) = 0;
 
+    // Get the NPObject that corresponds to the window JavaScript object. Returns a retained object.
+    virtual NPObject* windowScriptNPObject() = 0;
+
+    // Get the NPObject that corresponds to the plug-in's element. Returns a retained object.
+    virtual NPObject* pluginElementNPObject() = 0;
+
 protected:
     virtual ~PluginController() { }
 };
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index b77fa6b..6f31c16 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -531,6 +531,18 @@ void PluginView::cancelStreamLoad(uint64_t streamID)
     removeStream(stream);
 }
 
+NPObject* PluginView::windowScriptNPObject()
+{
+    // FIXME: Implement.
+    return 0;
+}
+
+NPObject* PluginView::pluginElementNPObject()
+{
+    // FIXME: Implement.
+    return 0;
+}
+
 void PluginView::didFinishLoad(WebFrame* webFrame)
 {
     RefPtr<URLRequest> request = m_pendingFrameLoads.take(webFrame);
diff --git a/WebKit2/WebProcess/Plugins/PluginView.h b/WebKit2/WebProcess/Plugins/PluginView.h
index a15b0ef..f37c016 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.h
+++ b/WebKit2/WebProcess/Plugins/PluginView.h
@@ -90,6 +90,8 @@ private:
     virtual WebCore::String userAgent(const WebCore::KURL&);
     virtual void loadURL(uint64_t requestID, const WebCore::String& urlString, const WebCore::String& target, bool allowPopups);
     virtual void cancelStreamLoad(uint64_t streamID);
+    virtual NPObject* windowScriptNPObject();
+    virtual NPObject* pluginElementNPObject();
 
     // WebFrame::LoadListener
     virtual void didFinishLoad(WebFrame*);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list