Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: chrome/browser/sync/profile_sync_service.cc

Issue 3133022: sync: take two for: "Added classes to enable session sync... (Closed)
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync/profile_sync_service.h" 5 #include "chrome/browser/sync/profile_sync_service.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 11 matching lines...) Expand all
22 #include "chrome/browser/chrome_thread.h" 22 #include "chrome/browser/chrome_thread.h"
23 #include "chrome/browser/history/history_types.h" 23 #include "chrome/browser/history/history_types.h"
24 #include "chrome/browser/platform_util.h" 24 #include "chrome/browser/platform_util.h"
25 #include "chrome/browser/pref_service.h" 25 #include "chrome/browser/pref_service.h"
26 #include "chrome/browser/profile.h" 26 #include "chrome/browser/profile.h"
27 #include "chrome/browser/net/gaia/token_service.h" 27 #include "chrome/browser/net/gaia/token_service.h"
28 #include "chrome/browser/sync/engine/syncapi.h" 28 #include "chrome/browser/sync/engine/syncapi.h"
29 #include "chrome/browser/sync/glue/change_processor.h" 29 #include "chrome/browser/sync/glue/change_processor.h"
30 #include "chrome/browser/sync/glue/data_type_controller.h" 30 #include "chrome/browser/sync/glue/data_type_controller.h"
31 #include "chrome/browser/sync/glue/data_type_manager.h" 31 #include "chrome/browser/sync/glue/data_type_manager.h"
32 #include "chrome/browser/sync/glue/session_data_type_controller.h"
32 #include "chrome/browser/sync/profile_sync_factory.h" 33 #include "chrome/browser/sync/profile_sync_factory.h"
33 #include "chrome/browser/sync/syncable/directory_manager.h" 34 #include "chrome/browser/sync/syncable/directory_manager.h"
34 #include "chrome/common/chrome_switches.h" 35 #include "chrome/common/chrome_switches.h"
35 #include "chrome/common/notification_details.h" 36 #include "chrome/common/notification_details.h"
36 #include "chrome/common/notification_service.h" 37 #include "chrome/common/notification_service.h"
37 #include "chrome/common/notification_source.h" 38 #include "chrome/common/notification_source.h"
38 #include "chrome/common/notification_type.h" 39 #include "chrome/common/notification_type.h"
39 #include "chrome/common/pref_names.h" 40 #include "chrome/common/pref_names.h"
40 #include "chrome/common/time_format.h" 41 #include "chrome/common/time_format.h"
41 #include "grit/generated_resources.h" 42 #include "grit/generated_resources.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 } 163 }
163 } 164 }
164 165
165 void ProfileSyncService::RegisterDataTypeController( 166 void ProfileSyncService::RegisterDataTypeController(
166 DataTypeController* data_type_controller) { 167 DataTypeController* data_type_controller) {
167 DCHECK_EQ(data_type_controllers_.count(data_type_controller->type()), 0U); 168 DCHECK_EQ(data_type_controllers_.count(data_type_controller->type()), 0U);
168 data_type_controllers_[data_type_controller->type()] = 169 data_type_controllers_[data_type_controller->type()] =
169 data_type_controller; 170 data_type_controller;
170 } 171 }
171 172
173 browser_sync::SessionModelAssociator*
174 ProfileSyncService::GetSessionModelAssociator() {
175 if (data_type_controllers_.find(syncable::SESSIONS) ==
176 data_type_controllers_.end() ||
177 data_type_controllers_.find(syncable::SESSIONS)->second->state() !=
178 DataTypeController::RUNNING) {
179 return NULL;
180 }
181 return static_cast<browser_sync::SessionDataTypeController*>(
182 data_type_controllers_.find(
183 syncable::SESSIONS)->second.get())->GetModelAssociator();
184 }
185
172 void ProfileSyncService::GetDataTypeControllerStates( 186 void ProfileSyncService::GetDataTypeControllerStates(
173 browser_sync::DataTypeController::StateMap* state_map) const { 187 browser_sync::DataTypeController::StateMap* state_map) const {
174 browser_sync::DataTypeController::TypeMap::const_iterator iter 188 browser_sync::DataTypeController::TypeMap::const_iterator iter
175 = data_type_controllers_.begin(); 189 = data_type_controllers_.begin();
176 for ( ; iter != data_type_controllers_.end(); ++iter ) { 190 for ( ; iter != data_type_controllers_.end(); ++iter ) {
177 (*state_map)[iter->first] = iter->second.get()->state(); 191 (*state_map)[iter->first] = iter->second.get()->state();
178 } 192 }
179 } 193 }
180 194
181 void ProfileSyncService::InitSettings() { 195 void ProfileSyncService::InitSettings() {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 #endif 247 #endif
234 248
235 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, true); 249 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, true);
236 pref_service->RegisterBooleanPref(prefs::kSyncPasswords, enable_by_default); 250 pref_service->RegisterBooleanPref(prefs::kSyncPasswords, enable_by_default);
237 pref_service->RegisterBooleanPref(prefs::kSyncPreferences, enable_by_default); 251 pref_service->RegisterBooleanPref(prefs::kSyncPreferences, enable_by_default);
238 pref_service->RegisterBooleanPref(prefs::kSyncAutofill, enable_by_default); 252 pref_service->RegisterBooleanPref(prefs::kSyncAutofill, enable_by_default);
239 pref_service->RegisterBooleanPref(prefs::kSyncThemes, enable_by_default); 253 pref_service->RegisterBooleanPref(prefs::kSyncThemes, enable_by_default);
240 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, enable_by_default); 254 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, enable_by_default);
241 pref_service->RegisterBooleanPref(prefs::kSyncExtensions, enable_by_default); 255 pref_service->RegisterBooleanPref(prefs::kSyncExtensions, enable_by_default);
242 pref_service->RegisterBooleanPref(prefs::kSyncApps, enable_by_default); 256 pref_service->RegisterBooleanPref(prefs::kSyncApps, enable_by_default);
243 257 pref_service->RegisterBooleanPref(prefs::kSyncSessions, enable_by_default);
244 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced, 258 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced,
245 enable_by_default); 259 enable_by_default);
246
247 pref_service->RegisterBooleanPref(prefs::kSyncManaged, false); 260 pref_service->RegisterBooleanPref(prefs::kSyncManaged, false);
248 } 261 }
249 262
250 void ProfileSyncService::ClearPreferences() { 263 void ProfileSyncService::ClearPreferences() {
251 PrefService* pref_service = profile_->GetPrefs(); 264 PrefService* pref_service = profile_->GetPrefs();
252 pref_service->ClearPref(prefs::kSyncLastSyncedTime); 265 pref_service->ClearPref(prefs::kSyncLastSyncedTime);
253 pref_service->ClearPref(prefs::kSyncHasSetupCompleted); 266 pref_service->ClearPref(prefs::kSyncHasSetupCompleted);
254 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks. 267 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks.
255 // Is that really what we want? 268 // Is that really what we want?
256 pref_service->ScheduleSavePersistentPrefs(); 269 pref_service->ScheduleSavePersistentPrefs();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 profile_->GetPrefs()->GetInt64(prefs::kSyncLastSyncedTime)); 327 profile_->GetPrefs()->GetInt64(prefs::kSyncLastSyncedTime));
315 328
316 CreateBackend(); 329 CreateBackend();
317 // Initialize the backend. Every time we start up a new SyncBackendHost, 330 // Initialize the backend. Every time we start up a new SyncBackendHost,
318 // we'll want to start from a fresh SyncDB, so delete any old one that might 331 // we'll want to start from a fresh SyncDB, so delete any old one that might
319 // be there. 332 // be there.
320 InitializeBackend(!HasSyncSetupCompleted()); 333 InitializeBackend(!HasSyncSetupCompleted());
321 } 334 }
322 335
323 void ProfileSyncService::Shutdown(bool sync_disabled) { 336 void ProfileSyncService::Shutdown(bool sync_disabled) {
324 337 // Stop all data type controllers, if needed.
325 // Stop all data type controllers, if needed.
326 if (data_type_manager_.get() && 338 if (data_type_manager_.get() &&
327 data_type_manager_->state() != DataTypeManager::STOPPED) { 339 data_type_manager_->state() != DataTypeManager::STOPPED) {
328 data_type_manager_->Stop(); 340 data_type_manager_->Stop();
329 } 341 }
330 342
331 data_type_manager_.reset(); 343 data_type_manager_.reset();
332 344
333 // Move aside the backend so nobody else tries to use it while we are 345 // Move aside the backend so nobody else tries to use it while we are
334 // shutting it down. 346 // shutting it down.
335 scoped_ptr<SyncBackendHost> doomed_backend(backend_.release()); 347 scoped_ptr<SyncBackendHost> doomed_backend(backend_.release());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 case syncable::AUTOFILL: 414 case syncable::AUTOFILL:
403 return prefs::kSyncAutofill; 415 return prefs::kSyncAutofill;
404 case syncable::THEMES: 416 case syncable::THEMES:
405 return prefs::kSyncThemes; 417 return prefs::kSyncThemes;
406 case syncable::TYPED_URLS: 418 case syncable::TYPED_URLS:
407 return prefs::kSyncTypedUrls; 419 return prefs::kSyncTypedUrls;
408 case syncable::EXTENSIONS: 420 case syncable::EXTENSIONS:
409 return prefs::kSyncExtensions; 421 return prefs::kSyncExtensions;
410 case syncable::APPS: 422 case syncable::APPS:
411 return prefs::kSyncApps; 423 return prefs::kSyncApps;
424 case syncable::SESSIONS:
425 return prefs::kSyncSessions;
412 default: 426 default:
413 NOTREACHED(); 427 NOTREACHED();
414 return NULL; 428 return NULL;
415 } 429 }
416 } 430 }
417 431
418 // An invariant has been violated. Transition to an error state where we try 432 // An invariant has been violated. Transition to an error state where we try
419 // to do as little work as possible, to avoid further corruption or crashes. 433 // to do as little work as possible, to avoid further corruption or crashes.
420 void ProfileSyncService::OnUnrecoverableError( 434 void ProfileSyncService::OnUnrecoverableError(
421 const tracked_objects::Location& from_here, 435 const tracked_objects::Location& from_here,
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 // is initialized, all enabled data types are consistent with one 857 // is initialized, all enabled data types are consistent with one
844 // another, and no unrecoverable error has transpired. 858 // another, and no unrecoverable error has transpired.
845 if (unrecoverable_error_detected_) 859 if (unrecoverable_error_detected_)
846 return false; 860 return false;
847 861
848 if (!data_type_manager_.get()) 862 if (!data_type_manager_.get())
849 return false; 863 return false;
850 864
851 return data_type_manager_->state() == DataTypeManager::CONFIGURED; 865 return data_type_manager_->state() == DataTypeManager::CONFIGURED;
852 } 866 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/profile_sync_service_password_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698