[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