| 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 #ifndef COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ | 5 #ifndef COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ |
| 6 #define COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ | 6 #define COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ |
| 7 | 7 |
| 8 // A class that implements Chrome's interface with the SafeBrowsing V4 protocol. | 8 // A class that implements Chrome's interface with the SafeBrowsing V4 protocol. |
| 9 // | 9 // |
| 10 // The V4GetHashProtocolManager handles formatting and making requests of, and | 10 // The V4GetHashProtocolManager handles formatting and making requests of, and |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 | 281 |
| 282 // Overrides the clock used to check the time. | 282 // Overrides the clock used to check the time. |
| 283 void SetClockForTests(std::unique_ptr<base::Clock> clock); | 283 void SetClockForTests(std::unique_ptr<base::Clock> clock); |
| 284 | 284 |
| 285 // Updates the state of the full hash cache upon receiving a valid response | 285 // Updates the state of the full hash cache upon receiving a valid response |
| 286 // from the server. | 286 // from the server. |
| 287 void UpdateCache(const std::vector<HashPrefix>& prefixes_requested, | 287 void UpdateCache(const std::vector<HashPrefix>& prefixes_requested, |
| 288 const std::vector<FullHashInfo>& full_hash_infos, | 288 const std::vector<FullHashInfo>& full_hash_infos, |
| 289 const base::Time& negative_cache_expire); | 289 const base::Time& negative_cache_expire); |
| 290 | 290 |
| 291 protected: | |
| 292 // A cache of full hash results. | |
| 293 FullHashCache full_hash_cache_; | |
| 294 | |
| 295 private: | 291 private: |
| 296 // Map of GetHash requests to parameters which created it. | 292 // Map of GetHash requests to parameters which created it. |
| 297 using PendingHashRequests = | 293 using PendingHashRequests = |
| 298 base::hash_map<const net::URLFetcher*, | 294 base::hash_map<const net::URLFetcher*, |
| 299 std::unique_ptr<FullHashCallbackInfo>>; | 295 std::unique_ptr<FullHashCallbackInfo>>; |
| 300 | 296 |
| 301 // The factory that controls the creation of V4GetHashProtocolManager. | 297 // The factory that controls the creation of V4GetHashProtocolManager. |
| 302 // This is used by tests. | 298 // This is used by tests. |
| 303 static V4GetHashProtocolManagerFactory* factory_; | 299 static V4GetHashProtocolManagerFactory* factory_; |
| 304 | 300 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 326 | 322 |
| 327 // The context we use to issue network requests. | 323 // The context we use to issue network requests. |
| 328 scoped_refptr<net::URLRequestContextGetter> request_context_getter_; | 324 scoped_refptr<net::URLRequestContextGetter> request_context_getter_; |
| 329 | 325 |
| 330 // ID for URLFetchers for testing. | 326 // ID for URLFetchers for testing. |
| 331 int url_fetcher_id_; | 327 int url_fetcher_id_; |
| 332 | 328 |
| 333 // The clock used to vend times. | 329 // The clock used to vend times. |
| 334 std::unique_ptr<base::Clock> clock_; | 330 std::unique_ptr<base::Clock> clock_; |
| 335 | 331 |
| 332 // A cache of full hash results. |
| 333 FullHashCache full_hash_cache_; |
| 334 |
| 336 // The following sets represent the combination of lists that we would always | 335 // The following sets represent the combination of lists that we would always |
| 337 // request from the server, irrespective of which list we found the hash | 336 // request from the server, irrespective of which list we found the hash |
| 338 // prefix match in. | 337 // prefix match in. |
| 339 std::vector<PlatformType> platform_types_; | 338 std::vector<PlatformType> platform_types_; |
| 340 std::vector<ThreatEntryType> threat_entry_types_; | 339 std::vector<ThreatEntryType> threat_entry_types_; |
| 341 std::vector<ThreatType> threat_types_; | 340 std::vector<ThreatType> threat_types_; |
| 342 | 341 |
| 343 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManager); | 342 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManager); |
| 344 }; | 343 }; |
| 345 | 344 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 357 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManagerFactory); | 356 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManagerFactory); |
| 358 }; | 357 }; |
| 359 | 358 |
| 360 #ifndef NDEBUG | 359 #ifndef NDEBUG |
| 361 std::ostream& operator<<(std::ostream& os, const FullHashInfo& id); | 360 std::ostream& operator<<(std::ostream& os, const FullHashInfo& id); |
| 362 #endif | 361 #endif |
| 363 | 362 |
| 364 } // namespace safe_browsing | 363 } // namespace safe_browsing |
| 365 | 364 |
| 366 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ | 365 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ |
| OLD | NEW |