Chromium Code Reviews| Index: chrome/browser/resources/extensions/extension_list.js |
| diff --git a/chrome/browser/resources/extensions/extension_list.js b/chrome/browser/resources/extensions/extension_list.js |
| index fe1cec3976b0da7f2f2fa13f2178b37c6cc06544..178e781406fbd9594c1ee75135d251deea00de68 100644 |
| --- a/chrome/browser/resources/extensions/extension_list.js |
| +++ b/chrome/browser/resources/extensions/extension_list.js |
| @@ -248,10 +248,19 @@ cr.define('extensions', function() { |
| case EventType.PREFS_CHANGED: |
| if (eventData.extensionInfo) |
| this.updateExtension_(eventData.extensionInfo); |
| + if (eventData.event_type == EventType.INSTALLED && |
| + this.extensions_.length == 1 && |
|
Dan Beam
2015/04/23 18:01:38
why length == 1? can't we just call this every ti
Devlin
2015/04/23 18:27:31
Sure.
|
| + this.onHasExtensionsChanged) { |
| + this.onHasExtensionsChanged(); |
| + } |
| break; |
| case EventType.UNINSTALLED: |
| + var index = this.getIndexOfExtension_(eventData.item_id); |
| + this.extensions_.splice(index, 1); |
| var childNode = $(eventData.item_id); |
| childNode.parentNode.removeChild(childNode); |
| + if (this.extensions_.length == 0 && this.onHasExtensionsChanged) |
| + this.onHasExtensionsChanged(); |
|
Dan Beam
2015/04/23 18:01:38
can't we just call this every time?
Devlin
2015/04/23 18:27:31
Ditto.
|
| break; |
| default: |
| assertNotReached(); |
| @@ -293,6 +302,19 @@ cr.define('extensions', function() { |
| return this.extensions_.length; |
| }, |
| + /** |
| + * @param {string} id The id of the extension. |
| + * @return {number} The index of the extension with the given id. |
| + * @private |
| + */ |
| + getIndexOfExtension_: function(id) { |
| + for (var i = 0; i < this.extensions_.length; ++i) { |
| + if (this.extensions_[i].id == id) |
| + return i; |
| + } |
| + return -1; |
| + }, |
| + |
| getIdQueryParam_: function() { |
| return parseQueryParams(document.location)['id']; |
| }, |
| @@ -1030,13 +1052,7 @@ cr.define('extensions', function() { |
| * @private |
| */ |
| updateExtension_: function(extension) { |
| - var currIndex = -1; |
| - for (var i = 0; i < this.extensions_.length; ++i) { |
| - if (this.extensions_[i].id == extension.id) { |
| - currIndex = i; |
| - break; |
| - } |
| - } |
| + var currIndex = this.getIndexOfExtension_(extension.id); |
| if (currIndex != -1) { |
| // If there is a current version of the extension, update it with the |
| // new version. |