Index: chrome/browser/sync/profile_sync_service.cc |
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc |
index cd24db0e80278c188cf754857b136e9bfc390a6c..f76ba5b5499b831a5d5b48e2a154638880222b38 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -186,7 +186,7 @@ bool ShouldShowActionOnUI( |
} |
ProfileSyncService::ProfileSyncService( |
- ProfileSyncComponentsFactory* factory, |
+ scoped_ptr<ProfileSyncComponentsFactory> factory, |
Profile* profile, |
scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper, |
ProfileOAuth2TokenService* oauth2_token_service, |
@@ -194,7 +194,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())), |
@@ -241,8 +241,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() { |
@@ -422,15 +425,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> |
@@ -458,17 +460,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) { |
@@ -1068,6 +1059,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); |
@@ -1096,6 +1088,9 @@ void ProfileSyncService::OnBackendInitialized( |
sync_js_controller_.AttachJsBackend(js_backend); |
debug_info_listener_ = debug_info_listener; |
+ // Initialize local device info. |
+ local_device_->Initialize(cache_guid); |
+ |
// Give the DataTypeControllers a handle to the now initialized backend |
// as a UserShare. |
for (DataTypeController::TypeMap::iterator it = |