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

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

Issue 2915523002: Replace deprecated base::NonThreadSafe in extensions in favor of SequenceChecker. (Closed)
Patch Set: Add TestBrowserThreadBundle Created 3 years, 6 months 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_unittest.cc » ('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/extensions_browser_client.h" 9 #include "extensions/browser/extensions_browser_client.h"
10 #include "extensions/browser/warning_service_factory.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_CURRENTLY_ON(BrowserThread::UI);
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 DCHECK_CURRENTLY_ON(BrowserThread::UI);
28 }
27 29
28 // static 30 // static
29 WarningService* WarningService::Get(content::BrowserContext* browser_context) { 31 WarningService* WarningService::Get(content::BrowserContext* browser_context) {
30 return WarningServiceFactory::GetForBrowserContext(browser_context); 32 return WarningServiceFactory::GetForBrowserContext(browser_context);
31 } 33 }
32 34
33 void WarningService::ClearWarnings( 35 void WarningService::ClearWarnings(
34 const std::set<Warning::WarningType>& types) { 36 const std::set<Warning::WarningType>& types) {
35 DCHECK(CalledOnValidThread()); 37 DCHECK_CURRENTLY_ON(BrowserThread::UI);
36 ExtensionIdSet affected_extensions; 38 ExtensionIdSet affected_extensions;
37 for (WarningSet::iterator i = warnings_.begin(); 39 for (WarningSet::iterator i = warnings_.begin();
38 i != warnings_.end();) { 40 i != warnings_.end();) {
39 if (types.find(i->warning_type()) != types.end()) { 41 if (types.find(i->warning_type()) != types.end()) {
40 affected_extensions.insert(i->extension_id()); 42 affected_extensions.insert(i->extension_id());
41 warnings_.erase(i++); 43 warnings_.erase(i++);
42 } else { 44 } else {
43 ++i; 45 ++i;
44 } 46 }
45 } 47 }
46 48
47 if (!affected_extensions.empty()) 49 if (!affected_extensions.empty())
48 NotifyWarningsChanged(affected_extensions); 50 NotifyWarningsChanged(affected_extensions);
49 } 51 }
50 52
51 std::set<Warning::WarningType> WarningService:: 53 std::set<Warning::WarningType> WarningService::
52 GetWarningTypesAffectingExtension(const std::string& extension_id) const { 54 GetWarningTypesAffectingExtension(const std::string& extension_id) const {
53 DCHECK(CalledOnValidThread()); 55 DCHECK_CURRENTLY_ON(BrowserThread::UI);
54 std::set<Warning::WarningType> result; 56 std::set<Warning::WarningType> result;
55 for (WarningSet::const_iterator i = warnings_.begin(); 57 for (WarningSet::const_iterator i = warnings_.begin();
56 i != warnings_.end(); ++i) { 58 i != warnings_.end(); ++i) {
57 if (i->extension_id() == extension_id) 59 if (i->extension_id() == extension_id)
58 result.insert(i->warning_type()); 60 result.insert(i->warning_type());
59 } 61 }
60 return result; 62 return result;
61 } 63 }
62 64
63 std::vector<std::string> WarningService::GetWarningMessagesForExtension( 65 std::vector<std::string> WarningService::GetWarningMessagesForExtension(
64 const std::string& extension_id) const { 66 const std::string& extension_id) const {
65 DCHECK(CalledOnValidThread()); 67 DCHECK_CURRENTLY_ON(BrowserThread::UI);
66 std::vector<std::string> result; 68 std::vector<std::string> result;
67 69
68 const ExtensionSet& extension_set = 70 const ExtensionSet& extension_set =
69 ExtensionRegistry::Get(browser_context_)->enabled_extensions(); 71 ExtensionRegistry::Get(browser_context_)->enabled_extensions();
70 72
71 for (WarningSet::const_iterator i = warnings_.begin(); 73 for (WarningSet::const_iterator i = warnings_.begin();
72 i != warnings_.end(); ++i) { 74 i != warnings_.end(); ++i) {
73 if (i->extension_id() == extension_id) 75 if (i->extension_id() == extension_id)
74 result.push_back(i->GetLocalizedMessage(&extension_set)); 76 result.push_back(i->GetLocalizedMessage(&extension_set));
75 } 77 }
76 return result; 78 return result;
77 } 79 }
78 80
79 void WarningService::AddWarnings(const WarningSet& warnings) { 81 void WarningService::AddWarnings(const WarningSet& warnings) {
80 DCHECK(CalledOnValidThread()); 82 DCHECK_CURRENTLY_ON(BrowserThread::UI);
81 83
82 ExtensionIdSet affected_extensions; 84 ExtensionIdSet affected_extensions;
83 for (const Warning& warning : warnings) { 85 for (const Warning& warning : warnings) {
84 if (warnings_.insert(warning).second) 86 if (warnings_.insert(warning).second)
85 affected_extensions.insert(warning.extension_id()); 87 affected_extensions.insert(warning.extension_id());
86 } 88 }
87 if (!affected_extensions.empty()) 89 if (!affected_extensions.empty())
88 NotifyWarningsChanged(affected_extensions); 90 NotifyWarningsChanged(affected_extensions);
89 } 91 }
90 92
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 const Extension* extension, 128 const Extension* extension,
127 UnloadedExtensionReason reason) { 129 UnloadedExtensionReason reason) {
128 // Unloading one extension might have solved the problems of others. 130 // Unloading one extension might have solved the problems of others.
129 // Therefore, we clear warnings of this type for all extensions. 131 // Therefore, we clear warnings of this type for all extensions.
130 std::set<Warning::WarningType> warning_types = 132 std::set<Warning::WarningType> warning_types =
131 GetWarningTypesAffectingExtension(extension->id()); 133 GetWarningTypesAffectingExtension(extension->id());
132 ClearWarnings(warning_types); 134 ClearWarnings(warning_types);
133 } 135 }
134 136
135 } // namespace extensions 137 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/warning_service.h ('k') | extensions/browser/warning_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698