diff options
Diffstat (limited to 'chrome/browser/sync/profile_sync_service.cc')
-rw-r--r-- | chrome/browser/sync/profile_sync_service.cc | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc index bb6d595..636d61f 100644 --- a/chrome/browser/sync/profile_sync_service.cc +++ b/chrome/browser/sync/profile_sync_service.cc @@ -38,6 +38,7 @@ #include "chrome/browser/services/gcm/gcm_profile_service.h" #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" #include "chrome/browser/signin/about_signin_internals_factory.h" +#include "chrome/browser/signin/chrome_signin_client_factory.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" #include "chrome/browser/signin/signin_manager_factory.h" #include "chrome/browser/sync/backend_migrator.h" @@ -188,7 +189,7 @@ bool ShouldShowActionOnUI( } ProfileSyncService::ProfileSyncService( - ProfileSyncComponentsFactory* factory, + scoped_ptr<ProfileSyncComponentsFactory> factory, Profile* profile, scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper, ProfileOAuth2TokenService* oauth2_token_service, @@ -196,7 +197,7 @@ ProfileSyncService::ProfileSyncService( : OAuth2TokenService::Consumer("sync"), last_auth_error_(AuthError::AuthErrorNone()), passphrase_required_reason_(syncer::REASON_PASSPHRASE_NOT_REQUIRED), - factory_(factory), + factory_(factory.Pass()), profile_(profile), sync_prefs_(profile_->GetPrefs()), sync_service_url_(GetSyncServiceURL(*CommandLine::ForCurrentProcess())), @@ -243,8 +244,11 @@ ProfileSyncService::ProfileSyncService( sync_start_util::GetFlareForSyncableService(profile->GetPath())); scoped_ptr<browser_sync::LocalSessionEventRouter> router( new NotificationServiceSessionsRouter(profile, flare)); + + DCHECK(factory_.get()); + local_device_ = factory_->CreateLocalDeviceInfoProvider(); sessions_sync_manager_.reset( - new SessionsSyncManager(profile, this, router.Pass())); + new SessionsSyncManager(profile, local_device_.get(), router.Pass())); } ProfileSyncService::~ProfileSyncService() { @@ -424,15 +428,14 @@ browser_sync::FaviconCache* ProfileSyncService::GetFaviconCache() { return sessions_sync_manager_->GetFaviconCache(); } -scoped_ptr<browser_sync::DeviceInfo> -ProfileSyncService::GetLocalDeviceInfo() const { - if (HasSyncingBackend()) { - browser_sync::SyncedDeviceTracker* device_tracker = - backend_->GetSyncedDeviceTracker(); - if (device_tracker) - return device_tracker->ReadLocalDeviceInfo(); - } - return scoped_ptr<browser_sync::DeviceInfo>(); +browser_sync::SyncedWindowDelegatesGetter* +ProfileSyncService::GetSyncedWindowDelegatesGetter() const { + return sessions_sync_manager_->GetSyncedWindowDelegatesGetter(); +} + +browser_sync::LocalDeviceInfoProvider* +ProfileSyncService::GetLocalDeviceInfoProvider() { + return local_device_.get(); } scoped_ptr<browser_sync::DeviceInfo> @@ -460,17 +463,6 @@ ScopedVector<browser_sync::DeviceInfo> return devices.Pass(); } -std::string ProfileSyncService::GetLocalSyncCacheGUID() const { - if (HasSyncingBackend()) { - browser_sync::SyncedDeviceTracker* device_tracker = - backend_->GetSyncedDeviceTracker(); - if (device_tracker) { - return device_tracker->cache_guid(); - } - } - return std::string(); -} - // Notifies the observer of any device info changes. void ProfileSyncService::AddObserverForDeviceInfoChange( browser_sync::SyncedDeviceTracker::Observer* observer) { @@ -1071,6 +1063,7 @@ void ProfileSyncService::OnBackendInitialized( const syncer::WeakHandle<syncer::JsBackend>& js_backend, const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& debug_info_listener, + const std::string& cache_guid, bool success) { UpdateBackendInitUMA(success); @@ -1099,6 +1092,15 @@ void ProfileSyncService::OnBackendInitialized( sync_js_controller_.AttachJsBackend(js_backend); debug_info_listener_ = debug_info_listener; + SigninClient* signin_client = + ChromeSigninClientFactory::GetForProfile(profile_); + DCHECK(signin_client); + std::string signin_scoped_device_id = + signin_client->GetSigninScopedDeviceId(); + + // Initialize local device info. + local_device_->Initialize(cache_guid, signin_scoped_device_id); + // Give the DataTypeControllers a handle to the now initialized backend // as a UserShare. for (DataTypeController::TypeMap::iterator it = |