| Index: ios/chrome/browser/browser_state/browser_state_info_cache.cc
|
| diff --git a/ios/chrome/browser/browser_state/browser_state_info_cache.cc b/ios/chrome/browser/browser_state/browser_state_info_cache.cc
|
| index ceac0874a9e7d03c8250f59e565d7657cf098370..e242c31dcee17c8dd7dfc5af87459f2cfe280d7d 100644
|
| --- a/ios/chrome/browser/browser_state/browser_state_info_cache.cc
|
| +++ b/ios/chrome/browser/browser_state/browser_state_info_cache.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "ios/chrome/browser/browser_state/browser_state_info_cache.h"
|
|
|
| +#include <algorithm>
|
| +
|
| #include "base/i18n/case_conversion.h"
|
| #include "base/logging.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -16,7 +18,6 @@
|
| namespace {
|
| const char kGAIAIdKey[] = "gaia_id";
|
| const char kIsAuthErrorKey[] = "is_auth_error";
|
| -const char kNameKey[] = "name";
|
| const char kUserNameKey[] = "user_name";
|
| }
|
|
|
| @@ -31,9 +32,7 @@ BrowserStateInfoCache::BrowserStateInfoCache(
|
| it.Advance()) {
|
| base::DictionaryValue* info = nullptr;
|
| cache->GetDictionaryWithoutPathExpansion(it.key(), &info);
|
| - base::string16 name;
|
| - info->GetString(kNameKey, &name);
|
| - sorted_keys_.insert(FindPositionForBrowserState(it.key(), name), it.key());
|
| + AddBrowserStateCacheKey(it.key());
|
| }
|
| }
|
|
|
| @@ -41,7 +40,6 @@ BrowserStateInfoCache::~BrowserStateInfoCache() {}
|
|
|
| void BrowserStateInfoCache::AddBrowserState(
|
| const base::FilePath& browser_state_path,
|
| - const base::string16& name,
|
| const std::string& gaia_id,
|
| const base::string16& user_name) {
|
| std::string key = CacheKeyFromBrowserStatePath(browser_state_path);
|
| @@ -49,12 +47,10 @@ void BrowserStateInfoCache::AddBrowserState(
|
| base::DictionaryValue* cache = update.Get();
|
|
|
| scoped_ptr<base::DictionaryValue> info(new base::DictionaryValue);
|
| - info->SetString(kNameKey, name);
|
| info->SetString(kGAIAIdKey, gaia_id);
|
| info->SetString(kUserNameKey, user_name);
|
| cache->SetWithoutPathExpansion(key, info.release());
|
| -
|
| - sorted_keys_.insert(FindPositionForBrowserState(key, name), key);
|
| + AddBrowserStateCacheKey(key);
|
|
|
| FOR_EACH_OBSERVER(BrowserStateInfoCacheObserver, observer_list_,
|
| OnBrowserStateAdded(browser_state_path));
|
| @@ -78,8 +74,6 @@ void BrowserStateInfoCache::RemoveBrowserState(
|
| NOTREACHED();
|
| return;
|
| }
|
| - base::string16 name = GetNameOfBrowserStateAtIndex(browser_state_index);
|
| -
|
| DictionaryPrefUpdate update(prefs_, ios::prefs::kBrowserStateInfoCache);
|
| base::DictionaryValue* cache = update.Get();
|
| std::string key = CacheKeyFromBrowserStatePath(browser_state_path);
|
| @@ -87,7 +81,7 @@ void BrowserStateInfoCache::RemoveBrowserState(
|
| sorted_keys_.erase(std::find(sorted_keys_.begin(), sorted_keys_.end(), key));
|
|
|
| FOR_EACH_OBSERVER(BrowserStateInfoCacheObserver, observer_list_,
|
| - OnBrowserStateWasRemoved(browser_state_path, name));
|
| + OnBrowserStateWasRemoved(browser_state_path));
|
| }
|
|
|
| size_t BrowserStateInfoCache::GetNumberOfBrowserStates() const {
|
| @@ -106,13 +100,6 @@ size_t BrowserStateInfoCache::GetIndexOfBrowserStateWithPath(
|
| return std::string::npos;
|
| }
|
|
|
| -base::string16 BrowserStateInfoCache::GetNameOfBrowserStateAtIndex(
|
| - size_t index) const {
|
| - base::string16 name;
|
| - GetInfoForBrowserStateAtIndex(index)->GetString(kNameKey, &name);
|
| - return name;
|
| -}
|
| -
|
| base::string16 BrowserStateInfoCache::GetUserNameOfBrowserStateAtIndex(
|
| size_t index) const {
|
| base::string16 user_name;
|
| @@ -214,22 +201,7 @@ std::string BrowserStateInfoCache::CacheKeyFromBrowserStatePath(
|
| return base_name.MaybeAsASCII();
|
| }
|
|
|
| -std::vector<std::string>::iterator
|
| -BrowserStateInfoCache::FindPositionForBrowserState(
|
| - const std::string& search_key,
|
| - const base::string16& search_name) {
|
| - base::string16 search_name_l = base::i18n::ToLower(search_name);
|
| - for (size_t i = 0; i < GetNumberOfBrowserStates(); ++i) {
|
| - base::string16 name_l =
|
| - base::i18n::ToLower(GetNameOfBrowserStateAtIndex(i));
|
| - int name_compare = search_name_l.compare(name_l);
|
| - if (name_compare < 0)
|
| - return sorted_keys_.begin() + i;
|
| - if (name_compare == 0) {
|
| - int key_compare = search_key.compare(sorted_keys_[i]);
|
| - if (key_compare < 0)
|
| - return sorted_keys_.begin() + i;
|
| - }
|
| - }
|
| - return sorted_keys_.end();
|
| +void BrowserStateInfoCache::AddBrowserStateCacheKey(const std::string& key) {
|
| + sorted_keys_.insert(
|
| + std::upper_bound(sorted_keys_.begin(), sorted_keys_.end(), key), key);
|
| }
|
|
|