[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