| 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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 const std::vector<PlatformType>& platforms, | 71 const std::vector<PlatformType>& platforms, |
| 72 ThreatType threat_type, | 72 ThreatType threat_type, |
| 73 FullHashCallback callback); | 73 FullHashCallback callback); |
| 74 | 74 |
| 75 // Retrieve the full hash and API metadata for a set of prefixes, and invoke | 75 // Retrieve the full hash and API metadata for a set of prefixes, and invoke |
| 76 // the callback argument when the results are retrieved. The callback may be | 76 // the callback argument when the results are retrieved. The callback may be |
| 77 // invoked synchronously. | 77 // invoked synchronously. |
| 78 virtual void GetFullHashesWithApis(const std::vector<SBPrefix>& prefixes, | 78 virtual void GetFullHashesWithApis(const std::vector<SBPrefix>& prefixes, |
| 79 FullHashCallback callback); | 79 FullHashCallback callback); |
| 80 | 80 |
| 81 // Enumerate failures for histogramming purposes. DO NOT CHANGE THE | |
| 82 // ORDERING OF THESE VALUES. | |
| 83 enum ResultType { | |
| 84 // 200 response code means that the server recognized the hash | |
| 85 // prefix. | |
| 86 GET_HASH_STATUS_200 = 0, | |
| 87 | |
| 88 // Subset of successful responses where the response body wasn't parsable. | |
| 89 GET_HASH_PARSE_ERROR = 1, | |
| 90 | |
| 91 // Gethash request failed (network error). | |
| 92 GET_HASH_NETWORK_ERROR = 2, | |
| 93 | |
| 94 // Gethash request returned HTTP result code other than 200. | |
| 95 GET_HASH_HTTP_ERROR = 3, | |
| 96 | |
| 97 // Gethash attempted during error backoff, no request sent. | |
| 98 GET_HASH_BACKOFF_ERROR = 4, | |
| 99 | |
| 100 // Gethash attempted before min wait duration elapsed, no request sent. | |
| 101 GET_HASH_MIN_WAIT_DURATION_ERROR = 5, | |
| 102 | |
| 103 // Memory space for histograms is determined by the max. ALWAYS | |
| 104 // ADD NEW VALUES BEFORE THIS ONE. | |
| 105 GET_HASH_RESULT_MAX = 6 | |
| 106 }; | |
| 107 | |
| 108 // Record a GetHash result. | |
| 109 static void RecordGetHashResult(ResultType result_type); | |
| 110 | |
| 111 protected: | 81 protected: |
| 112 // Constructs a V4GetHashProtocolManager that issues | 82 // Constructs a V4GetHashProtocolManager that issues |
| 113 // network requests using |request_context_getter|. | 83 // network requests using |request_context_getter|. |
| 114 V4GetHashProtocolManager( | 84 V4GetHashProtocolManager( |
| 115 net::URLRequestContextGetter* request_context_getter, | 85 net::URLRequestContextGetter* request_context_getter, |
| 116 const V4ProtocolConfig& config); | 86 const V4ProtocolConfig& config); |
| 117 | 87 |
| 118 private: | 88 private: |
| 119 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingV4GetHashProtocolManagerTest, | 89 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingV4GetHashProtocolManagerTest, |
| 120 TestGetHashRequest); | 90 TestGetHashRequest); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 net::URLRequestContextGetter* request_context_getter, | 178 net::URLRequestContextGetter* request_context_getter, |
| 209 const V4ProtocolConfig& config) = 0; | 179 const V4ProtocolConfig& config) = 0; |
| 210 | 180 |
| 211 private: | 181 private: |
| 212 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManagerFactory); | 182 DISALLOW_COPY_AND_ASSIGN(V4GetHashProtocolManagerFactory); |
| 213 }; | 183 }; |
| 214 | 184 |
| 215 } // namespace safe_browsing | 185 } // namespace safe_browsing |
| 216 | 186 |
| 217 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ | 187 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_GET_HASH_PROTOCOL_MANAGER_H_ |
| OLD | NEW |