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

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

Issue 2821193005: Rewrite base::Bind to base::BindOnce with base_bind_rewriters in //chrome/browser/safe_browsing (Closed)
Patch Set: Created 3 years, 8 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 #include <limits> 8 #include <limits>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 SafeBrowsingCheck* check = new SafeBrowsingCheck( 546 SafeBrowsingCheck* check = new SafeBrowsingCheck(
547 std::vector<GURL>(1, url), std::vector<SBFullHash>(), client, MALWARE, 547 std::vector<GURL>(1, url), std::vector<SBFullHash>(), client, MALWARE,
548 expected_threats); 548 expected_threats);
549 check->need_get_hash = cache_hits.empty(); 549 check->need_get_hash = cache_hits.empty();
550 check->prefix_hits.swap(prefix_hits); 550 check->prefix_hits.swap(prefix_hits);
551 check->cache_hits.swap(cache_hits); 551 check->cache_hits.swap(cache_hits);
552 checks_[check] = base::WrapUnique(check); 552 checks_[check] = base::WrapUnique(check);
553 553
554 BrowserThread::PostTask( 554 BrowserThread::PostTask(
555 BrowserThread::IO, FROM_HERE, 555 BrowserThread::IO, FROM_HERE,
556 base::Bind(&LocalSafeBrowsingDatabaseManager::OnCheckDone, this, check)); 556 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnCheckDone, this,
557 check));
557 558
558 return false; 559 return false;
559 } 560 }
560 561
561 bool LocalSafeBrowsingDatabaseManager::CheckUrlForSubresourceFilter( 562 bool LocalSafeBrowsingDatabaseManager::CheckUrlForSubresourceFilter(
562 const GURL& url, 563 const GURL& url,
563 Client* client) { 564 Client* client) {
564 // TODO(melandory): implement Android support. 565 // TODO(melandory): implement Android support.
565 NOTREACHED(); 566 NOTREACHED();
566 return true; 567 return true;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 if (!cache_lifetime.is_zero() && MakeDatabaseAvailable()) 614 if (!cache_lifetime.is_zero() && MakeDatabaseAvailable())
614 database_->CacheHashResults(prefixes, full_hashes, cache_lifetime); 615 database_->CacheHashResults(prefixes, full_hashes, cache_lifetime);
615 } 616 }
616 617
617 void LocalSafeBrowsingDatabaseManager::GetChunks(GetChunksCallback callback) { 618 void LocalSafeBrowsingDatabaseManager::GetChunks(GetChunksCallback callback) {
618 DCHECK_CURRENTLY_ON(BrowserThread::IO); 619 DCHECK_CURRENTLY_ON(BrowserThread::IO);
619 DCHECK(enabled_); 620 DCHECK(enabled_);
620 DCHECK(!callback.is_null()); 621 DCHECK(!callback.is_null());
621 safe_browsing_task_runner_->PostTask( 622 safe_browsing_task_runner_->PostTask(
622 FROM_HERE, 623 FROM_HERE,
623 base::Bind(&LocalSafeBrowsingDatabaseManager::GetAllChunksFromDatabase, 624 base::BindOnce(
624 this, callback)); 625 &LocalSafeBrowsingDatabaseManager::GetAllChunksFromDatabase, this,
626 callback));
625 } 627 }
626 628
627 void LocalSafeBrowsingDatabaseManager::AddChunks( 629 void LocalSafeBrowsingDatabaseManager::AddChunks(
628 const std::string& list, 630 const std::string& list,
629 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks, 631 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks,
630 AddChunksCallback callback) { 632 AddChunksCallback callback) {
631 DCHECK_CURRENTLY_ON(BrowserThread::IO); 633 DCHECK_CURRENTLY_ON(BrowserThread::IO);
632 DCHECK(enabled_); 634 DCHECK(enabled_);
633 DCHECK(!callback.is_null()); 635 DCHECK(!callback.is_null());
634 safe_browsing_task_runner_->PostTask( 636 safe_browsing_task_runner_->PostTask(
635 FROM_HERE, 637 FROM_HERE,
636 base::Bind(&LocalSafeBrowsingDatabaseManager::AddDatabaseChunks, this, 638 base::BindOnce(&LocalSafeBrowsingDatabaseManager::AddDatabaseChunks, this,
637 list, base::Passed(&chunks), callback)); 639 list, base::Passed(&chunks), callback));
638 } 640 }
639 641
640 void LocalSafeBrowsingDatabaseManager::DeleteChunks( 642 void LocalSafeBrowsingDatabaseManager::DeleteChunks(
641 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) { 643 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) {
642 DCHECK_CURRENTLY_ON(BrowserThread::IO); 644 DCHECK_CURRENTLY_ON(BrowserThread::IO);
643 DCHECK(enabled_); 645 DCHECK(enabled_);
644 safe_browsing_task_runner_->PostTask( 646 safe_browsing_task_runner_->PostTask(
645 FROM_HERE, 647 FROM_HERE,
646 base::Bind(&LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks, this, 648 base::BindOnce(&LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks,
647 base::Passed(&chunk_deletes))); 649 this, base::Passed(&chunk_deletes)));
648 } 650 }
649 651
650 void LocalSafeBrowsingDatabaseManager::UpdateStarted() { 652 void LocalSafeBrowsingDatabaseManager::UpdateStarted() {
651 DCHECK_CURRENTLY_ON(BrowserThread::IO); 653 DCHECK_CURRENTLY_ON(BrowserThread::IO);
652 DCHECK(enabled_); 654 DCHECK(enabled_);
653 DCHECK(!update_in_progress_); 655 DCHECK(!update_in_progress_);
654 update_in_progress_ = true; 656 update_in_progress_ = true;
655 } 657 }
656 658
657 void LocalSafeBrowsingDatabaseManager::UpdateFinished(bool update_succeeded) { 659 void LocalSafeBrowsingDatabaseManager::UpdateFinished(bool update_succeeded) {
658 DCHECK_CURRENTLY_ON(BrowserThread::IO); 660 DCHECK_CURRENTLY_ON(BrowserThread::IO);
659 DCHECK(enabled_); 661 DCHECK(enabled_);
660 if (update_in_progress_) { 662 if (update_in_progress_) {
661 update_in_progress_ = false; 663 update_in_progress_ = false;
662 safe_browsing_task_runner_->PostTask( 664 safe_browsing_task_runner_->PostTask(
663 FROM_HERE, 665 FROM_HERE,
664 base::Bind(&LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished, 666 base::BindOnce(
665 this, update_succeeded)); 667 &LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished, this,
668 update_succeeded));
666 } 669 }
667 } 670 }
668 671
669 void LocalSafeBrowsingDatabaseManager::ResetDatabase() { 672 void LocalSafeBrowsingDatabaseManager::ResetDatabase() {
670 DCHECK_CURRENTLY_ON(BrowserThread::IO); 673 DCHECK_CURRENTLY_ON(BrowserThread::IO);
671 DCHECK(enabled_); 674 DCHECK(enabled_);
672 safe_browsing_task_runner_->PostTask( 675 safe_browsing_task_runner_->PostTask(
673 FROM_HERE, 676 FROM_HERE,
674 base::Bind(&LocalSafeBrowsingDatabaseManager::OnResetDatabase, this)); 677 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnResetDatabase, this));
675 } 678 }
676 679
677 void LocalSafeBrowsingDatabaseManager::StartOnIOThread( 680 void LocalSafeBrowsingDatabaseManager::StartOnIOThread(
678 net::URLRequestContextGetter* request_context_getter, 681 net::URLRequestContextGetter* request_context_getter,
679 const V4ProtocolConfig& config) { 682 const V4ProtocolConfig& config) {
680 DCHECK_CURRENTLY_ON(BrowserThread::IO); 683 DCHECK_CURRENTLY_ON(BrowserThread::IO);
681 SafeBrowsingDatabaseManager::StartOnIOThread(request_context_getter, config); 684 SafeBrowsingDatabaseManager::StartOnIOThread(request_context_getter, config);
682 685
683 if (enabled_) 686 if (enabled_)
684 return; 687 return;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 // * If |database_| is NULL, then either no creation request is in flight, in 767 // * If |database_| is NULL, then either no creation request is in flight, in
765 // which case we don't need to do anything, or one is in flight, in which 768 // which case we don't need to do anything, or one is in flight, in which
766 // case the database will be recreated before our deletion request is 769 // case the database will be recreated before our deletion request is
767 // handled, and could be used on the IO thread in that time period, leading 770 // handled, and could be used on the IO thread in that time period, leading
768 // to the same problem as above. 771 // to the same problem as above.
769 // Checking DatabaseAvailable() avoids both of these. 772 // Checking DatabaseAvailable() avoids both of these.
770 if (DatabaseAvailable()) { 773 if (DatabaseAvailable()) {
771 closing_database_ = true; 774 closing_database_ = true;
772 safe_browsing_task_runner_->PostTask( 775 safe_browsing_task_runner_->PostTask(
773 FROM_HERE, 776 FROM_HERE,
774 base::Bind(&LocalSafeBrowsingDatabaseManager::OnCloseDatabase, this)); 777 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnCloseDatabase,
778 this));
775 } 779 }
776 780
777 // Delete pending checks, calling back any clients with 'SB_THREAT_TYPE_SAFE'. 781 // Delete pending checks, calling back any clients with 'SB_THREAT_TYPE_SAFE'.
778 // We have to do this after the db thread returns because methods on it can 782 // We have to do this after the db thread returns because methods on it can
779 // have copies of these pointers, so deleting them might lead to accessing 783 // have copies of these pointers, so deleting them might lead to accessing
780 // garbage. 784 // garbage.
781 for (const auto& check : checks_) { 785 for (const auto& check : checks_) {
782 if (check.first->client) 786 if (check.first->client)
783 check.first->OnSafeBrowsingResult(); 787 check.first->OnSafeBrowsingResult();
784 } 788 }
785 789
786 checks_.clear(); 790 checks_.clear();
787 gethash_requests_.clear(); 791 gethash_requests_.clear();
788 } 792 }
789 793
790 bool LocalSafeBrowsingDatabaseManager::DatabaseAvailable() const { 794 bool LocalSafeBrowsingDatabaseManager::DatabaseAvailable() const {
791 base::AutoLock lock(database_lock_); 795 base::AutoLock lock(database_lock_);
792 return !closing_database_ && (database_ != NULL); 796 return !closing_database_ && (database_ != NULL);
793 } 797 }
794 798
795 bool LocalSafeBrowsingDatabaseManager::MakeDatabaseAvailable() { 799 bool LocalSafeBrowsingDatabaseManager::MakeDatabaseAvailable() {
796 DCHECK_CURRENTLY_ON(BrowserThread::IO); 800 DCHECK_CURRENTLY_ON(BrowserThread::IO);
797 DCHECK(enabled_); 801 DCHECK(enabled_);
798 if (DatabaseAvailable()) 802 if (DatabaseAvailable())
799 return true; 803 return true;
800 safe_browsing_task_runner_->PostTask( 804 safe_browsing_task_runner_->PostTask(
801 FROM_HERE, base::Bind(base::IgnoreResult( 805 FROM_HERE,
802 &LocalSafeBrowsingDatabaseManager::GetDatabase), 806 base::BindOnce(
803 this)); 807 base::IgnoreResult(&LocalSafeBrowsingDatabaseManager::GetDatabase),
808 this));
804 return false; 809 return false;
805 } 810 }
806 811
807 SafeBrowsingDatabase* LocalSafeBrowsingDatabaseManager::GetDatabase() { 812 SafeBrowsingDatabase* LocalSafeBrowsingDatabaseManager::GetDatabase() {
808 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 813 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
809 814
810 if (database_) 815 if (database_)
811 return database_; 816 return database_;
812 817
813 const base::TimeTicks before = base::TimeTicks::Now(); 818 const base::TimeTicks before = base::TimeTicks::Now();
814 std::unique_ptr<SafeBrowsingDatabase> database = SafeBrowsingDatabase::Create( 819 std::unique_ptr<SafeBrowsingDatabase> database = SafeBrowsingDatabase::Create(
815 safe_browsing_task_runner_, enable_download_protection_, 820 safe_browsing_task_runner_, enable_download_protection_,
816 enable_csd_whitelist_, enable_download_whitelist_, 821 enable_csd_whitelist_, enable_download_whitelist_,
817 enable_extension_blacklist_, enable_ip_blacklist_, 822 enable_extension_blacklist_, enable_ip_blacklist_,
818 enable_unwanted_software_blacklist_, enable_module_whitelist_); 823 enable_unwanted_software_blacklist_, enable_module_whitelist_);
819 824
820 database->Init(SafeBrowsingService::GetBaseFilename()); 825 database->Init(SafeBrowsingService::GetBaseFilename());
821 { 826 {
822 // Acquiring the lock here guarantees correct ordering between the writes to 827 // Acquiring the lock here guarantees correct ordering between the writes to
823 // the new database object above, and the setting of |database_| below. 828 // the new database object above, and the setting of |database_| below.
824 base::AutoLock lock(database_lock_); 829 base::AutoLock lock(database_lock_);
825 database_ = database.release(); 830 database_ = database.release();
826 } 831 }
827 832
828 BrowserThread::PostTask( 833 BrowserThread::PostTask(
829 BrowserThread::IO, FROM_HERE, 834 BrowserThread::IO, FROM_HERE,
830 base::Bind(&LocalSafeBrowsingDatabaseManager::DatabaseLoadComplete, 835 base::BindOnce(&LocalSafeBrowsingDatabaseManager::DatabaseLoadComplete,
831 this)); 836 this));
832 837
833 UMA_HISTOGRAM_TIMES("SB2.DatabaseOpen", base::TimeTicks::Now() - before); 838 UMA_HISTOGRAM_TIMES("SB2.DatabaseOpen", base::TimeTicks::Now() - before);
834 return database_; 839 return database_;
835 } 840 }
836 841
837 void LocalSafeBrowsingDatabaseManager::OnCheckDone(SafeBrowsingCheck* check) { 842 void LocalSafeBrowsingDatabaseManager::OnCheckDone(SafeBrowsingCheck* check) {
838 DCHECK_CURRENTLY_ON(BrowserThread::IO); 843 DCHECK_CURRENTLY_ON(BrowserThread::IO);
839 844
840 if (!enabled_) 845 if (!enabled_)
841 return; 846 return;
(...skipping 24 matching lines...) Expand all
866 requestors.push_back(check); 871 requestors.push_back(check);
867 gethash_requests_[prefix] = requestors; 872 gethash_requests_[prefix] = requestors;
868 } 873 }
869 874
870 // Reset the start time so that we can measure the network time without the 875 // Reset the start time so that we can measure the network time without the
871 // database time. 876 // database time.
872 check->start = base::TimeTicks::Now(); 877 check->start = base::TimeTicks::Now();
873 878
874 BrowserThread::PostTask( 879 BrowserThread::PostTask(
875 BrowserThread::UI, FROM_HERE, 880 BrowserThread::UI, FROM_HERE,
876 base::Bind(&LocalSafeBrowsingDatabaseManager::OnRequestFullHash, this, 881 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnRequestFullHash,
877 check)); 882 this, check));
878 } else { 883 } else {
879 // We may have cached results for previous GetHash queries. Since 884 // We may have cached results for previous GetHash queries. Since
880 // this data comes from cache, don't histogram hits. 885 // this data comes from cache, don't histogram hits.
881 HandleOneCheck(check, check->cache_hits); 886 HandleOneCheck(check, check->cache_hits);
882 } 887 }
883 } 888 }
884 889
885 void LocalSafeBrowsingDatabaseManager::OnRequestFullHash( 890 void LocalSafeBrowsingDatabaseManager::OnRequestFullHash(
886 SafeBrowsingCheck* check) { 891 SafeBrowsingCheck* check) {
887 DCHECK_CURRENTLY_ON(BrowserThread::UI); 892 DCHECK_CURRENTLY_ON(BrowserThread::UI);
888 check->extended_reporting_level = GetExtendedReporting(); 893 check->extended_reporting_level = GetExtendedReporting();
889 BrowserThread::PostTask( 894 BrowserThread::PostTask(
890 BrowserThread::IO, FROM_HERE, 895 BrowserThread::IO, FROM_HERE,
891 base::Bind(&LocalSafeBrowsingDatabaseManager::RequestFullHash, this, 896 base::BindOnce(&LocalSafeBrowsingDatabaseManager::RequestFullHash, this,
892 check)); 897 check));
893 } 898 }
894 899
895 ExtendedReportingLevel 900 ExtendedReportingLevel
896 LocalSafeBrowsingDatabaseManager::GetExtendedReporting() { 901 LocalSafeBrowsingDatabaseManager::GetExtendedReporting() {
897 DCHECK_CURRENTLY_ON(BrowserThread::UI); 902 DCHECK_CURRENTLY_ON(BrowserThread::UI);
898 903
899 // Determine if the last used profile is opted into extended reporting. 904 // Determine if the last used profile is opted into extended reporting.
900 // Note: It is possible that the last used profile is not the one triggers 905 // Note: It is possible that the last used profile is not the one triggers
901 // the hash request, but not very likely. 906 // the hash request, but not very likely.
902 ExtendedReportingLevel extended_reporting_level = SBER_LEVEL_OFF; 907 ExtendedReportingLevel extended_reporting_level = SBER_LEVEL_OFF;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 database_update_in_progress_ = true; 940 database_update_in_progress_ = true;
936 GetDatabase(); // This guarantees that |database_| is non-NULL. 941 GetDatabase(); // This guarantees that |database_| is non-NULL.
937 if (database_->UpdateStarted(&lists)) { 942 if (database_->UpdateStarted(&lists)) {
938 database_error = false; 943 database_error = false;
939 } else { 944 } else {
940 database_->UpdateFinished(false); 945 database_->UpdateFinished(false);
941 } 946 }
942 947
943 BrowserThread::PostTask( 948 BrowserThread::PostTask(
944 BrowserThread::UI, FROM_HERE, 949 BrowserThread::UI, FROM_HERE,
945 base::Bind( 950 base::BindOnce(
946 &LocalSafeBrowsingDatabaseManager::BeforeGetAllChunksFromDatabase, 951 &LocalSafeBrowsingDatabaseManager::BeforeGetAllChunksFromDatabase,
947 this, lists, database_error, callback)); 952 this, lists, database_error, callback));
948 } 953 }
949 954
950 void LocalSafeBrowsingDatabaseManager::BeforeGetAllChunksFromDatabase( 955 void LocalSafeBrowsingDatabaseManager::BeforeGetAllChunksFromDatabase(
951 const std::vector<SBListChunkRanges>& lists, 956 const std::vector<SBListChunkRanges>& lists,
952 bool database_error, 957 bool database_error,
953 GetChunksCallback callback) { 958 GetChunksCallback callback) {
954 DCHECK_CURRENTLY_ON(BrowserThread::UI); 959 DCHECK_CURRENTLY_ON(BrowserThread::UI);
955 960
956 ExtendedReportingLevel extended_reporting_level = GetExtendedReporting(); 961 ExtendedReportingLevel extended_reporting_level = GetExtendedReporting();
957 962
958 BrowserThread::PostTask( 963 BrowserThread::PostTask(
959 BrowserThread::IO, FROM_HERE, 964 BrowserThread::IO, FROM_HERE,
960 base::Bind(&LocalSafeBrowsingDatabaseManager::OnGetAllChunksFromDatabase, 965 base::BindOnce(
961 this, lists, database_error, extended_reporting_level, 966 &LocalSafeBrowsingDatabaseManager::OnGetAllChunksFromDatabase, this,
962 callback)); 967 lists, database_error, extended_reporting_level, callback));
963 } 968 }
964 969
965 void LocalSafeBrowsingDatabaseManager::OnGetAllChunksFromDatabase( 970 void LocalSafeBrowsingDatabaseManager::OnGetAllChunksFromDatabase(
966 const std::vector<SBListChunkRanges>& lists, 971 const std::vector<SBListChunkRanges>& lists,
967 bool database_error, 972 bool database_error,
968 ExtendedReportingLevel reporting_level, 973 ExtendedReportingLevel reporting_level,
969 GetChunksCallback callback) { 974 GetChunksCallback callback) {
970 DCHECK_CURRENTLY_ON(BrowserThread::IO); 975 DCHECK_CURRENTLY_ON(BrowserThread::IO);
971 if (enabled_) 976 if (enabled_)
972 callback.Run(lists, database_error, reporting_level); 977 callback.Run(lists, database_error, reporting_level);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 1016
1012 void LocalSafeBrowsingDatabaseManager::AddDatabaseChunks( 1017 void LocalSafeBrowsingDatabaseManager::AddDatabaseChunks(
1013 const std::string& list_name, 1018 const std::string& list_name,
1014 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks, 1019 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks,
1015 AddChunksCallback callback) { 1020 AddChunksCallback callback) {
1016 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1021 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
1017 if (chunks) 1022 if (chunks)
1018 GetDatabase()->InsertChunks(list_name, *chunks); 1023 GetDatabase()->InsertChunks(list_name, *chunks);
1019 BrowserThread::PostTask( 1024 BrowserThread::PostTask(
1020 BrowserThread::IO, FROM_HERE, 1025 BrowserThread::IO, FROM_HERE,
1021 base::Bind(&LocalSafeBrowsingDatabaseManager::OnAddChunksComplete, this, 1026 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnAddChunksComplete,
1022 callback)); 1027 this, callback));
1023 } 1028 }
1024 1029
1025 void LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks( 1030 void LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks(
1026 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) { 1031 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) {
1027 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1032 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
1028 if (chunk_deletes) 1033 if (chunk_deletes)
1029 GetDatabase()->DeleteChunks(*chunk_deletes); 1034 GetDatabase()->DeleteChunks(*chunk_deletes);
1030 } 1035 }
1031 1036
1032 void LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished( 1037 void LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished(
1033 bool update_succeeded) { 1038 bool update_succeeded) {
1034 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1039 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
1035 GetDatabase()->UpdateFinished(update_succeeded); 1040 GetDatabase()->UpdateFinished(update_succeeded);
1036 DCHECK(database_update_in_progress_); 1041 DCHECK(database_update_in_progress_);
1037 database_update_in_progress_ = false; 1042 database_update_in_progress_ = false;
1038 BrowserThread::PostTask( 1043 BrowserThread::PostTask(
1039 BrowserThread::UI, FROM_HERE, 1044 BrowserThread::UI, FROM_HERE,
1040 base::Bind( 1045 base::BindOnce(
1041 &LocalSafeBrowsingDatabaseManager::NotifyDatabaseUpdateFinished, this, 1046 &LocalSafeBrowsingDatabaseManager::NotifyDatabaseUpdateFinished, this,
1042 update_succeeded)); 1047 update_succeeded));
1043 } 1048 }
1044 1049
1045 void LocalSafeBrowsingDatabaseManager::OnCloseDatabase() { 1050 void LocalSafeBrowsingDatabaseManager::OnCloseDatabase() {
1046 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1051 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread());
1047 DCHECK(closing_database_); 1052 DCHECK(closing_database_);
1048 1053
1049 // Because |closing_database_| is true, nothing on the IO thread will be 1054 // Because |closing_database_| is true, nothing on the IO thread will be
1050 // accessing the database, so it's safe to delete and then NULL the pointer. 1055 // accessing the database, so it's safe to delete and then NULL the pointer.
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1241 new base::WeakPtrFactory<LocalSafeBrowsingDatabaseManager>(this)); 1246 new base::WeakPtrFactory<LocalSafeBrowsingDatabaseManager>(this));
1242 SafeBrowsingCheck* check_ptr = check.get(); 1247 SafeBrowsingCheck* check_ptr = check.get();
1243 checks_[check_ptr] = std::move(check); 1248 checks_[check_ptr] = std::move(check);
1244 1249
1245 base::PostTaskAndReplyWithResult( 1250 base::PostTaskAndReplyWithResult(
1246 safe_browsing_task_runner_.get(), FROM_HERE, task, 1251 safe_browsing_task_runner_.get(), FROM_HERE, task,
1247 base::Bind(&LocalSafeBrowsingDatabaseManager::OnAsyncCheckDone, 1252 base::Bind(&LocalSafeBrowsingDatabaseManager::OnAsyncCheckDone,
1248 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr)); 1253 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr));
1249 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 1254 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
1250 FROM_HERE, 1255 FROM_HERE,
1251 base::Bind(&LocalSafeBrowsingDatabaseManager::TimeoutCallback, 1256 base::BindOnce(&LocalSafeBrowsingDatabaseManager::TimeoutCallback,
1252 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr), 1257 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr),
1253 check_timeout_); 1258 check_timeout_);
1254 } 1259 }
1255 1260
1256 bool LocalSafeBrowsingDatabaseManager::IsDownloadProtectionEnabled() const { 1261 bool LocalSafeBrowsingDatabaseManager::IsDownloadProtectionEnabled() const {
1257 return enable_download_protection_; 1262 return enable_download_protection_;
1258 } 1263 }
1259 1264
1260 } // namespace safe_browsing 1265 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698