OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ | 5 #ifndef CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ |
6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ | 6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 | 9 |
10 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
173 void DoEnableEncryptEverything(); | 173 void DoEnableEncryptEverything(); |
174 | 174 |
175 // Ask the syncer to check for updates for the specified types. | 175 // Ask the syncer to check for updates for the specified types. |
176 void DoRefreshTypes(syncer::ModelTypeSet types); | 176 void DoRefreshTypes(syncer::ModelTypeSet types); |
177 | 177 |
178 // Invoked if we failed to download the necessary control types at startup. | 178 // Invoked if we failed to download the necessary control types at startup. |
179 // Invokes SyncBackendHost::HandleControlTypesDownloadRetry. | 179 // Invokes SyncBackendHost::HandleControlTypesDownloadRetry. |
180 void OnControlTypesDownloadRetry(); | 180 void OnControlTypesDownloadRetry(); |
181 | 181 |
182 // Called to perform tasks which require the control data to be downloaded. | 182 // Called to perform tasks which require the control data to be downloaded. |
183 // This includes refreshing encryption, setting up the device info change | 183 // This includes refreshing encryption, etc. |
184 // processor, etc. | |
185 void DoInitialProcessControlTypes(); | 184 void DoInitialProcessControlTypes(); |
186 | 185 |
187 // Some parts of DoInitialProcessControlTypes() may be executed on a different | |
188 // thread. This function asynchronously continues the work started in | |
189 // DoInitialProcessControlTypes() once that other thread gets back to us. | |
190 void DoFinishInitialProcessControlTypes(); | |
191 | |
192 // The shutdown order is a bit complicated: | 186 // The shutdown order is a bit complicated: |
193 // 1) Call ShutdownOnUIThread() from |frontend_loop_| to request sync manager | 187 // 1) Call ShutdownOnUIThread() from |frontend_loop_| to request sync manager |
194 // to stop as soon as possible. | 188 // to stop as soon as possible. |
195 // 2) Post DoShutdown() to sync loop to clean up backend state, save | 189 // 2) Post DoShutdown() to sync loop to clean up backend state, save |
196 // directory and destroy sync manager. | 190 // directory and destroy sync manager. |
197 void ShutdownOnUIThread(); | 191 void ShutdownOnUIThread(); |
198 void DoShutdown(syncer::ShutdownReason reason); | 192 void DoShutdown(syncer::ShutdownReason reason); |
199 void DoDestroySyncManager(syncer::ShutdownReason reason); | 193 void DoDestroySyncManager(syncer::ShutdownReason reason); |
200 | 194 |
201 // Configuration methods that must execute on sync loop. | 195 // Configuration methods that must execute on sync loop. |
(...skipping 10 matching lines...) Expand all Loading... | |
212 syncer::ModelTypeSet)>& ready_task); | 206 syncer::ModelTypeSet)>& ready_task); |
213 void DoRetryConfiguration( | 207 void DoRetryConfiguration( |
214 const base::Closure& retry_callback); | 208 const base::Closure& retry_callback); |
215 | 209 |
216 // Set the base request context to use when making HTTP calls. | 210 // Set the base request context to use when making HTTP calls. |
217 // This method will add a reference to the context to persist it | 211 // This method will add a reference to the context to persist it |
218 // on the IO thread. Must be removed from IO thread. | 212 // on the IO thread. Must be removed from IO thread. |
219 | 213 |
220 syncer::SyncManager* sync_manager() { return sync_manager_.get(); } | 214 syncer::SyncManager* sync_manager() { return sync_manager_.get(); } |
221 | 215 |
222 SyncedDeviceTracker* synced_device_tracker() { | |
223 return synced_device_tracker_.get(); | |
224 } | |
225 | |
226 void SendBufferedProtocolEventsAndEnableForwarding(); | 216 void SendBufferedProtocolEventsAndEnableForwarding(); |
227 void DisableProtocolEventForwarding(); | 217 void DisableProtocolEventForwarding(); |
228 | 218 |
229 // Enables the forwarding of directory type debug counters to the | 219 // Enables the forwarding of directory type debug counters to the |
230 // SyncBackendHost. Also requests that updates to all counters be | 220 // SyncBackendHost. Also requests that updates to all counters be |
231 // emitted right away to initialize any new listeners' states. | 221 // emitted right away to initialize any new listeners' states. |
232 void EnableDirectoryTypeDebugInfoForwarding(); | 222 void EnableDirectoryTypeDebugInfoForwarding(); |
233 | 223 |
234 // Disables forwarding of directory type debug counters. | 224 // Disables forwarding of directory type debug counters. |
235 void DisableDirectoryTypeDebugInfoForwarding(); | 225 void DisableDirectoryTypeDebugInfoForwarding(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
286 // Our parent's registrar (not owned). Non-NULL only between | 276 // Our parent's registrar (not owned). Non-NULL only between |
287 // calls to DoInitialize() and DoShutdown(). | 277 // calls to DoInitialize() and DoShutdown(). |
288 SyncBackendRegistrar* registrar_; | 278 SyncBackendRegistrar* registrar_; |
289 | 279 |
290 // The timer used to periodically call SaveChanges. | 280 // The timer used to periodically call SaveChanges. |
291 scoped_ptr<base::RepeatingTimer<SyncBackendHostCore> > save_changes_timer_; | 281 scoped_ptr<base::RepeatingTimer<SyncBackendHostCore> > save_changes_timer_; |
292 | 282 |
293 // Our encryptor, which uses Chrome's encryption functions. | 283 // Our encryptor, which uses Chrome's encryption functions. |
294 sync_driver::SystemEncryptor encryptor_; | 284 sync_driver::SystemEncryptor encryptor_; |
295 | 285 |
296 // A special ChangeProcessor that tracks the DEVICE_INFO type for us. | |
297 scoped_ptr<SyncedDeviceTracker> synced_device_tracker_; | |
298 | |
299 // The top-level syncapi entry point. Lives on the sync thread. | 286 // The top-level syncapi entry point. Lives on the sync thread. |
300 scoped_ptr<syncer::SyncManager> sync_manager_; | 287 scoped_ptr<syncer::SyncManager> sync_manager_; |
301 | 288 |
302 // Temporary holder of sync manager's initialization results. Set by | 289 // Temporary holder of sync manager's initialization results. Set by |
303 // OnInitializeComplete, and consumed when we pass it via OnBackendInitialized | 290 // OnInitializeComplete, and consumed when we pass it via OnBackendInitialized |
304 // in the final state of HandleInitializationSuccessOnFrontendLoop. | 291 // in the final state of HandleInitializationSuccessOnFrontendLoop. |
305 syncer::WeakHandle<syncer::JsBackend> js_backend_; | 292 syncer::WeakHandle<syncer::JsBackend> js_backend_; |
306 syncer::WeakHandle<syncer::DataTypeDebugInfoListener> debug_info_listener_; | 293 syncer::WeakHandle<syncer::DataTypeDebugInfoListener> debug_info_listener_; |
307 | 294 |
308 // These signals allow us to send requests to shut down the HttpBridgeFactory | 295 // These signals allow us to send requests to shut down the HttpBridgeFactory |
309 // and ServerConnectionManager without having to wait for those classes to | 296 // and ServerConnectionManager without having to wait for those classes to |
310 // finish initializing first. | 297 // finish initializing first. |
311 // | 298 // |
312 // See comments in SyncBackendHostCore::ShutdownOnUIThread() for more details. | 299 // See comments in SyncBackendHostCore::ShutdownOnUIThread() for more details. |
313 syncer::CancelationSignal release_request_context_signal_; | 300 syncer::CancelationSignal release_request_context_signal_; |
314 syncer::CancelationSignal stop_syncing_signal_; | 301 syncer::CancelationSignal stop_syncing_signal_; |
315 | 302 |
316 // Matches the value of SyncPref's HasSyncSetupCompleted() flag at init time. | 303 // Matches the value of SyncPref's HasSyncSetupCompleted() flag at init time. |
317 // Should not be used for anything except for UMAs and logging. | 304 // Should not be used for anything except for UMAs and logging. |
318 const bool has_sync_setup_completed_; | 305 const bool has_sync_setup_completed_; |
319 | 306 |
320 // Set when we've been asked to forward sync protocol events to the frontend. | 307 // Set when we've been asked to forward sync protocol events to the frontend. |
321 bool forward_protocol_events_; | 308 bool forward_protocol_events_; |
322 | 309 |
323 // Set when the forwarding of per-type debug counters is enabled. | 310 // Set when the forwarding of per-type debug counters is enabled. |
324 bool forward_type_info_; | 311 bool forward_type_info_; |
325 | 312 |
313 // TODO: do we still need this? | |
pavely
2014/09/17 23:04:38
No, we don't.
stanisc
2014/09/18 22:46:54
Done.
| |
326 // Obtained from SigninClient::GetSigninScopedDeviceId(). Stored here just to | 314 // Obtained from SigninClient::GetSigninScopedDeviceId(). Stored here just to |
327 // pass from SyncBackendHostImpl to SyncedDeviceTracker. | 315 // pass from SyncBackendHostImpl to SyncedDeviceTracker. |
328 std::string signin_scoped_device_id_; | 316 std::string signin_scoped_device_id_; |
329 | 317 |
330 base::WeakPtrFactory<SyncBackendHostCore> weak_ptr_factory_; | 318 base::WeakPtrFactory<SyncBackendHostCore> weak_ptr_factory_; |
331 | 319 |
332 DISALLOW_COPY_AND_ASSIGN(SyncBackendHostCore); | 320 DISALLOW_COPY_AND_ASSIGN(SyncBackendHostCore); |
333 }; | 321 }; |
334 | 322 |
335 } // namespace browser_sync | 323 } // namespace browser_sync |
336 | 324 |
337 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ | 325 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_CORE_H_ |
OLD | NEW |