| Index: chrome/browser/extensions/api/alarms/alarm_manager.cc
|
| diff --git a/chrome/browser/extensions/api/alarms/alarm_manager.cc b/chrome/browser/extensions/api/alarms/alarm_manager.cc
|
| index 74b1e03bbd61e9be7df5eb9f4516a211a23f1789..cc4385532aa831358db2f101387f1dd329bf4151 100644
|
| --- a/chrome/browser/extensions/api/alarms/alarm_manager.cc
|
| +++ b/chrome/browser/extensions/api/alarms/alarm_manager.cc
|
| @@ -97,6 +97,8 @@ AlarmManager::AlarmManager(Profile* profile)
|
| delegate_(new DefaultAlarmDelegate(profile)) {
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
|
| content::Source<Profile>(profile_));
|
| + registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED,
|
| + content::Source<Profile>(profile_));
|
|
|
| StateStore* storage = ExtensionSystem::Get(profile_)->state_store();
|
| if (storage)
|
| @@ -344,6 +346,12 @@ void AlarmManager::Observe(
|
| }
|
| break;
|
| }
|
| + case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: {
|
| + const Extension* extension =
|
| + content::Details<const Extension>(details).ptr();
|
| + RemoveAllAlarms(extension->id());
|
| + break;
|
| + }
|
| default:
|
| NOTREACHED();
|
| break;
|
|
|