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

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

Issue 2871303004: Rename TaskRunner::RunsTasksOnCurrentThread() in //chrome (Closed)
Patch Set: Created 3 years, 7 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 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 return true; 803 return true;
804 safe_browsing_task_runner_->PostTask( 804 safe_browsing_task_runner_->PostTask(
805 FROM_HERE, 805 FROM_HERE,
806 base::BindOnce( 806 base::BindOnce(
807 base::IgnoreResult(&LocalSafeBrowsingDatabaseManager::GetDatabase), 807 base::IgnoreResult(&LocalSafeBrowsingDatabaseManager::GetDatabase),
808 this)); 808 this));
809 return false; 809 return false;
810 } 810 }
811 811
812 SafeBrowsingDatabase* LocalSafeBrowsingDatabaseManager::GetDatabase() { 812 SafeBrowsingDatabase* LocalSafeBrowsingDatabaseManager::GetDatabase() {
813 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 813 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
814 814
815 if (database_) 815 if (database_)
816 return database_; 816 return database_;
817 817
818 const base::TimeTicks before = base::TimeTicks::Now(); 818 const base::TimeTicks before = base::TimeTicks::Now();
819 std::unique_ptr<SafeBrowsingDatabase> database = SafeBrowsingDatabase::Create( 819 std::unique_ptr<SafeBrowsingDatabase> database = SafeBrowsingDatabase::Create(
820 safe_browsing_task_runner_, enable_download_protection_, 820 safe_browsing_task_runner_, enable_download_protection_,
821 enable_csd_whitelist_, enable_download_whitelist_, 821 enable_csd_whitelist_, enable_download_whitelist_,
822 enable_extension_blacklist_, enable_ip_blacklist_, 822 enable_extension_blacklist_, enable_ip_blacklist_,
823 enable_unwanted_software_blacklist_, enable_module_whitelist_); 823 enable_unwanted_software_blacklist_, enable_module_whitelist_);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 bool is_download = check->check_type == BINURL; 925 bool is_download = check->check_type == BINURL;
926 sb_service_->protocol_manager()->GetFullHash( 926 sb_service_->protocol_manager()->GetFullHash(
927 check->prefix_hits, 927 check->prefix_hits,
928 base::Bind(&LocalSafeBrowsingDatabaseManager::HandleGetHashResults, 928 base::Bind(&LocalSafeBrowsingDatabaseManager::HandleGetHashResults,
929 base::Unretained(this), check), 929 base::Unretained(this), check),
930 is_download, check->extended_reporting_level); 930 is_download, check->extended_reporting_level);
931 } 931 }
932 932
933 void LocalSafeBrowsingDatabaseManager::GetAllChunksFromDatabase( 933 void LocalSafeBrowsingDatabaseManager::GetAllChunksFromDatabase(
934 GetChunksCallback callback) { 934 GetChunksCallback callback) {
935 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 935 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
936 936
937 bool database_error = true; 937 bool database_error = true;
938 std::vector<SBListChunkRanges> lists; 938 std::vector<SBListChunkRanges> lists;
939 DCHECK(!database_update_in_progress_); 939 DCHECK(!database_update_in_progress_);
940 database_update_in_progress_ = true; 940 database_update_in_progress_ = true;
941 GetDatabase(); // This guarantees that |database_| is non-NULL. 941 GetDatabase(); // This guarantees that |database_| is non-NULL.
942 if (database_->UpdateStarted(&lists)) { 942 if (database_->UpdateStarted(&lists)) {
943 database_error = false; 943 database_error = false;
944 } else { 944 } else {
945 database_->UpdateFinished(false); 945 database_->UpdateFinished(false);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 sb_check.OnSafeBrowsingResult(); 1011 sb_check.OnSafeBrowsingResult();
1012 } 1012 }
1013 queued_checks_.pop_front(); 1013 queued_checks_.pop_front();
1014 } 1014 }
1015 } 1015 }
1016 1016
1017 void LocalSafeBrowsingDatabaseManager::AddDatabaseChunks( 1017 void LocalSafeBrowsingDatabaseManager::AddDatabaseChunks(
1018 const std::string& list_name, 1018 const std::string& list_name,
1019 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks, 1019 std::unique_ptr<std::vector<std::unique_ptr<SBChunkData>>> chunks,
1020 AddChunksCallback callback) { 1020 AddChunksCallback callback) {
1021 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1021 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1022 if (chunks) 1022 if (chunks)
1023 GetDatabase()->InsertChunks(list_name, *chunks); 1023 GetDatabase()->InsertChunks(list_name, *chunks);
1024 BrowserThread::PostTask( 1024 BrowserThread::PostTask(
1025 BrowserThread::IO, FROM_HERE, 1025 BrowserThread::IO, FROM_HERE,
1026 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnAddChunksComplete, 1026 base::BindOnce(&LocalSafeBrowsingDatabaseManager::OnAddChunksComplete,
1027 this, callback)); 1027 this, callback));
1028 } 1028 }
1029 1029
1030 void LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks( 1030 void LocalSafeBrowsingDatabaseManager::DeleteDatabaseChunks(
1031 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) { 1031 std::unique_ptr<std::vector<SBChunkDelete>> chunk_deletes) {
1032 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1032 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1033 if (chunk_deletes) 1033 if (chunk_deletes)
1034 GetDatabase()->DeleteChunks(*chunk_deletes); 1034 GetDatabase()->DeleteChunks(*chunk_deletes);
1035 } 1035 }
1036 1036
1037 void LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished( 1037 void LocalSafeBrowsingDatabaseManager::DatabaseUpdateFinished(
1038 bool update_succeeded) { 1038 bool update_succeeded) {
1039 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1039 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1040 GetDatabase()->UpdateFinished(update_succeeded); 1040 GetDatabase()->UpdateFinished(update_succeeded);
1041 DCHECK(database_update_in_progress_); 1041 DCHECK(database_update_in_progress_);
1042 database_update_in_progress_ = false; 1042 database_update_in_progress_ = false;
1043 BrowserThread::PostTask( 1043 BrowserThread::PostTask(
1044 BrowserThread::UI, FROM_HERE, 1044 BrowserThread::UI, FROM_HERE,
1045 base::BindOnce( 1045 base::BindOnce(
1046 &LocalSafeBrowsingDatabaseManager::NotifyDatabaseUpdateFinished, this, 1046 &LocalSafeBrowsingDatabaseManager::NotifyDatabaseUpdateFinished, this,
1047 update_succeeded)); 1047 update_succeeded));
1048 } 1048 }
1049 1049
1050 void LocalSafeBrowsingDatabaseManager::OnCloseDatabase() { 1050 void LocalSafeBrowsingDatabaseManager::OnCloseDatabase() {
1051 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1051 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1052 DCHECK(closing_database_); 1052 DCHECK(closing_database_);
1053 1053
1054 // 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
1055 // 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.
1056 delete database_; 1056 delete database_;
1057 database_ = NULL; 1057 database_ = NULL;
1058 1058
1059 // Acquiring the lock here guarantees correct ordering between the resetting 1059 // Acquiring the lock here guarantees correct ordering between the resetting
1060 // of |database_| above and of |closing_database_| below, which ensures there 1060 // of |database_| above and of |closing_database_| below, which ensures there
1061 // won't be a window during which the IO thread falsely believes the database 1061 // won't be a window during which the IO thread falsely believes the database
1062 // is available. 1062 // is available.
1063 base::AutoLock lock(database_lock_); 1063 base::AutoLock lock(database_lock_);
1064 closing_database_ = false; 1064 closing_database_ = false;
1065 } 1065 }
1066 1066
1067 void LocalSafeBrowsingDatabaseManager::OnResetDatabase() { 1067 void LocalSafeBrowsingDatabaseManager::OnResetDatabase() {
1068 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1068 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1069 1069
1070 GetDatabase()->ResetDatabase(); 1070 GetDatabase()->ResetDatabase();
1071 } 1071 }
1072 1072
1073 void LocalSafeBrowsingDatabaseManager::OnHandleGetHashResults( 1073 void LocalSafeBrowsingDatabaseManager::OnHandleGetHashResults(
1074 SafeBrowsingCheck* check, 1074 SafeBrowsingCheck* check,
1075 const std::vector<SBFullHashResult>& full_hashes) { 1075 const std::vector<SBFullHashResult>& full_hashes) {
1076 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1076 DCHECK_CURRENTLY_ON(BrowserThread::IO);
1077 ListType check_type = check->check_type; 1077 ListType check_type = check->check_type;
1078 SBPrefix prefix = check->prefix_hits[0]; 1078 SBPrefix prefix = check->prefix_hits[0];
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 SafeBrowsingCheckDone(check); 1168 SafeBrowsingCheckDone(check);
1169 } else { 1169 } else {
1170 check->need_get_hash = true; 1170 check->need_get_hash = true;
1171 OnCheckDone(check); 1171 OnCheckDone(check);
1172 } 1172 }
1173 } 1173 }
1174 1174
1175 std::vector<SBPrefix> 1175 std::vector<SBPrefix>
1176 LocalSafeBrowsingDatabaseManager::CheckDownloadUrlOnSBThread( 1176 LocalSafeBrowsingDatabaseManager::CheckDownloadUrlOnSBThread(
1177 const std::vector<SBPrefix>& prefixes) { 1177 const std::vector<SBPrefix>& prefixes) {
1178 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1178 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1179 DCHECK(enable_download_protection_); 1179 DCHECK(enable_download_protection_);
1180 1180
1181 std::vector<SBPrefix> prefix_hits; 1181 std::vector<SBPrefix> prefix_hits;
1182 const bool result = 1182 const bool result =
1183 database_->ContainsDownloadUrlPrefixes(prefixes, &prefix_hits); 1183 database_->ContainsDownloadUrlPrefixes(prefixes, &prefix_hits);
1184 DCHECK_EQ(result, !prefix_hits.empty()); 1184 DCHECK_EQ(result, !prefix_hits.empty());
1185 return prefix_hits; 1185 return prefix_hits;
1186 } 1186 }
1187 1187
1188 std::vector<SBPrefix> 1188 std::vector<SBPrefix>
1189 LocalSafeBrowsingDatabaseManager::CheckExtensionIDsOnSBThread( 1189 LocalSafeBrowsingDatabaseManager::CheckExtensionIDsOnSBThread(
1190 const std::vector<SBPrefix>& prefixes) { 1190 const std::vector<SBPrefix>& prefixes) {
1191 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1191 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1192 1192
1193 std::vector<SBPrefix> prefix_hits; 1193 std::vector<SBPrefix> prefix_hits;
1194 const bool result = 1194 const bool result =
1195 database_->ContainsExtensionPrefixes(prefixes, &prefix_hits); 1195 database_->ContainsExtensionPrefixes(prefixes, &prefix_hits);
1196 DCHECK_EQ(result, !prefix_hits.empty()); 1196 DCHECK_EQ(result, !prefix_hits.empty());
1197 return prefix_hits; 1197 return prefix_hits;
1198 } 1198 }
1199 1199
1200 std::vector<SBPrefix> 1200 std::vector<SBPrefix>
1201 LocalSafeBrowsingDatabaseManager::CheckResourceUrlOnSBThread( 1201 LocalSafeBrowsingDatabaseManager::CheckResourceUrlOnSBThread(
1202 const std::vector<SBPrefix>& prefixes) { 1202 const std::vector<SBPrefix>& prefixes) {
1203 DCHECK(safe_browsing_task_runner_->RunsTasksOnCurrentThread()); 1203 DCHECK(safe_browsing_task_runner_->RunsTasksInCurrentSequence());
1204 1204
1205 std::vector<SBPrefix> prefix_hits; 1205 std::vector<SBPrefix> prefix_hits;
1206 const bool result = 1206 const bool result =
1207 database_->ContainsResourceUrlPrefixes(prefixes, &prefix_hits); 1207 database_->ContainsResourceUrlPrefixes(prefixes, &prefix_hits);
1208 DCHECK_EQ(result, !prefix_hits.empty()); 1208 DCHECK_EQ(result, !prefix_hits.empty());
1209 return prefix_hits; 1209 return prefix_hits;
1210 } 1210 }
1211 1211
1212 void LocalSafeBrowsingDatabaseManager::TimeoutCallback( 1212 void LocalSafeBrowsingDatabaseManager::TimeoutCallback(
1213 SafeBrowsingCheck* check) { 1213 SafeBrowsingCheck* check) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 base::BindOnce(&LocalSafeBrowsingDatabaseManager::TimeoutCallback, 1256 base::BindOnce(&LocalSafeBrowsingDatabaseManager::TimeoutCallback,
1257 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr), 1257 check_ptr->weak_ptr_factory_->GetWeakPtr(), check_ptr),
1258 check_timeout_); 1258 check_timeout_);
1259 } 1259 }
1260 1260
1261 bool LocalSafeBrowsingDatabaseManager::IsDownloadProtectionEnabled() const { 1261 bool LocalSafeBrowsingDatabaseManager::IsDownloadProtectionEnabled() const {
1262 return enable_download_protection_; 1262 return enable_download_protection_;
1263 } 1263 }
1264 1264
1265 } // namespace safe_browsing 1265 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698