Enable external playback for video in element fullscreen.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Nov 2018 00:49:50 +0000 (00:49 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 17 Nov 2018 00:49:50 +0000 (00:49 +0000)
commit0da87f8bb3a78dc7268c79b6d88bdf5504f12810
treeae1dfb185016d987f8ebab1b845d55558704eb79
parent923aeb3d61e6c8839e7efcbc6239cc06b6265b48
Enable external playback for video in element fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=190359
rdar://problem/42560085

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-11-16
Reviewed by Jer Noble.

No new tests because we don't have a good way to test external playback.

Any video that might be auto-pipped from element fullscreen should also enable external playback for video out.
PiP and external playback are mutually exclusive. Instead of preventing PiP when external playback is active,
allow PiP, but disable external playback while PiP is active.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setVideoFullscreenStandby):
(WebCore::MediaPlayer::videoFullscreenStandby const):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerVideoFullscreenStandby const):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenStandby):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenStandby):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/html/HTMLMediaElement.h
Source/WebCore/html/MediaElementSession.cpp
Source/WebCore/platform/graphics/MediaPlayer.cpp
Source/WebCore/platform/graphics/MediaPlayer.h
Source/WebCore/platform/graphics/MediaPlayerPrivate.h
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm