| 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());
|
|
|