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

Unified Diff: third_party/WebKit/Source/core/dom/Fullscreen.cpp

Issue 2499373002: Implementation for feature policy - fullscreen (Closed)
Patch Set: Modified layout tests Created 4 years, 1 month 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
Index: third_party/WebKit/Source/core/dom/Fullscreen.cpp
diff --git a/third_party/WebKit/Source/core/dom/Fullscreen.cpp b/third_party/WebKit/Source/core/dom/Fullscreen.cpp
index 380a2438ffe881ba7375f8c08e19fd17fdf73dae..c519ff0a046d09596d340d2841d03a3aea2ccfc0 100644
--- a/third_party/WebKit/Source/core/dom/Fullscreen.cpp
+++ b/third_party/WebKit/Source/core/dom/Fullscreen.cpp
@@ -29,6 +29,7 @@
#include "core/dom/Fullscreen.h"
+#include "bindings/core/v8/ConditionalFeatures.h"
#include "core/dom/Document.h"
#include "core/dom/ElementTraversal.h"
#include "core/dom/StyleEngine.h"
@@ -308,6 +309,18 @@ void Fullscreen::requestFullscreen(Element& element,
return;
do {
+ Frame* frame = document.frame();
foolip 2016/11/28 23:33:22 Making this part of fullscreenSupported should red
lunalu1 2016/12/01 20:10:07 Done.
+ DCHECK(frame->isLocalFrame());
+ if (!isFeatureEnabledInFrame(blink::kFullscreenFeature,
+ toLocalFrame(frame))) {
+ if (RuntimeEnabledFeatures::featurePolicyEnabled()) {
+ document.addConsoleMessage(ConsoleMessage::create(
+ JSMessageSource, WarningMessageLevel,
+ "Fullscreen API is not enabled in feature policy for this frame"));
foolip 2016/11/28 23:33:22 Is this the wording used for other features? "Full
lunalu1 2016/12/01 20:10:07 Done.
+ break;
+ }
+ }
+
// 1. If any of the following conditions are false, then terminate these
// steps and queue a task to fire an event named fullscreenerror with its
// bubbles attribute set to true on the context object's node document:
@@ -542,11 +555,24 @@ void Fullscreen::exitFullscreen(Document& document) {
// https://fullscreen.spec.whatwg.org/#dom-document-fullscreenenabled
bool Fullscreen::fullscreenEnabled(Document& document) {
+ Frame* frame = document.frame();
+ if (!isFeatureEnabledInFrame(blink::kFullscreenFeature,
+ toLocalFrame(frame))) {
+ if (RuntimeEnabledFeatures::featurePolicyEnabled()) {
+ document.addConsoleMessage(ConsoleMessage::create(
+ JSMessageSource, WarningMessageLevel,
+ "Fullscreen API is not enabled in feature policy for this frame"));
+ return false;
+ }
+ }
+
// The fullscreenEnabled attribute's getter must return true if the context
// object is allowed to use the feature indicated by attribute name
// allowfullscreen and fullscreen is supported, and false otherwise.
- return allowedToUseFullscreen(document.frame()) &&
- fullscreenIsSupported(document);
+ if (!fullscreenIsSupported(document))
+ return false;
+
+ return allowedToUseFullscreen(frame);
}
void Fullscreen::didEnterFullscreenForElement(Element* element) {

Powered by Google App Engine
This is Rietveld 408576698