| 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 f441f4da74f6642df7ae88664c5f4eba0f505139..92251ce4afe5182c4537451ddd2cb035756bc5fa 100644
|
| --- a/chrome/browser/sync/profile_sync_service.cc
|
| +++ b/chrome/browser/sync/profile_sync_service.cc
|
| @@ -29,6 +29,7 @@
|
| #include "chrome/browser/sync/glue/change_processor.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_data_type_controller.h"
|
| #include "chrome/browser/sync/profile_sync_factory.h"
|
| #include "chrome/browser/sync/syncable/directory_manager.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -169,6 +170,19 @@ void ProfileSyncService::RegisterDataTypeController(
|
| data_type_controller;
|
| }
|
|
|
| +browser_sync::SessionModelAssociator*
|
| + ProfileSyncService::GetSessionModelAssociator() {
|
| + if (data_type_controllers_.find(syncable::SESSIONS) ==
|
| + data_type_controllers_.end() ||
|
| + data_type_controllers_.find(syncable::SESSIONS)->second->state() !=
|
| + DataTypeController::RUNNING) {
|
| + return NULL;
|
| + }
|
| + return static_cast<browser_sync::SessionDataTypeController*>(
|
| + data_type_controllers_.find(
|
| + syncable::SESSIONS)->second.get())->GetModelAssociator();
|
| +}
|
| +
|
| void ProfileSyncService::GetDataTypeControllerStates(
|
| browser_sync::DataTypeController::StateMap* state_map) const {
|
| browser_sync::DataTypeController::TypeMap::const_iterator iter
|
| @@ -240,10 +254,9 @@ void ProfileSyncService::RegisterPreferences() {
|
| pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, enable_by_default);
|
| pref_service->RegisterBooleanPref(prefs::kSyncExtensions, enable_by_default);
|
| pref_service->RegisterBooleanPref(prefs::kSyncApps, enable_by_default);
|
| -
|
| + pref_service->RegisterBooleanPref(prefs::kSyncSessions, enable_by_default);
|
| pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced,
|
| enable_by_default);
|
| -
|
| pref_service->RegisterBooleanPref(prefs::kSyncManaged, false);
|
| }
|
|
|
| @@ -321,8 +334,7 @@ void ProfileSyncService::StartUp() {
|
| }
|
|
|
| void ProfileSyncService::Shutdown(bool sync_disabled) {
|
| -
|
| - // Stop all data type controllers, if needed.
|
| + // Stop all data type controllers, if needed.
|
| if (data_type_manager_.get() &&
|
| data_type_manager_->state() != DataTypeManager::STOPPED) {
|
| data_type_manager_->Stop();
|
| @@ -409,6 +421,8 @@ const char* ProfileSyncService::GetPrefNameForDataType(
|
| return prefs::kSyncExtensions;
|
| case syncable::APPS:
|
| return prefs::kSyncApps;
|
| + case syncable::SESSIONS:
|
| + return prefs::kSyncSessions;
|
| default:
|
| NOTREACHED();
|
| return NULL;
|
|
|