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

Side by Side Diff: chrome/browser/extensions/blacklist.cc

Issue 1420053005: Move code in components/safe_browsing_db and chrome/browser/s_b/ under the safe_browsing namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@02_components_move
Patch Set: Merging the latest changes from trunk. Created 5 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/extensions/blacklist.h" 5 #include "chrome/browser/extensions/blacklist.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 26 matching lines...) Expand all
37 public: 37 public:
38 LazySafeBrowsingDatabaseManager() { 38 LazySafeBrowsingDatabaseManager() {
39 #if defined(SAFE_BROWSING_DB_LOCAL) 39 #if defined(SAFE_BROWSING_DB_LOCAL)
40 if (g_browser_process && g_browser_process->safe_browsing_service()) { 40 if (g_browser_process && g_browser_process->safe_browsing_service()) {
41 instance_ = 41 instance_ =
42 g_browser_process->safe_browsing_service()->database_manager(); 42 g_browser_process->safe_browsing_service()->database_manager();
43 } 43 }
44 #endif 44 #endif
45 } 45 }
46 46
47 scoped_refptr<SafeBrowsingDatabaseManager> get() { 47 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> get() {
Nathan Parker 2015/11/05 22:00:52 My opinion: If there are more than 2 or 3 uses in
vakh (old account. dont use) 2015/11/07 01:22:56 Done.
48 return instance_; 48 return instance_;
49 } 49 }
50 50
51 void set(scoped_refptr<SafeBrowsingDatabaseManager> instance) { 51 void set(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> instance) {
52 instance_ = instance; 52 instance_ = instance;
53 } 53 }
54 54
55 private: 55 private:
56 scoped_refptr<SafeBrowsingDatabaseManager> instance_; 56 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> instance_;
57 }; 57 };
58 58
59 static base::LazyInstance<LazySafeBrowsingDatabaseManager> g_database_manager = 59 static base::LazyInstance<LazySafeBrowsingDatabaseManager> g_database_manager =
60 LAZY_INSTANCE_INITIALIZER; 60 LAZY_INSTANCE_INITIALIZER;
61 61
62 // Implementation of SafeBrowsingDatabaseManager::Client, the class which is 62 // Implementation of SafeBrowsingDatabaseManager::Client, the class which is
63 // called back from safebrowsing queries. 63 // called back from safebrowsing queries.
64 // 64 //
65 // Constructed on any thread but lives on the IO from then on. 65 // Constructed on any thread but lives on the IO from then on.
66 class SafeBrowsingClientImpl 66 class SafeBrowsingClientImpl
67 : public SafeBrowsingDatabaseManager::Client, 67 : public safe_browsing::SafeBrowsingDatabaseManager::Client,
68 public base::RefCountedThreadSafe<SafeBrowsingClientImpl> { 68 public base::RefCountedThreadSafe<SafeBrowsingClientImpl> {
69 public: 69 public:
70 typedef base::Callback<void(const std::set<std::string>&)> OnResultCallback; 70 typedef base::Callback<void(const std::set<std::string>&)> OnResultCallback;
71 71
72 // Constructs a client to query the database manager for |extension_ids| and 72 // Constructs a client to query the database manager for |extension_ids| and
73 // run |callback| with the IDs of those which have been blacklisted. 73 // run |callback| with the IDs of those which have been blacklisted.
74 SafeBrowsingClientImpl( 74 SafeBrowsingClientImpl(
75 const std::set<std::string>& extension_ids, 75 const std::set<std::string>& extension_ids,
76 const OnResultCallback& callback) 76 const OnResultCallback& callback)
77 : callback_task_runner_(base::ThreadTaskRunnerHandle::Get()), 77 : callback_task_runner_(base::ThreadTaskRunnerHandle::Get()),
78 callback_(callback) { 78 callback_(callback) {
79 BrowserThread::PostTask( 79 BrowserThread::PostTask(
80 BrowserThread::IO, 80 BrowserThread::IO,
81 FROM_HERE, 81 FROM_HERE,
82 base::Bind(&SafeBrowsingClientImpl::StartCheck, this, 82 base::Bind(&SafeBrowsingClientImpl::StartCheck, this,
83 g_database_manager.Get().get(), 83 g_database_manager.Get().get(),
84 extension_ids)); 84 extension_ids));
85 } 85 }
86 86
87 private: 87 private:
88 friend class base::RefCountedThreadSafe<SafeBrowsingClientImpl>; 88 friend class base::RefCountedThreadSafe<SafeBrowsingClientImpl>;
89 ~SafeBrowsingClientImpl() override {} 89 ~SafeBrowsingClientImpl() override {}
90 90
91 // Pass |database_manager| as a parameter to avoid touching 91 // Pass |database_manager| as a parameter to avoid touching
92 // SafeBrowsingService on the IO thread. 92 // SafeBrowsingService on the IO thread.
93 void StartCheck(scoped_refptr<SafeBrowsingDatabaseManager> database_manager, 93 void StartCheck(scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
94 database_manager,
94 const std::set<std::string>& extension_ids) { 95 const std::set<std::string>& extension_ids) {
95 DCHECK_CURRENTLY_ON(BrowserThread::IO); 96 DCHECK_CURRENTLY_ON(BrowserThread::IO);
96 if (database_manager->CheckExtensionIDs(extension_ids, this)) { 97 if (database_manager->CheckExtensionIDs(extension_ids, this)) {
97 // Definitely not blacklisted. Callback immediately. 98 // Definitely not blacklisted. Callback immediately.
98 callback_task_runner_->PostTask( 99 callback_task_runner_->PostTask(
99 FROM_HERE, 100 FROM_HERE,
100 base::Bind(callback_, std::set<std::string>())); 101 base::Bind(callback_, std::set<std::string>()));
101 return; 102 return;
102 } 103 }
103 // Something might be blacklisted, response will come in 104 // Something might be blacklisted, response will come in
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 143
143 Blacklist::Observer::Observer(Blacklist* blacklist) : blacklist_(blacklist) { 144 Blacklist::Observer::Observer(Blacklist* blacklist) : blacklist_(blacklist) {
144 blacklist_->AddObserver(this); 145 blacklist_->AddObserver(this);
145 } 146 }
146 147
147 Blacklist::Observer::~Observer() { 148 Blacklist::Observer::~Observer() {
148 blacklist_->RemoveObserver(this); 149 blacklist_->RemoveObserver(this);
149 } 150 }
150 151
151 Blacklist::ScopedDatabaseManagerForTest::ScopedDatabaseManagerForTest( 152 Blacklist::ScopedDatabaseManagerForTest::ScopedDatabaseManagerForTest(
152 scoped_refptr<SafeBrowsingDatabaseManager> database_manager) 153 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> database_manager)
153 : original_(GetDatabaseManager()) { 154 : original_(GetDatabaseManager()) {
154 SetDatabaseManager(database_manager); 155 SetDatabaseManager(database_manager);
155 } 156 }
156 157
157 Blacklist::ScopedDatabaseManagerForTest::~ScopedDatabaseManagerForTest() { 158 Blacklist::ScopedDatabaseManagerForTest::~ScopedDatabaseManagerForTest() {
158 SetDatabaseManager(original_); 159 SetDatabaseManager(original_);
159 } 160 }
160 161
161 Blacklist::Blacklist(ExtensionPrefs* prefs) { 162 Blacklist::Blacklist(ExtensionPrefs* prefs) {
162 scoped_refptr<SafeBrowsingDatabaseManager> database_manager = 163 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> database_manager =
163 g_database_manager.Get().get(); 164 g_database_manager.Get().get();
164 if (database_manager.get()) { 165 if (database_manager.get()) {
165 registrar_.Add( 166 registrar_.Add(this, chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
166 this, 167 content::Source<safe_browsing::SafeBrowsingDatabaseManager>(
167 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, 168 database_manager.get()));
168 content::Source<SafeBrowsingDatabaseManager>(database_manager.get()));
169 } 169 }
170 170
171 // Clear out the old prefs-backed blacklist, stored as empty extension entries 171 // Clear out the old prefs-backed blacklist, stored as empty extension entries
172 // with just a "blacklisted" property. 172 // with just a "blacklisted" property.
173 // 173 //
174 // TODO(kalman): Delete this block of code, see http://crbug.com/295882. 174 // TODO(kalman): Delete this block of code, see http://crbug.com/295882.
175 std::set<std::string> blacklisted = prefs->GetBlacklistedExtensions(); 175 std::set<std::string> blacklisted = prefs->GetBlacklistedExtensions();
176 for (std::set<std::string>::iterator it = blacklisted.begin(); 176 for (std::set<std::string>::iterator it = blacklisted.begin();
177 it != blacklisted.end(); ++it) { 177 it != blacklisted.end(); ++it) {
178 if (!prefs->GetInstalledExtensionInfo(*it)) 178 if (!prefs->GetInstalledExtensionInfo(*it))
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 observers_.AddObserver(observer); 332 observers_.AddObserver(observer);
333 } 333 }
334 334
335 void Blacklist::RemoveObserver(Observer* observer) { 335 void Blacklist::RemoveObserver(Observer* observer) {
336 DCHECK_CURRENTLY_ON(BrowserThread::UI); 336 DCHECK_CURRENTLY_ON(BrowserThread::UI);
337 observers_.RemoveObserver(observer); 337 observers_.RemoveObserver(observer);
338 } 338 }
339 339
340 // static 340 // static
341 void Blacklist::SetDatabaseManager( 341 void Blacklist::SetDatabaseManager(
342 scoped_refptr<SafeBrowsingDatabaseManager> database_manager) { 342 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
343 database_manager) {
343 g_database_manager.Get().set(database_manager); 344 g_database_manager.Get().set(database_manager);
344 } 345 }
345 346
346 // static 347 // static
347 scoped_refptr<SafeBrowsingDatabaseManager> Blacklist::GetDatabaseManager() { 348 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager>
349 Blacklist::GetDatabaseManager() {
348 return g_database_manager.Get().get(); 350 return g_database_manager.Get().get();
349 } 351 }
350 352
351 void Blacklist::Observe(int type, 353 void Blacklist::Observe(int type,
352 const content::NotificationSource& source, 354 const content::NotificationSource& source,
353 const content::NotificationDetails& details) { 355 const content::NotificationDetails& details) {
354 DCHECK_EQ(chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, type); 356 DCHECK_EQ(chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, type);
355 FOR_EACH_OBSERVER(Observer, observers_, OnBlacklistUpdated()); 357 FOR_EACH_OBSERVER(Observer, observers_, OnBlacklistUpdated());
356 } 358 }
357 359
358 } // namespace extensions 360 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698