| Index: Source/core/html/HTMLMediaElement.cpp
|
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp
|
| index 63eda2639e62a01ca9a5fd97b8bdfc5a2bd153f8..a2926deb6a3b0153ff297bdc134593e948f116c0 100644
|
| --- a/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/Source/core/html/HTMLMediaElement.cpp
|
| @@ -65,6 +65,7 @@
|
| #include "core/layout/compositing/DeprecatedPaintLayerCompositor.h"
|
| #include "core/loader/FrameLoader.h"
|
| #include "core/loader/FrameLoaderClient.h"
|
| +#include "core/page/ChromeClient.h"
|
| #include "platform/ContentType.h"
|
| #include "platform/Logging.h"
|
| #include "platform/MIMETypeFromURL.h"
|
| @@ -361,6 +362,7 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document& docum
|
| , m_isFinalizing(false)
|
| , m_initialPlayWithoutUserGestures(false)
|
| , m_autoplayMediaCounted(false)
|
| + , m_inOverlayFullscreenVideo(false)
|
| , m_audioTracks(AudioTrackList::create(*this))
|
| , m_videoTracks(VideoTrackList::create(*this))
|
| , m_textTracks(nullptr)
|
| @@ -1049,8 +1051,10 @@ void HTMLMediaElement::startPlayerLoad()
|
|
|
| m_webMediaPlayer->load(loadType(), kurl, corsMode());
|
|
|
| - if (isFullscreen())
|
| - m_webMediaPlayer->enterFullscreen();
|
| + if (isFullscreen()) {
|
| + // This handles any transition to or from fullscreen overlay mode.
|
| + document().frame()->chromeClient().enterFullScreenForElement(this);
|
| + }
|
| }
|
|
|
| void HTMLMediaElement::setPlayerPreload()
|
| @@ -3199,7 +3203,9 @@ void HTMLMediaElement::didBecomeFullscreenElement()
|
| {
|
| if (mediaControls())
|
| mediaControls()->enteredFullscreen();
|
| - if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && isHTMLVideoElement())
|
| + // Cache this in case the player is destroyed before leaving fullscreen.
|
| + m_inOverlayFullscreenVideo = usesOverlayFullscreenVideo();
|
| + if (m_inOverlayFullscreenVideo)
|
| document().layoutView()->compositor()->setNeedsCompositingUpdate(CompositingUpdateRebuildTree);
|
| }
|
|
|
| @@ -3207,8 +3213,9 @@ void HTMLMediaElement::willStopBeingFullscreenElement()
|
| {
|
| if (mediaControls())
|
| mediaControls()->exitedFullscreen();
|
| - if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && isHTMLVideoElement())
|
| + if (m_inOverlayFullscreenVideo)
|
| document().layoutView()->compositor()->setNeedsCompositingUpdate(CompositingUpdateRebuildTree);
|
| + m_inOverlayFullscreenVideo = false;
|
| }
|
|
|
| WebLayer* HTMLMediaElement::platformLayer() const
|
|
|