WebKit Bugzilla
Attachment 341826 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-20180601214202.patch (text/plain), 7.40 KB, created by
Jeremy Jones
on 2018-06-01 21:42:03 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Jeremy Jones
Created:
2018-06-01 21:42:03 PDT
Size:
7.40 KB
patch
obsolete
>Subversion Revision: 231991 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index ef77cb83859a3bc9b332867e0a88dea75276f71a..71a3220ee84071908b874bf1fc1d3308f95e33a1 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2018-06-01 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!). >+ >+ Test: media/ios/media-fullscreen-user-gesture-after-return-to-inline.html >+ >+ Restore fullscreen user gesture restriction after exiting fullscreen. >+ This prevents the page from entering fullsreen again after the user >+ has exited fullscreen. >+ >+ * html/HTMLMediaElement.cpp: >+ (WebCore::HTMLMediaElement::exitFullscreen): >+ > 2018-05-18 Jer Noble <jer.noble@apple.com> > > Complete fix for enabling modern EME by default >diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp >index 6c6ee240fafa673021a273b4afcca8917bb9eff7..347aa40c7a3a50b2e47df03bbbc109bd4ef5b122 100644 >--- a/Source/WebCore/html/HTMLMediaElement.cpp >+++ b/Source/WebCore/html/HTMLMediaElement.cpp >@@ -5912,6 +5912,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 d872f0675d36a689129dc0937053e678a0edaab9..8c0ac437a6e26165bbce30976b0da34d1f9354a9 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2018-06-01 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!). >+ >+ * media/ios/media-fullscreen-user-gesture-after-return-to-inline-expected.txt: Added. >+ * media/ios/media-fullscreen-user-gesture-after-return-to-inline.html: Added. >+ * media/media-fullscreen-pause-inline-expected.txt: Updated. >+ * media/media-fullscreen-pause-inline.html: Remove user gesture requirement after fullscreen. >+ > 2018-05-18 Youenn Fablet <youenn@apple.com> > > NetworkLoadChecker should cancel its content extension retrieval task when being destroyed >diff --git a/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline-expected.txt b/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..197cfa9f02af15a23a7c286dbc401eaba5ceeaa4 >--- /dev/null >+++ b/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline-expected.txt >@@ -0,0 +1,15 @@ >+ >+RUN(internals.settings.setAllowsInlineMediaPlayback(false)) >+RUN(internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false)) >+RUN(internals.settings.setVideoPlaybackRequiresUserGesture(true);) >+RUN(internals.settings.setAudioPlaybackRequiresUserGesture(true);) >+RUN(internals.setMediaElementRestrictions(video, "RequireUserGestureForFullscreen")) >+RUN(video.src = "../content/test.mp4") >+EVENT(canplaythrough) >+EVENT(webkitbeginfullscreen) >+RUN(video.webkitExitFullscreen()) >+EVENT(pause) >+RUN(shouldReject(video.play())) >+Promise rejected correctly OK >+END OF TEST >+ >diff --git a/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline.html b/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0a0de63564de625173541bf26797b0d442cb9c5e >--- /dev/null >+++ b/LayoutTests/media/ios/media-fullscreen-user-gesture-after-return-to-inline.html >@@ -0,0 +1,71 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>media-fullscreen-return-to-inline</title> >+ >+ <script src="../video-test.js"></script> >+ <script src="../media-file.js"></script> >+ >+ <script> >+ >+ function getUIScript() { >+ return ` >+ (function() { >+ uiController.singleTapAtPoint(50, 50, function() { >+ uiController.uiScriptComplete("Done"); >+ }); >+ })();`; >+ } >+ >+ var mouseDownAction = null >+ >+ function doMouseDown() { >+ if (mouseDownAction) >+ mouseDownAction(); >+ mouseDownAction = null; >+ } >+ >+ function runWithUserInteraction(fn) { >+ mouseDownAction = fn; >+ if (window.testRunner && testRunner.runUIScript) >+ testRunner.runUIScript(getUIScript(), function(result) {}); >+ } >+ >+ function go() { >+ findMediaElement(); >+ run('internals.settings.setAllowsInlineMediaPlayback(false)'); >+ run('internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false)'); >+ run('internals.settings.setVideoPlaybackRequiresUserGesture(true);'); >+ run('internals.settings.setAudioPlaybackRequiresUserGesture(true);'); >+ run('internals.setMediaElementRestrictions(video, "RequireUserGestureForFullscreen")'); >+ run('video.src = "../content/test.mp4"'); >+ waitForEventOnce('canplaythrough', canplaythrough); >+ } >+ >+ function canplaythrough() { >+ runWithUserInteraction(function(){ video.play(); }); >+ waitForEventOnce('webkitbeginfullscreen', beginfullscreenExpected); >+ } >+ >+ function beginfullscreenExpected() { >+ run('video.webkitExitFullscreen()'); >+ waitForEventOnce('pause', pause); >+ } >+ >+ function pause() { >+ run('shouldReject(video.play())'); >+ waitForEventOnce('webkitbeginfullscreen', beginfullscreenUnexpected); >+ endTestLater(); >+ } >+ >+ function beginfullscreenUnexpected() { >+ failTest('Should not allow fullscreen second time without user gesture.'); >+ } >+ </script> >+ >+</head> >+ >+<body onload="go()" onmousedown="doMouseDown()"> >+ <video controls></video> >+</body> >+</html> >\ No newline at end of file >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) > } >
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
Flags:
ews-watchlist
:
commit-queue-
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