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

Side by Side Diff: chrome/browser/safe_browsing/local_database_manager.cc

Issue 1638223003: Add support for a module whitelist (goog-whitemodule-digest256) to the safe browsing db (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix browser test Created 4 years, 10 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
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 "chrome/browser/safe_browsing/local_database_manager.h" 5 #include "chrome/browser/safe_browsing/local_database_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 case INVALID: 87 case INVALID:
88 // |full_hashes| should never contain INVALID as a |list_id|. 88 // |full_hashes| should never contain INVALID as a |list_id|.
89 NOTREACHED(); 89 NOTREACHED();
90 break; 90 break;
91 case MALWARE: // Falls through. 91 case MALWARE: // Falls through.
92 case PHISH: // Falls through. 92 case PHISH: // Falls through.
93 case BINURL: // Falls through. 93 case BINURL: // Falls through.
94 case CSDWHITELIST: // Falls through. 94 case CSDWHITELIST: // Falls through.
95 case DOWNLOADWHITELIST: // Falls through. 95 case DOWNLOADWHITELIST: // Falls through.
96 case INCLUSIONWHITELIST: // Falls through. 96 case INCLUSIONWHITELIST: // Falls through.
97 case MODULEWHITELIST: // Falls through.
97 case EXTENSIONBLACKLIST: // Falls through. 98 case EXTENSIONBLACKLIST: // Falls through.
98 case IPBLACKLIST: 99 case IPBLACKLIST:
99 if (index) 100 if (index)
100 *index = i; 101 *index = i;
101 return threat; 102 return threat;
102 case UNWANTEDURL: 103 case UNWANTEDURL:
103 // UNWANTEDURL is considered less severe than other threats, keep 104 // UNWANTEDURL is considered less severe than other threats, keep
104 // looking. 105 // looking.
105 pending_threat = threat; 106 pending_threat = threat;
106 if (index) 107 if (index)
(...skipping 25 matching lines...) Expand all
132 switch (threat) { 133 switch (threat) {
133 case INVALID: 134 case INVALID:
134 // Ignore patterns with no matching threat. 135 // Ignore patterns with no matching threat.
135 break; 136 break;
136 case MALWARE: // Falls through. 137 case MALWARE: // Falls through.
137 case PHISH: // Falls through. 138 case PHISH: // Falls through.
138 case BINURL: // Falls through. 139 case BINURL: // Falls through.
139 case CSDWHITELIST: // Falls through. 140 case CSDWHITELIST: // Falls through.
140 case DOWNLOADWHITELIST: // Falls through. 141 case DOWNLOADWHITELIST: // Falls through.
141 case INCLUSIONWHITELIST: // Falls through. 142 case INCLUSIONWHITELIST: // Falls through.
143 case MODULEWHITELIST: // Falls through.
142 case EXTENSIONBLACKLIST: // Falls through. 144 case EXTENSIONBLACKLIST: // Falls through.
143 case IPBLACKLIST: 145 case IPBLACKLIST:
144 return threat; 146 return threat;
145 case UNWANTEDURL: 147 case UNWANTEDURL:
146 // UNWANTEDURL is considered less severe than other threats, keep 148 // UNWANTEDURL is considered less severe than other threats, keep
147 // looking. 149 // looking.
148 pending_threat = threat; 150 pending_threat = threat;
149 break; 151 break;
150 } 152 }
151 } 153 }
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 const scoped_refptr<SafeBrowsingService>& service) 263 const scoped_refptr<SafeBrowsingService>& service)
262 : sb_service_(service), 264 : sb_service_(service),
263 database_(NULL), 265 database_(NULL),
264 enabled_(false), 266 enabled_(false),
265 enable_download_protection_(false), 267 enable_download_protection_(false),
266 enable_csd_whitelist_(false), 268 enable_csd_whitelist_(false),
267 enable_download_whitelist_(false), 269 enable_download_whitelist_(false),
268 enable_extension_blacklist_(false), 270 enable_extension_blacklist_(false),
269 enable_ip_blacklist_(false), 271 enable_ip_blacklist_(false),
270 enable_unwanted_software_blacklist_(true), 272 enable_unwanted_software_blacklist_(true),
273 enable_module_whitelist_(true),
271 update_in_progress_(false), 274 update_in_progress_(false),
272 database_update_in_progress_(false), 275 database_update_in_progress_(false),
273 closing_database_(false), 276 closing_database_(false),
274 check_timeout_(base::TimeDelta::FromMilliseconds(kCheckTimeoutMs)) { 277 check_timeout_(base::TimeDelta::FromMilliseconds(kCheckTimeoutMs)) {
275 DCHECK_CURRENTLY_ON(BrowserThread::UI); 278 DCHECK_CURRENTLY_ON(BrowserThread::UI);
276 DCHECK(sb_service_.get() != NULL); 279 DCHECK(sb_service_.get() != NULL);
277 280
278 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); 281 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
279 enable_download_protection_ = 282 enable_download_protection_ =
280 !cmdline->HasSwitch(switches::kSbDisableDownloadProtection); 283 !cmdline->HasSwitch(switches::kSbDisableDownloadProtection);
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 } 429 }
427 430
428 bool LocalSafeBrowsingDatabaseManager::MatchInclusionWhitelistUrl( 431 bool LocalSafeBrowsingDatabaseManager::MatchInclusionWhitelistUrl(
429 const GURL& url) { 432 const GURL& url) {
430 DCHECK_CURRENTLY_ON(BrowserThread::IO); 433 DCHECK_CURRENTLY_ON(BrowserThread::IO);
431 if (!enabled_ || !MakeDatabaseAvailable()) 434 if (!enabled_ || !MakeDatabaseAvailable())
432 return true; 435 return true;
433 return database_->ContainsInclusionWhitelistedUrl(url); 436 return database_->ContainsInclusionWhitelistedUrl(url);
434 } 437 }
435 438
439 bool LocalSafeBrowsingDatabaseManager::MatchModuleWhitelistString(
440 const std::string& str) {
441 DCHECK_CURRENTLY_ON(BrowserThread::IO);
442 if (!enabled_ || !enable_module_whitelist_ || !MakeDatabaseAvailable()) {
443 return true;
444 }
445 return database_->ContainsModuleWhitelistedString(str);
446 }
447
436 bool LocalSafeBrowsingDatabaseManager::IsMalwareKillSwitchOn() { 448 bool LocalSafeBrowsingDatabaseManager::IsMalwareKillSwitchOn() {
437 DCHECK_CURRENTLY_ON(BrowserThread::IO); 449 DCHECK_CURRENTLY_ON(BrowserThread::IO);
438 if (!enabled_ || !MakeDatabaseAvailable()) { 450 if (!enabled_ || !MakeDatabaseAvailable()) {
439 return true; 451 return true;
440 } 452 }
441 return database_->IsMalwareIPMatchKillSwitchOn(); 453 return database_->IsMalwareIPMatchKillSwitchOn();
442 } 454 }
443 455
444 bool LocalSafeBrowsingDatabaseManager::IsCsdWhitelistKillSwitchOn() { 456 bool LocalSafeBrowsingDatabaseManager::IsCsdWhitelistKillSwitchOn() {
445 DCHECK_CURRENTLY_ON(BrowserThread::IO); 457 DCHECK_CURRENTLY_ON(BrowserThread::IO);
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 785 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
774 786
775 if (database_) 787 if (database_)
776 return database_; 788 return database_;
777 789
778 const base::TimeTicks before = base::TimeTicks::Now(); 790 const base::TimeTicks before = base::TimeTicks::Now();
779 SafeBrowsingDatabase* database = SafeBrowsingDatabase::Create( 791 SafeBrowsingDatabase* database = SafeBrowsingDatabase::Create(
780 safe_browsing_task_runner_, enable_download_protection_, 792 safe_browsing_task_runner_, enable_download_protection_,
781 enable_csd_whitelist_, enable_download_whitelist_, 793 enable_csd_whitelist_, enable_download_whitelist_,
782 enable_extension_blacklist_, enable_ip_blacklist_, 794 enable_extension_blacklist_, enable_ip_blacklist_,
783 enable_unwanted_software_blacklist_); 795 enable_unwanted_software_blacklist_, enable_module_whitelist_);
784 796
785 database->Init(SafeBrowsingService::GetBaseFilename()); 797 database->Init(SafeBrowsingService::GetBaseFilename());
786 { 798 {
787 // Acquiring the lock here guarantees correct ordering between the writes to 799 // Acquiring the lock here guarantees correct ordering between the writes to
788 // the new database object above, and the setting of |database_| below. 800 // the new database object above, and the setting of |database_| below.
789 base::AutoLock lock(database_lock_); 801 base::AutoLock lock(database_lock_);
790 database_ = database; 802 database_ = database;
791 } 803 }
792 804
793 BrowserThread::PostTask( 805 BrowserThread::PostTask(
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1202 FROM_HERE, base::Bind(&LocalSafeBrowsingDatabaseManager::TimeoutCallback, 1214 FROM_HERE, base::Bind(&LocalSafeBrowsingDatabaseManager::TimeoutCallback,
1203 check->weak_ptr_factory_->GetWeakPtr(), check), 1215 check->weak_ptr_factory_->GetWeakPtr(), check),
1204 check_timeout_); 1216 check_timeout_);
1205 } 1217 }
1206 1218
1207 bool LocalSafeBrowsingDatabaseManager::download_protection_enabled() const { 1219 bool LocalSafeBrowsingDatabaseManager::download_protection_enabled() const {
1208 return enable_download_protection_; 1220 return enable_download_protection_;
1209 } 1221 }
1210 1222
1211 } // namespace safe_browsing 1223 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/local_database_manager.h ('k') | chrome/browser/safe_browsing/safe_browsing_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698