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

Side by Side Diff: chrome/browser/managed_mode/managed_user_service.cc

Issue 316813002: Start managed_mode refactor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/managed_mode/managed_user_service.h" 5 #include "chrome/browser/managed_mode/managed_user_service.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/managed_mode/permission_request_creator_sync.h" 25 #include "chrome/browser/managed_mode/permission_request_creator_sync.h"
26 #include "chrome/browser/managed_mode/supervised_user_pref_mapping_service.h" 26 #include "chrome/browser/managed_mode/supervised_user_pref_mapping_service.h"
27 #include "chrome/browser/managed_mode/supervised_user_pref_mapping_service_facto ry.h" 27 #include "chrome/browser/managed_mode/supervised_user_pref_mapping_service_facto ry.h"
28 #include "chrome/browser/profiles/profile.h" 28 #include "chrome/browser/profiles/profile.h"
29 #include "chrome/browser/profiles/profile_info_cache.h" 29 #include "chrome/browser/profiles/profile_info_cache.h"
30 #include "chrome/browser/profiles/profile_manager.h" 30 #include "chrome/browser/profiles/profile_manager.h"
31 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 31 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
32 #include "chrome/browser/signin/signin_manager_factory.h" 32 #include "chrome/browser/signin/signin_manager_factory.h"
33 #include "chrome/browser/sync/profile_sync_service.h" 33 #include "chrome/browser/sync/profile_sync_service.h"
34 #include "chrome/browser/sync/profile_sync_service_factory.h" 34 #include "chrome/browser/sync/profile_sync_service_factory.h"
35 #include "chrome/browser/themes/theme_service.h"
36 #include "chrome/browser/themes/theme_service_factory.h"
35 #include "chrome/browser/ui/browser.h" 37 #include "chrome/browser/ui/browser.h"
36 #include "chrome/browser/ui/browser_list.h" 38 #include "chrome/browser/ui/browser_list.h"
37 #include "chrome/common/chrome_switches.h" 39 #include "chrome/common/chrome_switches.h"
38 #include "chrome/common/extensions/api/managed_mode_private/managed_mode_handler .h" 40 #include "chrome/common/extensions/api/managed_mode_private/managed_mode_handler .h"
39 #include "chrome/common/pref_names.h" 41 #include "chrome/common/pref_names.h"
40 #include "components/pref_registry/pref_registry_syncable.h" 42 #include "components/pref_registry/pref_registry_syncable.h"
41 #include "components/signin/core/browser/profile_oauth2_token_service.h" 43 #include "components/signin/core/browser/profile_oauth2_token_service.h"
42 #include "components/signin/core/browser/signin_manager.h" 44 #include "components/signin/core/browser/signin_manager.h"
43 #include "components/signin/core/browser/signin_manager_base.h" 45 #include "components/signin/core/browser/signin_manager_base.h"
44 #include "content/public/browser/browser_thread.h" 46 #include "content/public/browser/browser_thread.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 ui_url_filter_->SetManualURLs(url_map.get()); 120 ui_url_filter_->SetManualURLs(url_map.get());
119 BrowserThread::PostTask( 121 BrowserThread::PostTask(
120 BrowserThread::IO, 122 BrowserThread::IO,
121 FROM_HERE, 123 FROM_HERE,
122 base::Bind(&ManagedModeURLFilter::SetManualURLs, 124 base::Bind(&ManagedModeURLFilter::SetManualURLs,
123 io_url_filter_, base::Owned(url_map.release()))); 125 io_url_filter_, base::Owned(url_map.release())));
124 } 126 }
125 127
126 ManagedUserService::ManagedUserService(Profile* profile) 128 ManagedUserService::ManagedUserService(Profile* profile)
127 : profile_(profile), 129 : profile_(profile),
130 active_(false),
131 delegate_(NULL),
128 extension_registry_observer_(this), 132 extension_registry_observer_(this),
129 waiting_for_sync_initialization_(false), 133 waiting_for_sync_initialization_(false),
130 is_profile_active_(false), 134 is_profile_active_(false),
131 elevated_for_testing_(false), 135 elevated_for_testing_(false),
132 did_shutdown_(false), 136 did_shutdown_(false),
133 waiting_for_permissions_(false), 137 waiting_for_permissions_(false),
134 weak_ptr_factory_(this) { 138 weak_ptr_factory_(this) {
135 } 139 }
136 140
137 ManagedUserService::~ManagedUserService() { 141 ManagedUserService::~ManagedUserService() {
138 DCHECK(did_shutdown_); 142 DCHECK(did_shutdown_);
139 } 143 }
140 144
141 void ManagedUserService::Shutdown() { 145 void ManagedUserService::Shutdown() {
142 did_shutdown_ = true; 146 did_shutdown_ = true;
143 if (ProfileIsManaged()) { 147 if (ProfileIsManaged()) {
144 content::RecordAction(UserMetricsAction("ManagedUsers_QuitBrowser")); 148 content::RecordAction(UserMetricsAction("ManagedUsers_QuitBrowser"));
145 #if !defined(OS_ANDROID)
146 // TODO(bauerb): Get rid of the platform-specific #ifdef here.
147 // http://crbug.com/313377
148 BrowserList::RemoveObserver(this);
149 #endif
150 } 149 }
151 150 SetActive(false);
152 if (!waiting_for_sync_initialization_)
153 return;
154
155 ProfileSyncService* sync_service =
156 ProfileSyncServiceFactory::GetForProfile(profile_);
157 sync_service->RemoveObserver(this);
158 } 151 }
159 152
160 bool ManagedUserService::ProfileIsManaged() const { 153 bool ManagedUserService::ProfileIsManaged() const {
161 return profile_->IsManaged(); 154 return profile_->IsManaged();
162 } 155 }
163 156
164 // static 157 // static
165 void ManagedUserService::RegisterProfilePrefs( 158 void ManagedUserService::RegisterProfilePrefs(
166 user_prefs::PrefRegistrySyncable* registry) { 159 user_prefs::PrefRegistrySyncable* registry) {
167 registry->RegisterDictionaryPref( 160 registry->RegisterDictionaryPref(
(...skipping 26 matching lines...) Expand all
194 if (!is_managed) 187 if (!is_managed)
195 return; 188 return;
196 189
197 std::string managed_user_id = prefs->GetString(prefs::kManagedUserId); 190 std::string managed_user_id = prefs->GetString(prefs::kManagedUserId);
198 if (!managed_user_id.empty()) 191 if (!managed_user_id.empty())
199 return; 192 return;
200 193
201 prefs->SetString(prefs::kManagedUserId, "Dummy ID"); 194 prefs->SetString(prefs::kManagedUserId, "Dummy ID");
202 } 195 }
203 196
197 void ManagedUserService::SetDelegate(Delegate* delegate) {
198 if (delegate_ == delegate)
199 return;
200 // If the delegate changed, deactivate first to give the old delegate a chance
201 // to clean up.
202 SetActive(false);
203 delegate_ = delegate;
204 }
205
204 scoped_refptr<const ManagedModeURLFilter> 206 scoped_refptr<const ManagedModeURLFilter>
205 ManagedUserService::GetURLFilterForIOThread() { 207 ManagedUserService::GetURLFilterForIOThread() {
206 return url_filter_context_.io_url_filter(); 208 return url_filter_context_.io_url_filter();
207 } 209 }
208 210
209 ManagedModeURLFilter* ManagedUserService::GetURLFilterForUIThread() { 211 ManagedModeURLFilter* ManagedUserService::GetURLFilterForUIThread() {
210 return url_filter_context_.ui_url_filter(); 212 return url_filter_context_.ui_url_filter();
211 } 213 }
212 214
213 // Items not on any list must return -1 (CATEGORY_NOT_ON_LIST in history.js). 215 // Items not on any list must return -1 (CATEGORY_NOT_ON_LIST in history.js).
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 return false; 314 return false;
313 } 315 }
314 316
315 bool ManagedUserService::UserMayModifySettings( 317 bool ManagedUserService::UserMayModifySettings(
316 const extensions::Extension* extension, 318 const extensions::Extension* extension,
317 base::string16* error) const { 319 base::string16* error) const {
318 return ExtensionManagementPolicyImpl(extension, error); 320 return ExtensionManagementPolicyImpl(extension, error);
319 } 321 }
320 322
321 void ManagedUserService::OnStateChanged() { 323 void ManagedUserService::OnStateChanged() {
324 DCHECK(profile_->GetProfileName().empty());
322 ProfileSyncService* service = 325 ProfileSyncService* service =
323 ProfileSyncServiceFactory::GetForProfile(profile_); 326 ProfileSyncServiceFactory::GetForProfile(profile_);
324 if (waiting_for_sync_initialization_ && service->sync_initialized()) { 327 if (waiting_for_sync_initialization_ && service->sync_initialized()) {
325 waiting_for_sync_initialization_ = false; 328 waiting_for_sync_initialization_ = false;
326 service->RemoveObserver(this); 329 service->RemoveObserver(this);
327 SetupSync(); 330 SetupSync();
328 return; 331 return;
329 } 332 }
330 333
331 DLOG_IF(ERROR, service->GetAuthError().state() == 334 DLOG_IF(ERROR, service->GetAuthError().state() ==
(...skipping 11 matching lines...) Expand all
343 void ManagedUserService::OnExtensionUnloaded( 346 void ManagedUserService::OnExtensionUnloaded(
344 content::BrowserContext* browser_context, 347 content::BrowserContext* browser_context,
345 const extensions::Extension* extension, 348 const extensions::Extension* extension,
346 extensions::UnloadedExtensionInfo::Reason reason) { 349 extensions::UnloadedExtensionInfo::Reason reason) {
347 if (!extensions::ManagedModeInfo::GetContentPackSiteList(extension).empty()) { 350 if (!extensions::ManagedModeInfo::GetContentPackSiteList(extension).empty()) {
348 UpdateSiteLists(); 351 UpdateSiteLists();
349 } 352 }
350 } 353 }
351 354
352 void ManagedUserService::SetupSync() { 355 void ManagedUserService::SetupSync() {
356 DCHECK(profile_->GetProfileName().empty());
353 ProfileSyncService* service = 357 ProfileSyncService* service =
354 ProfileSyncServiceFactory::GetForProfile(profile_); 358 ProfileSyncServiceFactory::GetForProfile(profile_);
355 DCHECK(service->sync_initialized()); 359 DCHECK(service->sync_initialized());
356 360
357 bool sync_everything = false; 361 bool sync_everything = false;
358 syncer::ModelTypeSet synced_datatypes; 362 syncer::ModelTypeSet synced_datatypes;
359 synced_datatypes.Put(syncer::MANAGED_USER_SETTINGS); 363 synced_datatypes.Put(syncer::MANAGED_USER_SETTINGS);
360 service->OnUserChoseDatatypes(sync_everything, synced_datatypes); 364 service->OnUserChoseDatatypes(sync_everything, synced_datatypes);
361 365
362 // Notify ProfileSyncService that we are done with configuration. 366 // Notify ProfileSyncService that we are done with configuration.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 } 406 }
403 } 407 }
404 408
405 return site_lists.Pass(); 409 return site_lists.Pass();
406 } 410 }
407 411
408 ManagedUserSettingsService* ManagedUserService::GetSettingsService() { 412 ManagedUserSettingsService* ManagedUserService::GetSettingsService() {
409 return ManagedUserSettingsServiceFactory::GetForProfile(profile_); 413 return ManagedUserSettingsServiceFactory::GetForProfile(profile_);
410 } 414 }
411 415
416 void ManagedUserService::OnManagedUserIdChanged() {
417 std::string managed_user_id =
418 profile_->GetPrefs()->GetString(prefs::kManagedUserId);
419 SetActive(!managed_user_id.empty());
420 }
421
412 void ManagedUserService::OnDefaultFilteringBehaviorChanged() { 422 void ManagedUserService::OnDefaultFilteringBehaviorChanged() {
413 DCHECK(ProfileIsManaged()); 423 DCHECK(ProfileIsManaged());
414 424
415 int behavior_value = profile_->GetPrefs()->GetInteger( 425 int behavior_value = profile_->GetPrefs()->GetInteger(
416 prefs::kDefaultManagedModeFilteringBehavior); 426 prefs::kDefaultManagedModeFilteringBehavior);
417 ManagedModeURLFilter::FilteringBehavior behavior = 427 ManagedModeURLFilter::FilteringBehavior behavior =
418 ManagedModeURLFilter::BehaviorFromInt(behavior_value); 428 ManagedModeURLFilter::BehaviorFromInt(behavior_value);
419 url_filter_context_.SetDefaultFilteringBehavior(behavior); 429 url_filter_context_.SetDefaultFilteringBehavior(behavior);
420 } 430 }
421 431
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 const base::DictionaryValue* dict = 495 const base::DictionaryValue* dict =
486 profile_->GetPrefs()->GetDictionary(prefs::kManagedModeManualURLs); 496 profile_->GetPrefs()->GetDictionary(prefs::kManagedModeManualURLs);
487 for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) { 497 for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) {
488 GURL url(it.key()); 498 GURL url(it.key());
489 if (url.host() == host) 499 if (url.host() == host)
490 urls->push_back(url); 500 urls->push_back(url);
491 } 501 }
492 } 502 }
493 503
494 void ManagedUserService::InitSync(const std::string& refresh_token) { 504 void ManagedUserService::InitSync(const std::string& refresh_token) {
505 DCHECK(profile_->GetProfileName().empty());
495 ProfileSyncService* service = 506 ProfileSyncService* service =
496 ProfileSyncServiceFactory::GetForProfile(profile_); 507 ProfileSyncServiceFactory::GetForProfile(profile_);
497 // Tell the sync service that setup is in progress so we don't start syncing 508 // Tell the sync service that setup is in progress so we don't start syncing
498 // until we've finished configuration. 509 // until we've finished configuration.
499 service->SetSetupInProgress(true); 510 service->SetSetupInProgress(true);
500 511
501 ProfileOAuth2TokenService* token_service = 512 ProfileOAuth2TokenService* token_service =
502 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); 513 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
503 token_service->UpdateCredentials(managed_users::kManagedUserPseudoEmail, 514 token_service->UpdateCredentials(managed_users::kManagedUserPseudoEmail,
504 refresh_token); 515 refresh_token);
505 516
506 // Continue in SetupSync() once the Sync backend has been initialized. 517 // Continue in SetupSync() once the Sync backend has been initialized.
507 if (service->sync_initialized()) { 518 if (service->sync_initialized()) {
508 SetupSync(); 519 SetupSync();
509 } else { 520 } else {
510 ProfileSyncServiceFactory::GetForProfile(profile_)->AddObserver(this); 521 ProfileSyncServiceFactory::GetForProfile(profile_)->AddObserver(this);
511 waiting_for_sync_initialization_ = true; 522 waiting_for_sync_initialization_ = true;
512 } 523 }
513 } 524 }
514 525
515 void ManagedUserService::Init() { 526 void ManagedUserService::Init() {
516 ManagedUserSettingsService* settings_service = GetSettingsService(); 527 DCHECK(GetSettingsService()->IsReady());
517 DCHECK(settings_service->IsReady()); 528
518 if (!ProfileIsManaged()) { 529 pref_change_registrar_.Init(profile_->GetPrefs());
519 settings_service->Clear(); 530 pref_change_registrar_.Add(
531 prefs::kManagedUserId,
532 base::Bind(&ManagedUserService::OnManagedUserIdChanged,
533 base::Unretained(this)));
534
535 SetActive(ProfileIsManaged());
536 }
537
538 void ManagedUserService::SetActive(bool active) {
539 if (active_ == active)
520 return; 540 return;
541 active_ = active;
542
543 if (!delegate_ || !delegate_->SetActive(active_)) {
544 if (active_) {
545 SupervisedUserPrefMappingServiceFactory::GetForBrowserContext(profile_)
546 ->Init();
547
548 CommandLine* command_line = CommandLine::ForCurrentProcess();
549 if (command_line->HasSwitch(switches::kManagedUserSyncToken)) {
550 InitSync(
551 command_line->GetSwitchValueASCII(switches::kManagedUserSyncToken));
552 }
553
554 ProfileOAuth2TokenService* token_service =
555 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
556 token_service->LoadCredentials(managed_users::kManagedUserPseudoEmail);
557 }
521 } 558 }
522 559
523 settings_service->Activate(); 560 // Now activate/deactivate anything not handled by the delegate yet.
524 561
525 SupervisedUserPrefMappingServiceFactory::GetForBrowserContext(profile_) 562 // Re-set the default theme to turn the SU theme on/off.
526 ->Init(); 563 ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile_);
527 564 if (theme_service->UsingDefaultTheme() || theme_service->UsingSystemTheme()) {
528 CommandLine* command_line = CommandLine::ForCurrentProcess(); 565 ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme();
529 if (command_line->HasSwitch(switches::kManagedUserSyncToken)) {
530 InitSync(
531 command_line->GetSwitchValueASCII(switches::kManagedUserSyncToken));
532 } 566 }
533 567
534 ProfileOAuth2TokenService* token_service = 568 ManagedUserSettingsService* settings_service = GetSettingsService();
535 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); 569 settings_service->SetActive(active_);
536 token_service->LoadCredentials(managed_users::kManagedUserPseudoEmail);
537 if (CommandLine::ForCurrentProcess()->HasSwitch(
538 switches::kPermissionRequestApiUrl)) {
539 permissions_creator_ =
540 PermissionRequestCreatorApiary::CreateWithProfile(profile_);
541 } else {
542 PrefService* pref_service = profile_->GetPrefs();
543 permissions_creator_.reset(new PermissionRequestCreatorSync(
544 settings_service,
545 ManagedUserSharedSettingsServiceFactory::GetForBrowserContext(profile_),
546 pref_service->GetString(prefs::kProfileName),
547 pref_service->GetString(prefs::kManagedUserId)));
548 }
549 570
550 extensions::ExtensionSystem* extension_system = 571 extensions::ExtensionSystem* extension_system =
551 extensions::ExtensionSystem::Get(profile_); 572 extensions::ExtensionSystem::Get(profile_);
552 extensions::ManagementPolicy* management_policy = 573 extensions::ManagementPolicy* management_policy =
553 extension_system->management_policy(); 574 extension_system->management_policy();
554 if (management_policy)
555 extension_system->management_policy()->RegisterProvider(this);
556 575
557 extension_registry_observer_.Add( 576 if (active_) {
558 extensions::ExtensionRegistry::Get(profile_)); 577 if (CommandLine::ForCurrentProcess()->HasSwitch(
578 switches::kPermissionRequestApiUrl)) {
579 permissions_creator_ =
580 PermissionRequestCreatorApiary::CreateWithProfile(profile_);
581 } else {
582 PrefService* pref_service = profile_->GetPrefs();
583 permissions_creator_.reset(new PermissionRequestCreatorSync(
584 settings_service,
585 ManagedUserSharedSettingsServiceFactory::GetForBrowserContext(
586 profile_),
587 pref_service->GetString(prefs::kProfileName),
588 pref_service->GetString(prefs::kManagedUserId)));
589 }
559 590
560 pref_change_registrar_.Init(profile_->GetPrefs()); 591 if (management_policy)
561 pref_change_registrar_.Add( 592 management_policy->RegisterProvider(this);
562 prefs::kDefaultManagedModeFilteringBehavior, 593
563 base::Bind(&ManagedUserService::OnDefaultFilteringBehaviorChanged, 594 extension_registry_observer_.Add(
564 base::Unretained(this))); 595 extensions::ExtensionRegistry::Get(profile_));
565 pref_change_registrar_.Add(prefs::kManagedModeManualHosts, 596
566 base::Bind(&ManagedUserService::UpdateManualHosts, 597 pref_change_registrar_.Add(
567 base::Unretained(this))); 598 prefs::kDefaultManagedModeFilteringBehavior,
568 pref_change_registrar_.Add(prefs::kManagedModeManualURLs, 599 base::Bind(&ManagedUserService::OnDefaultFilteringBehaviorChanged,
569 base::Bind(&ManagedUserService::UpdateManualURLs, 600 base::Unretained(this)));
570 base::Unretained(this))); 601 pref_change_registrar_.Add(prefs::kManagedModeManualHosts,
602 base::Bind(&ManagedUserService::UpdateManualHosts,
603 base::Unretained(this)));
604 pref_change_registrar_.Add(prefs::kManagedModeManualURLs,
605 base::Bind(&ManagedUserService::UpdateManualURLs,
606 base::Unretained(this)));
607
608 // Initialize the filter.
609 OnDefaultFilteringBehaviorChanged();
610 UpdateSiteLists();
611 UpdateManualHosts();
612 UpdateManualURLs();
571 613
572 #if !defined(OS_ANDROID) 614 #if !defined(OS_ANDROID)
573 // TODO(bauerb): Get rid of the platform-specific #ifdef here. 615 // TODO(bauerb): Get rid of the platform-specific #ifdef here.
574 // http://crbug.com/313377 616 // http://crbug.com/313377
575 BrowserList::AddObserver(this); 617 BrowserList::AddObserver(this);
576 #endif 618 #endif
619 } else {
620 permissions_creator_.reset();
577 621
578 // Initialize the filter. 622 if (management_policy)
579 OnDefaultFilteringBehaviorChanged(); 623 management_policy->UnregisterProvider(this);
580 UpdateSiteLists(); 624
581 UpdateManualHosts(); 625 extension_registry_observer_.RemoveAll();
582 UpdateManualURLs(); 626
627 pref_change_registrar_.Remove(prefs::kDefaultManagedModeFilteringBehavior);
628 pref_change_registrar_.Remove(prefs::kManagedModeManualHosts);
629 pref_change_registrar_.Remove(prefs::kManagedModeManualURLs);
630
631 if (waiting_for_sync_initialization_) {
632 ProfileSyncService* sync_service =
633 ProfileSyncServiceFactory::GetForProfile(profile_);
634 sync_service->RemoveObserver(this);
635 }
636
637 #if !defined(OS_ANDROID)
638 // TODO(bauerb): Get rid of the platform-specific #ifdef here.
639 // http://crbug.com/313377
640 BrowserList::RemoveObserver(this);
641 #endif
642 }
583 } 643 }
584 644
585 void ManagedUserService::RegisterAndInitSync( 645 void ManagedUserService::RegisterAndInitSync(
586 ManagedUserRegistrationUtility* registration_utility, 646 ManagedUserRegistrationUtility* registration_utility,
587 Profile* custodian_profile, 647 Profile* custodian_profile,
588 const std::string& managed_user_id, 648 const std::string& managed_user_id,
589 const AuthErrorCallback& callback) { 649 const AuthErrorCallback& callback) {
590 DCHECK(ProfileIsManaged()); 650 DCHECK(ProfileIsManaged());
651 DCHECK(profile_->GetProfileName().empty());
591 DCHECK(!custodian_profile->IsManaged()); 652 DCHECK(!custodian_profile->IsManaged());
592 653
593 base::string16 name = base::UTF8ToUTF16( 654 base::string16 name = base::UTF8ToUTF16(
594 profile_->GetPrefs()->GetString(prefs::kProfileName)); 655 profile_->GetPrefs()->GetString(prefs::kProfileName));
595 int avatar_index = profile_->GetPrefs()->GetInteger( 656 int avatar_index = profile_->GetPrefs()->GetInteger(
596 prefs::kProfileAvatarIndex); 657 prefs::kProfileAvatarIndex);
597 ManagedUserRegistrationInfo info(name, avatar_index); 658 ManagedUserRegistrationInfo info(name, avatar_index);
598 registration_utility->Register( 659 registration_utility->Register(
599 managed_user_id, 660 managed_user_id,
600 info, 661 info,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 732
672 void ManagedUserService::OnBrowserSetLastActive(Browser* browser) { 733 void ManagedUserService::OnBrowserSetLastActive(Browser* browser) {
673 bool profile_became_active = profile_->IsSameProfile(browser->profile()); 734 bool profile_became_active = profile_->IsSameProfile(browser->profile());
674 if (!is_profile_active_ && profile_became_active) 735 if (!is_profile_active_ && profile_became_active)
675 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); 736 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile"));
676 else if (is_profile_active_ && !profile_became_active) 737 else if (is_profile_active_ && !profile_became_active)
677 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); 738 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile"));
678 739
679 is_profile_active_ = profile_became_active; 740 is_profile_active_ = profile_became_active;
680 } 741 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698