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

Side by Side Diff: chrome/browser/supervised_user/legacy/supervised_user_sync_service.cc

Issue 1015013003: SupervisedUserSyncService cleanup: Implement SigninManagerBase::Observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 5 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/supervised_user/legacy/supervised_user_sync_service.h" 5 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/prefs/scoped_user_pref_update.h" 11 #include "base/prefs/scoped_user_pref_update.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "base/values.h" 14 #include "base/values.h"
15 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/browser/profiles/profile_avatar_icon_util.h" 16 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
17 #include "chrome/browser/signin/signin_manager_factory.h"
16 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
17 #include "components/pref_registry/pref_registry_syncable.h" 19 #include "components/pref_registry/pref_registry_syncable.h"
20 #include "components/signin/core/browser/signin_manager.h"
18 #include "sync/api/sync_change.h" 21 #include "sync/api/sync_change.h"
19 #include "sync/api/sync_data.h" 22 #include "sync/api/sync_data.h"
20 #include "sync/api/sync_error.h" 23 #include "sync/api/sync_error.h"
21 #include "sync/api/sync_error_factory.h" 24 #include "sync/api/sync_error_factory.h"
22 #include "sync/api/sync_merge_result.h" 25 #include "sync/api/sync_merge_result.h"
23 #include "sync/protocol/sync.pb.h" 26 #include "sync/protocol/sync.pb.h"
24 27
25 #if defined(OS_CHROMEOS) 28 #if defined(OS_CHROMEOS)
26 #include "components/user_manager/user_image/default_user_images.h" 29 #include "components/user_manager/user_image/default_user_images.h"
27 #endif 30 #endif
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 const char SupervisedUserSyncService::kChromeAvatar[] = "chromeAvatar"; 119 const char SupervisedUserSyncService::kChromeAvatar[] = "chromeAvatar";
117 const char SupervisedUserSyncService::kChromeOsAvatar[] = "chromeOsAvatar"; 120 const char SupervisedUserSyncService::kChromeOsAvatar[] = "chromeOsAvatar";
118 const char SupervisedUserSyncService::kMasterKey[] = "masterKey"; 121 const char SupervisedUserSyncService::kMasterKey[] = "masterKey";
119 const char SupervisedUserSyncService::kName[] = "name"; 122 const char SupervisedUserSyncService::kName[] = "name";
120 const char SupervisedUserSyncService::kPasswordSignatureKey[] = 123 const char SupervisedUserSyncService::kPasswordSignatureKey[] =
121 "passwordSignatureKey"; 124 "passwordSignatureKey";
122 const char SupervisedUserSyncService::kPasswordEncryptionKey[] = 125 const char SupervisedUserSyncService::kPasswordEncryptionKey[] =
123 "passwordEncryptionKey"; 126 "passwordEncryptionKey";
124 const int SupervisedUserSyncService::kNoAvatar = -100; 127 const int SupervisedUserSyncService::kNoAvatar = -100;
125 128
126 SupervisedUserSyncService::SupervisedUserSyncService(PrefService* prefs) 129 SupervisedUserSyncService::SupervisedUserSyncService(Profile* profile)
127 : prefs_(prefs) { 130 : profile_(profile), prefs_(profile->GetPrefs()) {
128 pref_change_registrar_.Init(prefs_); 131 SigninManagerFactory::GetForProfile(profile_)->AddObserver(this);
129 pref_change_registrar_.Add(
130 prefs::kGoogleServicesLastUsername,
131 base::Bind(&SupervisedUserSyncService::OnLastSignedInUsernameChange,
132 base::Unretained(this)));
133 } 132 }
134 133
135 SupervisedUserSyncService::~SupervisedUserSyncService() { 134 SupervisedUserSyncService::~SupervisedUserSyncService() {
136 } 135 }
137 136
138 // static 137 // static
139 void SupervisedUserSyncService::RegisterProfilePrefs( 138 void SupervisedUserSyncService::RegisterProfilePrefs(
140 PrefRegistrySyncable* registry) { 139 PrefRegistrySyncable* registry) {
141 registry->RegisterDictionaryPref(prefs::kSupervisedUsers, 140 registry->RegisterDictionaryPref(prefs::kSupervisedUsers,
142 PrefRegistrySyncable::UNSYNCABLE_PREF); 141 PrefRegistrySyncable::UNSYNCABLE_PREF);
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 callback.Run(GetSupervisedUsers()); 391 callback.Run(GetSupervisedUsers());
393 return; 392 return;
394 } 393 }
395 394
396 // Otherwise queue it up until we start syncing. 395 // Otherwise queue it up until we start syncing.
397 callbacks_.push_back(callback); 396 callbacks_.push_back(callback);
398 } 397 }
399 398
400 void SupervisedUserSyncService::Shutdown() { 399 void SupervisedUserSyncService::Shutdown() {
401 NotifySupervisedUsersSyncingStopped(); 400 NotifySupervisedUsersSyncingStopped();
401 SigninManagerFactory::GetForProfile(profile_)->RemoveObserver(this);
402 } 402 }
403 403
404 SyncMergeResult SupervisedUserSyncService::MergeDataAndStartSyncing( 404 SyncMergeResult SupervisedUserSyncService::MergeDataAndStartSyncing(
405 ModelType type, 405 ModelType type,
406 const SyncDataList& initial_sync_data, 406 const SyncDataList& initial_sync_data,
407 scoped_ptr<SyncChangeProcessor> sync_processor, 407 scoped_ptr<SyncChangeProcessor> sync_processor,
408 scoped_ptr<SyncErrorFactory> error_handler) { 408 scoped_ptr<SyncErrorFactory> error_handler) {
409 DCHECK_EQ(SUPERVISED_USERS, type); 409 DCHECK_EQ(SUPERVISED_USERS, type);
410 sync_processor_ = sync_processor.Pass(); 410 sync_processor_ = sync_processor.Pass();
411 error_handler_ = error_handler.Pass(); 411 error_handler_ = error_handler.Pass();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 } 534 }
535 case SyncChange::ACTION_INVALID: { 535 case SyncChange::ACTION_INVALID: {
536 NOTREACHED(); 536 NOTREACHED();
537 break; 537 break;
538 } 538 }
539 } 539 }
540 } 540 }
541 return error; 541 return error;
542 } 542 }
543 543
544 void SupervisedUserSyncService::OnLastSignedInUsernameChange() { 544 void SupervisedUserSyncService::GoogleSignedOut(
545 const std::string& account_id,
546 const std::string& username) {
545 DCHECK(!sync_processor_); 547 DCHECK(!sync_processor_);
546 548
547 // If the last signed in user changes, we clear all data, to avoid supervised 549 // When the signed in user changes, we clear all data, to avoid supervised
Bernhard Bauer 2015/03/23 15:50:01 "Clear all data on signout, [...]"?
Marc Treib 2015/03/23 16:03:05 Ah, forgot to update the comment. Done, thanks!
548 // users from one custodian appearing in another one's profile. 550 // users from one custodian appearing in another one's profile.
549 prefs_->ClearPref(prefs::kSupervisedUsers); 551 prefs_->ClearPref(prefs::kSupervisedUsers);
550 } 552 }
551 553
552 void SupervisedUserSyncService::NotifySupervisedUserAcknowledged( 554 void SupervisedUserSyncService::NotifySupervisedUserAcknowledged(
553 const std::string& supervised_user_id) { 555 const std::string& supervised_user_id) {
554 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver, observers_, 556 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver, observers_,
555 OnSupervisedUserAcknowledged(supervised_user_id)); 557 OnSupervisedUserAcknowledged(supervised_user_id));
556 } 558 }
557 559
558 void SupervisedUserSyncService::NotifySupervisedUsersSyncingStopped() { 560 void SupervisedUserSyncService::NotifySupervisedUsersSyncingStopped() {
559 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver, observers_, 561 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver, observers_,
560 OnSupervisedUsersSyncingStopped()); 562 OnSupervisedUsersSyncingStopped());
561 } 563 }
562 564
563 void SupervisedUserSyncService::NotifySupervisedUsersChanged() { 565 void SupervisedUserSyncService::NotifySupervisedUsersChanged() {
564 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver, 566 FOR_EACH_OBSERVER(SupervisedUserSyncServiceObserver,
565 observers_, 567 observers_,
566 OnSupervisedUsersChanged()); 568 OnSupervisedUsersChanged());
567 } 569 }
568 570
569 void SupervisedUserSyncService::DispatchCallbacks() { 571 void SupervisedUserSyncService::DispatchCallbacks() {
570 const base::DictionaryValue* supervised_users = 572 const base::DictionaryValue* supervised_users =
571 prefs_->GetDictionary(prefs::kSupervisedUsers); 573 prefs_->GetDictionary(prefs::kSupervisedUsers);
572 for (const auto& callback : callbacks_) 574 for (const auto& callback : callbacks_)
573 callback.Run(supervised_users); 575 callback.Run(supervised_users);
574 callbacks_.clear(); 576 callbacks_.clear();
575 } 577 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698