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

Unified Diff: chrome/browser/ui/app_list/app_list_view_delegate.cc

Issue 1631373003: Refactor ProfileInfoCache in c/b/ui/app_list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to comments, add sorting of ProfileAttributesEntry Created 4 years, 11 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
Index: chrome/browser/ui/app_list/app_list_view_delegate.cc
diff --git a/chrome/browser/ui/app_list/app_list_view_delegate.cc b/chrome/browser/ui/app_list/app_list_view_delegate.cc
index c26a1baf8b17c96543516b4ed8cb081af9b7f8f1..afe467c78416acee54c3efd5118647a7f66fe940 100644
--- a/chrome/browser/ui/app_list/app_list_view_delegate.cc
+++ b/chrome/browser/ui/app_list/app_list_view_delegate.cc
@@ -6,7 +6,7 @@
#include <stddef.h>
-#include <vector>
+#include <algorithm>
tapted 2016/01/31 23:04:37 but you should keep std::vector here (as well as a
#include "apps/custom_launcher_page_contents.h"
#include "base/callback.h"
@@ -20,7 +20,8 @@
#include "chrome/browser/apps/scoped_keep_alive.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/profiles/profile_info_cache.h"
+#include "chrome/browser/profiles/profile_attributes_entry.h"
+#include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/search/hotword_service.h"
#include "chrome/browser/search/hotword_service_factory.h"
@@ -107,16 +108,20 @@ void CreateShortcutInWebAppDir(
}
#endif
-void PopulateUsers(const ProfileInfoCache& profile_info,
- const base::FilePath& active_profile_path,
+void PopulateUsers(const base::FilePath& active_profile_path,
app_list::AppListViewDelegate::Users* users) {
users->clear();
- const size_t count = profile_info.GetNumberOfProfiles();
- for (size_t i = 0; i < count; ++i) {
+ std::vector<ProfileAttributesEntry*> entries = g_browser_process->
+ profile_manager()->GetProfileAttributesStorage().
+ GetAllProfilesAttributes();
+ std::sort(entries.begin(), entries.end(),
+ ProfileAttributesEntry::SortComparator(
+ ProfileAttributesEntry::SortComparator::GetCollator().get()));
+ for (const auto& entry : entries) {
lwchkg 2016/01/31 19:12:22 Should remove the & because the underlying data ar
app_list::AppListViewDelegate::User user;
- user.name = profile_info.GetNameOfProfileAtIndex(i);
- user.email = profile_info.GetUserNameOfProfileAtIndex(i);
- user.profile_path = profile_info.GetPathOfProfileAtIndex(i);
+ user.name = entry->GetName();
+ user.email = entry->GetUserName();
+ user.profile_path = entry->GetPath();
user.active = active_profile_path == user.profile_path;
users->push_back(user);
}
@@ -199,7 +204,7 @@ AppListViewDelegate::AppListViewDelegate(AppListControllerDelegate* controller)
}
}
- profile_manager->GetProfileInfoCache().AddObserver(this);
+ profile_manager->GetProfileAttributesStorage().AddObserver(this);
speech_ui_.reset(new app_list::SpeechUIModel);
#if defined(GOOGLE_CHROME_BUILD)
@@ -225,8 +230,8 @@ AppListViewDelegate::~AppListViewDelegate() {
// by a leaky singleton. Essential shutdown work must be done by observing
// chrome::NOTIFICATION_APP_TERMINATING.
SetProfile(NULL);
- g_browser_process->profile_manager()->GetProfileInfoCache().RemoveObserver(
- this);
+ g_browser_process->profile_manager()->GetProfileAttributesStorage().
+ RemoveObserver(this);
SigninManagerFactory* factory = SigninManagerFactory::GetInstance();
if (factory)
@@ -330,9 +335,7 @@ void AppListViewDelegate::SetUpProfileSwitcher() {
return;
// Populate the app list users.
- PopulateUsers(g_browser_process->profile_manager()->GetProfileInfoCache(),
- profile_->GetPath(),
- &users_);
+ PopulateUsers(profile_->GetPath(), &users_);
FOR_EACH_OBSERVER(
app_list::AppListViewDelegateObserver, observers_, OnProfilesChanged());

Powered by Google App Engine
This is Rietveld 408576698