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

Side by Side Diff: chrome/browser/chromeos/user_cros_settings_provider.cc

Issue 5734002: Continuation of CL 5685007, rename the singleton accessor method in more files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 years 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) 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/chromeos/user_cros_settings_provider.h" 5 #include "chrome/browser/chromeos/user_cros_settings_provider.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/hash_tables.h" 10 #include "base/hash_tables.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 } 150 }
151 151
152 prefs->ScheduleSavePersistentPrefs(); 152 prefs->ScheduleSavePersistentPrefs();
153 153
154 return true; 154 return true;
155 } 155 }
156 156
157 class UserCrosSettingsTrust : public SignedSettingsHelper::Callback, 157 class UserCrosSettingsTrust : public SignedSettingsHelper::Callback,
158 public NotificationObserver { 158 public NotificationObserver {
159 public: 159 public:
160 static UserCrosSettingsTrust* GetSharedInstance() { 160 static UserCrosSettingsTrust* GetInstance() {
161 return Singleton<UserCrosSettingsTrust>::get(); 161 return Singleton<UserCrosSettingsTrust>::get();
162 } 162 }
163 163
164 // Working horse for UserCrosSettingsProvider::RequestTrusted* family. 164 // Working horse for UserCrosSettingsProvider::RequestTrusted* family.
165 bool RequestTrustedEntity(const std::string& name, Task* callback) { 165 bool RequestTrustedEntity(const std::string& name, Task* callback) {
166 if (GetOwnershipStatus() == OWNERSHIP_NONE) 166 if (GetOwnershipStatus() == OWNERSHIP_NONE)
167 return true; 167 return true;
168 if (GetOwnershipStatus() == OWNERSHIP_TAKEN) { 168 if (GetOwnershipStatus() == OWNERSHIP_TAKEN) {
169 DCHECK(g_browser_process); 169 DCHECK(g_browser_process);
170 PrefService* prefs = g_browser_process->local_state(); 170 PrefService* prefs = g_browser_process->local_state();
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 } // namespace chromeos 431 } // namespace chromeos
432 432
433 // We want to use NewRunnableMethod with this class but need to disable 433 // We want to use NewRunnableMethod with this class but need to disable
434 // reference counting since it is singleton. 434 // reference counting since it is singleton.
435 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::UserCrosSettingsTrust); 435 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::UserCrosSettingsTrust);
436 436
437 namespace chromeos { 437 namespace chromeos {
438 438
439 UserCrosSettingsProvider::UserCrosSettingsProvider() { 439 UserCrosSettingsProvider::UserCrosSettingsProvider() {
440 // Trigger prefetching of settings. 440 // Trigger prefetching of settings.
441 UserCrosSettingsTrust::GetSharedInstance(); 441 UserCrosSettingsTrust::GetInstance();
442 } 442 }
443 443
444 // static 444 // static
445 void UserCrosSettingsProvider::RegisterPrefs(PrefService* local_state) { 445 void UserCrosSettingsProvider::RegisterPrefs(PrefService* local_state) {
446 for (size_t i = 0; i < arraysize(kBooleanSettings); ++i) 446 for (size_t i = 0; i < arraysize(kBooleanSettings); ++i)
447 RegisterSetting(local_state, kBooleanSettings[i]); 447 RegisterSetting(local_state, kBooleanSettings[i]);
448 for (size_t i = 0; i < arraysize(kStringSettings); ++i) 448 for (size_t i = 0; i < arraysize(kStringSettings); ++i)
449 RegisterSetting(local_state, kStringSettings[i]); 449 RegisterSetting(local_state, kStringSettings[i]);
450 for (size_t i = 0; i < arraysize(kListSettings); ++i) 450 for (size_t i = 0; i < arraysize(kListSettings); ++i)
451 RegisterSetting(local_state, kListSettings[i]); 451 RegisterSetting(local_state, kListSettings[i]);
452 } 452 }
453 453
454 bool UserCrosSettingsProvider::RequestTrustedAllowGuest(Task* callback) { 454 bool UserCrosSettingsProvider::RequestTrustedAllowGuest(Task* callback) {
455 return UserCrosSettingsTrust::GetSharedInstance()->RequestTrustedEntity( 455 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity(
456 kAccountsPrefAllowGuest, callback); 456 kAccountsPrefAllowGuest, callback);
457 } 457 }
458 458
459 bool UserCrosSettingsProvider::RequestTrustedAllowNewUser(Task* callback) { 459 bool UserCrosSettingsProvider::RequestTrustedAllowNewUser(Task* callback) {
460 return UserCrosSettingsTrust::GetSharedInstance()->RequestTrustedEntity( 460 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity(
461 kAccountsPrefAllowNewUser, callback); 461 kAccountsPrefAllowNewUser, callback);
462 } 462 }
463 463
464 bool UserCrosSettingsProvider::RequestTrustedShowUsersOnSignin(Task* callback) { 464 bool UserCrosSettingsProvider::RequestTrustedShowUsersOnSignin(Task* callback) {
465 return UserCrosSettingsTrust::GetSharedInstance()->RequestTrustedEntity( 465 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity(
466 kAccountsPrefShowUserNamesOnSignIn, callback); 466 kAccountsPrefShowUserNamesOnSignIn, callback);
467 } 467 }
468 468
469 bool UserCrosSettingsProvider::RequestTrustedOwner(Task* callback) { 469 bool UserCrosSettingsProvider::RequestTrustedOwner(Task* callback) {
470 return UserCrosSettingsTrust::GetSharedInstance()->RequestTrustedEntity( 470 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity(
471 kDeviceOwner, callback); 471 kDeviceOwner, callback);
472 } 472 }
473 473
474 // static 474 // static
475 bool UserCrosSettingsProvider::cached_allow_guest() { 475 bool UserCrosSettingsProvider::cached_allow_guest() {
476 // Trigger prefetching if singleton object still does not exist. 476 // Trigger prefetching if singleton object still does not exist.
477 UserCrosSettingsTrust::GetSharedInstance(); 477 UserCrosSettingsTrust::GetInstance();
478 return g_browser_process->local_state()->GetBoolean(kAccountsPrefAllowGuest); 478 return g_browser_process->local_state()->GetBoolean(kAccountsPrefAllowGuest);
479 } 479 }
480 480
481 // static 481 // static
482 bool UserCrosSettingsProvider::cached_allow_new_user() { 482 bool UserCrosSettingsProvider::cached_allow_new_user() {
483 // Trigger prefetching if singleton object still does not exist. 483 // Trigger prefetching if singleton object still does not exist.
484 UserCrosSettingsTrust::GetSharedInstance(); 484 UserCrosSettingsTrust::GetInstance();
485 return g_browser_process->local_state()->GetBoolean( 485 return g_browser_process->local_state()->GetBoolean(
486 kAccountsPrefAllowNewUser); 486 kAccountsPrefAllowNewUser);
487 } 487 }
488 488
489 // static 489 // static
490 bool UserCrosSettingsProvider::cached_show_users_on_signin() { 490 bool UserCrosSettingsProvider::cached_show_users_on_signin() {
491 // Trigger prefetching if singleton object still does not exist. 491 // Trigger prefetching if singleton object still does not exist.
492 UserCrosSettingsTrust::GetSharedInstance(); 492 UserCrosSettingsTrust::GetInstance();
493 return g_browser_process->local_state()->GetBoolean( 493 return g_browser_process->local_state()->GetBoolean(
494 kAccountsPrefShowUserNamesOnSignIn); 494 kAccountsPrefShowUserNamesOnSignIn);
495 } 495 }
496 496
497 // static 497 // static
498 const ListValue* UserCrosSettingsProvider::cached_whitelist() { 498 const ListValue* UserCrosSettingsProvider::cached_whitelist() {
499 PrefService* prefs = g_browser_process->local_state(); 499 PrefService* prefs = g_browser_process->local_state();
500 const ListValue* cached_users = prefs->GetList(kAccountsPrefUsers); 500 const ListValue* cached_users = prefs->GetList(kAccountsPrefUsers);
501 501
502 if (!cached_users) { 502 if (!cached_users) {
503 // Update whitelist cache. 503 // Update whitelist cache.
504 GetUserWhitelist(NULL); 504 GetUserWhitelist(NULL);
505 505
506 cached_users = prefs->GetList(kAccountsPrefUsers); 506 cached_users = prefs->GetList(kAccountsPrefUsers);
507 } 507 }
508 508
509 return cached_users; 509 return cached_users;
510 } 510 }
511 511
512 // static 512 // static
513 std::string UserCrosSettingsProvider::cached_owner() { 513 std::string UserCrosSettingsProvider::cached_owner() {
514 // Trigger prefetching if singleton object still does not exist. 514 // Trigger prefetching if singleton object still does not exist.
515 UserCrosSettingsTrust::GetSharedInstance(); 515 UserCrosSettingsTrust::GetInstance();
516 if (!g_browser_process || !g_browser_process->local_state()) 516 if (!g_browser_process || !g_browser_process->local_state())
517 return std::string(); 517 return std::string();
518 return g_browser_process->local_state()->GetString(kDeviceOwner); 518 return g_browser_process->local_state()->GetString(kDeviceOwner);
519 } 519 }
520 520
521 // static 521 // static
522 bool UserCrosSettingsProvider::IsEmailInCachedWhitelist( 522 bool UserCrosSettingsProvider::IsEmailInCachedWhitelist(
523 const std::string& email) { 523 const std::string& email) {
524 const ListValue* whitelist = cached_whitelist(); 524 const ListValue* whitelist = cached_whitelist();
525 if (whitelist) { 525 if (whitelist) {
526 StringValue email_value(email); 526 StringValue email_value(email);
527 for (ListValue::const_iterator i(whitelist->begin()); 527 for (ListValue::const_iterator i(whitelist->begin());
528 i != whitelist->end(); ++i) { 528 i != whitelist->end(); ++i) {
529 if ((*i)->Equals(&email_value)) 529 if ((*i)->Equals(&email_value))
530 return true; 530 return true;
531 } 531 }
532 } 532 }
533 return false; 533 return false;
534 } 534 }
535 535
536 void UserCrosSettingsProvider::DoSet(const std::string& path, 536 void UserCrosSettingsProvider::DoSet(const std::string& path,
537 Value* in_value) { 537 Value* in_value) {
538 UserCrosSettingsTrust::GetSharedInstance()->Set(path, in_value); 538 UserCrosSettingsTrust::GetInstance()->Set(path, in_value);
539 } 539 }
540 540
541 bool UserCrosSettingsProvider::Get(const std::string& path, 541 bool UserCrosSettingsProvider::Get(const std::string& path,
542 Value** out_value) const { 542 Value** out_value) const {
543 if (IsControlledBooleanSetting(path)) { 543 if (IsControlledBooleanSetting(path)) {
544 *out_value = CreateSettingsBooleanValue( 544 *out_value = CreateSettingsBooleanValue(
545 g_browser_process->local_state()->GetBoolean(path.c_str()), 545 g_browser_process->local_state()->GetBoolean(path.c_str()),
546 !UserManager::Get()->current_user_is_owner()); 546 !UserManager::Get()->current_user_is_owner());
547 return true; 547 return true;
548 } else if (path == kAccountsPrefUsers) { 548 } else if (path == kAccountsPrefUsers) {
549 ListValue* user_list = new ListValue; 549 ListValue* user_list = new ListValue;
550 GetUserWhitelist(user_list); 550 GetUserWhitelist(user_list);
551 *out_value = user_list; 551 *out_value = user_list;
552 return true; 552 return true;
553 } 553 }
554 554
555 return false; 555 return false;
556 } 556 }
557 557
558 bool UserCrosSettingsProvider::HandlesSetting(const std::string& path) { 558 bool UserCrosSettingsProvider::HandlesSetting(const std::string& path) {
559 return ::StartsWithASCII(path, "cros.accounts.", true); 559 return ::StartsWithASCII(path, "cros.accounts.", true);
560 } 560 }
561 561
562 void UserCrosSettingsProvider::WhitelistUser(const std::string& email) { 562 void UserCrosSettingsProvider::WhitelistUser(const std::string& email) {
563 SignedSettingsHelper::Get()->StartWhitelistOp( 563 SignedSettingsHelper::Get()->StartWhitelistOp(
564 email, true, UserCrosSettingsTrust::GetSharedInstance()); 564 email, true, UserCrosSettingsTrust::GetInstance());
565 PrefService* prefs = g_browser_process->local_state(); 565 PrefService* prefs = g_browser_process->local_state();
566 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); 566 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers);
567 cached_whitelist->Append(Value::CreateStringValue(email)); 567 cached_whitelist->Append(Value::CreateStringValue(email));
568 prefs->ScheduleSavePersistentPrefs(); 568 prefs->ScheduleSavePersistentPrefs();
569 } 569 }
570 570
571 void UserCrosSettingsProvider::UnwhitelistUser(const std::string& email) { 571 void UserCrosSettingsProvider::UnwhitelistUser(const std::string& email) {
572 SignedSettingsHelper::Get()->StartWhitelistOp( 572 SignedSettingsHelper::Get()->StartWhitelistOp(
573 email, false, UserCrosSettingsTrust::GetSharedInstance()); 573 email, false, UserCrosSettingsTrust::GetInstance());
574 574
575 PrefService* prefs = g_browser_process->local_state(); 575 PrefService* prefs = g_browser_process->local_state();
576 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); 576 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers);
577 StringValue email_value(email); 577 StringValue email_value(email);
578 if (cached_whitelist->Remove(email_value) != -1) 578 if (cached_whitelist->Remove(email_value) != -1)
579 prefs->ScheduleSavePersistentPrefs(); 579 prefs->ScheduleSavePersistentPrefs();
580 } 580 }
581 581
582 // static 582 // static
583 void UserCrosSettingsProvider::UpdateCachedOwner(const std::string& email) { 583 void UserCrosSettingsProvider::UpdateCachedOwner(const std::string& email) {
584 UpdateCacheString(kDeviceOwner, email, USE_VALUE_SUPPLIED); 584 UpdateCacheString(kDeviceOwner, email, USE_VALUE_SUPPLIED);
585 } 585 }
586 586
587 } // namespace chromeos 587 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698