WebKit Bugzilla
Attachment 340229 Details for
Bug 185214
: Dismissed video keeps playing full screen when switching back to safari
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185214-20180511155029.patch (text/plain), 6.44 KB, created by
Jeremy Jones
on 2018-05-11 15:50:30 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Jeremy Jones
Created:
2018-05-11 15:50:30 PDT
Size:
6.44 KB
patch
obsolete
>Subversion Revision: 231157 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 94ad2070a4ea348dc42026f18b777d87595753d6..000c3c9250f36618f4e1f61ebf70654fbb609275 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2018-05-09 Jeremy Jones <jeremyj@apple.com> >+ >+ Dismissed video keeps playing full screen when switching back to safari >+ https://bugs.webkit.org/show_bug.cgi?id=185214 >+ rdar://problem/39623312 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Resture fullscreen user gesture restriction after exiting fullscreen. >+ This prevents the page from entering fullsreen again after the user >+ has exited fullscreen. >+ >+ Test: media/media-fullscreen-user-gesture-after-return-to-inline.html >+ >+ * html/HTMLMediaElement.cpp: >+ (WebCore::HTMLMediaElement::exitFullscreen): >+ > 2018-04-30 Michael Catanzaro <mcatanzaro@igalia.com> > > [GTK] Webkit should spoof as Safari on a Mac when on Chase.com >diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp >index 521fca2e33ebfcbda781e313813fb9d241de1ca5..4057ecf2dd3b638df0ce9060e0da20db5715b658 100644 >--- a/Source/WebCore/html/HTMLMediaElement.cpp >+++ b/Source/WebCore/html/HTMLMediaElement.cpp >@@ -5885,6 +5885,11 @@ void HTMLMediaElement::exitFullscreen() > { > INFO_LOG(LOGIDENTIFIER); > >+#if PLATFORM(IOS) >+ if (document().settings().videoPlaybackRequiresUserGesture() || document().settings().audioPlaybackRequiresUserGesture()) >+#endif >+ m_mediaSession->addBehaviorRestriction(MediaElementSession::RequireUserGestureForFullscreen); >+ > m_waitingToEnterFullscreen = false; > > #if ENABLE(FULLSCREEN_API) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7534cf5d270ee016dc7368256835e16b67ca1c06..c7a5b2648c8b02cf6742e7c5676b98dfd9f87b39 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,15 @@ >+2018-05-09 Jeremy Jones <jeremyj@apple.com> >+ >+ Dismissed video keeps playing full screen when switching back to safari >+ https://bugs.webkit.org/show_bug.cgi?id=185214 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * media/media-fullscreen-pause-inline-expected.txt: >+ * media/media-fullscreen-pause-inline.html: Remove user gesture requirement after fullscreen. >+ * media/media-fullscreen-user-gesture-after-return-to-inline-expected.txt: Added. >+ * media/media-fullscreen-user-gesture-after-return-to-inline.html: Added. >+ > 2018-04-28 Simon Fraser <simon.fraser@apple.com> > > Fix color-filter to apply to SVG colors >diff --git a/LayoutTests/media/media-fullscreen-pause-inline-expected.txt b/LayoutTests/media/media-fullscreen-pause-inline-expected.txt >index 3e2ca6deb1ccfb165bcd6ce4572491f26597b922..3ac972d7b1c20bf3e4f41bbae9db663eda08733e 100644 >--- a/LayoutTests/media/media-fullscreen-pause-inline-expected.txt >+++ b/LayoutTests/media/media-fullscreen-pause-inline-expected.txt >@@ -12,6 +12,7 @@ EXPECTED (video.paused == 'false') OK > RUN(video.pause()) > EVENT(pause) > EXPECTED (video.paused == 'true') OK >+RUN(internals.setMediaElementRestrictions(video, "NoRestrictions")) > RUN(video.play().then(playingAgain)) > EXPECTED (video.webkitDisplayingFullscreen == 'true') OK > END OF TEST >diff --git a/LayoutTests/media/media-fullscreen-pause-inline.html b/LayoutTests/media/media-fullscreen-pause-inline.html >index 858e8f17e884dde31e727914f9a5f4b7fa7ba00d..df7bfdec58bacba2a76de470fe24d50483d6c3e2 100644 >--- a/LayoutTests/media/media-fullscreen-pause-inline.html >+++ b/LayoutTests/media/media-fullscreen-pause-inline.html >@@ -35,6 +35,7 @@ > function paused() > { > testExpected('video.paused', true); >+ run('internals.setMediaElementRestrictions(video, "NoRestrictions")'); > setTimeout(function(){ run('video.play().then(playingAgain)');}, 0) > } > >diff --git a/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline-expected.txt b/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a2058f8594b35b2700e7a5b65ae4c54f5a6e0009 >--- /dev/null >+++ b/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline-expected.txt >@@ -0,0 +1,14 @@ >+ >+RUN(internals.settings.setAllowsInlineMediaPlayback(false)) >+RUN(internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false)) >+RUN(internals.setMediaElementRestrictions(video, "RequireUserGestureForFullscreen")) >+RUN(video.src = findMediaFile("video", "content/test")) >+EVENT(canplaythrough) >+RUN(video.play()) >+EVENT(webkitfullscreenchange) >+RUN(video.webkitExitFullscreen()) >+EVENT(pause) >+RUN(shouldReject(video.play())) >+Promise rejected correctly OK >+END OF TEST >+ >diff --git a/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline.html b/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc23bfe7d10bf78bdb244dc4bb9c87751b67eb61 >--- /dev/null >+++ b/LayoutTests/media/media-fullscreen-user-gesture-after-return-to-inline.html >@@ -0,0 +1,50 @@ >+<!DOCTYPE html><!-- webkit-test-runner [ enableModernMediaControls=false ] --> >+<html> >+<head> >+ <title>media-fullscreen-return-to-inline</title> >+ >+ <script src="video-test.js"></script> >+ <script src="media-file.js"></script> >+ >+ <script> >+ function go() >+ { >+ findMediaElement(); >+ run('internals.settings.setAllowsInlineMediaPlayback(false)'); >+ run('internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false)'); >+ run('internals.setMediaElementRestrictions(video, "RequireUserGestureForFullscreen")'); >+ run('video.src = findMediaFile("video", "content/test")'); >+ waitForEventOnce('canplaythrough', canplaythrough); >+ } >+ >+ function canplaythrough() >+ { >+ runWithKeyDown('video.play()'); >+ waitForEventOnce('webkitfullscreenchange', beginfullscreen1); >+ } >+ >+ function beginfullscreen1() >+ { >+ run('video.webkitExitFullscreen()'); >+ waitForEventOnce('pause', pause); >+ } >+ >+ function pause() >+ { >+ run('shouldReject(video.play())'); >+ waitForEventOnce('webkitfullscreenchange', beginfullscreen2); >+ endTestLater(); >+ } >+ >+ function beginfullscreen2() >+ { >+ failTest('Should not allow fullscreen second time without user gesture.'); >+ } >+ </script> >+ >+</head> >+ >+<body onload="go()"> >+ <video controls></video> >+</body> >+</html>
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 185214
:
339333
|
339345
|
339356
|
339420
|
339427
|
339438
|
339460
|
339747
|
339752
|
339759
|
339976
|
339988
|
339992
|
340002
|
340012
|
340013
|
340037
|
340195
|
340229
|
340236
|
341277
|
341284
|
341285
|
341287
|
341292
|
341826
|
341833
|
341843