[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 14:01:58 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit b92254f3f11ad126ca55640196f38d068741116c
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Oct 1 17:46:27 2010 +0000
Implement NPN_GetValueForURL/NPN_SetValueForURL and stub out PluginController functions
https://bugs.webkit.org/show_bug.cgi?id=46992
Reviewed by Dan Bernstein.
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::copyCString):
Helper function for allocating a string using NPN_MemAlloc.
(WebKit::NPN_GetValueForURL):
Ask the plug-in for either the proxy or the cookies given an URL.
(WebKit::NPN_SetValueForURL):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
Tell the plug-in to set the cookies for the given URL.
(WebKit::NetscapePlugin::proxiesForURL):
(WebKit::NetscapePlugin::cookiesForURL):
(WebKit::NetscapePlugin::setCookiesForURL):
Call the corresponding PluginController functions.
* WebProcess/Plugins/PluginController.h:
Add new pure virtual member functions.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::proxiesForURL):
(WebKit::PluginView::cookiesForURL):
(WebKit::PluginView::setCookiesForURL):
Add stubbed out implementations of the new PluginController functions.
* WebProcess/Plugins/PluginView.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 5dda755..20c5112 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,37 @@
+2010-10-01 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Implement NPN_GetValueForURL/NPN_SetValueForURL and stub out PluginController functions
+ https://bugs.webkit.org/show_bug.cgi?id=46992
+
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::copyCString):
+ Helper function for allocating a string using NPN_MemAlloc.
+
+ (WebKit::NPN_GetValueForURL):
+ Ask the plug-in for either the proxy or the cookies given an URL.
+
+ (WebKit::NPN_SetValueForURL):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ Tell the plug-in to set the cookies for the given URL.
+
+ (WebKit::NetscapePlugin::proxiesForURL):
+ (WebKit::NetscapePlugin::cookiesForURL):
+ (WebKit::NetscapePlugin::setCookiesForURL):
+ Call the corresponding PluginController functions.
+
+ * WebProcess/Plugins/PluginController.h:
+ Add new pure virtual member functions.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::proxiesForURL):
+ (WebKit::PluginView::cookiesForURL):
+ (WebKit::PluginView::setCookiesForURL):
+ Add stubbed out implementations of the new PluginController functions.
+
+ * WebProcess/Plugins/PluginView.h:
+
2010-10-01 Adam Roben <aroben at apple.com>
Implement NPN_GetValue(NPNVnetscapeWindow)
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
index b2b8c73..e317eee 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
@@ -675,16 +675,69 @@ static bool NPN_Construct(NPP, NPObject* npObject, const NPVariant* arguments, u
return false;
}
-static NPError NPN_GetValueForURL(NPP instance, NPNURLVariable variable, const char* url, char** value, uint32_t* len)
+static NPError copyCString(const CString& string, char** value, uint32_t* len)
{
- notImplemented();
- return NPERR_GENERIC_ERROR;
+ ASSERT(!string.isNull());
+ ASSERT(value);
+ ASSERT(len);
+
+ *value = static_cast<char*>(NPN_MemAlloc(string.length()));
+ if (!*value)
+ return NPERR_GENERIC_ERROR;
+
+ memcpy(*value, string.data(), string.length());
+ return NPERR_NO_ERROR;
}
-static NPError NPN_SetValueForURL(NPP instance, NPNURLVariable variable, const char* url, const char* value, uint32_t len)
+static NPError NPN_GetValueForURL(NPP npp, NPNURLVariable variable, const char* url, char** value, uint32_t* len)
{
- notImplemented();
- return NPERR_GENERIC_ERROR;
+ if (!value || !len)
+ return NPERR_GENERIC_ERROR;
+
+ switch (variable) {
+ case NPNURLVCookie: {
+ RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
+
+ String cookies = plugin->cookiesForURL(makeURLString(url));
+ if (cookies.isNull())
+ return NPERR_GENERIC_ERROR;
+
+ return copyCString(cookies.utf8(), value, len);
+ }
+
+ case NPNURLVProxy: {
+ RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
+
+ String proxies = plugin->proxiesForURL(makeURLString(url));
+ if (proxies.isNull())
+ return NPERR_GENERIC_ERROR;
+
+ return copyCString(proxies.utf8(), value, len);
+ }
+ default:
+ notImplemented();
+ return NPERR_GENERIC_ERROR;
+ }
+}
+
+static NPError NPN_SetValueForURL(NPP npp, NPNURLVariable variable, const char* url, const char* value, uint32_t len)
+{
+ switch (variable) {
+ case NPNURLVCookie: {
+ RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
+
+ plugin->setCookiesForURL(makeURLString(url), String(value, len));
+ return NPERR_NO_ERROR;
+ }
+
+ case NPNURLVProxy:
+ // Can't set the proxy for a URL.
+ return NPERR_GENERIC_ERROR;
+
+ default:
+ notImplemented();
+ return NPERR_GENERIC_ERROR;
+ }
}
static NPError NPN_GetAuthenticationInfo(NPP instance, const char* protocol, const char* host, int32_t port, const char* scheme,
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
index fb7ead7..01afeca 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
@@ -206,6 +206,21 @@ bool NetscapePlugin::isAcceleratedCompositingEnabled()
#endif
}
+String NetscapePlugin::proxiesForURL(const String& urlString)
+{
+ return m_pluginController->proxiesForURL(urlString);
+}
+
+String NetscapePlugin::cookiesForURL(const String& urlString)
+{
+ return m_pluginController->cookiesForURL(urlString);
+}
+
+void NetscapePlugin::setCookiesForURL(const String& urlString, const String& cookieString)
+{
+ m_pluginController->setCookiesForURL(urlString, cookieString);
+}
+
NPError NetscapePlugin::NPP_New(NPMIMEType pluginType, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* savedData)
{
return m_pluginModule->pluginFuncs().newp(pluginType, &m_npp, mode, argc, argn, argv, savedData);
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index 889b82c..7c5521d 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -78,6 +78,10 @@ public:
bool isAcceleratedCompositingEnabled();
+ String proxiesForURL(const String& urlString);
+ String cookiesForURL(const String& urlString);
+ void setCookiesForURL(const String& urlString, const String& cookieString);
+
// Member functions for calling into the plug-in.
NPError NPP_New(NPMIMEType pluginType, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData*);
NPError NPP_Destroy(NPSavedData**);
diff --git a/WebKit2/WebProcess/Plugins/PluginController.h b/WebKit2/WebProcess/Plugins/PluginController.h
index 53b4e5e..e274988 100644
--- a/WebKit2/WebProcess/Plugins/PluginController.h
+++ b/WebKit2/WebProcess/Plugins/PluginController.h
@@ -70,7 +70,7 @@ public:
virtual NPObject* pluginElementNPObject() = 0;
// Evaluates the given script string in the context of the given NPObject.
- virtual bool evaluate(NPObject*, const String&scriptString, NPVariant* result, bool allowPopups) = 0;
+ virtual bool evaluate(NPObject*, const String& scriptString, NPVariant* result, bool allowPopups) = 0;
// Set the statusbar text.
virtual void setStatusbarText(const String&) = 0;
@@ -88,6 +88,15 @@ public:
virtual HWND nativeParentWindow() = 0;
#endif
+ // Returns the proxies for the given URL or null on failure.
+ virtual String proxiesForURL(const String&) = 0;
+
+ // Returns the cookies for the given URL or null on failure.
+ virtual String cookiesForURL(const String&) = 0;
+
+ // Sets the cookies for the given URL.
+ virtual void setCookiesForURL(const String& urlString, const String& cookieString) = 0;
+
protected:
virtual ~PluginController() { }
};
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index 45960fc..d7f4b2b 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -824,6 +824,23 @@ HWND PluginView::nativeParentWindow()
}
#endif
+String PluginView::proxiesForURL(const String& urlString)
+{
+ // FIXME: Implement.
+ return String();
+}
+
+String PluginView::cookiesForURL(const String& urlString)
+{
+ // FIXME: Implement.
+ return String();
+}
+
+void PluginView::setCookiesForURL(const String& urlString, const String& cookieString)
+{
+ // FIXME: Implement.
+}
+
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 e932529..bc44514 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.h
+++ b/WebKit2/WebProcess/Plugins/PluginView.h
@@ -127,7 +127,10 @@ private:
#if PLATFORM(WIN)
virtual HWND nativeParentWindow();
#endif
-
+ virtual String proxiesForURL(const String&);
+ virtual String cookiesForURL(const String&);
+ virtual void setCookiesForURL(const String& urlString, const String& cookieString);
+
// WebFrame::LoadListener
virtual void didFinishLoad(WebFrame*);
virtual void didFailLoad(WebFrame*, bool wasCancelled);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list