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

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

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

Powered by Google App Engine
This is Rietveld 408576698