Title: [177612] trunk/Source/WebKit2
Revision
177612
Author
[email protected]
Date
2014-12-19 17:11:44 -0800 (Fri, 19 Dec 2014)

Log Message

[iOS] Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
https://bugs.webkit.org/show_bug.cgi?id=139835
<rdar://problem/19312042>

Reviewed by Anders Carlsson.

Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
so that they can be implemented in MobileSafari.

* UIProcess/API/APIUIClient.h:
(API::UIClient::didEnterFullscreen):
(API::UIClient::didExitFullscreen):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didEnterFullscreen):
(WebKit::UIDelegate::UIClient::didExitFullscreen):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (177611 => 177612)


--- trunk/Source/WebKit2/ChangeLog	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/ChangeLog	2014-12-20 01:11:44 UTC (rev 177612)
@@ -1,3 +1,31 @@
+2014-12-19  Chris Dumez  <[email protected]>
+
+        [iOS] Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
+        https://bugs.webkit.org/show_bug.cgi?id=139835
+        <rdar://problem/19312042>
+
+        Reviewed by Anders Carlsson.
+
+        Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
+        so that they can be implemented in MobileSafari.
+
+        * UIProcess/API/APIUIClient.h:
+        (API::UIClient::didEnterFullscreen):
+        (API::UIClient::didExitFullscreen):
+        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
+        * UIProcess/Cocoa/UIDelegate.h:
+        * UIProcess/Cocoa/UIDelegate.mm:
+        (WebKit::UIDelegate::setDelegate):
+        (WebKit::UIDelegate::UIClient::didEnterFullscreen):
+        (WebKit::UIDelegate::UIClient::didExitFullscreen):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didEnterFullscreen):
+        (WebKit::WebPageProxy::didExitFullscreen):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
+        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
+        (WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):
+
 2014-12-19  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: Inspector does not reopen correctly after Inspector Process crashes

Modified: trunk/Source/WebKit2/UIProcess/API/APIUIClient.h (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/API/APIUIClient.h	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/API/APIUIClient.h	2014-12-20 01:11:44 UTC (rev 177612)
@@ -72,6 +72,8 @@
     virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) { return nullptr; }
     virtual void showPage(WebKit::WebPageProxy*) { }
     virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) { }
+    virtual void didEnterFullscreen(WebKit::WebPageProxy*) { }
+    virtual void didExitFullscreen(WebKit::WebPageProxy*) { }
     virtual void close(WebKit::WebPageProxy*) { }
 
     virtual void takeFocus(WebKit::WebPageProxy*, WKFocusDirection) { }

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h	2014-12-20 01:11:44 UTC (rev 177612)
@@ -46,6 +46,8 @@
 
 - (void)_webViewClose:(WKWebView *)webView;
 - (void)_webViewFullscreenMayReturnToInline:(WKWebView *)webView;
+- (void)_webViewDidEnterFullscreen:(WKWebView *)webView WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+- (void)_webViewDidExitFullscreen:(WKWebView *)webView WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
 
 #if TARGET_OS_IPHONE
 - (NSArray *)_webView:(WKWebView *)webView actionsForElement:(_WKActivatedElementInfo *)element defaultActions:(NSArray *)defaultActions;

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h	2014-12-20 01:11:44 UTC (rev 177612)
@@ -61,6 +61,8 @@
         virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override;
         virtual void close(WebKit::WebPageProxy*) override;
         virtual void fullscreenMayReturnToInline(WebKit::WebPageProxy*) override;
+        virtual void didEnterFullscreen(WebKit::WebPageProxy*) override;
+        virtual void didExitFullscreen(WebKit::WebPageProxy*) override;
         virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override;
         virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) override;
         virtual void runJavaScriptPrompt(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (const WTF::String&)> completionHandler) override;
@@ -88,6 +90,8 @@
         bool webViewPrintFrame : 1;
         bool webViewClose : 1;
         bool webViewFullscreenMayReturnToInline : 1;
+        bool webViewDidEnterFullscreen : 1;
+        bool webViewDidExitFullscreen : 1;
 #if PLATFORM(IOS)
         bool webViewActionsForElementDefaultActions : 1;
         bool webViewDidNotHandleTapAsClickAtPoint : 1;

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm	2014-12-20 01:11:44 UTC (rev 177612)
@@ -73,6 +73,8 @@
     m_delegateMethods.webViewPrintFrame = [delegate respondsToSelector:@selector(_webView:printFrame:)];
     m_delegateMethods.webViewClose = [delegate respondsToSelector:@selector(_webViewClose:)];
     m_delegateMethods.webViewFullscreenMayReturnToInline = [delegate respondsToSelector:@selector(_webViewFullscreenMayReturnToInline:)];
+    m_delegateMethods.webViewDidEnterFullscreen = [delegate respondsToSelector:@selector(_webViewDidEnterFullscreen:)];
+    m_delegateMethods.webViewDidExitFullscreen = [delegate respondsToSelector:@selector(_webViewDidExitFullscreen:)];
 #if PLATFORM(IOS)
     m_delegateMethods.webViewActionsForElementDefaultActions = [delegate respondsToSelector:@selector(_webView:actionsForElement:defaultActions:)];
     m_delegateMethods.webViewDidNotHandleTapAsClickAtPoint = [delegate respondsToSelector:@selector(_webView:didNotHandleTapAsClickAtPoint:)];
@@ -253,6 +255,30 @@
     
     [(id <WKUIDelegatePrivate>)delegate _webViewFullscreenMayReturnToInline:m_uiDelegate.m_webView];
 }
+
+void UIDelegate::UIClient::didEnterFullscreen(WebKit::WebPageProxy*)
+{
+    if (!m_uiDelegate.m_delegateMethods.webViewDidEnterFullscreen)
+        return;
+
+    auto delegate = m_uiDelegate.m_delegate.get();
+    if (!delegate)
+        return;
+
+    [(id <WKUIDelegatePrivate>)delegate _webViewDidEnterFullscreen:m_uiDelegate.m_webView];
+}
+
+void UIDelegate::UIClient::didExitFullscreen(WebKit::WebPageProxy*)
+{
+    if (!m_uiDelegate.m_delegateMethods.webViewDidExitFullscreen)
+        return;
+
+    auto delegate = m_uiDelegate.m_delegate.get();
+    if (!delegate)
+        return;
+
+    [(id <WKUIDelegatePrivate>)delegate _webViewDidExitFullscreen:m_uiDelegate.m_webView];
+}
     
 #if PLATFORM(IOS)
 RetainPtr<NSArray> UIDelegate::UIClient::actionsForElement(_WKActivatedElementInfo *elementInfo, RetainPtr<NSArray> defaultActions)

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2014-12-20 01:11:44 UTC (rev 177612)
@@ -3099,6 +3099,16 @@
     m_uiClient->fullscreenMayReturnToInline(this);
 }
 
+void WebPageProxy::didEnterFullscreen()
+{
+    m_uiClient->didEnterFullscreen(this);
+}
+
+void WebPageProxy::didExitFullscreen()
+{
+    m_uiClient->didExitFullscreen(this);
+}
+
 void WebPageProxy::closePage(bool stopResponsivenessTimer)
 {
     if (stopResponsivenessTimer)

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2014-12-20 01:11:44 UTC (rev 177612)
@@ -270,6 +270,8 @@
     void setAddsVisitedLinks(bool addsVisitedLinks) { m_addsVisitedLinks = addsVisitedLinks; }
 
     void fullscreenMayReturnToInline();
+    void didEnterFullscreen();
+    void didExitFullscreen();
 
 #if ENABLE(INSPECTOR)
     WebInspectorProxy* inspector();

Modified: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm (177611 => 177612)


--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm	2014-12-20 01:02:02 UTC (rev 177611)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm	2014-12-20 01:11:44 UTC (rev 177612)
@@ -141,6 +141,7 @@
 void WebVideoFullscreenManagerProxy::didExitFullscreen()
 {
     m_page->send(Messages::WebVideoFullscreenManager::DidExitFullscreen(), m_page->pageID());
+    m_page->didExitFullscreen();
 }
     
 void WebVideoFullscreenManagerProxy::didCleanupFullscreen()
@@ -158,6 +159,7 @@
 void WebVideoFullscreenManagerProxy::didEnterFullscreen()
 {
     m_page->send(Messages::WebVideoFullscreenManager::DidEnterFullscreen(), m_page->pageID());
+    m_page->didEnterFullscreen();
 }
 
 void WebVideoFullscreenManagerProxy::play()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to