Title: [189109] trunk
Revision
189109
Author
[email protected]
Date
2015-08-28 11:37:50 -0700 (Fri, 28 Aug 2015)

Log Message

Add navigation gesture callbacks to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=148568
<rdar://problem/22371346>

Reviewed by Anders Carlsson.

* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didBeginNavigationGesture):
(API::NavigationClient::willEndNavigationGesture):
(API::NavigationClient::didEndNavigationGesture):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
* UIProcess/API/C/WKPageNavigationClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::navigationGestureDidBegin):
(WebKit::WebPageProxy::navigationGestureWillEnd):
(WebKit::WebPageProxy::navigationGestureDidEnd):

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):
Add some zeroes.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (189108 => 189109)


--- trunk/Source/WebKit2/ChangeLog	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Source/WebKit2/ChangeLog	2015-08-28 18:37:50 UTC (rev 189109)
@@ -1,5 +1,25 @@
 2015-08-28  Timothy Horton  <[email protected]>
 
+        Add navigation gesture callbacks to WKPageNavigationClient
+        https://bugs.webkit.org/show_bug.cgi?id=148568
+        <rdar://problem/22371346>
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/API/APINavigationClient.h:
+        (API::NavigationClient::didBeginNavigationGesture):
+        (API::NavigationClient::willEndNavigationGesture):
+        (API::NavigationClient::didEndNavigationGesture):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageNavigationClient):
+        * UIProcess/API/C/WKPageNavigationClient.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::navigationGestureDidBegin):
+        (WebKit::WebPageProxy::navigationGestureWillEnd):
+        (WebKit::WebPageProxy::navigationGestureDidEnd):
+
+2015-08-28  Timothy Horton  <[email protected]>
+
         Get rid of the DynamicSizeWithMinimumViewSize layout mode
         https://bugs.webkit.org/show_bug.cgi?id=148554
 

Modified: trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h (189108 => 189109)


--- trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Source/WebKit2/UIProcess/API/APINavigationClient.h	2015-08-28 18:37:50 UTC (rev 189109)
@@ -107,6 +107,10 @@
         return currentPluginLoadPolicy;
     }
 #endif
+
+    virtual void didBeginNavigationGesture(WebKit::WebPageProxy&) { }
+    virtual void willEndNavigationGesture(WebKit::WebPageProxy&, bool willNavigate, WebKit::WebBackForwardListItem&) { }
+    virtual void didEndNavigationGesture(WebKit::WebPageProxy&, bool willNavigate, WebKit::WebBackForwardListItem&) { }
 };
 
 } // namespace API

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (189108 => 189109)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2015-08-28 18:37:50 UTC (rev 189109)
@@ -2102,6 +2102,27 @@
                 return nullptr;
             return adoptRef(toImpl(m_client.copyWebCryptoMasterKey(toAPI(&page), m_client.base.clientInfo)));
         }
+
+        virtual void didBeginNavigationGesture(WebPageProxy& page) override
+        {
+            if (!m_client.didBeginNavigationGesture)
+                return;
+            m_client.didBeginNavigationGesture(toAPI(&page), m_client.base.clientInfo);
+        }
+
+        virtual void didEndNavigationGesture(WebPageProxy& page, bool willNavigate, WebKit::WebBackForwardListItem& item) override
+        {
+            if (!m_client.didEndNavigationGesture)
+                return;
+            m_client.didEndNavigationGesture(toAPI(&page), willNavigate ? toAPI(&item) : nullptr, m_client.base.clientInfo);
+        }
+
+        virtual void willEndNavigationGesture(WebPageProxy& page, bool willNavigate, WebKit::WebBackForwardListItem& item) override
+        {
+            if (!m_client.willEndNavigationGesture)
+                return;
+            m_client.willEndNavigationGesture(toAPI(&page), willNavigate ? toAPI(&item) : nullptr, m_client.base.clientInfo);
+        }
         
 #if ENABLE(NETSCAPE_PLUGIN_API)
         virtual PluginModuleLoadPolicy decidePolicyForPluginLoad(WebPageProxy& page, PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary* pluginInformation, String& unavailabilityDescription) override

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageNavigationClient.h (189108 => 189109)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPageNavigationClient.h	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageNavigationClient.h	2015-08-28 18:37:50 UTC (rev 189109)
@@ -69,6 +69,12 @@
     
 typedef WKPluginLoadPolicy (*WKPageNavigationDecidePolicyForPluginLoadCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, const void* clientInfo);
 
+typedef void (*WKPageNavigationDidBeginNavigationGesture)(WKPageRef page, const void* clientInfo);
+
+typedef void (*WKPageNavigationWillEndNavigationGesture)(WKPageRef page, WKBackForwardListItemRef backForwardListItem, const void* clientInfo);
+
+typedef void (*WKPageNavigationDidEndNavigationGesture)(WKPageRef page, WKBackForwardListItemRef backForwardListItem, const void* clientInfo);
+
 typedef struct WKPageNavigationClientBase {
     int version;
     const void* clientInfo;
@@ -95,9 +101,12 @@
     WKPageNavigationDidReceiveAuthenticationChallengeCallback didReceiveAuthenticationChallenge;
     WKPageNavigationWebProcessDidCrashCallback webProcessDidCrash;
     WKPageNavigationCopyWebCryptoMasterKeyCallback copyWebCryptoMasterKey;
+
+    WKPageNavigationDidBeginNavigationGesture didBeginNavigationGesture;
+    WKPageNavigationWillEndNavigationGesture willEndNavigationGesture;
+    WKPageNavigationDidEndNavigationGesture didEndNavigationGesture;
 } WKPageNavigationClientV0;
 
-
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (189108 => 189109)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-08-28 18:37:50 UTC (rev 189109)
@@ -5873,7 +5873,11 @@
 
     m_isShowingNavigationGestureSnapshot = true;
     m_pageClient.navigationGestureDidBegin();
-    m_loaderClient->navigationGestureDidBegin(*this);
+
+    if (m_navigationClient)
+        m_navigationClient->didBeginNavigationGesture(*this);
+    else
+        m_loaderClient->navigationGestureDidBegin(*this);
 }
 
 void WebPageProxy::navigationGestureWillEnd(bool willNavigate, WebBackForwardListItem& item)
@@ -5881,7 +5885,11 @@
     PageClientProtector protector(m_pageClient);
 
     m_pageClient.navigationGestureWillEnd(willNavigate, item);
-    m_loaderClient->navigationGestureWillEnd(*this, willNavigate, item);
+
+    if (m_navigationClient)
+        m_navigationClient->willEndNavigationGesture(*this, willNavigate, item);
+    else
+        m_loaderClient->navigationGestureWillEnd(*this, willNavigate, item);
 }
 
 void WebPageProxy::navigationGestureDidEnd(bool willNavigate, WebBackForwardListItem& item)
@@ -5889,7 +5897,10 @@
     PageClientProtector protector(m_pageClient);
 
     m_pageClient.navigationGestureDidEnd(willNavigate, item);
-    m_loaderClient->navigationGestureDidEnd(*this, willNavigate, item);
+    if (m_navigationClient)
+        m_navigationClient->didEndNavigationGesture(*this, willNavigate, item);
+    else
+        m_loaderClient->navigationGestureDidEnd(*this, willNavigate, item);
 }
 
 void WebPageProxy::navigationGestureDidEnd()

Modified: trunk/Tools/ChangeLog (189108 => 189109)


--- trunk/Tools/ChangeLog	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Tools/ChangeLog	2015-08-28 18:37:50 UTC (rev 189109)
@@ -1,3 +1,16 @@
+2015-08-28  Tim Horton  <[email protected]>
+
+        Add navigation gesture callbacks to WKPageNavigationClient
+        https://bugs.webkit.org/show_bug.cgi?id=148568
+        <rdar://problem/22371346>
+
+        Reviewed by Anders Carlsson.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::createOtherPage):
+        (WTR::TestController::createWebViewWithOptions):
+        Add some zeroes.
+
 2015-08-28  Alexey Proskuryakov  <[email protected]>
 
         [Mac] kill-old-processes should kill more processes

Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (189108 => 189109)


--- trunk/Tools/WebKitTestRunner/TestController.cpp	2015-08-28 18:35:48 UTC (rev 189108)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp	2015-08-28 18:37:50 UTC (rev 189109)
@@ -291,6 +291,9 @@
         didReceiveAuthenticationChallenge,
         processDidCrash,
         copyWebCryptoMasterKey,
+        0, // didBeginNavigationGesture
+        0, // willEndNavigationGesture
+        0, // didEndNavigationGesture
     };
     WKPageSetPageNavigationClient(newPage, &pageNavigationClient.base);
 
@@ -532,6 +535,9 @@
         didReceiveAuthenticationChallenge,
         processDidCrash,
         copyWebCryptoMasterKey,
+        0, // didBeginNavigationGesture
+        0, // willEndNavigationGesture
+        0, // didEndNavigationGesture
     };
     WKPageSetPageNavigationClient(m_mainWebView->page(), &pageNavigationClient.base);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to