| Index: chrome/browser/extensions/extension_storage_monitor.h
|
| diff --git a/chrome/browser/extensions/extension_storage_monitor.h b/chrome/browser/extensions/extension_storage_monitor.h
|
| index 245f6ed5acbb6b2720efc92319512e02515ad6f7..a39986ea6235c8e2309b22dc4890d465f5fc06b4 100644
|
| --- a/chrome/browser/extensions/extension_storage_monitor.h
|
| +++ b/chrome/browser/extensions/extension_storage_monitor.h
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "base/scoped_observer.h"
|
| #include "components/keyed_service/core/keyed_service.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| @@ -25,6 +26,8 @@ class Image;
|
| namespace extensions {
|
|
|
| class Extension;
|
| +class ExtensionPrefs;
|
| +class ExtensionRegistry;
|
| class StorageEventObserver;
|
|
|
| // ExtensionStorageMonitor monitors the storage usage of extensions and apps
|
| @@ -53,10 +56,18 @@ class ExtensionStorageMonitor : public KeyedService,
|
| // ExtensionRegistryObserver overrides:
|
| virtual void OnExtensionLoaded(content::BrowserContext* browser_context,
|
| const Extension* extension) OVERRIDE;
|
| - virtual void OnExtensionUnloaded(content::BrowserContext* browser_context,
|
| - const Extension* extension,
|
| - UnloadedExtensionInfo::Reason reason)
|
| - OVERRIDE;
|
| + virtual void OnExtensionUnloaded(
|
| + content::BrowserContext* browser_context,
|
| + const Extension* extension,
|
| + UnloadedExtensionInfo::Reason reason) OVERRIDE;
|
| + virtual void OnExtensionWillBeInstalled(
|
| + content::BrowserContext* browser_context,
|
| + const Extension* extension,
|
| + bool is_update,
|
| + bool from_ephemeral,
|
| + const std::string& old_name) OVERRIDE;
|
| + virtual void OnExtensionUninstalled(content::BrowserContext* browser_context,
|
| + const Extension* extension) OVERRIDE;
|
|
|
| std::string GetNotificationId(const std::string& extension_id);
|
|
|
| @@ -73,23 +84,54 @@ class ExtensionStorageMonitor : public KeyedService,
|
| void StartMonitoringStorage(const Extension* extension);
|
| void StopMonitoringStorage(const std::string& extension_id);
|
| void StopMonitoringAll();
|
| +
|
| void RemoveNotificationForExtension(const std::string& extension_id);
|
| void RemoveAllNotifications();
|
|
|
| + // Returns/sets the next threshold for displaying a notification if an
|
| + // extension or app consumes excessive disk space.
|
| + int64 GetNextStorageThreshold(const std::string& extension_id) const;
|
| + void SetNextStorageThreshold(const std::string& extension_id,
|
| + int64 next_threshold);
|
| +
|
| + // Returns the raw next storage threshold value stored in prefs. Returns 0 if
|
| + // the initial threshold has not yet been reached.
|
| + int64 GetNextStorageThresholdFromPrefs(const std::string& extension_id) const;
|
| +
|
| + // Returns/sets whether notifications should be shown if an extension or app
|
| + // consumes too much disk space.
|
| + bool IsStorageNotificationEnabled(const std::string& extension_id) const;
|
| + void SetStorageNotificationEnabled(const std::string& extension_id,
|
| + bool enable_notifications);
|
| +
|
| // Initially, monitoring will only be applied to ephemeral apps. This flag
|
| // is set by tests to enable for all extensions and apps.
|
| bool enable_for_all_extensions_;
|
|
|
| + // The first notification is shown after the initial threshold is exceeded.
|
| + // Ephemeral apps have a lower threshold than fully installed extensions.
|
| // A lower threshold is set by tests.
|
| int64 initial_extension_threshold_;
|
| int64 initial_ephemeral_threshold_;
|
| +
|
| + // The rate (in seconds) at which we would like to receive storage updates
|
| + // from QuotaManager. Overridden in tests.
|
| int observer_rate_;
|
|
|
| + // IDs of extensions that notifications were shown for.
|
| std::set<std::string> notified_extension_ids_;
|
|
|
| content::BrowserContext* context_;
|
| + extensions::ExtensionPrefs* extension_prefs_;
|
| +
|
| content::NotificationRegistrar registrar_;
|
| + ScopedObserver<extensions::ExtensionRegistry,
|
| + extensions::ExtensionRegistryObserver>
|
| + extension_registry_observer_;
|
| +
|
| + // StorageEventObserver monitors storage for extensions on the IO thread.
|
| scoped_refptr<StorageEventObserver> storage_observer_;
|
| +
|
| base::WeakPtrFactory<ExtensionStorageMonitor> weak_ptr_factory_;
|
|
|
| friend class StorageEventObserver;
|
|
|