Chromium Code Reviews| Index: extensions/renderer/guest_view/extensions_guest_view_container.cc |
| diff --git a/extensions/renderer/guest_view/extensions_guest_view_container.cc b/extensions/renderer/guest_view/extensions_guest_view_container.cc |
| index ca5960debd08b370f9822dd47d5473f775309148..d10e776266a18ec0cc411d91c17bc07bf836a014 100644 |
| --- a/extensions/renderer/guest_view/extensions_guest_view_container.cc |
| +++ b/extensions/renderer/guest_view/extensions_guest_view_container.cc |
| @@ -162,7 +162,7 @@ ExtensionsGuestViewContainer::~ExtensionsGuestViewContainer() { |
| v8::Context::Scope context_scope(context); |
| blink::WebScopedMicrotaskSuppression suppression; |
| - callback->Call(context->Global(), 0, nullptr); |
| + callback->Call(context->Global(), 0 /* argc */, nullptr); |
| } |
| ExtensionsGuestViewContainer* ExtensionsGuestViewContainer::FromID( |
| @@ -186,6 +186,40 @@ void ExtensionsGuestViewContainer::RegisterDestructionCallback( |
| destruction_isolate_ = isolate; |
| } |
| +void ExtensionsGuestViewContainer::RegisterElementResizeCallback( |
| + v8::Handle<v8::Function> callback, |
| + v8::Isolate* isolate) { |
| + element_resize_callback_.reset(callback); |
| + element_resize_isolate_ = isolate; |
|
Fady Samuel
2015/01/15 21:40:12
Initialize this in the constructor's initializer l
paulmeyer
2015/01/19 23:45:35
Done.
|
| +} |
| + |
| +void ExtensionsGuestViewContainer::OnElementResize(const gfx::Size& old_size, |
| + const gfx::Size& new_size) { |
| + // Call the element resize callback, if one is registered. |
| + if (element_resize_callback_.IsEmpty()) |
| + return; |
| + |
| + v8::HandleScope handle_scope(element_resize_isolate_); |
| + v8::Handle<v8::Function> callback = |
| + element_resize_callback_.NewHandle(element_resize_isolate_); |
| + v8::Handle<v8::Context> context = callback->CreationContext(); |
| + if (context.IsEmpty()) |
| + return; |
| + |
| + const int argc = 4; |
| + v8::Handle<v8::Value> argv[argc] = { |
| + v8::Integer::New(element_resize_isolate_, old_size.width()), |
| + v8::Integer::New(element_resize_isolate_, old_size.height()), |
| + v8::Integer::New(element_resize_isolate_, new_size.width()), |
| + v8::Integer::New(element_resize_isolate_, new_size.height()) |
| + }; |
| + |
| + v8::Context::Scope context_scope(context); |
| + blink::WebScopedMicrotaskSuppression suppression; |
| + |
| + callback->Call(context->Global(), argc, argv); |
| +} |
| + |
| bool ExtensionsGuestViewContainer::OnMessageReceived( |
| const IPC::Message& message) { |
| OnHandleCallback(message); |