Index: components/safe_browsing_db/v4_protocol_manager_util.h |
diff --git a/components/safe_browsing_db/v4_protocol_manager_util.h b/components/safe_browsing_db/v4_protocol_manager_util.h |
index 92a1b84eb02dbc8fb36cb4348089b67a63ce5167..7b510de3dedf59396fa290aebdfe411106bfd1b5 100644 |
--- a/components/safe_browsing_db/v4_protocol_manager_util.h |
+++ b/components/safe_browsing_db/v4_protocol_manager_util.h |
@@ -8,6 +8,7 @@ |
// A class that implements the stateless methods used by the GetHashUpdate and |
// GetFullHash stubby calls made by Chrome using the SafeBrowsing V4 protocol. |
+#include <ostream> |
#include <string> |
#include "base/gtest_prod_util.h" |
@@ -21,6 +22,10 @@ class HttpRequestHeaders; |
} // namespace net |
namespace safe_browsing { |
+ |
+typedef FetchThreatListUpdatesRequest::ListUpdateRequest ListUpdateRequest; |
+typedef FetchThreatListUpdatesResponse::ListUpdateResponse ListUpdateResponse; |
+ |
// Config passed to the constructor of a V4 protocol manager. |
struct V4ProtocolConfig { |
// The safe browsing client name sent in each request. |
@@ -47,15 +52,36 @@ struct V4ProtocolConfig { |
// threat_entry_type = EXECUTABLE, |
// threat_type = MALWARE |
struct UpdateListIdentifier { |
+ public: |
PlatformType platform_type; |
ThreatEntryType threat_entry_type; |
ThreatType threat_type; |
+ UpdateListIdentifier(PlatformType, ThreatEntryType, ThreatType); |
+ UpdateListIdentifier(const ListUpdateResponse&); |
+ |
bool operator==(const UpdateListIdentifier& other) const; |
bool operator!=(const UpdateListIdentifier& other) const; |
size_t hash() const; |
+ |
+ private: |
+ UpdateListIdentifier(); |
}; |
+std::ostream& operator<<(std::ostream& os, const UpdateListIdentifier& id); |
+ |
+// The set of interesting lists and ASCII filenames for their hash prefix |
+// stores. The stores are created inside the user-data directory. |
+// For instance, the UpdateListIdentifier could be for URL expressions for UwS |
+// on Windows platform, and the corresponding file on disk could be named: |
+// "uws_win_url.store" |
+// TODO(vakh): Find the canonical place where these are defined and update the |
+// comment to point to that place. |
+typedef base::hash_map<UpdateListIdentifier, std::string> StoreFileNameMap; |
+ |
+// Represents the state of each store. |
+typedef base::hash_map<UpdateListIdentifier, std::string> StoreStateMap; |
+ |
// Enumerate failures for histogramming purposes. DO NOT CHANGE THE |
// ORDERING OF THESE VALUES. |
enum V4OperationResult { |
@@ -105,10 +131,10 @@ class V4ProtocolManagerUtil { |
// |gurl| is set to the value of the PVer4 request URL, |
// |headers| is populated with the appropriate header values. |
static void GetRequestUrlAndHeaders(const std::string& request_base64, |
- const std::string& method_name, |
- const V4ProtocolConfig& config, |
- GURL* gurl, |
- net::HttpRequestHeaders* headers); |
+ const std::string& method_name, |
+ const V4ProtocolConfig& config, |
+ GURL* gurl, |
+ net::HttpRequestHeaders* headers); |
// Worker function for calculating the backoff times. |
// |multiplier| is doubled for each consecutive error after the |