| Index: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| index 12bdeea91444eca4108add71383687c328564f5f..7fa17e2b42c67ae4901a253a4c08bc9aabcc3cd6 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| @@ -36,6 +36,7 @@
|
| #include "core/css/MediaList.h"
|
| #include "core/dom/Attribute.h"
|
| #include "core/dom/DOMException.h"
|
| +#include "core/dom/DocumentUserGestureToken.h"
|
| #include "core/dom/ElementTraversal.h"
|
| #include "core/dom/ElementVisibilityObserver.h"
|
| #include "core/dom/Fullscreen.h"
|
| @@ -465,7 +466,8 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName,
|
| m_remotePlaybackClient(nullptr),
|
| m_autoplayVisibilityObserver(nullptr),
|
| m_mediaControls(nullptr),
|
| - m_controlsList(HTMLMediaElementControlsList::create(this)) {
|
| + m_controlsList(HTMLMediaElementControlsList::create(this)),
|
| + m_isPersistentVideo(false) {
|
| BLINK_MEDIA_LOG << "HTMLMediaElement(" << (void*)this << ")";
|
|
|
| m_lockedPendingUserGesture = computeLockedPendingUserGesture(document);
|
| @@ -3234,6 +3236,28 @@ void HTMLMediaElement::remotePlaybackStarted() {
|
| remotePlaybackClient()->stateChanged(WebRemotePlaybackState::Connected);
|
| }
|
|
|
| +// TODO(zqzhang): move logic for hiding controls here.
|
| +void HTMLMediaElement::onBecamePersistentVideo(bool value) {
|
| + if (!isHTMLVideoElement())
|
| + return;
|
| +
|
| + if (value) {
|
| + if (isFullscreen())
|
| + return;
|
| +
|
| + UserGestureIndicator gestureIndicator(
|
| + DocumentUserGestureToken::create(&document()));
|
| + Fullscreen::requestFullscreen(*this);
|
| + m_isPersistentVideo = true;
|
| + } else {
|
| + if (!m_isPersistentVideo)
|
| + return;
|
| +
|
| + Fullscreen::exitFullscreen(document());
|
| + m_isPersistentVideo = false;
|
| + }
|
| +}
|
| +
|
| bool HTMLMediaElement::hasSelectedVideoTrack() {
|
| DCHECK(RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled());
|
|
|
|
|