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

Side by Side Diff: chrome/browser/profiles/profile_list_desktop.h

Issue 1242793005: Refactor most c/b/profiles calls to ProfileInfoCache. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Windows unit test and ChromeOS build Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_ 5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_
6 #define CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_ 6 #define CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_
7 7
8 #include "chrome/browser/profiles/profile_list.h" 8 #include "chrome/browser/profiles/profile_list.h"
9 9
10 #include <vector> 10 #include <vector>
11 11
12 class Browser; 12 class Browser;
13 class ProfileInfoInterface; 13 class ProfileAttributesStorage;
14 14
15 // This model represents the profiles added to desktop Chrome (as opposed to 15 // This model represents the profiles added to desktop Chrome (as opposed to
16 // Chrome OS). Profiles marked not to appear in the list will be omitted 16 // Chrome OS). Profiles marked not to appear in the list will be omitted
17 // throughout. 17 // throughout.
18 class ProfileListDesktop : public ProfileList { 18 class ProfileListDesktop : public ProfileList {
19 public: 19 public:
20 explicit ProfileListDesktop(ProfileInfoInterface* profile_cache); 20 explicit ProfileListDesktop(ProfileAttributesStorage* profile_storage);
21 ~ProfileListDesktop() override; 21 ~ProfileListDesktop() override;
22 22
23 // ProfileList overrides: 23 // ProfileList overrides:
24 size_t GetNumberOfItems() const override; 24 size_t GetNumberOfItems() const override;
25 const AvatarMenu::Item& GetItemAt(size_t index) const override; 25 const AvatarMenu::Item& GetItemAt(size_t index) const override;
26 void RebuildMenu() override; 26 void RebuildMenu() override;
27 // Returns the menu index of the profile at |index| in the ProfileInfoCache. 27 // Returns the menu index of the profile at |path| in the
28 // The profile index must exist, and it may not be marked as omitted from the 28 // ProfileAttributesStorage.
29 // menu. 29 // The profile path must exist, and it may not be marked as omitted from the
30 size_t MenuIndexFromProfileIndex(size_t index) override; 30 // menu. Otherwise, the behavior is undefined.
31 size_t MenuIndexFromProfilePath(const base::FilePath& path) override;
31 void ActiveProfilePathChanged(base::FilePath& path) override; 32 void ActiveProfilePathChanged(base::FilePath& path) override;
32 33
33 private: 34 private:
34 void ClearMenu(); 35 void ClearMenu();
35 36
36 // The cache that provides the profile information. Weak. 37 // The cache that provides the profile information. Weak.
37 ProfileInfoInterface* profile_info_; 38 ProfileAttributesStorage* profile_storage_;
38 39
39 // The path of the currently active profile. 40 // The path of the currently active profile.
40 base::FilePath active_profile_path_; 41 base::FilePath active_profile_path_;
41 42
42 // List of built "menu items." 43 // List of built "menu items."
43 std::vector<AvatarMenu::Item*> items_; 44 std::vector<AvatarMenu::Item*> items_;
44 45
45 // The number of profiles that were omitted from the list when it was built.
46 size_t omitted_item_count_;
47
48 DISALLOW_COPY_AND_ASSIGN(ProfileListDesktop); 46 DISALLOW_COPY_AND_ASSIGN(ProfileListDesktop);
49 }; 47 };
50 48
51 #endif // CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_ 49 #endif // CHROME_BROWSER_PROFILES_PROFILE_LIST_DESKTOP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698