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

Unified Diff: extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc

Issue 984963004: <webview>: Implement fullscreen permission for html5 element.requestFullscreen() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tmptmptmp
Patch Set: Disable one test one test on mac with bug ref, use document.webkitIsFullScreen Created 5 years, 9 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
Index: extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc
diff --git a/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc b/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc
index a57f4541024f0a96c1b9a03a90d339d3e598013a..8bc2a2e83174b37f688553f4de785e89dc67f3ec 100644
--- a/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc
+++ b/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc
@@ -15,6 +15,7 @@
#include "extensions/renderer/guest_view/extensions_guest_view_container.h"
#include "extensions/renderer/script_context.h"
#include "third_party/WebKit/public/web/WebFrame.h"
+#include "third_party/WebKit/public/web/WebScopedUserGesture.h"
#include "third_party/WebKit/public/web/WebView.h"
#include "v8/include/v8.h"
@@ -43,6 +44,10 @@ GuestViewInternalCustomBindings::GuestViewInternalCustomBindings(
base::Bind(
&GuestViewInternalCustomBindings::RegisterElementResizeCallback,
base::Unretained(this)));
+ RouteFunction(
+ "RunWithGesture",
+ base::Bind(&GuestViewInternalCustomBindings::RunWithGesture,
+ base::Unretained(this)));
}
void GuestViewInternalCustomBindings::AttachGuest(
@@ -198,4 +203,14 @@ void GuestViewInternalCustomBindings::RegisterElementResizeCallback(
args.GetReturnValue().Set(v8::Boolean::New(context()->isolate(), true));
}
+void GuestViewInternalCustomBindings::RunWithGesture(
+ const v8::FunctionCallbackInfo<v8::Value>& args) {
+ // Gesture is required to request fullscreen.
+ blink::WebScopedUserGesture user_gesture;
+ CHECK_EQ(args.Length(), 1);
+ CHECK(args[0]->IsFunction());
+ v8::Handle<v8::Value> no_args;
+ context()->CallFunction(v8::Handle<v8::Function>::Cast(args[0]), 0, &no_args);
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698