diff options
Diffstat (limited to 'apps/app_window_geometry_cache.h')
-rw-r--r-- | apps/app_window_geometry_cache.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/apps/app_window_geometry_cache.h b/apps/app_window_geometry_cache.h index 2076428..8813eea 100644 --- a/apps/app_window_geometry_cache.h +++ b/apps/app_window_geometry_cache.h @@ -12,13 +12,13 @@ #include "base/memory/scoped_ptr.h" #include "base/memory/singleton.h" #include "base/observer_list.h" +#include "base/scoped_observer.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "base/values.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" #include "components/keyed_service/core/keyed_service.h" -#include "content/public/browser/notification_observer.h" -#include "content/public/browser/notification_registrar.h" +#include "extensions/browser/extension_registry_observer.h" #include "ui/base/ui_base_types.h" #include "ui/gfx/rect.h" @@ -26,6 +26,7 @@ class Profile; namespace extensions { class ExtensionPrefs; +class ExtensionRegistry; } namespace apps { @@ -34,7 +35,7 @@ namespace apps { // for IO when creating a new window, and to not cause IO on every window // geometry change. class AppWindowGeometryCache : public KeyedService, - public content::NotificationObserver { + public extensions::ExtensionRegistryObserver { public: class Factory : public BrowserContextKeyedServiceFactory { public: @@ -122,31 +123,38 @@ class AppWindowGeometryCache : public KeyedService, // Data stored for each extension. typedef std::map<std::string, WindowData> ExtensionData; - // content::NotificationObserver - virtual void Observe(int type, - const content::NotificationSource& source, - const content::NotificationDetails& details) OVERRIDE; + // ExtensionRegistryObserver implementation. + virtual void OnExtensionLoaded( + content::BrowserContext* browser_context, + const extensions::Extension* extension) OVERRIDE; + virtual void OnExtensionUnloaded( + content::BrowserContext* browser_context, + const extensions::Extension* extension, + extensions::UnloadedExtensionInfo::Reason reason) OVERRIDE; void LoadGeometryFromStorage(const std::string& extension_id); - void OnExtensionUnloaded(const std::string& extension_id); void SyncToStorage(); // Preferences storage. extensions::ExtensionPrefs* prefs_; - // Cached data + // Cached data. std::map<std::string, ExtensionData> cache_; - // Data that still needs saving + // Data that still needs saving. std::set<std::string> unsynced_extensions_; - // The timer used to save the data + // The timer used to save the data. base::OneShotTimer<AppWindowGeometryCache> sync_timer_; // The timeout value we'll use for |sync_timer_|. base::TimeDelta sync_delay_; - content::NotificationRegistrar registrar_; + // Listen to extension load, unloaded notifications. + ScopedObserver<extensions::ExtensionRegistry, + extensions::ExtensionRegistryObserver> + extension_registry_observer_; + ObserverList<Observer> observers_; }; |