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

Unified Diff: extensions/renderer/guest_view/extensions_guest_view_container.cc

Issue 856563002: Added the infrastructure for surfaceProxy.onResize() and SurfaceView.onResize() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698