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 6375c3448ddd62828392a5a0aca4d5e7f39352de..a23f96e15951b9072bede72ef2dc340e608df217 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -47,11 +47,9 @@ |
#include "chrome/browser/sync/glue/sync_backend_host.h" |
#include "chrome/browser/sync/glue/sync_backend_host_impl.h" |
#include "chrome/browser/sync/glue/sync_start_util.h" |
-#include "chrome/browser/sync/glue/synced_device_tracker.h" |
#include "chrome/browser/sync/glue/typed_url_data_type_controller.h" |
#include "chrome/browser/sync/profile_sync_components_factory_impl.h" |
#include "chrome/browser/sync/sessions/notification_service_sessions_router.h" |
-#include "chrome/browser/sync/sessions/sessions_sync_manager.h" |
#include "chrome/browser/sync/supervised_user_signin_manager_wrapper.h" |
#include "chrome/browser/sync/sync_error_controller.h" |
#include "chrome/browser/sync/sync_type_preference_provider.h" |
@@ -259,6 +257,8 @@ ProfileSyncService::ProfileSyncService( |
local_device_ = factory_->CreateLocalDeviceInfoProvider(); |
sessions_sync_manager_.reset( |
new SessionsSyncManager(profile, local_device_.get(), router.Pass())); |
+ device_info_sync_service_.reset( |
+ new DeviceInfoSyncService(local_device_.get())); |
} |
ProfileSyncService::~ProfileSyncService() { |
@@ -426,15 +426,18 @@ void ProfileSyncService::InitializeNonBlockingType( |
type, task_runner, type_sync_proxy); |
} |
-bool ProfileSyncService::IsSessionsDataTypeControllerRunning() const { |
- return directory_data_type_controllers_.find(syncer::SESSIONS) != |
- directory_data_type_controllers_.end() && |
- (directory_data_type_controllers_.find(syncer::SESSIONS)-> |
- second->state() == DataTypeController::RUNNING); |
+bool ProfileSyncService::IsDataTypeControllerRunning( |
+ syncer::ModelType type) const { |
+ DataTypeController::TypeMap::const_iterator iter = |
+ directory_data_type_controllers_.find(type); |
+ if (iter == directory_data_type_controllers_.end()) { |
+ return false; |
+ } |
+ return iter->second->state() == DataTypeController::RUNNING; |
} |
browser_sync::OpenTabsUIDelegate* ProfileSyncService::GetOpenTabsUIDelegate() { |
- if (!IsSessionsDataTypeControllerRunning()) |
+ if (!IsDataTypeControllerRunning(syncer::SESSIONS)) |
return NULL; |
return sessions_sync_manager_.get(); |
} |
@@ -448,58 +451,17 @@ ProfileSyncService::GetSyncedWindowDelegatesGetter() const { |
return sessions_sync_manager_->GetSyncedWindowDelegatesGetter(); |
} |
-browser_sync::LocalDeviceInfoProvider* |
-ProfileSyncService::GetLocalDeviceInfoProvider() { |
- return local_device_.get(); |
-} |
- |
-scoped_ptr<browser_sync::DeviceInfo> |
-ProfileSyncService::GetDeviceInfo(const std::string& client_id) const { |
- if (HasSyncingBackend()) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) |
- return device_tracker->ReadDeviceInfo(client_id); |
- } |
- return scoped_ptr<browser_sync::DeviceInfo>(); |
-} |
- |
-ScopedVector<browser_sync::DeviceInfo> |
- ProfileSyncService::GetAllSignedInDevices() const { |
- ScopedVector<browser_sync::DeviceInfo> devices; |
- if (HasSyncingBackend()) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) { |
- // TODO(lipalani) - Make device tracker return a scoped vector. |
- device_tracker->GetAllSyncedDeviceInfo(&devices); |
- } |
- } |
- return devices.Pass(); |
-} |
+browser_sync::DeviceInfoTracker* ProfileSyncService::GetDeviceInfoTracker() |
+ const { |
+ if (!IsDataTypeControllerRunning(syncer::DEVICE_INFO)) |
+ return NULL; |
-// Notifies the observer of any device info changes. |
-void ProfileSyncService::AddObserverForDeviceInfoChange( |
- browser_sync::SyncedDeviceTracker::Observer* observer) { |
- if (HasSyncingBackend()) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) { |
- device_tracker->AddObserver(observer); |
- } |
- } |
+ return device_info_sync_service_.get(); |
} |
-// Removes the observer from device info change notification. |
-void ProfileSyncService::RemoveObserverForDeviceInfoChange( |
- browser_sync::SyncedDeviceTracker::Observer* observer) { |
- if (HasSyncingBackend()) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) { |
- device_tracker->RemoveObserver(observer); |
- } |
- } |
+browser_sync::LocalDeviceInfoProvider* |
+ProfileSyncService::GetLocalDeviceInfoProvider() { |
+ return local_device_.get(); |
} |
void ProfileSyncService::GetDataTypeControllerStates( |
@@ -1048,10 +1010,8 @@ void ProfileSyncService::PostBackendInitialization() { |
DCHECK_EQ(backend_mode_, SYNC); |
if (last_backup_time_) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) |
- device_tracker->UpdateLocalDeviceBackupTime(*last_backup_time_); |
+ DCHECK(device_info_sync_service_); |
+ device_info_sync_service_->UpdateLocalDeviceBackupTime(*last_backup_time_); |
} |
if (protocol_event_observers_.might_have_observers()) { |
@@ -1157,7 +1117,7 @@ void ProfileSyncService::OnBackendInitialized( |
void ProfileSyncService::OnSyncCycleCompleted() { |
UpdateLastSyncedTime(); |
- if (IsSessionsDataTypeControllerRunning()) { |
+ if (IsDataTypeControllerRunning(syncer::SESSIONS)) { |
// Trigger garbage collection of old sessions now that we've downloaded |
// any new session data. |
base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind( |
@@ -2608,6 +2568,10 @@ syncer::SyncableService* ProfileSyncService::GetSessionsSyncableService() { |
return sessions_sync_manager_.get(); |
} |
+syncer::SyncableService* ProfileSyncService::GetDeviceInfoSyncableService() { |
+ return device_info_sync_service_.get(); |
+} |
+ |
ProfileSyncService::SyncTokenStatus::SyncTokenStatus() |
: connection_status(syncer::CONNECTION_NOT_ATTEMPTED), |
last_get_token_error(GoogleServiceAuthError::AuthErrorNone()) {} |
@@ -2738,12 +2702,8 @@ void ProfileSyncService::CheckSyncBackupIfNeeded() { |
void ProfileSyncService::CheckSyncBackupCallback(base::Time backup_time) { |
last_backup_time_.reset(new base::Time(backup_time)); |
- if (HasSyncingBackend() && backend_initialized_) { |
- browser_sync::SyncedDeviceTracker* device_tracker = |
- backend_->GetSyncedDeviceTracker(); |
- if (device_tracker) |
- device_tracker->UpdateLocalDeviceBackupTime(*last_backup_time_); |
- } |
+ DCHECK(device_info_sync_service_); |
+ device_info_sync_service_->UpdateLocalDeviceBackupTime(*last_backup_time_); |
} |
void ProfileSyncService::TryStartSyncAfterBackup() { |
@@ -2765,5 +2725,5 @@ bool ProfileSyncService::NeedBackup() const { |
} |
base::Time ProfileSyncService::GetDeviceBackupTimeForTesting() const { |
- return backend_->GetSyncedDeviceTracker()->GetLocalDeviceBackupTime(); |
+ return device_info_sync_service_->GetLocalDeviceBackupTime(); |
} |