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. |