Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 EXTENSIONS_BROWSER_WARNING_SERVICE_H_ | 5 #ifndef EXTENSIONS_BROWSER_WARNING_SERVICE_H_ |
| 6 #define EXTENSIONS_BROWSER_WARNING_SERVICE_H_ | 6 #define EXTENSIONS_BROWSER_WARNING_SERVICE_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 // Manages a set of warnings caused by extensions. These warnings (e.g. | 31 // Manages a set of warnings caused by extensions. These warnings (e.g. |
| 32 // conflicting modifications of network requests by extensions, slow extensions, | 32 // conflicting modifications of network requests by extensions, slow extensions, |
| 33 // etc.) trigger a warning badge in the UI and and provide means to resolve | 33 // etc.) trigger a warning badge in the UI and and provide means to resolve |
| 34 // them. This class must be used on the UI thread only. | 34 // them. This class must be used on the UI thread only. |
| 35 class WarningService : public KeyedService, | 35 class WarningService : public KeyedService, |
| 36 public ExtensionRegistryObserver, | 36 public ExtensionRegistryObserver, |
| 37 public base::NonThreadSafe { | 37 public base::NonThreadSafe { |
| 38 public: | 38 public: |
| 39 class Observer { | 39 class Observer { |
| 40 public: | 40 public: |
| 41 virtual void ExtensionWarningsChanged() = 0; | 41 virtual void ExtensionWarningsChanged( |
| 42 const std::set<std::string>& affected_extensions) = 0; | |
|
not at google - send to devlin
2015/05/19 20:35:05
I'd like to pass around an ExtensionSet, but I see
Devlin
2015/05/19 22:01:08
Sure, why not.
| |
| 42 }; | 43 }; |
| 43 | 44 |
| 44 // |browser_context| may be NULL for testing. In this case, be sure to not | 45 // |browser_context| may be NULL for testing. In this case, be sure to not |
| 45 // insert any warnings. | 46 // insert any warnings. |
| 46 explicit WarningService(content::BrowserContext* browser_context); | 47 explicit WarningService(content::BrowserContext* browser_context); |
| 47 ~WarningService() override; | 48 ~WarningService() override; |
| 48 | 49 |
| 49 // Get the instance of the WarningService for |browser_context|. | 50 // Get the instance of the WarningService for |browser_context|. |
| 50 // Redirected in incognito. | 51 // Redirected in incognito. |
| 51 static WarningService* Get(content::BrowserContext* browser_context); | 52 static WarningService* Get(content::BrowserContext* browser_context); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 68 void AddWarnings(const WarningSet& warnings); | 69 void AddWarnings(const WarningSet& warnings); |
| 69 | 70 |
| 70 // Notifies the WarningService of browser_context |browser_context_id| that | 71 // Notifies the WarningService of browser_context |browser_context_id| that |
| 71 // new |warnings| occurred and triggers a warning badge. | 72 // new |warnings| occurred and triggers a warning badge. |
| 72 static void NotifyWarningsOnUI(void* profile_id, const WarningSet& warnings); | 73 static void NotifyWarningsOnUI(void* profile_id, const WarningSet& warnings); |
| 73 | 74 |
| 74 void AddObserver(Observer* observer); | 75 void AddObserver(Observer* observer); |
| 75 void RemoveObserver(Observer* observer); | 76 void RemoveObserver(Observer* observer); |
| 76 | 77 |
| 77 private: | 78 private: |
| 78 void NotifyWarningsChanged(); | 79 void NotifyWarningsChanged(const std::set<std::string>& affected_extensions); |
| 79 | 80 |
| 80 // ExtensionRegistryObserver implementation. | 81 // ExtensionRegistryObserver implementation. |
| 81 void OnExtensionUnloaded(content::BrowserContext* browser_context, | 82 void OnExtensionUnloaded(content::BrowserContext* browser_context, |
| 82 const Extension* extension, | 83 const Extension* extension, |
| 83 UnloadedExtensionInfo::Reason reason) override; | 84 UnloadedExtensionInfo::Reason reason) override; |
| 84 | 85 |
| 85 // Currently existing warnings. | 86 // Currently existing warnings. |
| 86 WarningSet warnings_; | 87 WarningSet warnings_; |
| 87 | 88 |
| 88 content::BrowserContext* const browser_context_; | 89 content::BrowserContext* const browser_context_; |
| 89 | 90 |
| 90 // Listen to extension unloaded notifications. | 91 // Listen to extension unloaded notifications. |
| 91 ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> | 92 ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> |
| 92 extension_registry_observer_; | 93 extension_registry_observer_; |
| 93 | 94 |
| 94 ObserverList<Observer> observer_list_; | 95 ObserverList<Observer> observer_list_; |
| 95 }; | 96 }; |
| 96 | 97 |
| 97 } // namespace extensions | 98 } // namespace extensions |
| 98 | 99 |
| 99 #endif // EXTENSIONS_BROWSER_WARNING_SERVICE_H_ | 100 #endif // EXTENSIONS_BROWSER_WARNING_SERVICE_H_ |
| OLD | NEW |