Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2291)

Unified Diff: chrome/browser/extensions/api/management/management_api.cc

Issue 14238037: Made it possible to tell whether an extension is being installed or updated. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added extra check. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/management/management_api.cc
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc
index 11f0d5abfd257375e8a89fa30e24ac269f0a0329..84700caadd2bf1df2f69d17e02a38d18d6c7e6cb 100644
--- a/chrome/browser/extensions/api/management/management_api.cc
+++ b/chrome/browser/extensions/api/management/management_api.cc
@@ -644,6 +644,7 @@ void ManagementEventRouter::Observe(
const content::NotificationSource& source,
const content::NotificationDetails& details) {
const char* event_name = NULL;
+ const Extension* extension = NULL;
Profile* profile = content::Source<Profile>(source).ptr();
CHECK(profile);
CHECK(profile_->IsSameProfile(profile));
@@ -651,33 +652,33 @@ void ManagementEventRouter::Observe(
switch (type) {
case chrome::NOTIFICATION_EXTENSION_INSTALLED:
event_name = events::kOnExtensionInstalled;
+ extension =
+ content::Details<const InstalledExtensionInfo>(details)->extension;
break;
case chrome::NOTIFICATION_EXTENSION_UNINSTALLED:
event_name = events::kOnExtensionUninstalled;
+ extension = content::Details<const Extension>(details).ptr();
break;
case chrome::NOTIFICATION_EXTENSION_LOADED:
event_name = events::kOnExtensionEnabled;
+ extension = content::Details<const Extension>(details).ptr();
break;
case chrome::NOTIFICATION_EXTENSION_UNLOADED:
event_name = events::kOnExtensionDisabled;
+ extension =
+ content::Details<const UnloadedExtensionInfo>(details)->extension;
break;
default:
NOTREACHED();
return;
}
+ DCHECK(event_name);
+ DCHECK(extension);
scoped_ptr<ListValue> args(new ListValue());
if (event_name == events::kOnExtensionUninstalled) {
- args->Append(Value::CreateStringValue(
- content::Details<const Extension>(details).ptr()->id()));
+ args->Append(Value::CreateStringValue(extension->id()));
} else {
- const Extension* extension = NULL;
- if (event_name == events::kOnExtensionDisabled) {
- extension = content::Details<UnloadedExtensionInfo>(details)->extension;
- } else {
- extension = content::Details<const Extension>(details).ptr();
- }
- CHECK(extension);
scoped_ptr<management::ExtensionInfo> info = CreateExtensionInfo(
*extension, ExtensionSystem::Get(profile));
args->Append(info->ToValue().release());

Powered by Google App Engine
This is Rietveld 408576698