Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Unified Diff: Source/web/FullscreenController.cpp

Issue 290643005: Don't show video fullscreen until DidEnterFullscreen() is called, and disable fullscreen for non-me… (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/web/WebSettingsImpl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/FullscreenController.cpp
diff --git a/Source/web/FullscreenController.cpp b/Source/web/FullscreenController.cpp
index d14dccdfbc83f4eb34ebfc3f7c7aed033aa6fcd8..94a9ee5766d44f5826590a1ccc3f39ee244a9609 100644
--- a/Source/web/FullscreenController.cpp
+++ b/Source/web/FullscreenController.cpp
@@ -39,6 +39,7 @@
#include "platform/RuntimeEnabledFeatures.h"
#include "public/web/WebFrame.h"
#include "public/web/WebViewClient.h"
+#include "web/WebSettingsImpl.h"
#include "web/WebViewImpl.h"
using namespace WebCore;
@@ -91,8 +92,16 @@ void FullscreenController::didEnterFullScreen()
if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) {
Element* element = FullscreenElementStack::currentFullScreenElementFrom(*doc);
ASSERT(element);
- if (isHTMLMediaElement(*element) && m_webViewImpl->layerTreeView())
- m_webViewImpl->layerTreeView()->setHasTransparentBackground(true);
+ if (isHTMLMediaElement(*element)) {
+ HTMLMediaElement* mediaElement = toHTMLMediaElement(element);
+ if (mediaElement->webMediaPlayer() && mediaElement->webMediaPlayer()->canEnterFullscreen()
+ // FIXME: There is no embedder-side handling in layout test mode.
+ && !isRunningLayoutTest()) {
+ mediaElement->webMediaPlayer()->enterFullscreen();
+ }
+ if (m_webViewImpl->layerTreeView())
+ m_webViewImpl->layerTreeView()->setHasTransparentBackground(true);
+ }
}
}
}
@@ -146,6 +155,9 @@ void FullscreenController::didExitFullScreen()
void FullscreenController::enterFullScreenForElement(WebCore::Element* element)
{
+ if (m_webViewImpl->settingsImpl()->disallowFullscreenForNonMediaElements() && !isHTMLMediaElement(element))
+ return;
+
// We are already transitioning to fullscreen for a different element.
if (m_provisionalFullScreenElement) {
m_provisionalFullScreenElement = element;
@@ -160,18 +172,6 @@ void FullscreenController::enterFullScreenForElement(WebCore::Element* element)
return;
}
- if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()
- && isHTMLMediaElement(element)
- // FIXME: There is no embedder-side handling in layout test mode.
- && !isRunningLayoutTest()) {
- HTMLMediaElement* mediaElement = toHTMLMediaElement(element);
- if (mediaElement->webMediaPlayer() && mediaElement->webMediaPlayer()->canEnterFullscreen()) {
- mediaElement->webMediaPlayer()->enterFullscreen();
- m_provisionalFullScreenElement = element;
- return;
- }
- }
-
// We need to transition to fullscreen mode.
if (WebViewClient* client = m_webViewImpl->client()) {
if (client->enterFullScreen())
@@ -184,15 +184,6 @@ void FullscreenController::exitFullScreenForElement(WebCore::Element* element)
// The client is exiting full screen, so don't send a notification.
if (m_isCancelingFullScreen)
return;
- if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()
- && isHTMLMediaElement(element)
- // FIXME: There is no embedder-side handling in layout test mode.
- && !isRunningLayoutTest()) {
- HTMLMediaElement* mediaElement = toHTMLMediaElement(element);
- if (mediaElement->webMediaPlayer())
- mediaElement->webMediaPlayer()->exitFullscreen();
- return;
- }
if (WebViewClient* client = m_webViewImpl->client())
client->exitFullScreen();
}
« no previous file with comments | « no previous file | Source/web/WebSettingsImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698