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

Side by Side Diff: chrome/browser/sync/glue/sync_backend_host.h

Issue 11360259: Sync: Add DeviceInfo's ChangeProcessor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix sync_client.cc Created 8 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/glue/device_info.cc ('k') | chrome/browser/sync/glue/sync_backend_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_H_ 5 #ifndef CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_
6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ 6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 25 matching lines...) Expand all
36 class Profile; 36 class Profile;
37 37
38 namespace syncer { 38 namespace syncer {
39 class SyncManagerFactory; 39 class SyncManagerFactory;
40 } 40 }
41 41
42 namespace browser_sync { 42 namespace browser_sync {
43 43
44 class ChangeProcessor; 44 class ChangeProcessor;
45 class ChromeSyncNotificationBridge; 45 class ChromeSyncNotificationBridge;
46 struct Experiments;
47 class InvalidatorStorage; 46 class InvalidatorStorage;
48 class SyncBackendRegistrar; 47 class SyncBackendRegistrar;
49 class SyncPrefs; 48 class SyncPrefs;
49 class SyncedDeviceTracker;
50 struct Experiments;
50 51
51 // SyncFrontend is the interface used by SyncBackendHost to communicate with 52 // SyncFrontend is the interface used by SyncBackendHost to communicate with
52 // the entity that created it and, presumably, is interested in sync-related 53 // the entity that created it and, presumably, is interested in sync-related
53 // activity. 54 // activity.
54 // NOTE: All methods will be invoked by a SyncBackendHost on the same thread 55 // NOTE: All methods will be invoked by a SyncBackendHost on the same thread
55 // used to create that SyncBackendHost. 56 // used to create that SyncBackendHost.
56 class SyncFrontend : public syncer::InvalidationHandler { 57 class SyncFrontend : public syncer::InvalidationHandler {
57 public: 58 public:
58 SyncFrontend() {} 59 SyncFrontend() {}
59 60
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 // passphrase was set (if available). 278 // passphrase was set (if available).
278 base::Time GetExplicitPassphraseTime() const; 279 base::Time GetExplicitPassphraseTime() const;
279 280
280 // True if the cryptographer has any keys available to attempt decryption. 281 // True if the cryptographer has any keys available to attempt decryption.
281 // Could mean we've downloaded and loaded Nigori objects, or we bootstrapped 282 // Could mean we've downloaded and loaded Nigori objects, or we bootstrapped
282 // using a token previously received. 283 // using a token previously received.
283 bool IsCryptographerReady(const syncer::BaseTransaction* trans) const; 284 bool IsCryptographerReady(const syncer::BaseTransaction* trans) const;
284 285
285 void GetModelSafeRoutingInfo(syncer::ModelSafeRoutingInfo* out) const; 286 void GetModelSafeRoutingInfo(syncer::ModelSafeRoutingInfo* out) const;
286 287
288 // Fetches the DeviceInfo ChangeProcessor.
289 // We'll keep this test-only until we have non-test clients.
290 virtual SyncedDeviceTracker* GetSyncedDeviceTrackerForTest();
291
287 protected: 292 protected:
288 // The types and functions below are protected so that test 293 // The types and functions below are protected so that test
289 // subclasses can use them. 294 // subclasses can use them.
290 // 295 //
291 // TODO(akalin): Figure out a better way for tests to hook into 296 // TODO(akalin): Figure out a better way for tests to hook into
292 // SyncBackendHost. 297 // SyncBackendHost.
293 298
294 typedef base::Callback<scoped_ptr<syncer::HttpPostProviderFactory>(void)> 299 typedef base::Callback<scoped_ptr<syncer::HttpPostProviderFactory>(void)>
295 MakeHttpBridgeFactoryFn; 300 MakeHttpBridgeFactoryFn;
296 301
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 372
368 SyncFrontend* frontend() { return frontend_; } 373 SyncFrontend* frontend() { return frontend_; }
369 374
370 private: 375 private:
371 // The real guts of SyncBackendHost, to keep the public client API clean. 376 // The real guts of SyncBackendHost, to keep the public client API clean.
372 class Core; 377 class Core;
373 378
374 // An enum representing the steps to initializing the SyncBackendHost. 379 // An enum representing the steps to initializing the SyncBackendHost.
375 enum InitializationState { 380 enum InitializationState {
376 NOT_ATTEMPTED, 381 NOT_ATTEMPTED,
377 CREATING_SYNC_MANAGER, // We're waiting for the first callback from the 382 CREATING_SYNC_MANAGER, // We're waiting for the first callback from the
378 // sync thread to inform us that the sync manager 383 // sync thread to inform us that the sync
379 // has been created. 384 // manager has been created.
380 NOT_INITIALIZED, // Initialization hasn't completed, but we've 385 NOT_INITIALIZED, // Initialization hasn't completed, but we've
381 // constructed a SyncManager. 386 // constructed a SyncManager.
382 DOWNLOADING_NIGORI, // The SyncManager is initialized, but 387 DOWNLOADING_CONTROL_TYPES, // The SyncManager is initialized, but
383 // we're fetching sync encryption information. 388 // we're fetching metadata, such as encryption
384 ASSOCIATING_NIGORI, // The SyncManager is initialized, and we 389 // information, from the server.
385 // have the sync encryption information, but we 390 PROCESSING_CONTROL_TYPES, // Running init tasks that require metadata to
386 // have to update the local encryption state. 391 // be available. This includes registering our
387 INITIALIZED, // Initialization is complete. 392 // device information and refreshing encryption.
393 INITIALIZED, // Initialization is complete.
388 }; 394 };
389 395
390 // Checks if we have received a notice to turn on experimental datatypes 396 // Checks if we have received a notice to turn on experimental datatypes
391 // (via the nigori node) and informs the frontend if that is the case. 397 // (via the nigori node) and informs the frontend if that is the case.
392 // Note: it is illegal to call this before the backend is initialized. 398 // Note: it is illegal to call this before the backend is initialized.
393 void AddExperimentalTypes(); 399 void AddExperimentalTypes();
394 400
395 // Downloading of nigori failed and will be retried. 401 // Downloading of nigori failed and will be retried.
396 void OnNigoriDownloadRetry(); 402 void OnNigoriDownloadRetry();
397 403
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 void HandleInvalidatorStateChangeOnFrontendLoop( 488 void HandleInvalidatorStateChangeOnFrontendLoop(
483 syncer::InvalidatorState state); 489 syncer::InvalidatorState state);
484 void HandleIncomingInvalidationOnFrontendLoop( 490 void HandleIncomingInvalidationOnFrontendLoop(
485 const syncer::ObjectIdInvalidationMap& invalidation_map, 491 const syncer::ObjectIdInvalidationMap& invalidation_map,
486 syncer::IncomingInvalidationSource source); 492 syncer::IncomingInvalidationSource source);
487 493
488 // Handles stopping the core's SyncManager, accounting for whether 494 // Handles stopping the core's SyncManager, accounting for whether
489 // initialization is done yet. 495 // initialization is done yet.
490 void StopSyncManagerForShutdown(const base::Closure& closure); 496 void StopSyncManagerForShutdown(const base::Closure& closure);
491 497
498 // Must be called on |frontend_loop_|. |done_callback| is called on
499 // |frontend_loop_|.
500 void InitialProcessControlTypes(const base::Closure& done_callback);
501
492 base::WeakPtrFactory<SyncBackendHost> weak_ptr_factory_; 502 base::WeakPtrFactory<SyncBackendHost> weak_ptr_factory_;
493 503
494 // A thread where all the sync operations happen. 504 // A thread where all the sync operations happen.
495 base::Thread sync_thread_; 505 base::Thread sync_thread_;
496 506
497 // A reference to the MessageLoop used to construct |this|, so we know how 507 // A reference to the MessageLoop used to construct |this|, so we know how
498 // to safely talk back to the SyncFrontend. 508 // to safely talk back to the SyncFrontend.
499 MessageLoop* const frontend_loop_; 509 MessageLoop* const frontend_loop_;
500 510
501 Profile* const profile_; 511 Profile* const profile_;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 // HandleInitializationCompletedOnFrontendLoop. 562 // HandleInitializationCompletedOnFrontendLoop.
553 syncer::WeakHandle<syncer::JsBackend> js_backend_; 563 syncer::WeakHandle<syncer::JsBackend> js_backend_;
554 syncer::WeakHandle<syncer::DataTypeDebugInfoListener> debug_info_listener_; 564 syncer::WeakHandle<syncer::DataTypeDebugInfoListener> debug_info_listener_;
555 565
556 DISALLOW_COPY_AND_ASSIGN(SyncBackendHost); 566 DISALLOW_COPY_AND_ASSIGN(SyncBackendHost);
557 }; 567 };
558 568
559 } // namespace browser_sync 569 } // namespace browser_sync
560 570
561 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ 571 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/device_info.cc ('k') | chrome/browser/sync/glue/sync_backend_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698