| 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 ebcc3136b5e56a3b0bb67996f3da111ab60ebb61..60b133267e291c851cb68ba2295b829c5bdb9b9f 100644
|
| --- a/extensions/renderer/resources/guest_view/guest_view_container.js
|
| +++ b/extensions/renderer/resources/guest_view/guest_view_container.js
|
| @@ -9,6 +9,7 @@ var DocumentNatives = requireNative('document_natives');
|
| var GuestView = require('guestView').GuestView;
|
| var GuestViewInternalNatives = requireNative('guest_view_internal');
|
| var IdGenerator = requireNative('id_generator');
|
| +var MessagingNatives = requireNative('messaging_natives');
|
|
|
| function GuestViewContainer(element, viewType) {
|
| privates(element).internal = this;
|
| @@ -122,12 +123,20 @@ GuestViewContainer.prototype.attachWindow = function() {
|
| return true;
|
| };
|
|
|
| +GuestViewContainer.prototype.makeGCOwnContainer = function(internalInstanceId) {
|
| + MessagingNatives.BindToGC(this, function() {
|
| + GuestViewInternalNatives.DestroyContainer(internalInstanceId);
|
| + }, -1);
|
| +};
|
| +
|
| GuestViewContainer.prototype.handleBrowserPluginAttributeMutation =
|
| function(name, oldValue, newValue) {
|
| if (name == 'internalinstanceid' && !oldValue && !!newValue) {
|
| privates(this).browserPluginElement.removeAttribute('internalinstanceid');
|
| this.internalInstanceId = parseInt(newValue);
|
|
|
| + this.makeGCOwnContainer(this.internalInstanceId);
|
| +
|
| // Track when the element resizes using the element resize callback.
|
| GuestViewInternalNatives.RegisterElementResizeCallback(
|
| this.internalInstanceId, this.weakWrapper(this.onElementResize));
|
|
|