haikuwebkit/LayoutTests/media/restricted-audio-playback-w...

13 lines
552 B
Plaintext
Raw Permalink Normal View History

Add experimental setting to allow document gesture interaction to fulfill media playback gesture requirement https://bugs.webkit.org/show_bug.cgi?id=172131 Reviewed by Eric Carlson. Source/WebCore: Test: media/restricted-audio-playback-with-document-gesture.html Move all calls to ScriptController::processingUserGestureForMedia() to the new Document equivalent. In Document, if the new setting is enabled, return true from processingUserGestureForMedia() if the top-level document has had a user gesture interaction. * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::processingUserGestureForMedia): * Modules/mediastream/MediaStream.h: * Modules/webaudio/AudioContext.cpp: (WebCore::AudioContext::processingUserGestureForMedia): (WebCore::AudioContext::willBeginPlayback): (WebCore::AudioContext::willPausePlayback): * Modules/webaudio/AudioContext.h: * dom/Document.cpp: (WebCore::Document::processingUserGestureForMedia): * dom/Document.h: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::load): (WebCore::HTMLMediaElement::audioTrackEnabledChanged): (WebCore::HTMLMediaElement::seekWithTolerance): (WebCore::HTMLMediaElement::play): (WebCore::HTMLMediaElement::playInternal): (WebCore::HTMLMediaElement::pause): (WebCore::HTMLMediaElement::pauseInternal): (WebCore::HTMLMediaElement::setMuted): (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): (WebCore::HTMLMediaElement::processingUserGestureForMedia): * html/HTMLMediaElement.h: * html/MediaElementSession.cpp: (WebCore::MediaElementSession::playbackPermitted): (WebCore::MediaElementSession::dataLoadingPermitted): (WebCore::MediaElementSession::fullscreenPermitted): (WebCore::MediaElementSession::canShowControlsManager): (WebCore::MediaElementSession::showPlaybackTargetPicker): * page/Settings.in: * platform/audio/PlatformMediaSession.h: Source/WebKit/mac: * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaUserGestureInheritsFromDocument]): (-[WebPreferences setMediaUserGestureInheritsFromDocument:]): * WebView/WebPreferencesPrivate.h: Source/WebKit2: * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaUserGestureInheritsFromDocument): (WKPreferencesGetMediaUserGestureInheritsFromDocument): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): LayoutTests: * media/restricted-audio-playback-with-document-gesture-expected.txt: Added. * media/restricted-audio-playback-with-document-gesture.html: Added. Canonical link: https://commits.webkit.org/189063@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216886 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-05-15 22:46:13 +00:00
Test that, when RequireUserGestureForAudioRateChange is set along with MediaUserGestureInheritsForDocument, a user gesture in the document will allow future media playback requests to succeed.
RUN(internals.setMediaElementRestrictions(mediaElement, "RequireUserGestureForAudioRateChange"))
RUN(internals.settings.setMediaUserGestureInheritsFromDocument(true))
Running with keyDown.
RUN(mediaElement.src = findMediaFile('audio', 'content/test'))
EVENT(canplaythrough)
RUN(mediaElement.play())
EXPECTED (mediaElement.paused == 'false') OK
END OF TEST