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

Side by Side Diff: extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc

Issue 1162053003: Move BrowserPluginDelegate's lifetime mgmt out of content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync @tott Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/renderer/guest_view/guest_view_internal_custom_bindings.h" 5 #include "extensions/renderer/guest_view/guest_view_internal_custom_bindings.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 29 matching lines...) Expand all
40 40
41 GuestViewInternalCustomBindings::GuestViewInternalCustomBindings( 41 GuestViewInternalCustomBindings::GuestViewInternalCustomBindings(
42 ScriptContext* context) 42 ScriptContext* context)
43 : ObjectBackedNativeHandler(context) { 43 : ObjectBackedNativeHandler(context) {
44 RouteFunction("AttachGuest", 44 RouteFunction("AttachGuest",
45 base::Bind(&GuestViewInternalCustomBindings::AttachGuest, 45 base::Bind(&GuestViewInternalCustomBindings::AttachGuest,
46 base::Unretained(this))); 46 base::Unretained(this)));
47 RouteFunction("DetachGuest", 47 RouteFunction("DetachGuest",
48 base::Bind(&GuestViewInternalCustomBindings::DetachGuest, 48 base::Bind(&GuestViewInternalCustomBindings::DetachGuest,
49 base::Unretained(this))); 49 base::Unretained(this)));
50 RouteFunction("DestroyContainer",
51 base::Bind(&GuestViewInternalCustomBindings::DestroyContainer,
52 base::Unretained(this)));
50 RouteFunction("GetContentWindow", 53 RouteFunction("GetContentWindow",
51 base::Bind(&GuestViewInternalCustomBindings::GetContentWindow, 54 base::Bind(&GuestViewInternalCustomBindings::GetContentWindow,
52 base::Unretained(this))); 55 base::Unretained(this)));
53 RouteFunction("GetViewFromID", 56 RouteFunction("GetViewFromID",
54 base::Bind(&GuestViewInternalCustomBindings::GetViewFromID, 57 base::Bind(&GuestViewInternalCustomBindings::GetViewFromID,
55 base::Unretained(this))); 58 base::Unretained(this)));
56 RouteFunction( 59 RouteFunction(
57 "RegisterDestructionCallback", 60 "RegisterDestructionCallback",
58 base::Bind(&GuestViewInternalCustomBindings::RegisterDestructionCallback, 61 base::Bind(&GuestViewInternalCustomBindings::RegisterDestructionCallback,
59 base::Unretained(this))); 62 base::Unretained(this)));
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 linked_ptr<guest_view::GuestViewRequest> request( 170 linked_ptr<guest_view::GuestViewRequest> request(
168 new guest_view::GuestViewDetachRequest( 171 new guest_view::GuestViewDetachRequest(
169 guest_view_container, args.Length() == 2 ? args[1].As<v8::Function>() 172 guest_view_container, args.Length() == 2 ? args[1].As<v8::Function>()
170 : v8::Local<v8::Function>(), 173 : v8::Local<v8::Function>(),
171 args.GetIsolate())); 174 args.GetIsolate()));
172 guest_view_container->IssueRequest(request); 175 guest_view_container->IssueRequest(request);
173 176
174 args.GetReturnValue().Set(v8::Boolean::New(context()->isolate(), true)); 177 args.GetReturnValue().Set(v8::Boolean::New(context()->isolate(), true));
175 } 178 }
176 179
180 void GuestViewInternalCustomBindings::DestroyContainer(
181 const v8::FunctionCallbackInfo<v8::Value>& args) {
182 args.GetReturnValue().SetNull();
183
184 if (args.Length() != 1)
185 return;
186
187 // Element Instance ID.
188 if (!args[0]->IsInt32())
189 return;
190
191 int element_instance_id = args[0]->Int32Value();
192 auto* guest_view_container =
193 guest_view::GuestViewContainer::FromID(element_instance_id);
194 if (!guest_view_container)
195 return;
196
197 // Note: |guest_view_container| is deleted.
198 // GuestViewContainer::DidDestroyElement() currently also destroys
199 // a GuestViewContainer. That won't be necessary once GuestViewContainer
200 // always runs w/o plugin.
201 guest_view_container->Destroy();
202 }
203
177 void GuestViewInternalCustomBindings::GetContentWindow( 204 void GuestViewInternalCustomBindings::GetContentWindow(
178 const v8::FunctionCallbackInfo<v8::Value>& args) { 205 const v8::FunctionCallbackInfo<v8::Value>& args) {
179 // Default to returning null. 206 // Default to returning null.
180 args.GetReturnValue().SetNull(); 207 args.GetReturnValue().SetNull();
181 208
182 if (args.Length() != 1) 209 if (args.Length() != 1)
183 return; 210 return;
184 211
185 // The routing ID for the RenderView. 212 // The routing ID for the RenderView.
186 if (!args[0]->IsInt32()) 213 if (!args[0]->IsInt32())
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 const v8::FunctionCallbackInfo<v8::Value>& args) { 320 const v8::FunctionCallbackInfo<v8::Value>& args) {
294 // Gesture is required to request fullscreen. 321 // Gesture is required to request fullscreen.
295 blink::WebScopedUserGesture user_gesture; 322 blink::WebScopedUserGesture user_gesture;
296 CHECK_EQ(args.Length(), 1); 323 CHECK_EQ(args.Length(), 1);
297 CHECK(args[0]->IsFunction()); 324 CHECK(args[0]->IsFunction());
298 v8::Local<v8::Value> no_args; 325 v8::Local<v8::Value> no_args;
299 context()->CallFunction(v8::Local<v8::Function>::Cast(args[0]), 0, &no_args); 326 context()->CallFunction(v8::Local<v8::Function>::Cast(args[0]), 0, &no_args);
300 } 327 }
301 328
302 } // namespace extensions 329 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698