[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