Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/profiles/profile_info_cache.h" | 5 #include "chrome/browser/profiles/profile_info_cache.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/i18n/case_conversion.h" | 9 #include "base/i18n/case_conversion.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 53 const char kPasswordTokenKey[] = "gaia_password_token"; | 53 const char kPasswordTokenKey[] = "gaia_password_token"; |
| 54 const char kUseGAIAPictureKey[] = "use_gaia_picture"; | 54 const char kUseGAIAPictureKey[] = "use_gaia_picture"; |
| 55 const char kBackgroundAppsKey[] = "background_apps"; | 55 const char kBackgroundAppsKey[] = "background_apps"; |
| 56 const char kGAIAPictureFileNameKey[] = "gaia_picture_file_name"; | 56 const char kGAIAPictureFileNameKey[] = "gaia_picture_file_name"; |
| 57 const char kIsOmittedFromProfileListKey[] = "is_omitted_from_profile_list"; | 57 const char kIsOmittedFromProfileListKey[] = "is_omitted_from_profile_list"; |
| 58 const char kSigninRequiredKey[] = "signin_required"; | 58 const char kSigninRequiredKey[] = "signin_required"; |
| 59 const char kSupervisedUserId[] = "managed_user_id"; | 59 const char kSupervisedUserId[] = "managed_user_id"; |
| 60 const char kProfileIsEphemeral[] = "is_ephemeral"; | 60 const char kProfileIsEphemeral[] = "is_ephemeral"; |
| 61 const char kActiveTimeKey[] = "active_time"; | 61 const char kActiveTimeKey[] = "active_time"; |
| 62 const char kIsAuthErrorKey[] = "is_auth_error"; | 62 const char kIsAuthErrorKey[] = "is_auth_error"; |
| 63 const char kStatsBrowsingHistoryKey[] = "stats_browsing_history"; | |
| 64 const char kStatsPasswordsKey[] = "stats_passwords"; | |
| 65 const char kStatsBookmarksKey[] = "stats_bookmarks"; | |
| 66 const char kStatsSettingsKey[] = "stats_settings"; | |
| 63 | 67 |
| 64 // First eight are generic icons, which use IDS_NUMBERED_PROFILE_NAME. | 68 // First eight are generic icons, which use IDS_NUMBERED_PROFILE_NAME. |
| 65 const int kDefaultNames[] = { | 69 const int kDefaultNames[] = { |
| 66 IDS_DEFAULT_AVATAR_NAME_8, | 70 IDS_DEFAULT_AVATAR_NAME_8, |
| 67 IDS_DEFAULT_AVATAR_NAME_9, | 71 IDS_DEFAULT_AVATAR_NAME_9, |
| 68 IDS_DEFAULT_AVATAR_NAME_10, | 72 IDS_DEFAULT_AVATAR_NAME_10, |
| 69 IDS_DEFAULT_AVATAR_NAME_11, | 73 IDS_DEFAULT_AVATAR_NAME_11, |
| 70 IDS_DEFAULT_AVATAR_NAME_12, | 74 IDS_DEFAULT_AVATAR_NAME_12, |
| 71 IDS_DEFAULT_AVATAR_NAME_13, | 75 IDS_DEFAULT_AVATAR_NAME_13, |
| 72 IDS_DEFAULT_AVATAR_NAME_14, | 76 IDS_DEFAULT_AVATAR_NAME_14, |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 492 const { | 496 const { |
| 493 std::string icon_url; | 497 std::string icon_url; |
| 494 GetInfoForProfileAtIndex(index)->GetString(kAvatarIconKey, &icon_url); | 498 GetInfoForProfileAtIndex(index)->GetString(kAvatarIconKey, &icon_url); |
| 495 size_t icon_index = 0; | 499 size_t icon_index = 0; |
| 496 if (!profiles::IsDefaultAvatarIconUrl(icon_url, &icon_index)) | 500 if (!profiles::IsDefaultAvatarIconUrl(icon_url, &icon_index)) |
| 497 DLOG(WARNING) << "Unknown avatar icon: " << icon_url; | 501 DLOG(WARNING) << "Unknown avatar icon: " << icon_url; |
| 498 | 502 |
| 499 return icon_index; | 503 return icon_index; |
| 500 } | 504 } |
| 501 | 505 |
| 506 bool ProfileInfoCache::HasStatsBrowsingHistoryOfProfileAtIndex(size_t index) | |
| 507 const { | |
| 508 int value = 0; | |
| 509 return GetInfoForProfileAtIndex(index)->GetInteger(kStatsBrowsingHistoryKey, | |
| 510 &value); | |
| 511 } | |
| 512 | |
| 513 int ProfileInfoCache::GetStatsBrowsingHistoryOfProfileAtIndex(size_t index) | |
| 514 const { | |
| 515 int value = 0; | |
| 516 GetInfoForProfileAtIndex(index)->GetInteger(kStatsBrowsingHistoryKey, &value); | |
| 517 return value; | |
| 518 } | |
| 519 | |
| 520 bool ProfileInfoCache::HasStatsPasswordsOfProfileAtIndex(size_t index) | |
| 521 const { | |
| 522 int value = 0; | |
| 523 return GetInfoForProfileAtIndex(index)->GetInteger(kStatsPasswordsKey, | |
| 524 &value); | |
| 525 } | |
| 526 | |
| 527 int ProfileInfoCache::GetStatsPasswordsOfProfileAtIndex(size_t index) | |
| 528 const { | |
| 529 int value = 0; | |
| 530 GetInfoForProfileAtIndex(index)->GetInteger(kStatsPasswordsKey, &value); | |
| 531 return value; | |
| 532 } | |
| 533 | |
| 534 bool ProfileInfoCache::HasStatsBookmarksOfProfileAtIndex(size_t index) | |
| 535 const { | |
| 536 int value = 0; | |
| 537 return GetInfoForProfileAtIndex(index)->GetInteger(kStatsBookmarksKey, | |
| 538 &value); | |
| 539 } | |
| 540 | |
| 541 int ProfileInfoCache::GetStatsBookmarksOfProfileAtIndex(size_t index) | |
| 542 const { | |
| 543 int value = 0; | |
| 544 GetInfoForProfileAtIndex(index)->GetInteger(kStatsBookmarksKey, &value); | |
| 545 return value; | |
| 546 } | |
| 547 | |
| 548 bool ProfileInfoCache::HasStatsSettingsOfProfileAtIndex(size_t index) | |
|
Mike Lerman
2015/11/17 16:29:51
nit: I think const can go on the line before. (and
lwchkg
2015/11/18 17:34:53
Done. Six pairs replaced.
| |
| 549 const { | |
| 550 int value = 0; | |
| 551 return GetInfoForProfileAtIndex(index)->GetInteger(kStatsSettingsKey, &value); | |
| 552 } | |
| 553 | |
| 554 int ProfileInfoCache::GetStatsSettingsOfProfileAtIndex(size_t index) | |
| 555 const { | |
| 556 int value = 0; | |
| 557 GetInfoForProfileAtIndex(index)->GetInteger(kStatsSettingsKey, &value); | |
| 558 return value; | |
| 559 } | |
| 560 | |
| 502 void ProfileInfoCache::SetProfileActiveTimeAtIndex(size_t index) { | 561 void ProfileInfoCache::SetProfileActiveTimeAtIndex(size_t index) { |
| 503 if (base::Time::Now() - GetProfileActiveTimeAtIndex(index) < | 562 if (base::Time::Now() - GetProfileActiveTimeAtIndex(index) < |
| 504 base::TimeDelta::FromHours(1)) { | 563 base::TimeDelta::FromHours(1)) { |
| 505 return; | 564 return; |
| 506 } | 565 } |
| 507 | 566 |
| 508 scoped_ptr<base::DictionaryValue> info( | 567 scoped_ptr<base::DictionaryValue> info( |
| 509 GetInfoForProfileAtIndex(index)->DeepCopy()); | 568 GetInfoForProfileAtIndex(index)->DeepCopy()); |
| 510 info->SetDouble(kActiveTimeKey, base::Time::Now().ToDoubleT()); | 569 info->SetDouble(kActiveTimeKey, base::Time::Now().ToDoubleT()); |
| 511 // This takes ownership of |info|. | 570 // This takes ownership of |info|. |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 902 if (ChooseAvatarIconIndexForNewProfile(true, true, &icon_index)) | 961 if (ChooseAvatarIconIndexForNewProfile(true, true, &icon_index)) |
| 903 return icon_index; | 962 return icon_index; |
| 904 // Settle for any random icon, even if it's not unique. | 963 // Settle for any random icon, even if it's not unique. |
| 905 if (ChooseAvatarIconIndexForNewProfile(true, false, &icon_index)) | 964 if (ChooseAvatarIconIndexForNewProfile(true, false, &icon_index)) |
| 906 return icon_index; | 965 return icon_index; |
| 907 | 966 |
| 908 NOTREACHED(); | 967 NOTREACHED(); |
| 909 return 0; | 968 return 0; |
| 910 } | 969 } |
| 911 | 970 |
| 971 void ProfileInfoCache::SetStatsBrowsingHistoryOfProfileAtIndex(size_t index, | |
| 972 int value) { | |
| 973 scoped_ptr<base::DictionaryValue> info( | |
| 974 GetInfoForProfileAtIndex(index)->DeepCopy()); | |
| 975 info->SetInteger(kStatsBrowsingHistoryKey, value); | |
| 976 // This takes ownership of |info|. | |
| 977 SetInfoForProfileAtIndex(index, info.release()); | |
| 978 } | |
| 979 | |
| 980 void ProfileInfoCache::SetStatsPasswordsOfProfileAtIndex(size_t index, | |
| 981 int value) { | |
|
anthonyvd
2015/11/17 19:03:30
nit: alignment of the params here and the followin
lwchkg
2015/11/18 17:34:53
Done. (Anyway, what's happening with me with those
| |
| 982 scoped_ptr<base::DictionaryValue> info( | |
| 983 GetInfoForProfileAtIndex(index)->DeepCopy()); | |
| 984 info->SetInteger(kStatsPasswordsKey, value); | |
| 985 // This takes ownership of |info|. | |
| 986 SetInfoForProfileAtIndex(index, info.release()); | |
| 987 } | |
| 988 | |
| 989 void ProfileInfoCache::SetStatsBookmarksOfProfileAtIndex(size_t index, | |
| 990 int value) { | |
| 991 scoped_ptr<base::DictionaryValue> info( | |
| 992 GetInfoForProfileAtIndex(index)->DeepCopy()); | |
| 993 info->SetInteger(kStatsBookmarksKey, value); | |
| 994 // This takes ownership of |info|. | |
| 995 SetInfoForProfileAtIndex(index, info.release()); | |
| 996 } | |
| 997 | |
| 998 void ProfileInfoCache::SetStatsSettingsOfProfileAtIndex(size_t index, | |
| 999 int value) { | |
| 1000 scoped_ptr<base::DictionaryValue> info( | |
| 1001 GetInfoForProfileAtIndex(index)->DeepCopy()); | |
| 1002 info->SetInteger(kStatsSettingsKey, value); | |
| 1003 // This takes ownership of |info|. | |
| 1004 SetInfoForProfileAtIndex(index, info.release()); | |
| 1005 } | |
| 1006 | |
| 912 const base::FilePath& ProfileInfoCache::GetUserDataDir() const { | 1007 const base::FilePath& ProfileInfoCache::GetUserDataDir() const { |
| 913 return user_data_dir_; | 1008 return user_data_dir_; |
| 914 } | 1009 } |
| 915 | 1010 |
| 916 // static | 1011 // static |
| 917 void ProfileInfoCache::RegisterPrefs(PrefRegistrySimple* registry) { | 1012 void ProfileInfoCache::RegisterPrefs(PrefRegistrySimple* registry) { |
| 918 registry->RegisterDictionaryPref(prefs::kProfileInfoCache); | 1013 registry->RegisterDictionaryPref(prefs::kProfileInfoCache); |
| 919 } | 1014 } |
| 920 | 1015 |
| 921 void ProfileInfoCache::DownloadHighResAvatarIfNeeded( | 1016 void ProfileInfoCache::DownloadHighResAvatarIfNeeded( |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1281 // The profile info is in the cache but its entry isn't created yet, insert | 1376 // The profile info is in the cache but its entry isn't created yet, insert |
| 1282 // it in the map. | 1377 // it in the map. |
| 1283 scoped_ptr<ProfileAttributesEntry> new_entry(new ProfileAttributesEntry()); | 1378 scoped_ptr<ProfileAttributesEntry> new_entry(new ProfileAttributesEntry()); |
| 1284 profile_attributes_entries_.add(path, new_entry.Pass()); | 1379 profile_attributes_entries_.add(path, new_entry.Pass()); |
| 1285 profile_attributes_entries_.get(path)->Initialize(this, path); | 1380 profile_attributes_entries_.get(path)->Initialize(this, path); |
| 1286 } | 1381 } |
| 1287 | 1382 |
| 1288 *entry = profile_attributes_entries_.get(path); | 1383 *entry = profile_attributes_entries_.get(path); |
| 1289 return true; | 1384 return true; |
| 1290 } | 1385 } |
| OLD | NEW |