| 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..738f00c799b50a95f5ee75f8dda9b0e1155834b9 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,30 @@ 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;
|
| +
|
| + // Note: |guest_view_container| is deleted.
|
| + // GuestViewContainer::DidDestroyElement() currently also destroys
|
| + // a GuestViewContainer. That won't be necessary once GuestViewContainer
|
| + // always runs w/o plugin.
|
| + guest_view_container->Destroy();
|
| +}
|
| +
|
| void GuestViewInternalCustomBindings::GetContentWindow(
|
| const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| // Default to returning null.
|
|
|