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

Side by Side Diff: chrome/browser/sync/profile_sync_service.h

Issue 1067843002: Add API to sync_driver::SyncService for iOS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments Created 5 years, 8 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
« no previous file with comments | « no previous file | components/sync_driver/sync_service.h » ('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_PROFILE_SYNC_SERVICE_H_ 5 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_ 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/sync/backend_unrecoverable_error_handler.h" 25 #include "chrome/browser/sync/backend_unrecoverable_error_handler.h"
26 #include "chrome/browser/sync/backup_rollback_controller.h" 26 #include "chrome/browser/sync/backup_rollback_controller.h"
27 #include "chrome/browser/sync/glue/sync_backend_host.h" 27 #include "chrome/browser/sync/glue/sync_backend_host.h"
28 #include "chrome/browser/sync/protocol_event_observer.h" 28 #include "chrome/browser/sync/protocol_event_observer.h"
29 #include "chrome/browser/sync/sessions/sessions_sync_manager.h" 29 #include "chrome/browser/sync/sessions/sessions_sync_manager.h"
30 #include "chrome/browser/sync/startup_controller.h" 30 #include "chrome/browser/sync/startup_controller.h"
31 #include "chrome/browser/sync/sync_stopped_reporter.h" 31 #include "chrome/browser/sync/sync_stopped_reporter.h"
32 #include "components/keyed_service/core/keyed_service.h" 32 #include "components/keyed_service/core/keyed_service.h"
33 #include "components/signin/core/browser/signin_manager_base.h" 33 #include "components/signin/core/browser/signin_manager_base.h"
34 #include "components/sync_driver/data_type_controller.h" 34 #include "components/sync_driver/data_type_controller.h"
35 #include "components/sync_driver/data_type_encryption_handler.h"
36 #include "components/sync_driver/data_type_manager.h" 35 #include "components/sync_driver/data_type_manager.h"
37 #include "components/sync_driver/data_type_manager_observer.h" 36 #include "components/sync_driver/data_type_manager_observer.h"
38 #include "components/sync_driver/data_type_status_table.h" 37 #include "components/sync_driver/data_type_status_table.h"
39 #include "components/sync_driver/device_info_sync_service.h" 38 #include "components/sync_driver/device_info_sync_service.h"
40 #include "components/sync_driver/local_device_info_provider.h" 39 #include "components/sync_driver/local_device_info_provider.h"
41 #include "components/sync_driver/non_blocking_data_type_manager.h" 40 #include "components/sync_driver/non_blocking_data_type_manager.h"
42 #include "components/sync_driver/sync_frontend.h" 41 #include "components/sync_driver/sync_frontend.h"
43 #include "components/sync_driver/sync_prefs.h" 42 #include "components/sync_driver/sync_prefs.h"
44 #include "components/sync_driver/sync_service.h" 43 #include "components/sync_driver/sync_service.h"
45 #include "google_apis/gaia/google_service_auth_error.h" 44 #include "google_apis/gaia/google_service_auth_error.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 // SetSyncSetupCompleted() followed by SetSetupInProgress(false) - this will 178 // SetSyncSetupCompleted() followed by SetSetupInProgress(false) - this will
180 // tell the sync engine that setup is completed and it can begin downloading 179 // tell the sync engine that setup is completed and it can begin downloading
181 // data from the sync server. 180 // data from the sync server.
182 // 181 //
183 class ProfileSyncService : public sync_driver::SyncService, 182 class ProfileSyncService : public sync_driver::SyncService,
184 public sync_driver::SyncFrontend, 183 public sync_driver::SyncFrontend,
185 public sync_driver::SyncPrefObserver, 184 public sync_driver::SyncPrefObserver,
186 public sync_driver::DataTypeManagerObserver, 185 public sync_driver::DataTypeManagerObserver,
187 public syncer::UnrecoverableErrorHandler, 186 public syncer::UnrecoverableErrorHandler,
188 public KeyedService, 187 public KeyedService,
189 public sync_driver::DataTypeEncryptionHandler,
190 public OAuth2TokenService::Consumer, 188 public OAuth2TokenService::Consumer,
191 public OAuth2TokenService::Observer, 189 public OAuth2TokenService::Observer,
192 public SigninManagerBase::Observer { 190 public SigninManagerBase::Observer {
193 public: 191 public:
194 typedef browser_sync::SyncBackendHost::Status Status; 192 typedef browser_sync::SyncBackendHost::Status Status;
195 193
196 // Status of sync server connection, sync token and token request. 194 // Status of sync server connection, sync token and token request.
197 struct SyncTokenStatus { 195 struct SyncTokenStatus {
198 SyncTokenStatus(); 196 SyncTokenStatus();
199 ~SyncTokenStatus(); 197 ~SyncTokenStatus();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // types and clicking OK. 229 // types and clicking OK.
232 // Events resulting in the stoppage of sync service. 230 // Events resulting in the stoppage of sync service.
233 STOP_FROM_OPTIONS = 20, // Sync was stopped from Wrench->Options. 231 STOP_FROM_OPTIONS = 20, // Sync was stopped from Wrench->Options.
234 STOP_FROM_ADVANCED_DIALOG = 21, // Sync was stopped via advanced settings. 232 STOP_FROM_ADVANCED_DIALOG = 21, // Sync was stopped via advanced settings.
235 233
236 // Miscellaneous events caused by sync service. 234 // Miscellaneous events caused by sync service.
237 235
238 MAX_SYNC_EVENT_CODE 236 MAX_SYNC_EVENT_CODE
239 }; 237 };
240 238
241 // Used to specify the kind of passphrase with which sync data is encrypted.
242 enum PassphraseType {
243 IMPLICIT, // The user did not provide a custom passphrase for encryption.
244 // We implicitly use the GAIA password in such cases.
245 EXPLICIT, // The user selected the "use custom passphrase" radio button
246 // during sync setup and provided a passphrase.
247 };
248
249 enum SyncStatusSummary { 239 enum SyncStatusSummary {
250 UNRECOVERABLE_ERROR, 240 UNRECOVERABLE_ERROR,
251 NOT_ENABLED, 241 NOT_ENABLED,
252 SETUP_INCOMPLETE, 242 SETUP_INCOMPLETE,
253 DATATYPES_NOT_INITIALIZED, 243 DATATYPES_NOT_INITIALIZED,
254 INITIALIZED, 244 INITIALIZED,
255 BACKUP_USER_DATA, 245 BACKUP_USER_DATA,
256 ROLLBACK_USER_DATA, 246 ROLLBACK_USER_DATA,
257 UNKNOWN_ERROR, 247 UNKNOWN_ERROR,
258 }; 248 };
(...skipping 16 matching lines...) Expand all
275 Profile* profile, 265 Profile* profile,
276 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper, 266 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper,
277 ProfileOAuth2TokenService* oauth2_token_service, 267 ProfileOAuth2TokenService* oauth2_token_service,
278 browser_sync::ProfileSyncServiceStartBehavior start_behavior); 268 browser_sync::ProfileSyncServiceStartBehavior start_behavior);
279 ~ProfileSyncService() override; 269 ~ProfileSyncService() override;
280 270
281 // Initializes the object. This must be called at most once, and 271 // Initializes the object. This must be called at most once, and
282 // immediately after an object of this class is constructed. 272 // immediately after an object of this class is constructed.
283 void Initialize(); 273 void Initialize();
284 274
285 void SetSyncSetupCompleted();
286
287 // sync_driver::SyncService implementation 275 // sync_driver::SyncService implementation
288 bool HasSyncSetupCompleted() const override; 276 bool HasSyncSetupCompleted() const override;
289 bool SyncActive() const override; 277 bool SyncActive() const override;
278 bool IsSyncEnabledAndLoggedIn() override;
279 void DisableForUser() override;
280 void StopAndSuppress() override;
281 void UnsuppressAndStart() override;
290 syncer::ModelTypeSet GetActiveDataTypes() const override; 282 syncer::ModelTypeSet GetActiveDataTypes() const override;
283 syncer::ModelTypeSet GetPreferredDataTypes() const override;
284 void OnUserChoseDatatypes(bool sync_everything,
285 syncer::ModelTypeSet chosen_types) override;
286 void SetSyncSetupCompleted() override;
287 bool FirstSetupInProgress() const override;
288 void SetSetupInProgress(bool setup_in_progress) override;
289 bool setup_in_progress() const override;
290 bool ConfigurationDone() const override;
291 const GoogleServiceAuthError& GetAuthError() const override;
292 bool HasUnrecoverableError() const override;
293 bool backend_initialized() const override;
294 bool IsPassphraseRequiredForDecryption() const override;
295 base::Time GetExplicitPassphraseTime() const override;
296 bool IsUsingSecondaryPassphrase() const override;
297 void EnableEncryptEverything() override;
298 void SetEncryptionPassphrase(const std::string& passphrase,
299 PassphraseType type) override;
300 bool SetDecryptionPassphrase(const std::string& passphrase) override
301 WARN_UNUSED_RESULT;
291 void AddObserver(sync_driver::SyncServiceObserver* observer) override; 302 void AddObserver(sync_driver::SyncServiceObserver* observer) override;
292 void RemoveObserver(sync_driver::SyncServiceObserver* observer) override; 303 void RemoveObserver(sync_driver::SyncServiceObserver* observer) override;
293 bool HasObserver( 304 bool HasObserver(
294 const sync_driver::SyncServiceObserver* observer) const override; 305 const sync_driver::SyncServiceObserver* observer) const override;
295 306
296 void AddProtocolEventObserver(browser_sync::ProtocolEventObserver* observer); 307 void AddProtocolEventObserver(browser_sync::ProtocolEventObserver* observer);
297 void RemoveProtocolEventObserver( 308 void RemoveProtocolEventObserver(
298 browser_sync::ProtocolEventObserver* observer); 309 browser_sync::ProtocolEventObserver* observer);
299 310
300 void AddTypeDebugInfoObserver(syncer::TypeDebugInfoObserver* observer); 311 void AddTypeDebugInfoObserver(syncer::TypeDebugInfoObserver* observer);
(...skipping 13 matching lines...) Expand all
314 // 325 //
315 // These requests can live a long time and return when you least expect it. 326 // These requests can live a long time and return when you least expect it.
316 // For safety, the callback should be bound to some sort of WeakPtr<> or 327 // For safety, the callback should be bound to some sort of WeakPtr<> or
317 // scoped_refptr<>. 328 // scoped_refptr<>.
318 void GetAllNodes( 329 void GetAllNodes(
319 const base::Callback<void(scoped_ptr<base::ListValue>)>& callback); 330 const base::Callback<void(scoped_ptr<base::ListValue>)>& callback);
320 331
321 void RegisterAuthNotifications(); 332 void RegisterAuthNotifications();
322 void UnregisterAuthNotifications(); 333 void UnregisterAuthNotifications();
323 334
324 // Returns true if sync is enabled/not suppressed and the user is logged in.
325 // (being logged in does not mean that tokens are available - tokens may
326 // be missing because they have not loaded yet, or because they were deleted
327 // due to http://crbug.com/121755).
328 // Virtual to enable mocking in tests.
329 // TODO(tim): Remove this? Nothing in ProfileSyncService uses it, and outside
330 // callers use a seemingly arbitrary / redundant / bug prone combination of
331 // this method, IsSyncAccessible, and others.
332 virtual bool IsSyncEnabledAndLoggedIn();
333
334 // Return whether OAuth2 refresh token is loaded and available for the backend 335 // Return whether OAuth2 refresh token is loaded and available for the backend
335 // to start up. Virtual to enable mocking in tests. 336 // to start up. Virtual to enable mocking in tests.
336 virtual bool IsOAuthRefreshTokenAvailable(); 337 virtual bool IsOAuthRefreshTokenAvailable();
337 338
338 // Registers a data type controller with the sync service. This 339 // Registers a data type controller with the sync service. This
339 // makes the data type controller available for use, it does not 340 // makes the data type controller available for use, it does not
340 // enable or activate the synchronization of the data type (see 341 // enable or activate the synchronization of the data type (see
341 // ActivateDataType). Takes ownership of the pointer. 342 // ActivateDataType). Takes ownership of the pointer.
342 void RegisterDataTypeController( 343 void RegisterDataTypeController(
343 sync_driver::DataTypeController* data_type_controller); 344 sync_driver::DataTypeController* data_type_controller);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 virtual sync_driver::LocalDeviceInfoProvider* GetLocalDeviceInfoProvider(); 379 virtual sync_driver::LocalDeviceInfoProvider* GetLocalDeviceInfoProvider();
379 380
380 // Returns synced devices tracker. 381 // Returns synced devices tracker.
381 virtual sync_driver::DeviceInfoTracker* GetDeviceInfoTracker() const; 382 virtual sync_driver::DeviceInfoTracker* GetDeviceInfoTracker() const;
382 383
383 // Fills state_map with a map of current data types that are possible to 384 // Fills state_map with a map of current data types that are possible to
384 // sync, as well as their states. 385 // sync, as well as their states.
385 void GetDataTypeControllerStates( 386 void GetDataTypeControllerStates(
386 sync_driver::DataTypeController::StateMap* state_map) const; 387 sync_driver::DataTypeController::StateMap* state_map) const;
387 388
388 // Disables sync for user. Use ShowLoginDialog to enable.
389 virtual void DisableForUser();
390
391 // Disables sync for the user and prevents it from starting on next restart. 389 // Disables sync for the user and prevents it from starting on next restart.
392 virtual void StopSyncingPermanently(); 390 virtual void StopSyncingPermanently();
393 391
394 // SyncFrontend implementation. 392 // SyncFrontend implementation.
395 void OnBackendInitialized( 393 void OnBackendInitialized(
396 const syncer::WeakHandle<syncer::JsBackend>& js_backend, 394 const syncer::WeakHandle<syncer::JsBackend>& js_backend,
397 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& 395 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>&
398 debug_info_listener, 396 debug_info_listener,
399 const std::string& cache_guid, 397 const std::string& cache_guid,
400 bool success) override; 398 bool success) override;
(...skipping 29 matching lines...) Expand all
430 bool IsPassphraseRequired() const override; 428 bool IsPassphraseRequired() const override;
431 syncer::ModelTypeSet GetEncryptedDataTypes() const override; 429 syncer::ModelTypeSet GetEncryptedDataTypes() const override;
432 430
433 // SigninManagerBase::Observer implementation. 431 // SigninManagerBase::Observer implementation.
434 void GoogleSigninSucceeded(const std::string& account_id, 432 void GoogleSigninSucceeded(const std::string& account_id,
435 const std::string& username, 433 const std::string& username,
436 const std::string& password) override; 434 const std::string& password) override;
437 void GoogleSignedOut(const std::string& account_id, 435 void GoogleSignedOut(const std::string& account_id,
438 const std::string& username) override; 436 const std::string& username) override;
439 437
440 // Called when a user chooses which data types to sync as part of the sync
441 // setup wizard. |sync_everything| represents whether they chose the
442 // "keep everything synced" option; if true, |chosen_types| will be ignored
443 // and all data types will be synced. |sync_everything| means "sync all
444 // current and future data types."
445 virtual void OnUserChoseDatatypes(bool sync_everything,
446 syncer::ModelTypeSet chosen_types);
447
448 // Get the sync status code. 438 // Get the sync status code.
449 SyncStatusSummary QuerySyncStatusSummary(); 439 SyncStatusSummary QuerySyncStatusSummary();
450 440
451 // Get a description of the sync status for displaying in the user interface. 441 // Get a description of the sync status for displaying in the user interface.
452 std::string QuerySyncStatusSummaryString(); 442 std::string QuerySyncStatusSummaryString();
453 443
454 // Initializes a struct of status indicators with data from the backend. 444 // Initializes a struct of status indicators with data from the backend.
455 // Returns false if the backend was not available for querying; in that case 445 // Returns false if the backend was not available for querying; in that case
456 // the struct will be filled with default data. 446 // the struct will be filled with default data.
457 virtual bool QueryDetailedSyncStatus( 447 virtual bool QueryDetailedSyncStatus(
458 browser_sync::SyncBackendHost::Status* result); 448 browser_sync::SyncBackendHost::Status* result);
459 449
460 virtual const GoogleServiceAuthError& GetAuthError() const;
461
462 // Returns true if initial sync setup is in progress (does not return true
463 // if the user is customizing sync after already completing setup once).
464 // ProfileSyncService uses this to determine if it's OK to start syncing, or
465 // if the user is still setting up the initial sync configuration.
466 virtual bool FirstSetupInProgress() const;
467
468 // Called by the UI to notify the ProfileSyncService that UI is visible so it
469 // will not start syncing. This tells sync whether it's safe to start
470 // downloading data types yet (we don't start syncing until after sync setup
471 // is complete). The UI calls this as soon as any part of the signin wizard is
472 // displayed (even just the login UI).
473 // If |setup_in_progress| is false, this also kicks the sync engine to ensure
474 // that data download starts. In this case, |ReconfigureDatatypeManager| will
475 // get triggered.
476 virtual void SetSetupInProgress(bool setup_in_progress);
477
478 // Reconfigures the data type manager with the latest enabled types. 450 // Reconfigures the data type manager with the latest enabled types.
479 // Note: Does not initialize the backend if it is not already initialized. 451 // Note: Does not initialize the backend if it is not already initialized.
480 // This function needs to be called only after sync has been initialized 452 // This function needs to be called only after sync has been initialized
481 // (i.e.,only for reconfigurations). The reason we don't initialize the 453 // (i.e.,only for reconfigurations). The reason we don't initialize the
482 // backend is because if we had encountered an unrecoverable error we don't 454 // backend is because if we had encountered an unrecoverable error we don't
483 // want to startup once more. 455 // want to startup once more.
484 // This function is called by |SetSetupInProgress|. 456 // This function is called by |SetSetupInProgress|.
485 virtual void ReconfigureDatatypeManager(); 457 virtual void ReconfigureDatatypeManager();
486 458
487 virtual bool HasUnrecoverableError() const;
488 const std::string& unrecoverable_error_message() { 459 const std::string& unrecoverable_error_message() {
489 return unrecoverable_error_message_; 460 return unrecoverable_error_message_;
490 } 461 }
491 tracked_objects::Location unrecoverable_error_location() { 462 tracked_objects::Location unrecoverable_error_location() {
492 return unrecoverable_error_location_; 463 return unrecoverable_error_location_;
493 } 464 }
494 465
495 // Returns true if OnPassphraseRequired has been called for decryption and
496 // we have an encrypted data type enabled.
497 virtual bool IsPassphraseRequiredForDecryption() const;
498
499 syncer::PassphraseRequiredReason passphrase_required_reason() const { 466 syncer::PassphraseRequiredReason passphrase_required_reason() const {
500 return passphrase_required_reason_; 467 return passphrase_required_reason_;
501 } 468 }
502 469
503 // Returns a user-friendly string form of last synced time (in minutes). 470 // Returns a user-friendly string form of last synced time (in minutes).
504 virtual base::string16 GetLastSyncedTimeString() const; 471 virtual base::string16 GetLastSyncedTimeString() const;
505 472
506 // Returns a human readable string describing backend initialization state. 473 // Returns a human readable string describing backend initialization state.
507 std::string GetBackendInitializationStateString() const; 474 std::string GetBackendInitializationStateString() const;
508 475
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 // SyncPrefObserver implementation. 563 // SyncPrefObserver implementation.
597 void OnSyncManagedPrefChange(bool is_sync_managed) override; 564 void OnSyncManagedPrefChange(bool is_sync_managed) override;
598 565
599 // Changes which data types we're going to be syncing to |preferred_types|. 566 // Changes which data types we're going to be syncing to |preferred_types|.
600 // If it is running, the DataTypeManager will be instructed to reconfigure 567 // If it is running, the DataTypeManager will be instructed to reconfigure
601 // the sync backend so that exactly these datatypes are actively synced. See 568 // the sync backend so that exactly these datatypes are actively synced. See
602 // class comment for more on what it means for a datatype to be Preferred. 569 // class comment for more on what it means for a datatype to be Preferred.
603 virtual void ChangePreferredDataTypes( 570 virtual void ChangePreferredDataTypes(
604 syncer::ModelTypeSet preferred_types); 571 syncer::ModelTypeSet preferred_types);
605 572
606 // Returns the set of types which are preferred for enabling. This is a
607 // superset of the active types (see GetActiveDataTypes()).
608 virtual syncer::ModelTypeSet GetPreferredDataTypes() const;
609
610 // Returns the set of directory types which are preferred for enabling. 573 // Returns the set of directory types which are preferred for enabling.
611 virtual syncer::ModelTypeSet GetPreferredDirectoryDataTypes() const; 574 virtual syncer::ModelTypeSet GetPreferredDirectoryDataTypes() const;
612 575
613 // Returns the set of off-thread types which are preferred for enabling. 576 // Returns the set of off-thread types which are preferred for enabling.
614 virtual syncer::ModelTypeSet GetPreferredNonBlockingDataTypes() const; 577 virtual syncer::ModelTypeSet GetPreferredNonBlockingDataTypes() const;
615 578
616 // Returns the set of types which are enforced programmatically and can not 579 // Returns the set of types which are enforced programmatically and can not
617 // be disabled by the user. 580 // be disabled by the user.
618 virtual syncer::ModelTypeSet GetForcedDataTypes() const; 581 virtual syncer::ModelTypeSet GetForcedDataTypes() const;
619 582
620 // Gets the set of all data types that could be allowed (the set that 583 // Gets the set of all data types that could be allowed (the set that
621 // should be advertised to the user). These will typically only change 584 // should be advertised to the user). These will typically only change
622 // via a command-line option. See class comment for more on what it means 585 // via a command-line option. See class comment for more on what it means
623 // for a datatype to be Registered. 586 // for a datatype to be Registered.
624 virtual syncer::ModelTypeSet GetRegisteredDataTypes() const; 587 virtual syncer::ModelTypeSet GetRegisteredDataTypes() const;
625 588
626 // Gets the set of directory types which could be allowed. 589 // Gets the set of directory types which could be allowed.
627 virtual syncer::ModelTypeSet GetRegisteredDirectoryDataTypes() const; 590 virtual syncer::ModelTypeSet GetRegisteredDirectoryDataTypes() const;
628 591
629 // Gets the set of off-thread types which could be allowed. 592 // Gets the set of off-thread types which could be allowed.
630 virtual syncer::ModelTypeSet GetRegisteredNonBlockingDataTypes() const; 593 virtual syncer::ModelTypeSet GetRegisteredNonBlockingDataTypes() const;
631 594
632 // Checks whether the Cryptographer is ready to encrypt and decrypt updates 595 // Checks whether the Cryptographer is ready to encrypt and decrypt updates
633 // for sensitive data types. Caller must be holding a 596 // for sensitive data types. Caller must be holding a
634 // syncapi::BaseTransaction to ensure thread safety. 597 // syncapi::BaseTransaction to ensure thread safety.
635 virtual bool IsCryptographerReady( 598 virtual bool IsCryptographerReady(
636 const syncer::BaseTransaction* trans) const; 599 const syncer::BaseTransaction* trans) const;
637 600
638 // Returns true if a secondary (explicit) passphrase is being used. It is not
639 // legal to call this method before the backend is initialized.
640 virtual bool IsUsingSecondaryPassphrase() const;
641
642 // Returns the actual passphrase type being used for encryption. 601 // Returns the actual passphrase type being used for encryption.
643 virtual syncer::PassphraseType GetPassphraseType() const; 602 virtual syncer::PassphraseType GetPassphraseType() const;
644 603
645 // Returns the time the current explicit passphrase (if any), was set.
646 // If no secondary passphrase is in use, or no time is available, returns an
647 // unset base::Time.
648 virtual base::Time GetExplicitPassphraseTime() const;
649
650 // Note about setting passphrases: There are different scenarios under which 604 // Note about setting passphrases: There are different scenarios under which
651 // we might want to apply a passphrase. It could be for first-time encryption, 605 // we might want to apply a passphrase. It could be for first-time encryption,
652 // re-encryption, or for decryption by clients that sign in at a later time. 606 // re-encryption, or for decryption by clients that sign in at a later time.
653 // In addition, encryption can either be done using a custom passphrase, or by 607 // In addition, encryption can either be done using a custom passphrase, or by
654 // reusing the GAIA password. Depending on what is happening in the system, 608 // reusing the GAIA password. Depending on what is happening in the system,
655 // callers should determine which of the two methods below must be used. 609 // callers should determine which of the two methods below must be used.
656 610
657 // Asynchronously sets the passphrase to |passphrase| for encryption. |type|
658 // specifies whether the passphrase is a custom passphrase or the GAIA
659 // password being reused as a passphrase.
660 // TODO(atwilson): Change this so external callers can only set an EXPLICIT
661 // passphrase with this API.
662 virtual void SetEncryptionPassphrase(const std::string& passphrase,
663 PassphraseType type);
664
665 // Asynchronously decrypts pending keys using |passphrase|. Returns false
666 // immediately if the passphrase could not be used to decrypt a locally cached
667 // copy of encrypted keys; returns true otherwise.
668 virtual bool SetDecryptionPassphrase(const std::string& passphrase)
669 WARN_UNUSED_RESULT;
670
671 // Returns true if encrypting all the sync data is allowed. If this method 611 // Returns true if encrypting all the sync data is allowed. If this method
672 // returns false, EnableEncryptEverything() should not be called. 612 // returns false, EnableEncryptEverything() should not be called.
673 virtual bool EncryptEverythingAllowed() const; 613 virtual bool EncryptEverythingAllowed() const;
674 614
675 // Sets whether encrypting all the sync data is allowed or not. 615 // Sets whether encrypting all the sync data is allowed or not.
676 virtual void SetEncryptEverythingAllowed(bool allowed); 616 virtual void SetEncryptEverythingAllowed(bool allowed);
677 617
678 // Turns on encryption for all data. Callers must call OnUserChoseDatatypes()
679 // after calling this to force the encryption to occur.
680 virtual void EnableEncryptEverything();
681
682 // Returns true if we are currently set to encrypt all the sync data. Note: 618 // Returns true if we are currently set to encrypt all the sync data. Note:
683 // this is based on the cryptographer's settings, so if the user has recently 619 // this is based on the cryptographer's settings, so if the user has recently
684 // requested encryption to be turned on, this may not be true yet. For that, 620 // requested encryption to be turned on, this may not be true yet. For that,
685 // encryption_pending() must be checked. 621 // encryption_pending() must be checked.
686 virtual bool EncryptEverythingEnabled() const; 622 virtual bool EncryptEverythingEnabled() const;
687 623
688 // Returns true if the syncer is waiting for new datatypes to be encrypted. 624 // Returns true if the syncer is waiting for new datatypes to be encrypted.
689 virtual bool encryption_pending() const; 625 virtual bool encryption_pending() const;
690 626
691 const GURL& sync_service_url() const { return sync_service_url_; } 627 const GURL& sync_service_url() const { return sync_service_url_; }
692 SigninManagerBase* signin() const; 628 SigninManagerBase* signin() const;
693 629
694 // Used by tests. 630 // Used by tests.
695 bool auto_start_enabled() const; 631 bool auto_start_enabled() const;
696 bool setup_in_progress() const;
697
698 // Stops the sync backend and sets the flag for suppressing sync startup.
699 void StopAndSuppress();
700
701 // Resets the flag for suppressing sync startup and starts the sync backend.
702 virtual void UnsuppressAndStart();
703 632
704 SyncErrorController* sync_error_controller() { 633 SyncErrorController* sync_error_controller() {
705 return sync_error_controller_.get(); 634 return sync_error_controller_.get();
706 } 635 }
707 636
708 // TODO(sync): This is only used in tests. Can we remove it? 637 // TODO(sync): This is only used in tests. Can we remove it?
709 const sync_driver::DataTypeStatusTable& data_type_status_table() const; 638 const sync_driver::DataTypeStatusTable& data_type_status_table() const;
710 639
711 sync_driver::DataTypeManager::ConfigureStatus configure_status() { 640 sync_driver::DataTypeManager::ConfigureStatus configure_status() {
712 return configure_status_; 641 return configure_status_;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 678
750 browser_sync::FaviconCache* GetFaviconCache(); 679 browser_sync::FaviconCache* GetFaviconCache();
751 680
752 // Overrides the NetworkResources used for Sync connections. 681 // Overrides the NetworkResources used for Sync connections.
753 // This function takes ownership of |network_resources|. 682 // This function takes ownership of |network_resources|.
754 void OverrideNetworkResourcesForTest( 683 void OverrideNetworkResourcesForTest(
755 scoped_ptr<syncer::NetworkResources> network_resources); 684 scoped_ptr<syncer::NetworkResources> network_resources);
756 685
757 virtual bool IsDataTypeControllerRunning(syncer::ModelType type) const; 686 virtual bool IsDataTypeControllerRunning(syncer::ModelType type) const;
758 687
759 // Returns true if the SyncBackendHost has told us it's ready to accept
760 // changes. This should only be used for sync's internal configuration logic
761 // (such as deciding when to prompt for an encryption passphrase).
762 virtual bool backend_initialized() const;
763
764 // Returns the current mode the backend is in. 688 // Returns the current mode the backend is in.
765 BackendMode backend_mode() const; 689 BackendMode backend_mode() const;
766 690
767 // Whether the data types active for the current mode have finished
768 // configuration.
769 bool ConfigurationDone() const;
770
771 // Helpers for testing rollback. 691 // Helpers for testing rollback.
772 void SetBrowsingDataRemoverObserverForTesting( 692 void SetBrowsingDataRemoverObserverForTesting(
773 BrowsingDataRemover::Observer* observer); 693 BrowsingDataRemover::Observer* observer);
774 void SetClearingBrowseringDataForTesting(base::Callback< 694 void SetClearingBrowseringDataForTesting(base::Callback<
775 void(BrowsingDataRemover::Observer*, Profile*, base::Time, base::Time)> 695 void(BrowsingDataRemover::Observer*, Profile*, base::Time, base::Time)>
776 c); 696 c);
777 697
778 // Return the base URL of the Sync Server. 698 // Return the base URL of the Sync Server.
779 static GURL GetSyncServiceURL(const base::CommandLine& command_line); 699 static GURL GetSyncServiceURL(const base::CommandLine& command_line);
780 700
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 base::WeakPtrFactory<ProfileSyncService> startup_controller_weak_factory_; 1081 base::WeakPtrFactory<ProfileSyncService> startup_controller_weak_factory_;
1162 1082
1163 DISALLOW_COPY_AND_ASSIGN(ProfileSyncService); 1083 DISALLOW_COPY_AND_ASSIGN(ProfileSyncService);
1164 }; 1084 };
1165 1085
1166 bool ShouldShowActionOnUI( 1086 bool ShouldShowActionOnUI(
1167 const syncer::SyncProtocolError& error); 1087 const syncer::SyncProtocolError& error);
1168 1088
1169 1089
1170 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_ 1090 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
OLDNEW
« no previous file with comments | « no previous file | components/sync_driver/sync_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698