Index: chrome/browser/sync/profile_sync_service.h |
=================================================================== |
--- chrome/browser/sync/profile_sync_service.h (revision 58702) |
+++ chrome/browser/sync/profile_sync_service.h (working copy) |
@@ -15,12 +15,14 @@ |
#include "base/string16.h" |
#include "base/time.h" |
#include "chrome/browser/prefs/pref_member.h" |
+#include "chrome/browser/sync/engine/syncapi.h" |
#include "chrome/browser/sync/glue/data_type_controller.h" |
#include "chrome/browser/sync/glue/data_type_manager.h" |
#include "chrome/browser/sync/glue/session_model_associator.h" |
#include "chrome/browser/sync/glue/sync_backend_host.h" |
#include "chrome/browser/sync/notification_method.h" |
#include "chrome/browser/sync/profile_sync_service_observer.h" |
+#include "chrome/browser/sync/signin_manager.h" |
#include "chrome/browser/sync/sync_setup_wizard.h" |
#include "chrome/browser/sync/syncable/model_type.h" |
#include "chrome/browser/sync/unrecoverable_error_handler.h" |
@@ -34,6 +36,7 @@ |
class NotificationType; |
class Profile; |
class ProfileSyncFactory; |
+class TokenMigrator; |
// ProfileSyncService is the layer between browser subsystems like bookmarks, |
// and the sync backend. Each subsystem is logically thought of as being |
@@ -114,13 +117,23 @@ |
ProfileSyncService(ProfileSyncFactory* factory_, |
Profile* profile, |
- bool bootstrap_sync_authentication); |
+ const std::string& cros_user); |
virtual ~ProfileSyncService(); |
// Initializes the object. This should be called every time an object of this |
// class is constructed. |
void Initialize(); |
+ void RegisterAuthNotifications(); |
+ |
+ // Return whether all sync tokens are loaded and |
+ // available for the backend to start up. |
+ bool AreCredentialsAvailable(); |
+ |
+ // Loads credentials migrated from the old user settings db. |
+ void LoadMigratedCredentials(const std::string& username, |
+ const std::string& token); |
+ |
// Registers a data type controller with the sync service. This |
// makes the data type controller available for use, it does not |
// enable or activate the synchronization of the data type (see |
@@ -138,8 +151,7 @@ |
void GetDataTypeControllerStates( |
browser_sync::DataTypeController::StateMap* state_map) const; |
- // Enables/disables sync for user. |
- virtual void EnableForUser(gfx::NativeWindow parent_window); |
+ // Disables sync for user. Use ShowLoginDialog to enable. |
virtual void DisableForUser(); |
// Whether sync is enabled by user or not. |
@@ -157,6 +169,9 @@ |
const std::string& password, |
const std::string& captcha); |
+ // Update the last auth error and notify observers of error state. |
+ void UpdateAuthErrorState(const GoogleServiceAuthError& error); |
+ |
// Called when a user chooses which data types to sync as part of the sync |
// setup wizard. |sync_everything| represents whether they chose the |
// "keep everything synced" option; if true, |chosen_types| will be ignored |
@@ -326,6 +341,9 @@ |
void RegisterPreferences(); |
void ClearPreferences(); |
+ // Return SyncCredentials from the TokenService. |
+ sync_api::SyncCredentials GetCredentials(); |
+ |
// Test need to override this to create backends that allow setting up |
// initial conditions, such as populating sync nodes. |
virtual void CreateBackend(); |
@@ -334,10 +352,8 @@ |
return data_type_controllers_; |
} |
- // We keep track of the last auth error observed so we can cover up the first |
- // "expected" auth failure from observers. |
- // TODO(timsteele): Same as expecting_first_run_auth_needed_event_. Remove |
- // this! |
+ // The wizard will try to read the auth state out of the profile sync |
+ // service using this member. Captcha and error state are reflected. |
GoogleServiceAuthError last_auth_error_; |
// Our asynchronous backend to communicate with sync components living on |
@@ -380,11 +396,8 @@ |
// The profile whose data we are synchronizing. |
Profile* profile_; |
- // True if the profile sync service should attempt to use an LSID |
- // cookie for authentication. This is typically set to true in |
- // ChromiumOS since we want to use the system level authentication |
- // for sync. |
- bool bootstrap_sync_authentication_; |
+ // Email for the ChromiumOS user, if we're running under ChromiumOS. |
+ std::string cros_user_; |
// TODO(ncarter): Put this in a profile, once there is UI for it. |
// This specifies where to find the sync server. |
@@ -400,17 +413,6 @@ |
// Whether the SyncBackendHost has been initialized. |
bool backend_initialized_; |
- // Set to true when the user first enables sync, and we are waiting for |
- // syncapi to give us the green light on providing credentials for the first |
- // time. It is set back to false as soon as we get this message, and is |
- // false all other times so we don't have to persist this value as it will |
- // get initialized to false. |
- // TODO(timsteele): Remove this by way of starting the wizard when enabling |
- // sync *before* initializing the backend. syncapi will need to change, but |
- // it means we don't have to wait for the first AuthError; if we ever get |
- // one, it is actually an error and this bool isn't needed. |
- bool expecting_first_run_auth_needed_event_; |
- |
// Various pieces of UI query this value to determine if they should show |
// an "Authenticating.." type of message. We are the only central place |
// all auth attempts funnel through, so it makes sense to provide this. |
@@ -419,6 +421,9 @@ |
SyncSetupWizard wizard_; |
+ // Encapsulates user signin with TokenService. |
+ SigninManager signin_; |
+ |
// True if an unrecoverable error (e.g. violation of an assumed invariant) |
// occurred during syncer operation. This value should be checked before |
// doing any work that might corrupt things further. |
@@ -454,6 +459,8 @@ |
// desist syncing immediately. |
bool expect_sync_configuration_aborted_; |
+ scoped_ptr<TokenMigrator> token_migrator_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ProfileSyncService); |
}; |