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

Unified Diff: components/safe_browsing_db/v4_update_protocol_manager.h

Issue 2062013002: Fetch incremental updates. Store new state in V4Store. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits: Added some comments in BUILD.gn. Using #else for platform_type until I resolve the android bu… Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: components/safe_browsing_db/v4_update_protocol_manager.h
diff --git a/components/safe_browsing_db/v4_update_protocol_manager.h b/components/safe_browsing_db/v4_update_protocol_manager.h
index 4b2031779d1e3f2b3cd1f72158d5ef8adda66f2e..babb8ec549067f4279141f370146d3014cc3afa7 100644
--- a/components/safe_browsing_db/v4_update_protocol_manager.h
+++ b/components/safe_browsing_db/v4_update_protocol_manager.h
@@ -37,9 +37,6 @@ namespace safe_browsing {
class V4UpdateProtocolManagerFactory;
-typedef FetchThreatListUpdatesRequest::ListUpdateRequest ListUpdateRequest;
-typedef FetchThreatListUpdatesResponse::ListUpdateResponse ListUpdateResponse;
-
// V4UpdateCallback is invoked when a scheduled update completes.
// Parameters:
// - The vector of update response protobufs received from the server for
@@ -62,8 +59,6 @@ class V4UpdateProtocolManager : public net::URLFetcherDelegate,
static std::unique_ptr<V4UpdateProtocolManager> Create(
net::URLRequestContextGetter* request_context_getter,
const V4ProtocolConfig& config,
- const base::hash_map<UpdateListIdentifier, std::string>&
- current_list_states,
V4UpdateCallback callback);
// net::URLFetcherDelegate interface.
@@ -72,17 +67,17 @@ class V4UpdateProtocolManager : public net::URLFetcherDelegate,
// Schedule the next update without backoff.
void ScheduleNextUpdate();
+ // Tell the update manager where to get the latest state of the stores.
+ void SetStoreStateMap(const StoreStateMap* store_state_map);
+
protected:
// Constructs a V4UpdateProtocolManager that issues network requests using
- // |request_context_getter|.
- // Schedules an update to get the hash prefixes for the lists in
- // |current_list_states|, and invoke |callback| when the results
- // are retrieved. The callback may be invoked synchronously.
+ // |request_context_getter|. It schedules updates to get the hash prefixes for
+ // SafeBrowsing lists, and invoke |callback| when the results are retrieved.
+ // The callback may be invoked synchronously.
V4UpdateProtocolManager(
net::URLRequestContextGetter* request_context_getter,
const V4ProtocolConfig& config,
- const base::hash_map<UpdateListIdentifier, std::string>&
- current_list_states,
V4UpdateCallback callback);
private:
@@ -105,9 +100,8 @@ class V4UpdateProtocolManager : public net::URLFetcherDelegate,
// Fills a FetchThreatListUpdatesRequest protocol buffer for a request.
// Returns the serialized and base 64 encoded request as a string.
- std::string GetBase64SerializedUpdateRequestProto(
- const base::hash_map<UpdateListIdentifier, std::string>&
- current_list_states);
+ static std::string GetBase64SerializedUpdateRequestProto(
+ const StoreStateMap* store_state_map);
// Parses the base64 encoded response received from the server as a
// FetchThreatListUpdatesResponse protobuf and returns each of the
@@ -145,10 +139,8 @@ class V4UpdateProtocolManager : public net::URLFetcherDelegate,
static V4UpdateProtocolManagerFactory* factory_;
// The last known state of the lists.
- // At init, this is read from the disk or is empty for no prior state.
- // Each successful update from the server contains a new state for each
- // requested list.
- base::hash_map<UpdateListIdentifier, std::string> current_list_states_;
+ // Updated after every successful update of the database.
+ const StoreStateMap* store_state_map_;
Scott Hess - ex-Googler 2016/06/17 22:53:43 Having the instance retain a pointer to a map owne
vakh (use Gerrit instead) 2016/06/21 00:29:36 Done.
// The number of HTTP response errors since the the last successful HTTP
// response, used for request backoff timing.
@@ -194,8 +186,6 @@ class V4UpdateProtocolManagerFactory {
virtual std::unique_ptr<V4UpdateProtocolManager> CreateProtocolManager(
net::URLRequestContextGetter* request_context_getter,
const V4ProtocolConfig& config,
- const base::hash_map<UpdateListIdentifier, std::string>&
- current_list_states,
V4UpdateCallback callback) = 0;
private:

Powered by Google App Engine
This is Rietveld 408576698