Chromium Code Reviews| Index: extensions/renderer/resources/guest_view/guest_view_container.js |
| diff --git a/extensions/renderer/resources/guest_view/guest_view_container.js b/extensions/renderer/resources/guest_view/guest_view_container.js |
| index 876b60623de0658eda154e87ca06920835bbb73f..c085c9a0d6e54170cb533c755ca77d1cd6744152 100644 |
| --- a/extensions/renderer/resources/guest_view/guest_view_container.js |
| +++ b/extensions/renderer/resources/guest_view/guest_view_container.js |
| @@ -6,7 +6,9 @@ |
| // containers, such as web_view, app_view, etc. |
| var DocumentNatives = requireNative('document_natives'); |
| +var EventBindings = require('event_bindings'); |
| var GuestView = require('guestView').GuestView; |
| +var GuestViewInternalNatives = requireNative('guest_view_internal'); |
| var IdGenerator = requireNative('id_generator'); |
| function GuestViewContainer(element, viewType) { |
| @@ -22,6 +24,8 @@ function GuestViewContainer(element, viewType) { |
| var shadowRoot = this.element.createShadowRoot(); |
| shadowRoot.appendChild(privates(this).browserPluginElement); |
| + |
| + this.setupResizeEvents(); |
| } |
| // Forward public API methods from |proto| to their internal implementations. |
| @@ -81,6 +85,22 @@ GuestViewContainer.prototype.setupFocusPropagation = function() { |
| }.bind(this)); |
| }; |
| +GuestViewContainer.prototype.setupResizeEvents = function() { |
| + // Track when the guest resizes using the onResize event. |
| + var CreateEvent = function(name) { |
| + var eventOpts = {supportsListeners: true, supportsFilters: true}; |
| + return new EventBindings.Event(name, undefined, eventOpts); |
| + }; |
| + var resizeEvent = CreateEvent('guestViewInternal.onResize'); |
|
Fady Samuel
2015/01/15 21:40:12
Remove this for now? This doesn't seem to do anyth
paulmeyer
2015/01/19 23:45:35
Moved to guest_view.js, as discussed offline.
|
| + resizeEvent.addListener(function(e) { |
| + this.onGuestResize(e.oldWidth, e.oldHeight, e.newWidth, e.newHeight); |
| + }.bind(this), {instanceId: this.viewInstanceId}); |
| + |
| + // Track when the element resizes using the element resize callback. |
| + GuestViewInternalNatives.RegisterElementResizeCallback( |
| + this.internalInstanceId, this.onElementResize.bind(this)); |
| +}; |
| + |
| GuestViewContainer.prototype.attachWindow = function() { |
| if (!this.internalInstanceId) { |
| return true; |
| @@ -114,6 +134,10 @@ GuestViewContainer.prototype.onElementAttached = function() {}; |
| GuestViewContainer.prototype.onElementDetached = function() { |
| this.guest.destroy(); |
| }; |
| +GuestViewContainer.prototype.onElementResize = function(oldWidth, oldHeight, |
| + newWidth, newHeight) {}; |
| +GuestViewContainer.prototype.onGuestResize = function(oldWidth, oldHeight, |
| + newWidth, newHeight) {}; |
| // Registers the browser plugin <object> custom element. |viewType| is the |
| // name of the specific guestview container (e.g. 'webview'). |