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

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

Issue 6465005: [Sync] Initial support for encrypting any datatype (no UI hookup yet). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + small fix Created 9 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 credentials, 426 credentials,
427 delete_sync_data_folder, 427 delete_sync_data_folder,
428 notifier_options_); 428 notifier_options_);
429 } 429 }
430 430
431 void ProfileSyncService::CreateBackend() { 431 void ProfileSyncService::CreateBackend() {
432 backend_.reset(new SyncBackendHost(profile_)); 432 backend_.reset(new SyncBackendHost(profile_));
433 } 433 }
434 434
435 bool ProfileSyncService::IsEncryptedDatatypeEnabled() const { 435 bool ProfileSyncService::IsEncryptedDatatypeEnabled() const {
436 // Currently on passwords are an encrypted datatype, so 436 return encrypted_types_.size() > 0;
437 // we check to see if it is enabled.
438 syncable::ModelTypeSet types;
439 GetPreferredDataTypes(&types);
440 return types.count(syncable::PASSWORDS) != 0;
441 } 437 }
442 438
443 void ProfileSyncService::StartUp() { 439 void ProfileSyncService::StartUp() {
444 // Don't start up multiple times. 440 // Don't start up multiple times.
445 if (backend_.get()) { 441 if (backend_.get()) {
446 VLOG(1) << "Skipping bringing up backend host."; 442 VLOG(1) << "Skipping bringing up backend host.";
447 return; 443 return;
448 } 444 }
449 445
450 DCHECK(AreCredentialsAvailable()); 446 DCHECK(AreCredentialsAvailable());
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 data_type_manager_->Configure(types); 740 data_type_manager_->Configure(types);
745 741
746 NotifyObservers(); 742 NotifyObservers();
747 observed_passphrase_required_ = false; 743 observed_passphrase_required_ = false;
748 tried_setting_explicit_passphrase_ = false; 744 tried_setting_explicit_passphrase_ = false;
749 tried_creating_explicit_passphrase_ = false; 745 tried_creating_explicit_passphrase_ = false;
750 746
751 wizard_.Step(SyncSetupWizard::DONE); 747 wizard_.Step(SyncSetupWizard::DONE);
752 } 748 }
753 749
750 void ProfileSyncService::OnEncryptionComplete(
751 const syncable::ModelTypeSet& encrypted_types) {
752 if (encrypted_types_ != encrypted_types) {
753 encrypted_types_ = encrypted_types;
754 NotifyObservers();
755 }
756 }
757
754 void ProfileSyncService::ShowLoginDialog(gfx::NativeWindow parent_window) { 758 void ProfileSyncService::ShowLoginDialog(gfx::NativeWindow parent_window) {
755 if (!cros_user_.empty()) { 759 if (!cros_user_.empty()) {
756 // For ChromeOS, any login UI needs to be handled by the settings page. 760 // For ChromeOS, any login UI needs to be handled by the settings page.
757 Browser* browser = BrowserList::GetLastActiveWithProfile(profile()); 761 Browser* browser = BrowserList::GetLastActiveWithProfile(profile());
758 if (browser) 762 if (browser)
759 browser->ShowOptionsTab(chrome::kPersonalOptionsSubPage); 763 browser->ShowOptionsTab(chrome::kPersonalOptionsSubPage);
760 return; 764 return;
761 } 765 }
762 766
763 if (WizardIsVisible()) { 767 if (WizardIsVisible()) {
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 cached_passphrase_.is_explicit = is_explicit; 1167 cached_passphrase_.is_explicit = is_explicit;
1164 cached_passphrase_.is_creation = is_creation; 1168 cached_passphrase_.is_creation = is_creation;
1165 } 1169 }
1166 1170
1167 if (is_explicit && is_creation) 1171 if (is_explicit && is_creation)
1168 tried_creating_explicit_passphrase_ = true; 1172 tried_creating_explicit_passphrase_ = true;
1169 else if (is_explicit) 1173 else if (is_explicit)
1170 tried_setting_explicit_passphrase_ = true; 1174 tried_setting_explicit_passphrase_ = true;
1171 } 1175 }
1172 1176
1177 void ProfileSyncService::EncryptDataTypes(
1178 const syncable::ModelTypeSet& encrypted_types) {
1179 backend_->EncryptDataTypes(encrypted_types);
1180 }
1181
1182 void ProfileSyncService::GetEncryptedDataTypes(
1183 syncable::ModelTypeSet* encrypted_types) const {
1184 *encrypted_types = encrypted_types_;
1185 }
1186
1173 void ProfileSyncService::Observe(NotificationType type, 1187 void ProfileSyncService::Observe(NotificationType type,
1174 const NotificationSource& source, 1188 const NotificationSource& source,
1175 const NotificationDetails& details) { 1189 const NotificationDetails& details) {
1176 switch (type.value) { 1190 switch (type.value) {
1177 case NotificationType::SYNC_CONFIGURE_START: { 1191 case NotificationType::SYNC_CONFIGURE_START: {
1178 NotifyObservers(); 1192 NotifyObservers();
1179 // TODO(sync): Maybe toast? 1193 // TODO(sync): Maybe toast?
1180 break; 1194 break;
1181 } 1195 }
1182 case NotificationType::SYNC_CONFIGURE_DONE: { 1196 case NotificationType::SYNC_CONFIGURE_DONE: {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 // is initialized, all enabled data types are consistent with one 1332 // is initialized, all enabled data types are consistent with one
1319 // another, and no unrecoverable error has transpired. 1333 // another, and no unrecoverable error has transpired.
1320 if (unrecoverable_error_detected_) 1334 if (unrecoverable_error_detected_)
1321 return false; 1335 return false;
1322 1336
1323 if (!data_type_manager_.get()) 1337 if (!data_type_manager_.get())
1324 return false; 1338 return false;
1325 1339
1326 return data_type_manager_->state() == DataTypeManager::CONFIGURED; 1340 return data_type_manager_->state() == DataTypeManager::CONFIGURED;
1327 } 1341 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/profile_sync_service_harness.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698