Chromium Code Reviews| Index: extensions/renderer/resources/web_view.js |
| diff --git a/extensions/renderer/resources/web_view.js b/extensions/renderer/resources/web_view.js |
| index 3cf20f99835ca7b7227206238bdc9d12645290bf..7f68ba4c2237c2e868d0a08b50ab6729a6492b46 100644 |
| --- a/extensions/renderer/resources/web_view.js |
| +++ b/extensions/renderer/resources/web_view.js |
| @@ -142,6 +142,7 @@ WebViewInternal.prototype.reset = function() { |
| // heard back from createGuest yet. We will not reset the flag in this case so |
| // that we don't end up allocating a second guest. |
| if (this.guestInstanceId) { |
| + GuestViewInternal.destroyGuest(this.guestInstanceId); |
|
lfg
2014/09/30 18:59:27
If a webview element is attached and immediatelly
Fady Samuel
2014/09/30 22:50:03
Fixed..I think but this code is VERY brittle now.
lfg
2014/09/30 23:29:42
Acknowledged.
|
| this.guestInstanceId = undefined; |
| this.beforeFirstNavigation = true; |
| this.validPartitionId = true; |
| @@ -542,25 +543,18 @@ WebViewInternal.prototype.handleBrowserPluginAttributeMutation = |
| this.browserPluginNode.removeAttribute('internalinstanceid'); |
| this.internalInstanceId = parseInt(newValue); |
| - if (!this.deferredAttachState) { |
| - this.parseAttributes(); |
| - return; |
| - } |
| - |
| if (!!this.guestInstanceId && this.guestInstanceId != 0) { |
| - window.setTimeout(function() { |
| - var isNewWindow = this.deferredAttachState ? |
| - this.deferredAttachState.isNewWindow : false; |
| - var params = this.buildAttachParams(isNewWindow); |
| - guestViewInternalNatives.AttachGuest( |
| - this.internalInstanceId, |
| - this.guestInstanceId, |
| - params, |
| - function(w) { |
| - this.contentWindow = w; |
| - }.bind(this) |
| - ); |
| - }.bind(this), 0); |
| + var isNewWindow = this.deferredAttachState ? |
| + this.deferredAttachState.isNewWindow : false; |
| + var params = this.buildAttachParams(isNewWindow); |
| + guestViewInternalNatives.AttachGuest( |
| + this.internalInstanceId, |
| + this.guestInstanceId, |
| + params, |
| + function(w) { |
| + this.contentWindow = w; |
| + }.bind(this) |
| + ); |
| } |
| return; |
| @@ -703,10 +697,6 @@ WebViewInternal.prototype.onFrameNameChanged = function(name) { |
| } |
| }; |
| -WebViewInternal.prototype.onPluginDestroyed = function() { |
| - this.reset(); |
| -}; |
| - |
| WebViewInternal.prototype.dispatchEvent = function(webViewEvent) { |
| return this.webviewNode.dispatchEvent(webViewEvent); |
| }; |