[Extensions] Fix IsBeingUpgraded runtime data bug and make RuntimeData take ids
Fix a bug where IsBeingUpgraded would be reset during the reload process (even
though it's also *set* during the reload process...), and make RuntimeData take
extension ids instead of extensions.
BUG=435336
[email protected] (micro change in ui/toolbar/)
Review URL: https://codereview.chromium.org/743373002
Cr-Commit-Position: refs/heads/master@{#305134}
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 283f42a1..c96dc5a 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -608,7 +608,7 @@
path = transient_current_extension->path();
// BeingUpgraded is set back to false when the extension is added.
- system_->runtime_data()->SetBeingUpgraded(transient_current_extension,
+ system_->runtime_data()->SetBeingUpgraded(transient_current_extension->id(),
true);
DisableExtension(extension_id, Extension::DISABLE_RELOAD);
reloading_extensions_.insert(extension_id);
@@ -1342,7 +1342,12 @@
if (!Manifest::IsUnpackedLocation(extension->location()))
CHECK_GE(version_compare_result, 0);
}
- system_->runtime_data()->SetBeingUpgraded(extension, is_extension_upgrade);
+ // If the extension was disabled for a reload, then enable it.
+ bool reloading = reloading_extensions_.erase(extension->id()) > 0;
+
+ // Set the upgraded bit; we consider reloads upgrades.
+ system_->runtime_data()->SetBeingUpgraded(extension->id(),
+ is_extension_upgrade || reloading);
// The extension is now loaded, remove its data from unloaded extension map.
unloaded_extension_paths_.erase(extension->id());
@@ -1350,9 +1355,6 @@
// If a terminated extension is loaded, remove it from the terminated list.
UntrackTerminatedExtension(extension->id());
- // If the extension was disabled for a reload, then enable it.
- bool reloading = reloading_extensions_.erase(extension->id()) > 0;
-
// Check if the extension's privileges have changed and mark the
// extension disabled if necessary.
CheckPermissionsIncrease(extension, is_extension_installed);
@@ -1414,7 +1416,7 @@
extension_sync_service_->SyncExtensionChangeIfNeeded(*extension);
NotifyExtensionLoaded(extension);
}
- system_->runtime_data()->SetBeingUpgraded(extension, false);
+ system_->runtime_data()->SetBeingUpgraded(extension->id(), false);
}
void ExtensionService::AddComponentExtension(const Extension* extension) {