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

Side by Side Diff: components/safe_browsing_db/v4_update_protocol_manager.h

Issue 1983603002: Revert of Initialize and reset V4LocalDBManager. Instantiate V4Stores. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@v4_01_db_realz
Patch Set: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
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_UPDATE_PROTOCOL_MANAGER_H_ 5 #ifndef COMPONENTS_SAFE_BROWSING_DB_V4_UPDATE_PROTOCOL_MANAGER_H_
6 #define COMPONENTS_SAFE_BROWSING_DB_V4_UPDATE_PROTOCOL_MANAGER_H_ 6 #define COMPONENTS_SAFE_BROWSING_DB_V4_UPDATE_PROTOCOL_MANAGER_H_
7 7
8 // A class that implements Chrome's interface with the SafeBrowsing V4 update 8 // A class that implements Chrome's interface with the SafeBrowsing V4 update
9 // protocol. 9 // protocol.
10 // 10 //
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 static std::unique_ptr<V4UpdateProtocolManager> Create( 61 static std::unique_ptr<V4UpdateProtocolManager> Create(
62 net::URLRequestContextGetter* request_context_getter, 62 net::URLRequestContextGetter* request_context_getter,
63 const V4ProtocolConfig& config, 63 const V4ProtocolConfig& config,
64 const base::hash_map<UpdateListIdentifier, std::string>& 64 const base::hash_map<UpdateListIdentifier, std::string>&
65 current_list_states, 65 current_list_states,
66 V4UpdateCallback callback); 66 V4UpdateCallback callback);
67 67
68 // net::URLFetcherDelegate interface. 68 // net::URLFetcherDelegate interface.
69 void OnURLFetchComplete(const net::URLFetcher* source) override; 69 void OnURLFetchComplete(const net::URLFetcher* source) override;
70 70
71 // Schedule the next update without backoff.
72 void ScheduleNextUpdate();
73
74 protected: 71 protected:
75 // Constructs a V4UpdateProtocolManager that issues network requests using 72 // Constructs a V4UpdateProtocolManager that issues network requests using
76 // |request_context_getter|. 73 // |request_context_getter|.
77 // Schedules an update to get the hash prefixes for the lists in 74 // Schedules an update to get the hash prefixes for the lists in
78 // |current_list_states|, and invoke |callback| when the results 75 // |current_list_states|, and invoke |callback| when the results
79 // are retrieved. The callback may be invoked synchronously. 76 // are retrieved. The callback may be invoked synchronously.
80 V4UpdateProtocolManager( 77 V4UpdateProtocolManager(
81 net::URLRequestContextGetter* request_context_getter, 78 net::URLRequestContextGetter* request_context_getter,
82 const V4ProtocolConfig& config, 79 const V4ProtocolConfig& config,
83 const base::hash_map<UpdateListIdentifier, std::string>& 80 const base::hash_map<UpdateListIdentifier, std::string>&
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 // assuming that the current time is |now|. 117 // assuming that the current time is |now|.
121 void HandleUpdateError(const base::Time& now); 118 void HandleUpdateError(const base::Time& now);
122 119
123 // Generates the URL for the update request and issues the request for the 120 // Generates the URL for the update request and issues the request for the
124 // lists passed to the constructor. 121 // lists passed to the constructor.
125 void IssueUpdateRequest(); 122 void IssueUpdateRequest();
126 123
127 // Returns whether another update is currently scheduled. 124 // Returns whether another update is currently scheduled.
128 bool IsUpdateScheduled() const; 125 bool IsUpdateScheduled() const;
129 126
130 // Schedule the next update with backoff specified. 127 // Schedule the next update, considering whether we are in backoff.
131 void ScheduleNextUpdateWithBackoff(bool back_off); 128 void ScheduleNextUpdate(bool back_off);
132 129
133 // Schedule the next update, after the given interval. 130 // Schedule the next update, after the given interval.
134 void ScheduleNextUpdateAfterInterval(base::TimeDelta interval); 131 void ScheduleNextUpdateAfterInterval(base::TimeDelta interval);
135 132
136 // Get the next update interval, considering whether we are in backoff. 133 // Get the next update interval, considering whether we are in backoff.
137 base::TimeDelta GetNextUpdateInterval(bool back_off); 134 base::TimeDelta GetNextUpdateInterval(bool back_off);
138 135
139 // The factory that controls the creation of V4UpdateProtocolManager. 136 // The factory that controls the creation of V4UpdateProtocolManager.
140 // This is used by tests. 137 // This is used by tests.
141 static V4UpdateProtocolManagerFactory* factory_; 138 static V4UpdateProtocolManagerFactory* factory_;
(...skipping 19 matching lines...) Expand all
161 // The config of the client making Pver4 requests. 158 // The config of the client making Pver4 requests.
162 const V4ProtocolConfig config_; 159 const V4ProtocolConfig config_;
163 160
164 // The context we use to issue network requests. 161 // The context we use to issue network requests.
165 scoped_refptr<net::URLRequestContextGetter> request_context_getter_; 162 scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
166 163
167 // ID for URLFetchers for testing. 164 // ID for URLFetchers for testing.
168 int url_fetcher_id_; 165 int url_fetcher_id_;
169 166
170 // The callback that's called when GetUpdates completes. 167 // The callback that's called when GetUpdates completes.
171 V4UpdateCallback update_callback_; 168 V4UpdateCallback callback_;
172 169
173 // The pending update request. The request must be canceled when the object is 170 // The pending update request. The request must be canceled when the object is
174 // destroyed. 171 // destroyed.
175 std::unique_ptr<net::URLFetcher> request_; 172 std::unique_ptr<net::URLFetcher> request_;
176 173
177 // Timer to setup the next update request. 174 // Timer to setup the next update request.
178 base::OneShotTimer update_timer_; 175 base::OneShotTimer update_timer_;
179 176
180 base::Time last_response_time_;
181
182 DISALLOW_COPY_AND_ASSIGN(V4UpdateProtocolManager); 177 DISALLOW_COPY_AND_ASSIGN(V4UpdateProtocolManager);
183 }; 178 };
184 179
185 // Interface of a factory to create V4UpdateProtocolManager. Useful for tests. 180 // Interface of a factory to create V4UpdateProtocolManager. Useful for tests.
186 class V4UpdateProtocolManagerFactory { 181 class V4UpdateProtocolManagerFactory {
187 public: 182 public:
188 V4UpdateProtocolManagerFactory() {} 183 V4UpdateProtocolManagerFactory() {}
189 virtual ~V4UpdateProtocolManagerFactory() {} 184 virtual ~V4UpdateProtocolManagerFactory() {}
190 virtual std::unique_ptr<V4UpdateProtocolManager> CreateProtocolManager( 185 virtual std::unique_ptr<V4UpdateProtocolManager> CreateProtocolManager(
191 net::URLRequestContextGetter* request_context_getter, 186 net::URLRequestContextGetter* request_context_getter,
192 const V4ProtocolConfig& config, 187 const V4ProtocolConfig& config,
193 const base::hash_map<UpdateListIdentifier, std::string>& 188 const base::hash_map<UpdateListIdentifier, std::string>&
194 current_list_states, 189 current_list_states,
195 V4UpdateCallback callback) = 0; 190 V4UpdateCallback callback) = 0;
196 191
197 private: 192 private:
198 DISALLOW_COPY_AND_ASSIGN(V4UpdateProtocolManagerFactory); 193 DISALLOW_COPY_AND_ASSIGN(V4UpdateProtocolManagerFactory);
199 }; 194 };
200 195
201 } // namespace safe_browsing 196 } // namespace safe_browsing
202 197
203 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_UPDATE_PROTOCOL_MANAGER_H_ 198 #endif // COMPONENTS_SAFE_BROWSING_DB_V4_UPDATE_PROTOCOL_MANAGER_H_
OLDNEW
« no previous file with comments | « components/safe_browsing_db/v4_store.cc ('k') | components/safe_browsing_db/v4_update_protocol_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698