WebKit Bugzilla
Attachment 340483 Details for
Bug 185676
: [WPE] Implement and enable FULLSCREEN_API
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185676-20180516124111.patch (text/plain), 11.64 KB, created by
Carlos Alberto Lopez Perez
on 2018-05-16 03:41:12 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Carlos Alberto Lopez Perez
Created:
2018-05-16 03:41:12 PDT
Size:
11.64 KB
patch
obsolete
>Subversion Revision: 231841 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index f2d6e6efc47eb0b5b11a5cc1f9c8129e19eaa39d..23e61448e9983eb413771d75971ecad9d2c38207 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,29 @@ >+2018-05-16 Carlos Alberto Lopez Perez <clopez@igalia.com> >+ >+ [WPE] Implement and enable FULLSCREEN_API >+ https://bugs.webkit.org/show_bug.cgi?id=185676 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Do the initial implementation of FULLSCREEN_API for WPE and >+ enable the CMake option by default. >+ >+ Most of the layout tests (55 of 58) are passing and the feature >+ seems to work fine on different websites that use it. >+ >+ * UIProcess/API/wpe/PageClientImpl.cpp: >+ (WebKit::PageClientImpl::fullScreenManagerProxyClient): >+ (WebKit::PageClientImpl::closeFullScreenManager): >+ (WebKit::PageClientImpl::isFullScreen): >+ (WebKit::PageClientImpl::enterFullScreen): >+ (WebKit::PageClientImpl::exitFullScreen): >+ (WebKit::PageClientImpl::beganEnterFullScreen): >+ (WebKit::PageClientImpl::beganExitFullScreen): >+ * UIProcess/API/wpe/PageClientImpl.h: >+ * UIProcess/API/wpe/WPEView.h: >+ (WKWPE::View::isFullScreen): >+ (WKWPE::View::setFullScreen): >+ > 2018-05-15 Yusuke Suzuki <utatane.tea@gmail.com> > > [JSC] Check TypeInfo first before calling getCallData when we would like to check whether given object is a function >diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >index 59ccb40133b76531346e0a5358172ec3c0f91765..ee310f8cf319331d935b7c502ff566ac5aabe488 100644 >--- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >+++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >@@ -321,4 +321,54 @@ WebCore::UserInterfaceLayoutDirection PageClientImpl::userInterfaceLayoutDirecti > return WebCore::UserInterfaceLayoutDirection::LTR; > } > >+#if ENABLE(FULLSCREEN_API) >+WebFullScreenManagerProxyClient& PageClientImpl::fullScreenManagerProxyClient() >+{ >+ return *this; >+} >+ >+void PageClientImpl::closeFullScreenManager() >+{ >+ notImplemented(); >+} >+ >+bool PageClientImpl::isFullScreen() >+{ >+ return m_view.isFullScreen(); >+} >+ >+void PageClientImpl::enterFullScreen() >+{ >+ if (isFullScreen()) >+ return; >+ >+ WebFullScreenManagerProxy* fullScreenManagerProxy = m_view.page().fullScreenManager(); >+ fullScreenManagerProxy->willEnterFullScreen(); >+ fullScreenManagerProxy->didEnterFullScreen(); >+ m_view.setFullScreen(true); >+} >+ >+void PageClientImpl::exitFullScreen() >+{ >+ if (!isFullScreen()) >+ return; >+ >+ WebFullScreenManagerProxy* fullScreenManagerProxy = m_view.page().fullScreenManager(); >+ fullScreenManagerProxy->willExitFullScreen(); >+ fullScreenManagerProxy->didExitFullScreen(); >+ m_view.setFullScreen(false); >+} >+ >+void PageClientImpl::beganEnterFullScreen(const WebCore::IntRect& /* initialFrame */, const WebCore::IntRect& /* finalFrame */) >+{ >+ notImplemented(); >+} >+ >+void PageClientImpl::beganExitFullScreen(const WebCore::IntRect& /* initialFrame */, const WebCore::IntRect& /* finalFrame */) >+{ >+ notImplemented(); >+} >+ >+#endif // ENABLE(FULLSCREEN_API) >+ > } // namespace WebKit >diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h >index 167e5656e2804aea29290de34712b16609b4cba7..a2ba6c4e9a1df9e93e84c4c71bbc6733af93221d 100644 >--- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h >+++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "PageClient.h" >+#include "WebFullScreenManagerProxy.h" > > namespace WKWPE { > class View; >@@ -35,7 +36,11 @@ namespace WebKit { > > class ScrollGestureController; > >-class PageClientImpl final : public PageClient { >+class PageClientImpl final : public PageClient >+#if ENABLE(FULLSCREEN_API) >+ , public WebFullScreenManagerProxyClient >+#endif >+{ > public: > PageClientImpl(WKWPE::View&); > virtual ~PageClientImpl(); >@@ -117,6 +122,17 @@ private: > > void didRestoreScrollPosition() override; > >+#if ENABLE(FULLSCREEN_API) >+ WebFullScreenManagerProxyClient& fullScreenManagerProxyClient() final; >+ >+ void closeFullScreenManager() override; >+ bool isFullScreen() override; >+ void enterFullScreen() override; >+ void exitFullScreen() override; >+ void beganEnterFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override; >+ void beganExitFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override; >+#endif >+ > WebCore::UserInterfaceLayoutDirection userInterfaceLayoutDirection() override; > > WKWPE::View& m_view; >diff --git a/Source/WebKit/UIProcess/API/wpe/WPEView.h b/Source/WebKit/UIProcess/API/wpe/WPEView.h >index a8ce83148973dd939c92f49155e1cbc1cc5137a0..2ad18fff742aea0178473c536b78ea1cc95014ea 100644 >--- a/Source/WebKit/UIProcess/API/wpe/WPEView.h >+++ b/Source/WebKit/UIProcess/API/wpe/WPEView.h >@@ -72,6 +72,11 @@ public: > > void close(); > >+#if ENABLE(FULLSCREEN_API) >+ bool isFullScreen() { return m_fullScreenModeActive; }; >+ void setFullScreen(bool fullScreenState) { m_fullScreenModeActive = fullScreenState; }; >+#endif >+ > private: > View(struct wpe_view_backend*, const API::PageConfiguration&); > >@@ -86,6 +91,10 @@ private: > > WebKit::CompositingManagerProxy m_compositingManagerProxy; > struct wpe_view_backend* m_backend; >+ >+#if ENABLE(FULLSCREEN_API) >+ bool m_fullScreenModeActive { false }; >+#endif > }; > > } // namespace WKWPE >diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake >index b42183c33988b363dfd49641f26ebd8e47bdfcef..18221ce96b5d8d41fdf6aa7f4655c7358c83744a 100644 >--- a/Source/cmake/OptionsWPE.cmake >+++ b/Source/cmake/OptionsWPE.cmake >@@ -32,7 +32,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC PUBLIC OFF) > # Changing these options is completely unsupported. > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASYNC_SCROLLING PRIVATE ON) >-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API PRIVATE OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PRIVATE OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index a043f4b68f9a905e82c0d70d14ff94ccb021e7d9..c8380d49d8f18939daa57bf923d15d5ed87fa4dd 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,13 @@ >+2018-05-16 Carlos Alberto Lopez Perez <clopez@igalia.com> >+ >+ [WPE] Implement and enable FULLSCREEN_API >+ https://bugs.webkit.org/show_bug.cgi?id=185676 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: >+ (testWebViewFullScreen): >+ > 2018-05-15 Ryan Haddad <ryanhaddad@apple.com> > > Unreviewed, rolling out r231763. >diff --git a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp >index 414a81c607bb1e3820f357ece07fbff97f7aa4f9..fe12ecb976ed607d2eff8d3c035b1b2722f28019 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp >+++ b/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp >@@ -441,7 +441,9 @@ public: > #if ENABLE(FULLSCREEN_API) > static void testWebViewFullScreen(FullScreenClientTest* test, gconstpointer) > { >+#if PLATFORM(GTK) > test->showInWindowAndWaitUntilMapped(); >+#endif > test->loadHtml("<html><body>FullScreen test</body></html>", 0); > test->waitUntilLoadFinished(); > test->requestFullScreenAndWaitUntilEnteredFullScreen(); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index a22f5e7f08e7a27ef5c220713030c68a53615f1c..7513c304e2656a9dbd46670c07b005879d610c5d 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2018-05-16 Carlos Alberto Lopez Perez <clopez@igalia.com> >+ >+ [WPE] Implement and enable FULLSCREEN_API >+ https://bugs.webkit.org/show_bug.cgi?id=185676 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Enable all the 58 fullscreen related tests. >+ Are all passing but 3. >+ >+ * platform/wpe/TestExpectations: >+ * platform/wpe/fullscreen/full-screen-placeholder-expected.txt: Added. Copied baseline from WebKitGTK+ port. >+ > 2018-05-16 Antoine Quint <graouts@apple.com> > > REGRESSION (r230574): Interrupted hardware transitions don't behave correctly >diff --git a/LayoutTests/platform/wpe/TestExpectations b/LayoutTests/platform/wpe/TestExpectations >index eb1cfdf8db2ba42ed8f15bc46d21c5eae19d1bea..ad0a931441b61cb6da9784ab257f520ac1e01f6c 100644 >--- a/LayoutTests/platform/wpe/TestExpectations >+++ b/LayoutTests/platform/wpe/TestExpectations >@@ -2,7 +2,6 @@ Bug(WPE) compositing/ [ Skip ] > Bug(WPE) legacy-animation-engine/compositing/ [ Skip ] > Bug(WPE) editing/ [ Skip ] > Bug(WPE) fonts/ [ Skip ] >-Bug(WPE) fullscreen/ [ Skip ] > Bug(WPE) gamepad/ [ Skip ] > Bug(WPE) inspector/ [ Skip ] > Bug(WPE) mathml/ [ Skip ] >@@ -1015,7 +1014,6 @@ http/tests/contentfiltering [ Skip ] > http/tests/download [ Skip ] > http/tests/fileapi [ Skip ] > http/tests/frame-throttling [ Skip ] >-http/tests/fullscreen [ Skip ] > http/tests/globalhistory [ Skip ] > http/tests/history [ Skip ] > http/tests/inspector [ Skip ] >@@ -1168,3 +1166,8 @@ webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.4_Com > webkit.org/b/111647 [ Debug ] sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T2.html [ Slow ] > webkit.org/b/111647 [ Debug ] sputnik/Conformance/13_Function_Definition/S13_A4_T4.html [ Slow ] > webkit.org/b/111647 [ Debug ] sputnik/Unicode/Unicode_218/S7.6_A5.3_T2.html [ Slow ] >+ >+# This 3 fullscreen tests are still not passing. >+webkit.org/b/185676 fullscreen/requestFullscreen-escape-key.html [ Failure ] >+webkit.org/b/185676 fullscreen/video-controls-rtl.html [ Failure ] >+webkit.org/b/185676 fullscreen/full-screen-plugin.html [ Timeout ] >diff --git a/LayoutTests/platform/wpe/fullscreen/full-screen-placeholder-expected.txt b/LayoutTests/platform/wpe/fullscreen/full-screen-placeholder-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b4c5ecb750eda331c6d66506d05f8c0fd68f4474 >--- /dev/null >+++ b/LayoutTests/platform/wpe/fullscreen/full-screen-placeholder-expected.txt >@@ -0,0 +1,17 @@ >+This layout test checks that the offset positions of the blue and green divs does not change when the red div enters full-screen mode. Press go full-screen to begin. >+One >+Two >+EVENT(webkitfullscreenchange) >+EXPECTED (document.webkitCurrentFullScreenElement == '[object HTMLDivElement]') OK >+EXPECTED (one.offsetLeft == '68') OK >+EXPECTED (one.offsetTop == '57') OK >+EXPECTED (two.offsetLeft == '8') OK >+EXPECTED (two.offsetTop == '117') OK >+EVENT(webkitfullscreenchange) >+EXPECTED (document.webkitCurrentFullScreenElement == 'null') OK >+EXPECTED (one.offsetLeft == '68') OK >+EXPECTED (one.offsetTop == '57') OK >+EXPECTED (two.offsetLeft == '8') OK >+EXPECTED (two.offsetTop == '117') OK >+END OF TEST >+ >diff --git a/ChangeLog b/ChangeLog >index 3067fc2bebd438c031cdd261573dfb7df084d688..8d29ea32f40e545f341c44fee732a862ab6c4ab6 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,15 @@ >+2018-05-16 Carlos Alberto Lopez Perez <clopez@igalia.com> >+ >+ [WPE] Implement and enable FULLSCREEN_API >+ https://bugs.webkit.org/show_bug.cgi?id=185676 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Remove the CMake option to disable this option for WPE. >+ This feature gets enabled now via Source/cmake/WebKitFeatures.cmake >+ >+ * Source/cmake/OptionsWPE.cmake: >+ > 2018-05-14 Zan Dobersek <zdobersek@igalia.com> > > [GTK] REGRESSION(r231170) Build broken with Clang 5.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185676
:
340483
|
340485
|
340538
|
340595