WebKit Bugzilla
Attachment 340595 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-20180517192947.patch (text/plain), 11.72 KB, created by
Carlos Alberto Lopez Perez
on 2018-05-17 10:29:49 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Carlos Alberto Lopez Perez
Created:
2018-05-17 10:29:49 PDT
Size:
11.72 KB
patch
obsolete
>Subversion Revision: 231908 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 28926839018abefbf0120b3f684f1ba92cffc93f..c7cf60d34eaf4c35b619665144d99af170447a39 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-17 Jer Noble <jer.noble@apple.com> > > Turn Modern EME API on by default and remove it as an experimental feature >diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >index 59ccb40133b76531346e0a5358172ec3c0f91765..b0fe4315bad0bba924dbe10a19a81f1a384dd424 100644 >--- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >+++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp >@@ -321,4 +321,58 @@ 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(); >+ if (fullScreenManagerProxy) { >+ fullScreenManagerProxy->willEnterFullScreen(); >+ m_view.setFullScreen(true); >+ fullScreenManagerProxy->didEnterFullScreen(); >+ } >+} >+ >+void PageClientImpl::exitFullScreen() >+{ >+ if (!isFullScreen()) >+ return; >+ >+ WebFullScreenManagerProxy* fullScreenManagerProxy = m_view.page().fullScreenManager(); >+ if (fullScreenManagerProxy) { >+ fullScreenManagerProxy->willExitFullScreen(); >+ m_view.setFullScreen(false); >+ fullScreenManagerProxy->didExitFullScreen(); >+ } >+} >+ >+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 54252cec52ec74868cce2baabf756f6bc9964878..7067cb22c2514568f5aea87e84f570f8f3204f0f 100644 >--- a/Source/cmake/OptionsWPE.cmake >+++ b/Source/cmake/OptionsWPE.cmake >@@ -34,7 +34,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 bf2e7d35c148dc8046467d297b560e859f637350..6c2fd9e2e50e23edf62d4772d8241c58f9799efb 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-17 Valerie R Young <valerie@bocoup.com> > > test262/Runner.pm: look for jsc in path if cannot call webkit-build-directory >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 d4162ff53fcb583b2ddd0d19f641ec8fcdd8444a..95060157851b96de6ab125a8a8b441f628d54dd4 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-17 Antoine Quint <graouts@apple.com> > > [modern-media-controls] AirPlaySupport should be disabled by default >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 179b0f7f26c658a6a79f670a525f59a337354adf..f33b3ed22b1bce9e0795b64b27f99c53a13023de 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-16 Don Olmstead <don.olmstead@sony.com> > > [WinCairo] Update WinCairoRequirements
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