| 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
|
|
|