| 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 #include "chrome/browser/safe_browsing/safe_browsing_database.h" | 5 #include "chrome/browser/safe_browsing/safe_browsing_database.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 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 | 337 |
| 338 SafeBrowsingDatabaseFactoryImpl() { } | 338 SafeBrowsingDatabaseFactoryImpl() { } |
| 339 | 339 |
| 340 private: | 340 private: |
| 341 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseFactoryImpl); | 341 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseFactoryImpl); |
| 342 }; | 342 }; |
| 343 | 343 |
| 344 // static | 344 // static |
| 345 SafeBrowsingDatabaseFactory* SafeBrowsingDatabase::factory_ = NULL; | 345 SafeBrowsingDatabaseFactory* SafeBrowsingDatabase::factory_ = NULL; |
| 346 | 346 |
| 347 // Factory method, non-thread safe. Caller has to make sure this s called | 347 // Factory method, non-thread safe. Caller has to make sure this is called |
| 348 // on SafeBrowsing Thread. | 348 // on SafeBrowsing Thread. |
| 349 // TODO(shess): There's no need for a factory any longer. Convert | 349 // TODO(shess): There's no need for a factory any longer. Convert |
| 350 // SafeBrowsingDatabaseNew to SafeBrowsingDatabase, and have Create() | 350 // SafeBrowsingDatabaseNew to SafeBrowsingDatabase, and have Create() |
| 351 // callers just construct things directly. | 351 // callers just construct things directly. |
| 352 SafeBrowsingDatabase* SafeBrowsingDatabase::Create( | 352 SafeBrowsingDatabase* SafeBrowsingDatabase::Create( |
| 353 bool enable_download_protection, | 353 bool enable_download_protection, |
| 354 bool enable_client_side_whitelist, | 354 bool enable_client_side_whitelist, |
| 355 bool enable_download_whitelist, | 355 bool enable_download_whitelist, |
| 356 bool enable_extension_blacklist, | 356 bool enable_extension_blacklist, |
| 357 bool enable_side_effect_free_whitelist, | 357 bool enable_side_effect_free_whitelist, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 return NULL; | 453 return NULL; |
| 454 } | 454 } |
| 455 | 455 |
| 456 // static | 456 // static |
| 457 void SafeBrowsingDatabase::RecordFailure(FailureType failure_type) { | 457 void SafeBrowsingDatabase::RecordFailure(FailureType failure_type) { |
| 458 UMA_HISTOGRAM_ENUMERATION("SB2.DatabaseFailure", failure_type, | 458 UMA_HISTOGRAM_ENUMERATION("SB2.DatabaseFailure", failure_type, |
| 459 FAILURE_DATABASE_MAX); | 459 FAILURE_DATABASE_MAX); |
| 460 } | 460 } |
| 461 | 461 |
| 462 SafeBrowsingDatabaseNew::SafeBrowsingDatabaseNew() | 462 SafeBrowsingDatabaseNew::SafeBrowsingDatabaseNew() |
| 463 : creation_loop_(base::MessageLoop::current()), | 463 : SafeBrowsingDatabaseNew(new SafeBrowsingStoreFile, |
| 464 browse_store_(new SafeBrowsingStoreFile), | 464 NULL, |
| 465 corruption_detected_(false), | 465 NULL, |
| 466 change_detected_(false), | 466 NULL, |
| 467 reset_factory_(this) { | 467 NULL, |
| 468 NULL, |
| 469 NULL, |
| 470 NULL) { |
| 468 DCHECK(browse_store_.get()); | 471 DCHECK(browse_store_.get()); |
| 469 DCHECK(!download_store_.get()); | 472 DCHECK(!download_store_.get()); |
| 470 DCHECK(!csd_whitelist_store_.get()); | 473 DCHECK(!csd_whitelist_store_.get()); |
| 471 DCHECK(!download_whitelist_store_.get()); | 474 DCHECK(!download_whitelist_store_.get()); |
| 472 DCHECK(!extension_blacklist_store_.get()); | 475 DCHECK(!extension_blacklist_store_.get()); |
| 473 DCHECK(!side_effect_free_whitelist_store_.get()); | 476 DCHECK(!side_effect_free_whitelist_store_.get()); |
| 474 DCHECK(!ip_blacklist_store_.get()); | 477 DCHECK(!ip_blacklist_store_.get()); |
| 475 DCHECK(!unwanted_software_store_.get()); | 478 DCHECK(!unwanted_software_store_.get()); |
| 476 } | 479 } |
| 477 | 480 |
| 478 SafeBrowsingDatabaseNew::SafeBrowsingDatabaseNew( | 481 SafeBrowsingDatabaseNew::SafeBrowsingDatabaseNew( |
| 479 SafeBrowsingStore* browse_store, | 482 SafeBrowsingStore* browse_store, |
| 480 SafeBrowsingStore* download_store, | 483 SafeBrowsingStore* download_store, |
| 481 SafeBrowsingStore* csd_whitelist_store, | 484 SafeBrowsingStore* csd_whitelist_store, |
| 482 SafeBrowsingStore* download_whitelist_store, | 485 SafeBrowsingStore* download_whitelist_store, |
| 483 SafeBrowsingStore* extension_blacklist_store, | 486 SafeBrowsingStore* extension_blacklist_store, |
| 484 SafeBrowsingStore* side_effect_free_whitelist_store, | 487 SafeBrowsingStore* side_effect_free_whitelist_store, |
| 485 SafeBrowsingStore* ip_blacklist_store, | 488 SafeBrowsingStore* ip_blacklist_store, |
| 486 SafeBrowsingStore* unwanted_software_store) | 489 SafeBrowsingStore* unwanted_software_store) |
| 487 : creation_loop_(base::MessageLoop::current()), | 490 : creation_loop_(base::MessageLoop::current()), |
| 488 browse_store_(browse_store), | 491 browse_store_(browse_store), |
| 489 download_store_(download_store), | 492 download_store_(download_store), |
| 490 csd_whitelist_store_(csd_whitelist_store), | 493 csd_whitelist_store_(csd_whitelist_store), |
| 491 download_whitelist_store_(download_whitelist_store), | 494 download_whitelist_store_(download_whitelist_store), |
| 492 extension_blacklist_store_(extension_blacklist_store), | 495 extension_blacklist_store_(extension_blacklist_store), |
| 493 side_effect_free_whitelist_store_(side_effect_free_whitelist_store), | 496 side_effect_free_whitelist_store_(side_effect_free_whitelist_store), |
| 494 ip_blacklist_store_(ip_blacklist_store), | 497 ip_blacklist_store_(ip_blacklist_store), |
| 495 unwanted_software_store_(unwanted_software_store), | 498 unwanted_software_store_(unwanted_software_store), |
| 496 corruption_detected_(false), | 499 corruption_detected_(false), |
| 500 change_detected_(false), |
| 497 reset_factory_(this) { | 501 reset_factory_(this) { |
| 498 DCHECK(browse_store_.get()); | 502 DCHECK(browse_store_.get()); |
| 499 } | 503 } |
| 500 | 504 |
| 501 SafeBrowsingDatabaseNew::~SafeBrowsingDatabaseNew() { | 505 SafeBrowsingDatabaseNew::~SafeBrowsingDatabaseNew() { |
| 502 // The DCHECK is disabled due to crbug.com/338486 . | 506 // The DCHECK is disabled due to crbug.com/338486 . |
| 503 // DCHECK_EQ(creation_loop_, base::MessageLoop::current()); | 507 // DCHECK_EQ(creation_loop_, base::MessageLoop::current()); |
| 504 } | 508 } |
| 505 | 509 |
| 506 void SafeBrowsingDatabaseNew::Init(const base::FilePath& filename_base) { | 510 void SafeBrowsingDatabaseNew::Init(const base::FilePath& filename_base) { |
| (...skipping 1165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 bool SafeBrowsingDatabaseNew::IsMalwareIPMatchKillSwitchOn() { | 1676 bool SafeBrowsingDatabaseNew::IsMalwareIPMatchKillSwitchOn() { |
| 1673 SBFullHash malware_kill_switch = SBFullHashForString(kMalwareIPKillSwitchUrl); | 1677 SBFullHash malware_kill_switch = SBFullHashForString(kMalwareIPKillSwitchUrl); |
| 1674 std::vector<SBFullHash> full_hashes; | 1678 std::vector<SBFullHash> full_hashes; |
| 1675 full_hashes.push_back(malware_kill_switch); | 1679 full_hashes.push_back(malware_kill_switch); |
| 1676 return ContainsWhitelistedHashes(csd_whitelist_, full_hashes); | 1680 return ContainsWhitelistedHashes(csd_whitelist_, full_hashes); |
| 1677 } | 1681 } |
| 1678 | 1682 |
| 1679 bool SafeBrowsingDatabaseNew::IsCsdWhitelistKillSwitchOn() { | 1683 bool SafeBrowsingDatabaseNew::IsCsdWhitelistKillSwitchOn() { |
| 1680 return csd_whitelist_.second; | 1684 return csd_whitelist_.second; |
| 1681 } | 1685 } |
| OLD | NEW |