[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

weinig at apple.com weinig at apple.com
Wed Dec 22 11:14:27 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 1a4ca3301edba0558737b95560a9e7cddaea1f90
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jul 15 20:39:43 2010 +0000

    Patch for https://bugs.webkit.org/show_bug.cgi?id=42396
    Give the navigation type in the policy client callbacks meaning.
    
    Reviewed by Anders Carlsson.
    
    - Use the new WKFrameNavigationType instead of just uint32_t.
    
    * UIProcess/API/C/WKAPICast.h:
    (toWK):
    Add conversion method from WebCore::NavigationType to WKFrameNavigationType.
    * UIProcess/API/C/WKPage.h:
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::didReceiveMessage):
    (WebKit::WebPageProxy::decidePolicyForNavigationAction):
    (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
    * UIProcess/WebPageProxy.h:
    * UIProcess/WebPolicyClient.cpp:
    (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
    (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
    * UIProcess/WebPolicyClient.h:
    * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63455 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index d74b511..bd99707 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,27 @@
+2010-07-15  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Patch for https://bugs.webkit.org/show_bug.cgi?id=42396
+        Give the navigation type in the policy client callbacks meaning. 
+
+        - Use the new WKFrameNavigationType instead of just uint32_t.
+
+        * UIProcess/API/C/WKAPICast.h:
+        (toWK):
+        Add conversion method from WebCore::NavigationType to WKFrameNavigationType.
+        * UIProcess/API/C/WKPage.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didReceiveMessage):
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPolicyClient.cpp:
+        (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
+        (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
+        * UIProcess/WebPolicyClient.h:
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+
 2010-07-15  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebKit2/UIProcess/API/C/WKAPICast.h b/WebKit2/UIProcess/API/C/WKAPICast.h
index 0440f98..9b6da3b 100644
--- a/WebKit2/UIProcess/API/C/WKAPICast.h
+++ b/WebKit2/UIProcess/API/C/WKAPICast.h
@@ -27,6 +27,8 @@
 #define WKAPICast_h
 
 #include "WKBase.h"
+#include "WKPage.h"
+#include <WebCore/FrameLoaderTypes.h>
 
 #if defined(WIN32) || defined(_WIN32)
 #include "WKAPICastWin.h"
@@ -99,4 +101,32 @@ inline WKURLRef toURLRef(WebCore::StringImpl* s)
     return reinterpret_cast<WKURLRef>(s);
 }
 
+inline WKFrameNavigationType toWK(WebCore::NavigationType type)
+{
+    WKFrameNavigationType wkType = kWKFrameNavigationTypeOther;
+
+    switch (type) {
+    case WebCore::NavigationTypeLinkClicked:
+        wkType = kWKFrameNavigationTypeLinkClicked;
+        break;
+    case WebCore::NavigationTypeFormSubmitted:
+        wkType = kWKFrameNavigationTypeFormSubmitted;
+        break;
+    case WebCore::NavigationTypeBackForward:
+        wkType = kWKFrameNavigationTypeBackForward;
+        break;
+    case WebCore::NavigationTypeReload:
+        wkType = kWKFrameNavigationTypeReload;
+        break;
+    case WebCore::NavigationTypeFormResubmitted:
+        wkType = kWKFrameNavigationTypeFormResubmitted;
+        break;
+    case WebCore::NavigationTypeOther:
+        wkType = kWKFrameNavigationTypeOther;
+        break;
+    }
+    
+    return wkType;
+}
+
 #endif // WKAPICast_h
diff --git a/WebKit2/UIProcess/API/C/WKPage.h b/WebKit2/UIProcess/API/C/WKPage.h
index 35e68c8..267a8a0 100644
--- a/WebKit2/UIProcess/API/C/WKPage.h
+++ b/WebKit2/UIProcess/API/C/WKPage.h
@@ -38,6 +38,16 @@
 extern "C" {
 #endif
 
+enum {
+    kWKFrameNavigationTypeLinkClicked = 0,
+    kWKFrameNavigationTypeFormSubmitted = 1,
+    kWKFrameNavigationTypeBackForward = 2,
+    kWKFrameNavigationTypeReload = 3,
+    kWKFrameNavigationTypeFormResubmitted = 4,
+    kWKFrameNavigationTypeOther = 5
+};
+typedef uint32_t WKFrameNavigationType;
+
 // FrameLoad Client
 typedef void (*WKPageDidStartProvisionalLoadForFrameCallback)(WKPageRef page, WKFrameRef frame, const void *clientInfo);
 typedef void (*WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback)(WKPageRef page, WKFrameRef frame, const void *clientInfo);
@@ -84,8 +94,8 @@ struct WKPageLoaderClient {
 typedef struct WKPageLoaderClient WKPageLoaderClient;
 
 // Policy Client.
-typedef void (*WKPageDecidePolicyForNavigationActionCallback)(WKPageRef page, uint32_t navigationType, WKURLRef url, WKFrameRef frame, WKFramePolicyListenerRef listener, const void *clientInfo);
-typedef void (*WKPageDecidePolicyForNewWindowActionCallback)(WKPageRef page, uint32_t navigationType, WKURLRef url, WKFrameRef frame, WKFramePolicyListenerRef listener, const void *clientInfo);
+typedef void (*WKPageDecidePolicyForNavigationActionCallback)(WKPageRef page, WKFrameNavigationType navigationType, WKURLRef url, WKFrameRef frame, WKFramePolicyListenerRef listener, const void *clientInfo);
+typedef void (*WKPageDecidePolicyForNewWindowActionCallback)(WKPageRef page, WKFrameNavigationType navigationType, WKURLRef url, WKFrameRef frame, WKFramePolicyListenerRef listener, const void *clientInfo);
 typedef void (*WKPageDecidePolicyForMIMETypeCallback)(WKPageRef page, WKStringRef MIMEType, WKURLRef url, WKFrameRef frame, WKFramePolicyListenerRef listener, const void *clientInfo);
 
 struct WKPagePolicyClient {
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 4d4b2bd..93680fe 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -494,7 +494,7 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
             uint64_t listenerID;
             if (!arguments.decode(CoreIPC::Out(frameID, navigationType, url, listenerID)))
                 return;
-            decidePolicyForNavigationAction(webFrame(frameID), navigationType, url, listenerID);
+            decidePolicyForNavigationAction(webFrame(frameID), static_cast<NavigationType>(navigationType), url, listenerID);
             break;
         }
         case WebPageProxyMessage::DecidePolicyForNewWindowAction: {
@@ -504,7 +504,7 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
             uint64_t listenerID;
             if (!arguments.decode(CoreIPC::Out(frameID, navigationType, url, listenerID)))
                 return;
-            decidePolicyForNewWindowAction(webFrame(frameID), navigationType, url, listenerID);
+            decidePolicyForNewWindowAction(webFrame(frameID), static_cast<NavigationType>(navigationType), url, listenerID);
             break;
         }
         case WebPageProxyMessage::DecidePolicyForMIMEType: {
@@ -763,14 +763,14 @@ void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(WebFrameProxy* frame)
 
 // PolicyClient
 
-void WebPageProxy::decidePolicyForNavigationAction(WebFrameProxy* frame, uint32_t navigationType, const String& url, uint64_t listenerID)
+void WebPageProxy::decidePolicyForNavigationAction(WebFrameProxy* frame, NavigationType navigationType, const String& url, uint64_t listenerID)
 {
     RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
     if (!m_policyClient.decidePolicyForNavigationAction(this, navigationType, url, frame, listener.get()))
         listener->use();
 }
 
-void WebPageProxy::decidePolicyForNewWindowAction(WebFrameProxy* frame, uint32_t navigationType, const String& url, uint64_t listenerID)
+void WebPageProxy::decidePolicyForNewWindowAction(WebFrameProxy* frame, NavigationType navigationType, const String& url, uint64_t listenerID)
 {
     RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
     if (!m_policyClient.decidePolicyForNewWindowAction(this, navigationType, url, frame, listener.get()))
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 447626a..1401481 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -172,8 +172,8 @@ private:
     void didChangeProgress(double);
     void didFinishProgress();
     
-    void decidePolicyForNavigationAction(WebFrameProxy*, uint32_t navigationType, const WebCore::String& url, uint64_t listenerID);
-    void decidePolicyForNewWindowAction(WebFrameProxy*, uint32_t navigationType, const WebCore::String& url, uint64_t listenerID);
+    void decidePolicyForNavigationAction(WebFrameProxy*, WebCore::NavigationType navigationType, const WebCore::String& url, uint64_t listenerID);
+    void decidePolicyForNewWindowAction(WebFrameProxy*, WebCore::NavigationType navigationType, const WebCore::String& url, uint64_t listenerID);
     void decidePolicyForMIMEType(WebFrameProxy*, const WebCore::String& MIMEType, const WebCore::String& url, uint64_t listenerID);
 
     WebPageProxy* createNewPage();
diff --git a/WebKit2/UIProcess/WebPolicyClient.cpp b/WebKit2/UIProcess/WebPolicyClient.cpp
index 499b011..5f65c84 100644
--- a/WebKit2/UIProcess/WebPolicyClient.cpp
+++ b/WebKit2/UIProcess/WebPolicyClient.cpp
@@ -45,21 +45,21 @@ void WebPolicyClient::initialize(WKPagePolicyClient* client)
         memset(&m_pagePolicyClient, 0, sizeof(m_pagePolicyClient));
 }
 
-bool WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, uint32_t navigationAction, const String& url, WebFrameProxy* frame, WebFramePolicyListenerProxy* listener)
+bool WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, NavigationType type, const String& url, WebFrameProxy* frame, WebFramePolicyListenerProxy* listener)
 {
     if (!m_pagePolicyClient.decidePolicyForNavigationAction)
         return false;
 
-    m_pagePolicyClient.decidePolicyForNavigationAction(toRef(page), navigationAction, toURLRef(url.impl()), toRef(frame), toRef(listener), m_pagePolicyClient.clientInfo);
+    m_pagePolicyClient.decidePolicyForNavigationAction(toRef(page), toWK(type), toURLRef(url.impl()), toRef(frame), toRef(listener), m_pagePolicyClient.clientInfo);
     return true;
 }
 
-bool WebPolicyClient::decidePolicyForNewWindowAction(WebPageProxy* page, uint32_t navigationAction, const String& url, WebFrameProxy* frame, WebFramePolicyListenerProxy* listener)
+bool WebPolicyClient::decidePolicyForNewWindowAction(WebPageProxy* page, NavigationType type, const String& url, WebFrameProxy* frame, WebFramePolicyListenerProxy* listener)
 {
     if (!m_pagePolicyClient.decidePolicyForNewWindowAction)
         return false;
 
-    m_pagePolicyClient.decidePolicyForNewWindowAction(toRef(page), navigationAction, toURLRef(url.impl()), toRef(frame), toRef(listener), m_pagePolicyClient.clientInfo);
+    m_pagePolicyClient.decidePolicyForNewWindowAction(toRef(page), toWK(type), toURLRef(url.impl()), toRef(frame), toRef(listener), m_pagePolicyClient.clientInfo);
     return true;
 }
 
diff --git a/WebKit2/UIProcess/WebPolicyClient.h b/WebKit2/UIProcess/WebPolicyClient.h
index 34bc687..fb9e9ac 100644
--- a/WebKit2/UIProcess/WebPolicyClient.h
+++ b/WebKit2/UIProcess/WebPolicyClient.h
@@ -27,6 +27,7 @@
 #define WebPolicyClient_h
 
 #include "WKPage.h"
+#include <WebCore/FrameLoaderTypes.h>
 
 namespace WebCore {
     class String;
@@ -43,8 +44,8 @@ public:
     WebPolicyClient();
     void initialize(WKPagePolicyClient*);
 
-    bool decidePolicyForNavigationAction(WebPageProxy*, uint32_t, const WebCore::String& url, WebFrameProxy*, WebFramePolicyListenerProxy*);
-    bool decidePolicyForNewWindowAction(WebPageProxy*, uint32_t, const WebCore::String& url, WebFrameProxy*, WebFramePolicyListenerProxy*);
+    bool decidePolicyForNavigationAction(WebPageProxy*, WebCore::NavigationType, const WebCore::String& url, WebFrameProxy*, WebFramePolicyListenerProxy*);
+    bool decidePolicyForNewWindowAction(WebPageProxy*, WebCore::NavigationType, const WebCore::String& url, WebFrameProxy*, WebFramePolicyListenerProxy*);
     bool decidePolicyForMIMEType(WebPageProxy*, const WebCore::String&, const WebCore::String& url, WebFrameProxy*, WebFramePolicyListenerProxy*);
 
 private:
diff --git a/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h b/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
index 309080f..e0d3853 100644
--- a/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
+++ b/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
@@ -27,9 +27,9 @@
 #define WKBundlePage_h
 
 #include <JavaScriptCore/JavaScript.h>
-#include <stdint.h>
 #include <WebKit2/WKBase.h>
 #include <WebKit2/WKBundleBase.h>
+#include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list