Chromium Code Reviews| Index: chrome/renderer/resources/extensions/extension_options.js |
| diff --git a/chrome/renderer/resources/extensions/extension_options.js b/chrome/renderer/resources/extensions/extension_options.js |
| index cc42d7fb4b156bcff285dafd53e8e03a7e999bbb..4e896697e589e2240989bd77b58de3dca770b38e 100644 |
| --- a/chrome/renderer/resources/extensions/extension_options.js |
| +++ b/chrome/renderer/resources/extensions/extension_options.js |
| @@ -16,6 +16,13 @@ function ExtensionOptionsInternal(extensionoptionsNode) { |
| // on* Event handlers. |
| this.eventHandlers = {}; |
| + |
| + // setupEventProperty is normally called in extension_options_events.js to |
| + // register events, but the createfailed event is registered here because |
| + // the event is fired from here instead of through |
| + // extension_options_events.js. |
| + this.setupEventProperty('createfailed'); |
| + |
| new ExtensionOptionsEvents(this, this.viewInstanceId); |
| this.setupNodeProperties(); |
| @@ -48,7 +55,15 @@ ExtensionOptionsInternal.prototype.createGuest = function() { |
| params, |
| function(instanceId) { |
| if (instanceId == 0) { |
| + // Fire a createfailed event here rather than in ExtensionOptionsGuest |
| + // because the guest will not be created, and cannot fire an event. |
| self.initCalled = false; |
| + var createFailedEvent = new Event('createfailed', { |
| + bubbles: true, |
| + supportsListeners: true, |
| + supportsFilters: true |
|
Fady Samuel
2014/08/06 21:46:44
supportsListeners and supportsFilters is not relev
ericzeng
2014/08/06 23:49:24
Done.
|
| + }); |
| + self.dispatchEvent(createFailedEvent); |
| } else { |
| self.attachWindow(instanceId); |
| } |
| @@ -93,13 +108,8 @@ ExtensionOptionsInternal.prototype.init = function() { |
| ExtensionOptionsInternal.prototype.parseExtensionAttribute = function() { |
| if (this.extensionoptionsNode.hasAttribute('extension')) { |
| - var extensionId = this.extensionoptionsNode.getAttribute('extension'); |
| - // Only allow extensions to embed their own options page (if it has one). |
| - if (chrome.runtime.id == extensionId && |
| - chrome.runtime.getManifest().hasOwnProperty('options_page')) { |
| - this.extensionId = extensionId; |
| - return true; |
| - } |
| + this.extensionId = this.extensionoptionsNode.getAttribute('extension'); |
| + return true; |
| } |
| return false; |
| }; |