Chromium Code Reviews| Index: extensions/renderer/resources/guest_view/extension_view.js |
| diff --git a/extensions/renderer/resources/guest_view/extension_view.js b/extensions/renderer/resources/guest_view/extension_view.js |
| index 8ca6dfecd1feebea94c73340f3cb99f3f83d0ebb..18096783b529f9eddc599f3f472eec6329f9d158 100644 |
| --- a/extensions/renderer/resources/guest_view/extension_view.js |
| +++ b/extensions/renderer/resources/guest_view/extension_view.js |
| @@ -7,12 +7,15 @@ |
| var GuestViewContainer = require('guestViewContainer').GuestViewContainer; |
| var ExtensionViewConstants = |
| require('extensionViewConstants').ExtensionViewConstants; |
| +var ExtensionViewEvents = require('extensionViewEvents').ExtensionViewEvents; |
| var ExtensionViewInternal = |
| require('extensionViewInternal').ExtensionViewInternal; |
| function ExtensionViewImpl(extensionviewElement) { |
| GuestViewContainer.call(this, extensionviewElement, 'extensionview'); |
| this.setupExtensionViewAttributes(); |
| + |
| + new ExtensionViewEvents(this, this.viewInstanceId); |
| } |
| ExtensionViewImpl.prototype.__proto__ = GuestViewContainer.prototype; |
| @@ -20,9 +23,7 @@ ExtensionViewImpl.prototype.__proto__ = GuestViewContainer.prototype; |
| ExtensionViewImpl.VIEW_TYPE = 'ExtensionView'; |
| ExtensionViewImpl.setupElement = function(proto) { |
| - var apiMethods = [ |
| - 'navigate' |
| - ]; |
| + var apiMethods = ExtensionViewImpl.getApiMethods(); |
| GuestViewContainer.forwardApiMethods(proto, apiMethods); |
| }; |
| @@ -33,10 +34,6 @@ ExtensionViewImpl.prototype.createGuest = function() { |
| }.bind(this)); |
| }; |
| -ExtensionViewImpl.prototype.onElementAttached = function() { |
| - this.attributes[ExtensionViewConstants.ATTRIBUTE_SRC].parse(); |
| -}; |
| - |
| ExtensionViewImpl.prototype.buildContainerParams = function() { |
| var params = {}; |
| for (var i in this.attributes) { |
| @@ -51,13 +48,28 @@ ExtensionViewImpl.prototype.handleAttributeMutation = function( |
| if (!this.attributes[attributeName]) |
| return; |
| - // Let the changed attribute handle its own mutation; |
| + // Let the changed attribute handle its own mutation. |
| this.attributes[attributeName].maybeHandleMutation(oldValue, newValue); |
| }; |
| ExtensionViewImpl.prototype.onElementDetached = function() { |
| this.guest.destroy(); |
| - this.attributes[ExtensionViewConstants.ATTRIBUTE_SRC].reset(); |
| + |
| + // Reset all attributes. |
| + for (var i in this.attributes) { |
| + this.attributes[i].reset(); |
| + } |
| +}; |
| + |
| +// Updates src upon loadcommit. |
| +ExtensionViewImpl.prototype.onLoadCommit = function(url) { |
| + var oldValue = |
| + this.attributes[ExtensionViewConstants.ATTRIBUTE_SRC].getValue(); |
| + var newValue = url; |
| + if (oldValue != newValue) { |
|
Fady Samuel
2015/02/17 23:20:36
No need for this. If this is in webview then it's
apacible
2015/02/18 00:04:11
Done.
|
| + this.attributes[ExtensionViewConstants.ATTRIBUTE_SRC]. |
| + setValueIgnoreMutation(newValue); |
| + } |
| }; |
| GuestViewContainer.registerElement(ExtensionViewImpl); |