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

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: Comments. Rest of unit tests. 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 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 credentials, 425 credentials,
426 delete_sync_data_folder, 426 delete_sync_data_folder,
427 notifier_options_); 427 notifier_options_);
428 } 428 }
429 429
430 void ProfileSyncService::CreateBackend() { 430 void ProfileSyncService::CreateBackend() {
431 backend_.reset(new SyncBackendHost(profile_)); 431 backend_.reset(new SyncBackendHost(profile_));
432 } 432 }
433 433
434 bool ProfileSyncService::IsEncryptedDatatypeEnabled() const { 434 bool ProfileSyncService::IsEncryptedDatatypeEnabled() const {
435 // Currently on passwords are an encrypted datatype, so 435 return encrypted_types_.size() > 0;
436 // we check to see if it is enabled.
437 syncable::ModelTypeSet types;
438 GetPreferredDataTypes(&types);
439 return types.count(syncable::PASSWORDS) != 0;
440 } 436 }
441 437
442 void ProfileSyncService::StartUp() { 438 void ProfileSyncService::StartUp() {
443 // Don't start up multiple times. 439 // Don't start up multiple times.
444 if (backend_.get()) { 440 if (backend_.get()) {
445 VLOG(1) << "Skipping bringing up backend host."; 441 VLOG(1) << "Skipping bringing up backend host.";
446 return; 442 return;
447 } 443 }
448 444
449 DCHECK(AreCredentialsAvailable()); 445 DCHECK(AreCredentialsAvailable());
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 data_type_manager_->Configure(types); 737 data_type_manager_->Configure(types);
742 738
743 NotifyObservers(); 739 NotifyObservers();
744 observed_passphrase_required_ = false; 740 observed_passphrase_required_ = false;
745 tried_setting_explicit_passphrase_ = false; 741 tried_setting_explicit_passphrase_ = false;
746 tried_creating_explicit_passphrase_ = false; 742 tried_creating_explicit_passphrase_ = false;
747 743
748 wizard_.Step(SyncSetupWizard::DONE); 744 wizard_.Step(SyncSetupWizard::DONE);
749 } 745 }
750 746
747 void ProfileSyncService::OnEncryptionComplete(
748 const syncable::ModelTypeSet& encrypted_types) {
749 if (encrypted_types_ != encrypted_types) {
750 encrypted_types_ = encrypted_types;
751 NotifyObservers();
752 }
753 }
754
751 void ProfileSyncService::ShowLoginDialog(gfx::NativeWindow parent_window) { 755 void ProfileSyncService::ShowLoginDialog(gfx::NativeWindow parent_window) {
752 // TODO(johnnyg): File a bug to make sure this doesn't happen. 756 // TODO(johnnyg): File a bug to make sure this doesn't happen.
753 if (!cros_user_.empty()) { 757 if (!cros_user_.empty()) {
754 LOG(WARNING) << "ShowLoginDialog called on Chrome OS."; 758 LOG(WARNING) << "ShowLoginDialog called on Chrome OS.";
755 return; 759 return;
756 } 760 }
757 761
758 if (WizardIsVisible()) { 762 if (WizardIsVisible()) {
759 wizard_.Focus(); 763 wizard_.Focus();
760 return; 764 return;
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 cached_passphrase_.is_explicit = is_explicit; 1162 cached_passphrase_.is_explicit = is_explicit;
1159 cached_passphrase_.is_creation = is_creation; 1163 cached_passphrase_.is_creation = is_creation;
1160 } 1164 }
1161 1165
1162 if (is_explicit && is_creation) 1166 if (is_explicit && is_creation)
1163 tried_creating_explicit_passphrase_ = true; 1167 tried_creating_explicit_passphrase_ = true;
1164 else if (is_explicit) 1168 else if (is_explicit)
1165 tried_setting_explicit_passphrase_ = true; 1169 tried_setting_explicit_passphrase_ = true;
1166 } 1170 }
1167 1171
1172 void ProfileSyncService::EncryptDataTypes(
1173 const syncable::ModelTypeSet& encrypted_types) {
1174 backend_->EncryptDataTypes(encrypted_types);
1175 }
1176
1177 void ProfileSyncService::GetEncryptedDataTypes(
1178 syncable::ModelTypeSet* encrypted_types) const {
1179 *encrypted_types = encrypted_types_;
1180 }
1181
1168 void ProfileSyncService::Observe(NotificationType type, 1182 void ProfileSyncService::Observe(NotificationType type,
1169 const NotificationSource& source, 1183 const NotificationSource& source,
1170 const NotificationDetails& details) { 1184 const NotificationDetails& details) {
1171 switch (type.value) { 1185 switch (type.value) {
1172 case NotificationType::SYNC_CONFIGURE_START: { 1186 case NotificationType::SYNC_CONFIGURE_START: {
1173 NotifyObservers(); 1187 NotifyObservers();
1174 // TODO(sync): Maybe toast? 1188 // TODO(sync): Maybe toast?
1175 break; 1189 break;
1176 } 1190 }
1177 case NotificationType::SYNC_CONFIGURE_DONE: { 1191 case NotificationType::SYNC_CONFIGURE_DONE: {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 // is initialized, all enabled data types are consistent with one 1327 // is initialized, all enabled data types are consistent with one
1314 // another, and no unrecoverable error has transpired. 1328 // another, and no unrecoverable error has transpired.
1315 if (unrecoverable_error_detected_) 1329 if (unrecoverable_error_detected_)
1316 return false; 1330 return false;
1317 1331
1318 if (!data_type_manager_.get()) 1332 if (!data_type_manager_.get())
1319 return false; 1333 return false;
1320 1334
1321 return data_type_manager_->state() == DataTypeManager::CONFIGURED; 1335 return data_type_manager_->state() == DataTypeManager::CONFIGURED;
1322 } 1336 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698