Popular sites on the NTP: check that experiment group StartsWith (rather than IS...
[chromium-blink-merge.git] / chrome / browser / profiles / profile_attributes_storage.h
blobe9026c5f2f39b56c1fe503703e540b7ea2d0296c
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_
6 #define CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_
8 class ProfileAttributesEntry;
10 class ProfileAttributesStorage {
11 public:
12 ProfileAttributesStorage() {}
13 ~ProfileAttributesStorage() {}
15 // If the |supervised_user_id| is non-empty, the profile will be marked to be
16 // omitted from the avatar-menu list on desktop versions. This is used while a
17 // supervised user is in the process of being registered with the server. Use
18 // ProfileAttributesEntry::SetIsOmitted() to clear the flag when the profile
19 // is ready to be shown in the menu.
20 virtual void AddProfile(const base::FilePath& profile_path,
21 const base::string16& name,
22 const std::string& gaia_id,
23 const base::string16& user_name,
24 size_t icon_index,
25 const std::string& supervised_user_id) = 0;
26 // Removes the profile at |profile_path| from this storage. Does not delete or
27 // affect the actual profile's data.
28 virtual void RemoveProfile(const base::FilePath& profile_path) = 0;
30 // Returns a vector containing one attributes entry per known profile. They
31 // are not sorted in any particular order.
32 virtual std::vector<ProfileAttributesEntry*> GetAllProfilesAttributes() = 0;
34 // Populates |entry| with the data for the profile at |path| and returns true
35 // if the operation is successful and |entry| can be used. Returns false
36 // otherwise.
37 // |entry| should not be cached as it may not reflect subsequent changes to
38 // the profile's metadata.
39 virtual bool GetProfileAttributesWithPath(
40 const base::FilePath& path, ProfileAttributesEntry** entry) = 0;
42 // Returns the count of known profiles.
43 virtual size_t GetNumberOfProfiles() const = 0;
45 DISALLOW_COPY_AND_ASSIGN(ProfileAttributesStorage);
48 #endif // CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_