Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Side by Side Diff: extensions/browser/warning_service.cc

Issue 698623002: Split WarningService from ExtensionSystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: virtual -> override Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « extensions/browser/warning_service.h ('k') | extensions/browser/warning_service_factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "extensions/browser/warning_service.h" 5 #include "extensions/browser/warning_service.h"
6 6
7 #include "content/public/browser/browser_thread.h" 7 #include "content/public/browser/browser_thread.h"
8 #include "extensions/browser/extension_registry.h" 8 #include "extensions/browser/extension_registry.h"
9 #include "extensions/browser/extension_system.h"
10 #include "extensions/browser/extensions_browser_client.h" 9 #include "extensions/browser/extensions_browser_client.h"
10 #include "extensions/browser/warning_service_factory.h"
11 #include "extensions/common/extension_set.h" 11 #include "extensions/common/extension_set.h"
12 12
13 using content::BrowserThread; 13 using content::BrowserThread;
14 14
15 namespace extensions { 15 namespace extensions {
16 16
17 WarningService::WarningService(content::BrowserContext* browser_context) 17 WarningService::WarningService(content::BrowserContext* browser_context)
18 : browser_context_(browser_context), extension_registry_observer_(this) { 18 : browser_context_(browser_context), extension_registry_observer_(this) {
19 DCHECK(CalledOnValidThread()); 19 DCHECK(CalledOnValidThread());
20 if (browser_context_) { 20 if (browser_context_) {
21 extension_registry_observer_.Add(ExtensionRegistry::Get( 21 extension_registry_observer_.Add(ExtensionRegistry::Get(
22 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context_))); 22 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context_)));
23 } 23 }
24 } 24 }
25 25
26 WarningService::~WarningService() {} 26 WarningService::~WarningService() {}
27 27
28 // static
29 WarningService* WarningService::Get(content::BrowserContext* browser_context) {
30 return WarningServiceFactory::GetForBrowserContext(browser_context);
31 }
32
28 void WarningService::ClearWarnings( 33 void WarningService::ClearWarnings(
29 const std::set<Warning::WarningType>& types) { 34 const std::set<Warning::WarningType>& types) {
30 DCHECK(CalledOnValidThread()); 35 DCHECK(CalledOnValidThread());
31 bool deleted_anything = false; 36 bool deleted_anything = false;
32 for (WarningSet::iterator i = warnings_.begin(); 37 for (WarningSet::iterator i = warnings_.begin();
33 i != warnings_.end();) { 38 i != warnings_.end();) {
34 if (types.find(i->warning_type()) != types.end()) { 39 if (types.find(i->warning_type()) != types.end()) {
35 deleted_anything = true; 40 deleted_anything = true;
36 warnings_.erase(i++); 41 warnings_.erase(i++);
37 } else { 42 } else {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 DCHECK_CURRENTLY_ON(BrowserThread::UI); 93 DCHECK_CURRENTLY_ON(BrowserThread::UI);
89 content::BrowserContext* browser_context = 94 content::BrowserContext* browser_context =
90 reinterpret_cast<content::BrowserContext*>(profile_id); 95 reinterpret_cast<content::BrowserContext*>(profile_id);
91 96
92 if (!browser_context || 97 if (!browser_context ||
93 !ExtensionsBrowserClient::Get() || 98 !ExtensionsBrowserClient::Get() ||
94 !ExtensionsBrowserClient::Get()->IsValidContext(browser_context)) { 99 !ExtensionsBrowserClient::Get()->IsValidContext(browser_context)) {
95 return; 100 return;
96 } 101 }
97 102
98 WarningService* warning_service = 103 WarningService* warning_service = WarningService::Get(browser_context);
99 ExtensionSystem::Get(browser_context)->warning_service();
100 104
101 warning_service->AddWarnings(warnings); 105 warning_service->AddWarnings(warnings);
102 } 106 }
103 107
104 void WarningService::AddObserver(Observer* observer) { 108 void WarningService::AddObserver(Observer* observer) {
105 observer_list_.AddObserver(observer); 109 observer_list_.AddObserver(observer);
106 } 110 }
107 111
108 void WarningService::RemoveObserver(Observer* observer) { 112 void WarningService::RemoveObserver(Observer* observer) {
109 observer_list_.RemoveObserver(observer); 113 observer_list_.RemoveObserver(observer);
110 } 114 }
111 115
112 void WarningService::NotifyWarningsChanged() { 116 void WarningService::NotifyWarningsChanged() {
113 FOR_EACH_OBSERVER(Observer, observer_list_, ExtensionWarningsChanged()); 117 FOR_EACH_OBSERVER(Observer, observer_list_, ExtensionWarningsChanged());
114 } 118 }
115 119
116 void WarningService::OnExtensionUnloaded( 120 void WarningService::OnExtensionUnloaded(
117 content::BrowserContext* browser_context, 121 content::BrowserContext* browser_context,
118 const Extension* extension, 122 const Extension* extension,
119 UnloadedExtensionInfo::Reason reason) { 123 UnloadedExtensionInfo::Reason reason) {
120 // Unloading one extension might have solved the problems of others. 124 // Unloading one extension might have solved the problems of others.
121 // Therefore, we clear warnings of this type for all extensions. 125 // Therefore, we clear warnings of this type for all extensions.
122 std::set<Warning::WarningType> warning_types = 126 std::set<Warning::WarningType> warning_types =
123 GetWarningTypesAffectingExtension(extension->id()); 127 GetWarningTypesAffectingExtension(extension->id());
124 ClearWarnings(warning_types); 128 ClearWarnings(warning_types);
125 } 129 }
126 130
127 } // namespace extensions 131 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/warning_service.h ('k') | extensions/browser/warning_service_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698