Index: chrome/browser/profiles/profile_metadata_storage.h |
diff --git a/chrome/browser/profiles/profile_metadata_storage.h b/chrome/browser/profiles/profile_metadata_storage.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d266dc740c4212c76e73c72251061fb7bd5b8fb8 |
--- /dev/null |
+++ b/chrome/browser/profiles/profile_metadata_storage.h |
@@ -0,0 +1,113 @@ |
+// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
noms (inactive)
2015/06/29 17:10:40
The 2014-and-after style says there's no (c) neede
anthonyvd
2015/06/30 21:24:52
Done.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_PROFILES_PROFILE_METADATA_STORAGE_H_ |
+#define CHROME_BROWSER_PROFILES_PROFILE_METADATA_STORAGE_H_ |
+ |
+class ProfileInfoCache; |
+ |
+class ProfileMetadataStorage { |
+ public: |
+ // Represents one profile's metadata. |
+ class ProfileMetadataEntry { |
noms (inactive)
2015/06/29 17:10:40
I don't love `metadata` (to me, metadata is like t
Mike Lerman
2015/06/29 19:14:37
I was okay with ProfileMetadata, though I'm also o
anthonyvd
2015/06/30 21:24:53
Done and done.
I preferred moving away from Profi
|
+ public: |
+ base::string16 GetName() const; |
noms (inactive)
2015/06/29 17:10:40
I'm so confused. This just has getters, but doesn'
anthonyvd
2015/06/30 21:24:53
I completely agree that it's kind of weird. The id
|
+ base::string16 GetShortcutName() const; |
+ base::FilePath GetPath() const; |
+ base::Time GetActiveTime() const; |
+ base::string16 GetUserName() const; |
+ const gfx::Image& GetAvatarIcon(); |
+ std::string GetLocalAuthCredentials() const; |
+ std::string GetPasswordChangeDetectionToken() const; |
+ // Note that a return value of false could mean an error in collection or |
+ // that there are currently no background apps running. However, the action |
+ // which results is the same in both cases (thus far). |
+ bool GetBackgroundStatus() const; |
+ base::string16 GetGAIAName() const; |
+ base::string16 GetGAIAGivenName() const; |
+ std::string GetGAIAId() const; |
+ // Returns the GAIA picture for the given profile. This may return NULL |
+ // if the profile does not have a GAIA picture or if the picture must be |
+ // loaded from disk. |
+ const gfx::Image* GetGAIAPicture() const; |
+ bool IsUsingGAIAPicture() const; |
+ bool IsSupervised() const; |
+ bool IsChild() const; |
+ bool IsLegacySupervised() const; |
+ bool IsOmitted() const; |
+ bool IsSigninRequired() const; |
+ std::string GetSupervisedUserId() const; |
+ bool IsEphemeral() const; |
+ bool IsUsingDefaultName() const; |
+ bool IsAuthenticated() const; |
+ bool IsUsingDefaultAvatar() const; |
+ bool IsAuthError() const; |
+ size_t GetAvatarIconIndex() const; |
+ |
+ void SetName(const base::string16& name); |
+ void SetShortcutName(const base::string16& name); |
+ void SetIsOmitted(bool is_omitted); |
+ void SetSupervisedUserId(const std::string& id); |
+ void SetLocalAuthCredentials(const std::string& auth); |
+ void SetPasswordChangeDetectionToken(const std::string& token); |
+ void SetBackgroundStatus(bool running_background_apps); |
+ void SetGAIAName(const base::string16& name); |
+ void SetGAIAGivenName(const base::string16& name); |
+ void SetGAIAPicture(const gfx::Image* image); |
+ void SetIsUsingGAIAPicture(bool value); |
+ void SetIsSigninRequired(bool value); |
+ void SetIsEphemeral(bool value); |
+ void SetIsUsingDefaultName(bool value); |
+ void SetIsUsingDefaultAvatar(bool value); |
+ void SetIsAuthError(bool value); |
+ void SetAvatarIconIndex(size_t icon_index); |
+ |
+ void SetAuthInfo(const std::string& gaia_id, |
+ const base::string16& user_name); |
+ |
+ private: |
+ // These members are an implementation detail meant to smooth the migration |
noms (inactive)
2015/06/29 17:10:40
Probably safe to add a TODO here :)
anthonyvd
2015/06/30 21:24:53
Done.
|
+ // of the ProfileInfoCache to the ProfileMetadataStorage interface. They can |
+ // be safely removed once the ProfileInfoCache stops using indices |
+ // internally. |
+ friend class ProfileInfoCache; |
+ size_t profile_index_; |
+ ProfileInfoCache* profile_info_cache_; |
Mike Lerman
2015/06/29 19:14:37
I imagine you will one day have member variables f
anthonyvd
2015/06/30 21:24:53
Do you think the own above w.r.t. Monica's comment
|
+ }; |
+ |
+ ProfileMetadataStorage() {} |
+ ~ProfileMetadataStorage() {} |
+ |
+ // If the |supervised_user_id| is non-empty, the profile will be marked to be |
+ // omitted from the avatar-menu list on desktop versions. This is used while a |
+ // supervised user is in the process of being registered with the server. Use |
+ // SetIsOmittedProfileAtIndex() to clear the flag when the profile is ready to |
anthonyvd
2015/06/25 21:38:37
Oops, need to update that comment.
anthonyvd
2015/06/30 21:24:53
Done.
|
+ // be shown in the menu. |
+ virtual void AddProfile(const base::FilePath& profile_path, |
+ const base::string16& name, |
+ const std::string& gaia_id, |
+ const base::string16& user_name, |
+ size_t icon_index, |
+ const std::string& supervised_user_id) = 0; |
+ virtual void DeleteProfile(const base::FilePath& profile_path) = 0; |
+ |
+ // Returns a vector containing one metadata entry per known profile. They are |
+ // not sorted in any particular order. |
+ virtual std::vector<ProfileMetadataEntry> GetAllProfilesMetadata() = 0; |
+ |
+ // Populates |entry| with the data for the profile at |path| and returns true |
+ // if the operation is successful and |entry| can be used. Returns false |
+ // otherwise. |
+ // |entry| should not be cached as it will not reflect subsequent changes to |
+ // the profile's metadata. |
+ virtual bool GetProfileMetadataWithPath( |
+ const base::FilePath& path, ProfileMetadataEntry* entry) = 0; |
Mike Lerman
2015/06/29 19:14:37
Perhaps make the second parameter a *& rather than
anthonyvd
2015/06/30 21:24:53
I'm not too sure about that. The pointer-to-pointe
Mike Lerman
2015/07/02 18:01:30
I agree with your analysis of the two options, and
anthonyvd
2015/07/07 21:05:32
I went ahead and implemented 2) without the actual
|
+ |
+ // Returns the amount of known profiles. |
Mike Lerman
2015/06/29 19:14:37
s/amount/count? quantity? numeracy?/
anthonyvd
2015/06/30 21:24:53
Done.
|
+ virtual size_t GetNumberOfProfiles() const = 0; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ProfileMetadataStorage); |
+}; |
+ |
+#endif // CHROME_BROWSER_PROFILES_PROFILE_METADATA_STORAGE_H_ |