Chromium Code Reviews| Index: chrome/browser/apps/ephemeral_app_service.cc |
| diff --git a/chrome/browser/apps/ephemeral_app_service.cc b/chrome/browser/apps/ephemeral_app_service.cc |
| index 0e4e117550a3f38f0eabf67d3cc3f0e9d8304510..ac76f50e21f9bebd03a3d2475de1c18ce61a101e 100644 |
| --- a/chrome/browser/apps/ephemeral_app_service.cc |
| +++ b/chrome/browser/apps/ephemeral_app_service.cc |
| @@ -62,16 +62,14 @@ EphemeralAppService* EphemeralAppService::Get(Profile* profile) { |
| EphemeralAppService::EphemeralAppService(Profile* profile) |
| : profile_(profile), |
| + extension_registry_observer_(this), |
| ephemeral_app_count_(-1) { |
| if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kEnableEphemeralApps)) |
| return; |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED, |
| - content::Source<Profile>(profile_)); |
| - registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
| - content::Source<Profile>(profile_)); |
| + extension_registry_observer_.Add( |
| + extensions::ExtensionRegistry::Get(profile_)); |
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSIONS_READY, |
| content::Source<Profile>(profile_)); |
| registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, |
| @@ -90,26 +88,6 @@ void EphemeralAppService::Observe( |
| Init(); |
| break; |
| } |
| - case chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED: { |
| - const Extension* extension = |
| - content::Details<const InstalledExtensionInfo>(details)->extension; |
| - DCHECK(extension); |
| - if (extensions::util::IsEphemeralApp(extension->id(), profile_)) { |
| - ++ephemeral_app_count_; |
| - if (ephemeral_app_count_ >= kGarbageCollectAppsTriggerCount) |
| - TriggerGarbageCollect( |
| - base::TimeDelta::FromSeconds(kGarbageCollectAppsInstallDelay)); |
| - } |
| - break; |
| - } |
| - case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: { |
| - const Extension* extension = |
| - content::Details<const Extension>(details).ptr(); |
| - DCHECK(extension); |
| - if (extensions::util::IsEphemeralApp(extension->id(), profile_)) |
| - --ephemeral_app_count_; |
| - break; |
| - } |
| case chrome::NOTIFICATION_PROFILE_DESTROYED: { |
| // Ideally we need to know when the extension system is shutting down. |
| garbage_collect_apps_timer_.Stop(); |
| @@ -120,6 +98,28 @@ void EphemeralAppService::Observe( |
| } |
| } |
| +void EphemeralAppService::OnExtensionWillBeInstalled( |
| + content::BrowserContext* browser_context, |
| + const extensions::Extension* extension, |
| + bool is_update, |
| + const std::string& old_name) { |
| + DCHECK(extension); |
|
not at google - send to devlin
2014/05/27 17:40:16
no need for DCHECK
limasdf
2014/05/27 17:54:07
Done.
|
| + if (extensions::util::IsEphemeralApp(extension->id(), profile_)) { |
| + ++ephemeral_app_count_; |
| + if (ephemeral_app_count_ >= kGarbageCollectAppsTriggerCount) |
| + TriggerGarbageCollect( |
| + base::TimeDelta::FromSeconds(kGarbageCollectAppsInstallDelay)); |
| + } |
| +} |
| + |
| +void EphemeralAppService::OnExtensionUninstalled( |
| + content::BrowserContext* browser_context, |
| + const extensions::Extension* extension) { |
| + DCHECK(extension); |
|
not at google - send to devlin
2014/05/27 17:40:16
no need for DCHECK
limasdf
2014/05/27 17:54:07
Done.
|
| + if (extensions::util::IsEphemeralApp(extension->id(), profile_)) |
| + --ephemeral_app_count_; |
| +} |
| + |
| void EphemeralAppService::Init() { |
| InitEphemeralAppCount(); |
| TriggerGarbageCollect( |