Title: [271341] trunk
- Revision
- 271341
- Author
- [email protected]
- Date
- 2021-01-08 19:11:05 -0800 (Fri, 08 Jan 2021)
Log Message
A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
https://bugs.webkit.org/show_bug.cgi?id=220466
Reviewed by Jer Noble.
Source/WebCore:
Fix a flaky layout test: media/media-fullscreen-inline.html
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitEnterFullscreen):
(WebCore::HTMLVideoElement::webkitExitFullscreen):
LayoutTests:
* media/media-fullscreen-inline-expected.txt:
* media/media-fullscreen.js:
(async beginfullscreen):
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (271340 => 271341)
--- trunk/LayoutTests/ChangeLog 2021-01-09 01:58:21 UTC (rev 271340)
+++ trunk/LayoutTests/ChangeLog 2021-01-09 03:11:05 UTC (rev 271341)
@@ -1,3 +1,14 @@
+2021-01-08 Peng Liu <[email protected]>
+
+ A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
+ https://bugs.webkit.org/show_bug.cgi?id=220466
+
+ Reviewed by Jer Noble.
+
+ * media/media-fullscreen-inline-expected.txt:
+ * media/media-fullscreen.js:
+ (async beginfullscreen):
+
2021-01-08 Brady Eidson <[email protected]>
BlobLoader lifetime cleanup.
Modified: trunk/LayoutTests/media/media-fullscreen-inline-expected.txt (271340 => 271341)
--- trunk/LayoutTests/media/media-fullscreen-inline-expected.txt 2021-01-09 01:58:21 UTC (rev 271340)
+++ trunk/LayoutTests/media/media-fullscreen-inline-expected.txt 2021-01-09 03:11:05 UTC (rev 271341)
@@ -30,7 +30,7 @@
* event handler triggered by user gesture
RUN(mediaElement.webkitEnterFullScreen())
EVENT(webkitfullscreenchange)
-EXPECTED (mediaElement.webkitDisplayingFullscreen == 'true') OK
+EXPECTED (internals.isChangingPresentationMode(mediaElement) == 'false') OK
RUN(mediaElement.webkitExitFullScreen())
EVENT(webkitfullscreenchange)
Modified: trunk/LayoutTests/media/media-fullscreen.js (271340 => 271341)
--- trunk/LayoutTests/media/media-fullscreen.js 2021-01-09 01:58:21 UTC (rev 271340)
+++ trunk/LayoutTests/media/media-fullscreen.js 2021-01-09 03:11:05 UTC (rev 271341)
@@ -40,7 +40,8 @@
async function beginfullscreen()
{
- await testExpectedEventually("mediaElement.webkitDisplayingFullscreen", true);
+ if (window.internals)
+ await testExpectedEventually("internals.isChangingPresentationMode(mediaElement)", false);
run("mediaElement.webkitExitFullScreen()");
}
Modified: trunk/Source/WebCore/ChangeLog (271340 => 271341)
--- trunk/Source/WebCore/ChangeLog 2021-01-09 01:58:21 UTC (rev 271340)
+++ trunk/Source/WebCore/ChangeLog 2021-01-09 03:11:05 UTC (rev 271341)
@@ -1,3 +1,16 @@
+2021-01-08 Peng Liu <[email protected]>
+
+ A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
+ https://bugs.webkit.org/show_bug.cgi?id=220466
+
+ Reviewed by Jer Noble.
+
+ Fix a flaky layout test: media/media-fullscreen-inline.html
+
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::webkitEnterFullscreen):
+ (WebCore::HTMLVideoElement::webkitExitFullscreen):
+
2021-01-08 Brady Eidson <[email protected]>
BlobLoader lifetime cleanup.
Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (271340 => 271341)
--- trunk/Source/WebCore/html/HTMLVideoElement.cpp 2021-01-09 01:58:21 UTC (rev 271340)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp 2021-01-09 03:11:05 UTC (rev 271341)
@@ -330,8 +330,8 @@
return { };
// Generate an exception if this isn't called in response to a user gesture, or if the
- // element does not support fullscreen.
- if (!mediaSession().fullscreenPermitted() || !supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenModeStandard))
+ // element does not support fullscreen, or the element is changing fullscreen mode.
+ if (!mediaSession().fullscreenPermitted() || !supportsFullscreen(HTMLMediaElementEnums::VideoFullscreenModeStandard) || isChangingVideoFullscreenMode())
return Exception { InvalidStateError };
enterFullscreen();
@@ -341,7 +341,7 @@
void HTMLVideoElement::webkitExitFullscreen()
{
ALWAYS_LOG(LOGIDENTIFIER);
- if (isFullscreen())
+ if (isFullscreen() && !isChangingVideoFullscreenMode())
exitFullscreen();
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes