Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 24 matching lines...) Expand all Loading... | |
| 35 } | 35 } |
| 36 | 36 |
| 37 V4LocalDatabaseManager::~V4LocalDatabaseManager() { | 37 V4LocalDatabaseManager::~V4LocalDatabaseManager() { |
| 38 DCHECK(!enabled_); | 38 DCHECK(!enabled_); |
| 39 } | 39 } |
| 40 | 40 |
| 41 bool V4LocalDatabaseManager::IsSupported() const { | 41 bool V4LocalDatabaseManager::IsSupported() const { |
| 42 return true; | 42 return true; |
| 43 } | 43 } |
| 44 | 44 |
| 45 safe_browsing::ThreatSource V4LocalDatabaseManager::GetThreatSource() const { | 45 ThreatSource V4LocalDatabaseManager::GetThreatSource() const { |
| 46 return safe_browsing::ThreatSource::LOCAL_PVER4; | 46 return ThreatSource::LOCAL_PVER4; |
| 47 } | 47 } |
| 48 | 48 |
| 49 bool V4LocalDatabaseManager::ChecksAreAlwaysAsync() const { | 49 bool V4LocalDatabaseManager::ChecksAreAlwaysAsync() const { |
| 50 return false; | 50 return false; |
| 51 } | 51 } |
| 52 | 52 |
| 53 bool V4LocalDatabaseManager::CanCheckResourceType( | 53 bool V4LocalDatabaseManager::CanCheckResourceType( |
| 54 content::ResourceType resource_type) const { | 54 content::ResourceType resource_type) const { |
| 55 // We check all types since most checks are fast. | 55 // We check all types since most checks are fast. |
| 56 return true; | 56 return true; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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. | 137 // TODO(vakh): Implement this skeleton. |
| 138 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 138 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 139 if (!enabled_ || !CanCheckUrl(url)) { | 139 if (!enabled_ || !CanCheckUrl(url)) { |
| 140 return true; | 140 return true; |
| 141 } | 141 } |
| 142 | 142 |
| 143 // TODO(vakh): Queue check if v4_database_ isn't ready yet. | |
| 144 if (v4_database_) { | |
| 145 base::hash_set<FullHash> full_hashes; | |
| 146 V4ProtocolManagerUtil::UrlToFullHashes(url, &full_hashes); | |
| 147 | |
| 148 base::hash_set<HashPrefix> matched_hash_prefixes; | |
| 149 base::hash_set<UpdateListIdentifier> matched_stores; | |
| 150 base::hash_set<UpdateListIdentifier> stores_to_look( | |
| 151 {GetUrlMalwareId(), GetUrlSocEngId()}); | |
| 152 MatchedHashPrefixMap matched_hash_prefix_map; | |
| 153 for (const auto& full_hash : full_hashes) { | |
| 154 v4_database_->GetStoresMatchingFullHash(full_hash, stores_to_look, | |
| 155 &matched_hash_prefix_map); | |
| 156 for (const auto& matched_pair : matched_hash_prefix_map) { | |
| 157 matched_stores.insert(matched_pair.first); | |
| 158 matched_hash_prefixes.insert(matched_pair.second); | |
| 159 } | |
| 160 } | |
| 161 | |
| 162 DCHECK((matched_stores.empty() && matched_hash_prefixes.empty()) || | |
|
Nathan Parker
2016/08/15 19:06:41
DECHECK_EQ(matched_stores.empty(), matched_hash_pr
vakh (use Gerrit instead)
2016/08/17 18:23:06
Done.
| |
| 163 (!matched_stores.empty() && !matched_hash_prefixes.empty())); | |
| 164 // TODO(vakh): Fetch full hashes for the matching hash prefixes. | |
|
Nathan Parker
2016/08/15 19:06:41
You need to invoke the client's callback asynchron
vakh (use Gerrit instead)
2016/08/17 18:23:06
This method is not being called from product code
| |
| 165 return matched_hash_prefixes.empty(); | |
| 166 } | |
| 143 // Don't defer the resource load. | 167 // Don't defer the resource load. |
| 144 return true; | 168 return true; |
| 145 } | 169 } |
| 146 | 170 |
| 147 void V4LocalDatabaseManager::CancelCheck(Client* client) { | 171 void V4LocalDatabaseManager::CancelCheck(Client* client) { |
| 148 // TODO(vakh): Implement this skeleton. | 172 // TODO(vakh): Implement this skeleton. |
| 149 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 173 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 150 DCHECK(enabled_); | 174 DCHECK(enabled_); |
| 151 } | 175 } |
| 152 | 176 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 243 } | 267 } |
| 244 | 268 |
| 245 void V4LocalDatabaseManager::DatabaseUpdated() { | 269 void V4LocalDatabaseManager::DatabaseUpdated() { |
| 246 if (enabled_) { | 270 if (enabled_) { |
| 247 v4_update_protocol_manager_->ScheduleNextUpdate( | 271 v4_update_protocol_manager_->ScheduleNextUpdate( |
| 248 v4_database_->GetStoreStateMap()); | 272 v4_database_->GetStoreStateMap()); |
| 249 } | 273 } |
| 250 } | 274 } |
| 251 | 275 |
| 252 } // namespace safe_browsing | 276 } // namespace safe_browsing |
| OLD | NEW |