| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <set> | 10 #include <set> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 namespace gfx { | 26 namespace gfx { |
| 27 class Image; | 27 class Image; |
| 28 } | 28 } |
| 29 | 29 |
| 30 namespace extensions { | 30 namespace extensions { |
| 31 | 31 |
| 32 class Extension; | 32 class Extension; |
| 33 class ExtensionPrefs; | 33 class ExtensionPrefs; |
| 34 class ExtensionRegistry; | 34 class ExtensionRegistry; |
| 35 class StorageEventObserver; | 35 class ExtensionStorageMonitorIOHelper; |
| 36 | 36 |
| 37 // ExtensionStorageMonitor monitors the storage usage of extensions and apps | 37 // ExtensionStorageMonitor monitors the storage usage of extensions and apps |
| 38 // that are granted unlimited storage and displays notifications when high | 38 // that are granted unlimited storage and displays notifications when high |
| 39 // usage is detected. | 39 // usage is detected. |
| 40 class ExtensionStorageMonitor : public KeyedService, | 40 class ExtensionStorageMonitor : public KeyedService, |
| 41 public content::NotificationObserver, | 41 public content::NotificationObserver, |
| 42 public ExtensionRegistryObserver, | 42 public ExtensionRegistryObserver, |
| 43 public ExtensionUninstallDialog::Delegate { | 43 public ExtensionUninstallDialog::Delegate { |
| 44 public: | 44 public: |
| 45 static ExtensionStorageMonitor* Get(content::BrowserContext* context); | 45 static ExtensionStorageMonitor* Get(content::BrowserContext* context); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 std::set<std::string> notified_extension_ids_; | 132 std::set<std::string> notified_extension_ids_; |
| 133 | 133 |
| 134 content::BrowserContext* context_; | 134 content::BrowserContext* context_; |
| 135 extensions::ExtensionPrefs* extension_prefs_; | 135 extensions::ExtensionPrefs* extension_prefs_; |
| 136 | 136 |
| 137 content::NotificationRegistrar registrar_; | 137 content::NotificationRegistrar registrar_; |
| 138 ScopedObserver<extensions::ExtensionRegistry, | 138 ScopedObserver<extensions::ExtensionRegistry, |
| 139 extensions::ExtensionRegistryObserver> | 139 extensions::ExtensionRegistryObserver> |
| 140 extension_registry_observer_; | 140 extension_registry_observer_; |
| 141 | 141 |
| 142 // StorageEventObserver monitors storage for extensions on the IO thread. | 142 // ExtensionStorageMonitorIOHelper maintains, on the IO thread, an instance of |
| 143 scoped_refptr<StorageEventObserver> storage_observer_; | 143 // SingleExtensionStorageObserver for each extension. |
| 144 scoped_refptr<ExtensionStorageMonitorIOHelper> io_helper_; |
| 144 | 145 |
| 145 // Modal dialog used to confirm removal of an extension. | 146 // Modal dialog used to confirm removal of an extension. |
| 146 std::unique_ptr<ExtensionUninstallDialog> uninstall_dialog_; | 147 std::unique_ptr<ExtensionUninstallDialog> uninstall_dialog_; |
| 147 | 148 |
| 148 // The ID of the extension that is the subject of the uninstall confirmation | 149 // The ID of the extension that is the subject of the uninstall confirmation |
| 149 // dialog. | 150 // dialog. |
| 150 std::string uninstall_extension_id_; | 151 std::string uninstall_extension_id_; |
| 151 | 152 |
| 152 base::WeakPtrFactory<ExtensionStorageMonitor> weak_ptr_factory_; | 153 base::WeakPtrFactory<ExtensionStorageMonitor> weak_ptr_factory_; |
| 153 | 154 |
| 154 friend class StorageEventObserver; | 155 friend class SingleExtensionStorageObserver; |
| 155 friend class ExtensionStorageMonitorTest; | 156 friend class ExtensionStorageMonitorTest; |
| 156 | 157 |
| 157 DISALLOW_COPY_AND_ASSIGN(ExtensionStorageMonitor); | 158 DISALLOW_COPY_AND_ASSIGN(ExtensionStorageMonitor); |
| 158 }; | 159 }; |
| 159 | 160 |
| 160 } // namespace extensions | 161 } // namespace extensions |
| 161 | 162 |
| 162 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ | 163 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_STORAGE_MONITOR_H_ |
| OLD | NEW |