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

Unified Diff: chrome/browser/profiles/profile_info_cache.cc

Issue 1117453002: Add gaia_id to ProfileInfoCache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/profiles/profile_info_cache.h ('k') | chrome/browser/profiles/profile_info_cache_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profiles/profile_info_cache.cc
diff --git a/chrome/browser/profiles/profile_info_cache.cc b/chrome/browser/profiles/profile_info_cache.cc
index 75395437738a217e542ee88561d21c3d74222919..b83881a561093bbac9f629c7546ac0acaa6f8e82 100644
--- a/chrome/browser/profiles/profile_info_cache.cc
+++ b/chrome/browser/profiles/profile_info_cache.cc
@@ -44,6 +44,7 @@ const char kNameKey[] = "name";
const char kShortcutNameKey[] = "shortcut_name";
const char kGAIANameKey[] = "gaia_name";
const char kGAIAGivenNameKey[] = "gaia_given_name";
+const char kGAIAIdKey[] = "gaia_id";
const char kUserNameKey[] = "user_name";
const char kIsUsingDefaultNameKey[] = "is_using_default_name";
const char kIsUsingDefaultAvatarKey[] = "is_using_default_avatar";
@@ -197,7 +198,8 @@ ProfileInfoCache::~ProfileInfoCache() {
void ProfileInfoCache::AddProfileToCache(
const base::FilePath& profile_path,
const base::string16& name,
- const base::string16& username,
+ const std::string& gaia_id,
+ const base::string16& user_name,
size_t icon_index,
const std::string& supervised_user_id) {
std::string key = CacheKeyFromProfilePath(profile_path);
@@ -206,7 +208,8 @@ void ProfileInfoCache::AddProfileToCache(
scoped_ptr<base::DictionaryValue> info(new base::DictionaryValue);
info->SetString(kNameKey, name);
- info->SetString(kUserNameKey, username);
+ info->SetString(kGAIAIdKey, gaia_id);
+ info->SetString(kUserNameKey, user_name);
info->SetString(kAvatarIconKey,
profiles::GetDefaultAvatarIconUrl(icon_index));
// Default value for whether background apps are running is false.
@@ -369,6 +372,13 @@ base::string16 ProfileInfoCache::GetGAIAGivenNameOfProfileAtIndex(
return name;
}
+std::string ProfileInfoCache::GetGAIAIdOfProfileAtIndex(
+ size_t index) const {
+ std::string gaia_id;
+ GetInfoForProfileAtIndex(index)->GetString(kGAIAIdKey, &gaia_id);
+ return gaia_id;
+}
+
const gfx::Image* ProfileInfoCache::GetGAIAPictureOfProfileAtIndex(
size_t index) const {
base::FilePath path = GetPathOfProfileAtIndex(index);
@@ -447,6 +457,15 @@ bool ProfileInfoCache::ProfileIsUsingDefaultNameAtIndex(size_t index) const {
return value;
}
+bool ProfileInfoCache::ProfileIsAuthenticatedAtIndex(size_t index) const {
+ // The profile is authenticated if the gaia_id of the info is not empty.
+ // If it is empty, also check if the user name is not empty. This latter
+ // check is needed in case the profile has not been loaded yet and the
+ // gaia_id property has not yet been written.
+ return !GetGAIAIdOfProfileAtIndex(index).empty() ||
+ !GetUserNameOfProfileAtIndex(index).empty();
+}
+
bool ProfileInfoCache::ProfileIsUsingDefaultAvatarAtIndex(size_t index) const {
bool value = false;
GetInfoForProfileAtIndex(index)->GetBoolean(kIsUsingDefaultAvatarKey, &value);
@@ -521,22 +540,29 @@ void ProfileInfoCache::SetShortcutNameOfProfileAtIndex(
SetInfoForProfileAtIndex(index, info.release());
}
-void ProfileInfoCache::SetUserNameOfProfileAtIndex(
+void ProfileInfoCache::SetAuthInfoOfProfileAtIndex(
size_t index,
+ const std::string& gaia_id,
const base::string16& user_name) {
- if (user_name == GetUserNameOfProfileAtIndex(index))
+ // If both gaia_id and username are unchanged, abort early.
+ if (gaia_id == GetGAIAIdOfProfileAtIndex(index) &&
+ user_name == GetUserNameOfProfileAtIndex(index)) {
return;
+ }
scoped_ptr<base::DictionaryValue> info(
GetInfoForProfileAtIndex(index)->DeepCopy());
+
+ info->SetString(kGAIAIdKey, gaia_id);
info->SetString(kUserNameKey, user_name);
+
// This takes ownership of |info|.
SetInfoForProfileAtIndex(index, info.release());
base::FilePath profile_path = GetPathOfProfileAtIndex(index);
FOR_EACH_OBSERVER(ProfileInfoCacheObserver,
observer_list_,
- OnProfileUserNameChanged(profile_path));
+ OnProfileAuthInfoChanged(profile_path));
}
void ProfileInfoCache::SetAvatarIconOfProfileAtIndex(size_t index,
« no previous file with comments | « chrome/browser/profiles/profile_info_cache.h ('k') | chrome/browser/profiles/profile_info_cache_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698