Chromium Code Reviews| 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 5a240f816a61d4918b74a06ce2caef81ee6d2b2b..fd47e29afd4d8fae65fd1354402c1693567d609f 100644 |
| --- a/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc |
| +++ b/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc |
| @@ -47,6 +47,9 @@ GuestViewInternalCustomBindings::GuestViewInternalCustomBindings( |
| RouteFunction("DetachGuest", |
| base::Bind(&GuestViewInternalCustomBindings::DetachGuest, |
| base::Unretained(this))); |
| + RouteFunction("DestroyContainer", |
| + base::Bind(&GuestViewInternalCustomBindings::DestroyContainer, |
| + base::Unretained(this))); |
| RouteFunction("GetContentWindow", |
| base::Bind(&GuestViewInternalCustomBindings::GetContentWindow, |
| base::Unretained(this))); |
| @@ -174,6 +177,27 @@ void GuestViewInternalCustomBindings::DetachGuest( |
| args.GetReturnValue().Set(v8::Boolean::New(context()->isolate(), true)); |
| } |
| +void GuestViewInternalCustomBindings::DestroyContainer( |
| + const v8::FunctionCallbackInfo<v8::Value>& args) { |
| + args.GetReturnValue().SetNull(); |
| + |
| + if (args.Length() != 1) |
| + return; |
| + |
| + // Element Instance ID. |
| + if (!args[0]->IsInt32()) |
| + return; |
| + |
| + int element_instance_id = args[0]->Int32Value(); |
| + auto* guest_view_container = |
| + guest_view::GuestViewContainer::FromID(element_instance_id); |
| + if (!guest_view_container) |
| + return; |
| + |
| + guest_view_container->Destroy(); |
| + // Note: |guest_view_container| is deleted. |
|
Fady Samuel
2015/06/05 17:31:13
Move this above?
lazyboy
2015/06/05 21:24:00
Done.
|
| +} |
| + |
| void GuestViewInternalCustomBindings::GetContentWindow( |
| const v8::FunctionCallbackInfo<v8::Value>& args) { |
| // Default to returning null. |