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

Side by Side Diff: components/safe_browsing_db/v4_local_database_manager.cc

Issue 2233103002: Move full hash caching logic to v4_get_hash_protocol_manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: shess@ feedback - part 2. Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 // This file should not be build on Android but is currently getting built. 5 // This file should not be build on Android but is currently getting built.
6 // TODO(vakh): Fix that: http://crbug.com/621647 6 // TODO(vakh): Fix that: http://crbug.com/621647
7 7
8 #include "components/safe_browsing_db/v4_local_database_manager.h" 8 #include "components/safe_browsing_db/v4_local_database_manager.h"
9 9
10 #include <vector> 10 #include <vector>
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 return true; 127 return true;
128 } 128 }
129 129
130 bool V4LocalDatabaseManager::IsCsdWhitelistKillSwitchOn() { 130 bool V4LocalDatabaseManager::IsCsdWhitelistKillSwitchOn() {
131 // TODO(vakh): Implement this skeleton. 131 // TODO(vakh): Implement this skeleton.
132 DCHECK_CURRENTLY_ON(BrowserThread::IO); 132 DCHECK_CURRENTLY_ON(BrowserThread::IO);
133 return true; 133 return true;
134 } 134 }
135 135
136 bool V4LocalDatabaseManager::CheckBrowseUrl(const GURL& url, Client* client) { 136 bool V4LocalDatabaseManager::CheckBrowseUrl(const GURL& url, Client* client) {
137 // TODO(vakh): Implement this skeleton.
138 DCHECK_CURRENTLY_ON(BrowserThread::IO); 137 DCHECK_CURRENTLY_ON(BrowserThread::IO);
139 if (!enabled_ || !CanCheckUrl(url)) { 138 if (!enabled_ || !CanCheckUrl(url)) {
140 return true; 139 return true;
141 } 140 }
142 141
143 if (v4_database_) { 142 if (v4_database_) {
144 base::hash_set<FullHash> full_hashes; 143 base::hash_set<FullHash> full_hashes;
145 V4ProtocolManagerUtil::UrlToFullHashes(url, &full_hashes); 144 V4ProtocolManagerUtil::UrlToFullHashes(url, &full_hashes);
146 145
147 base::hash_set<UpdateListIdentifier> stores_to_look( 146 base::hash_set<UpdateListIdentifier> stores_to_look(
148 {GetUrlMalwareId(), GetUrlSocEngId()}); 147 {GetUrlMalwareId(), GetUrlSocEngId()});
149 base::hash_set<HashPrefix> matched_hash_prefixes; 148 base::hash_set<HashPrefix> matched_hash_prefixes;
150 base::hash_set<UpdateListIdentifier> matched_stores; 149 base::hash_set<UpdateListIdentifier> matched_stores;
151 MatchedHashPrefixMap matched_hash_prefix_map; 150 StoreAndHashPrefixes matched_store_and_full_hashes;
151 FullHashToStoreAndHashPrefixesMap full_hash_to_store_and_hash_prefixes;
152 for (const auto& full_hash : full_hashes) { 152 for (const auto& full_hash : full_hashes) {
153 matched_store_and_full_hashes.clear();
153 v4_database_->GetStoresMatchingFullHash(full_hash, stores_to_look, 154 v4_database_->GetStoresMatchingFullHash(full_hash, stores_to_look,
154 &matched_hash_prefix_map); 155 &matched_store_and_full_hashes);
155 for (const auto& matched_pair : matched_hash_prefix_map) { 156 if (!matched_store_and_full_hashes.empty()) {
156 matched_stores.insert(matched_pair.first); 157 full_hash_to_store_and_hash_prefixes[full_hash] =
157 matched_hash_prefixes.insert(matched_pair.second); 158 matched_store_and_full_hashes;
158 } 159 }
159 } 160 }
160 161
161 DCHECK_EQ(matched_stores.empty(), matched_hash_prefixes.empty()); 162 if (full_hash_to_store_and_hash_prefixes.empty()) {
162 163 return true;
163 // TODO(vakh): Return false and fetch full hashes for the matching hash 164 } else {
164 // prefixes. 165 // TODO(vakh): Pass more information to the callback for it to be able to
165 return matched_hash_prefixes.empty(); 166 // do something meaningful.
167 v4_get_hash_protocol_manager_->GetFullHashes(
168 full_hash_to_store_and_hash_prefixes,
169 base::Bind(&V4LocalDatabaseManager::OnFullHashResponse,
170 base::Unretained(this)));
171 return false;
172 }
166 } else { 173 } else {
167 // TODO(vakh): Queue the check and process it when the database becomes 174 // TODO(vakh): Queue the check and process it when the database becomes
168 // ready. 175 // ready.
169 return false; 176 return false;
170 } 177 }
171 } 178 }
172 179
180 void V4LocalDatabaseManager::OnFullHashResponse(
181 const std::vector<FullHashInfo>& full_hash_infos) {
182 // TODO(vakh): Implement this skeleton.
183 }
184
173 void V4LocalDatabaseManager::CancelCheck(Client* client) { 185 void V4LocalDatabaseManager::CancelCheck(Client* client) {
174 // TODO(vakh): Implement this skeleton. 186 // TODO(vakh): Implement this skeleton.
175 DCHECK_CURRENTLY_ON(BrowserThread::IO); 187 DCHECK_CURRENTLY_ON(BrowserThread::IO);
176 DCHECK(enabled_); 188 DCHECK(enabled_);
177 } 189 }
178 190
179 void V4LocalDatabaseManager::StartOnIOThread( 191 void V4LocalDatabaseManager::StartOnIOThread(
180 net::URLRequestContextGetter* request_context_getter, 192 net::URLRequestContextGetter* request_context_getter,
181 const V4ProtocolConfig& config) { 193 const V4ProtocolConfig& config) {
182 SafeBrowsingDatabaseManager::StartOnIOThread(request_context_getter, config); 194 SafeBrowsingDatabaseManager::StartOnIOThread(request_context_getter, config);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 } 281 }
270 282
271 void V4LocalDatabaseManager::DatabaseUpdated() { 283 void V4LocalDatabaseManager::DatabaseUpdated() {
272 if (enabled_) { 284 if (enabled_) {
273 v4_update_protocol_manager_->ScheduleNextUpdate( 285 v4_update_protocol_manager_->ScheduleNextUpdate(
274 v4_database_->GetStoreStateMap()); 286 v4_database_->GetStoreStateMap());
275 } 287 }
276 } 288 }
277 289
278 } // namespace safe_browsing 290 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698