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

Unified Diff: chrome/browser/chromeos/login/user_manager_impl.h

Issue 11419184: Add public accounts to UserManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Made comment easier to understand. Created 8 years, 1 month 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
« no previous file with comments | « chrome/browser/chromeos/login/user_manager.h ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/user_manager_impl.h
diff --git a/chrome/browser/chromeos/login/user_manager_impl.h b/chrome/browser/chromeos/login/user_manager_impl.h
index 93e32f07d9192a3941ccfe6cedf1c35cfd43fe95..bda99e15d45031e2063fb589f303ddfc6bef2c5c 100644
--- a/chrome/browser/chromeos/login/user_manager_impl.h
+++ b/chrome/browser/chromeos/login/user_manager_impl.h
@@ -12,11 +12,13 @@
#include "base/memory/singleton.h"
#include "base/observer_list.h"
#include "base/synchronization/lock.h"
+#include "base/values.h"
#include "chrome/browser/api/sync/profile_sync_service_observer.h"
#include "chrome/browser/chromeos/login/user.h"
#include "chrome/browser/chromeos/login/user_image_manager_impl.h"
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/login/wallpaper_manager.h"
+#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
@@ -37,6 +39,7 @@ class UserManagerImpl : public UserManager,
virtual ~UserManagerImpl();
// UserManager implementation:
+ virtual void Shutdown() OVERRIDE;
virtual UserImageManager* GetUserImageManager() OVERRIDE;
virtual const UserList& GetUsers() const OVERRIDE;
virtual void UserLoggedIn(const std::string& email,
@@ -68,6 +71,7 @@ class UserManagerImpl : public UserManager,
virtual bool IsCurrentUserEphemeral() const OVERRIDE;
virtual bool CanCurrentUserLock() const OVERRIDE;
virtual bool IsUserLoggedIn() const OVERRIDE;
+ virtual bool IsLoggedInAsRegularUser() const OVERRIDE;
virtual bool IsLoggedInAsDemoUser() const OVERRIDE;
virtual bool IsLoggedInAsPublicAccount() const OVERRIDE;
virtual bool IsLoggedInAsGuest() const OVERRIDE;
@@ -125,13 +129,32 @@ class UserManagerImpl : public UserManager,
// Triggers an asynchronous ownership check.
void CheckOwnership();
- // Removes the user from the persistent list only. Also removes the user's
- // picture.
- void RemoveUserFromListInternal(const std::string& email);
+ // Removes data stored or cached outside the user's cryptohome (wallpaper,
+ // avatar, OAuth token status, display name, display email).
+ void RemoveNonCryptohomeData(const std::string& email);
- // List of all known users. User instances are owned by |this| and deleted
- // when users are removed by |RemoveUserFromListInternal|.
- mutable UserList users_;
+ // Removes a regular user from the user list. Returns the user if found or
+ // NULL otherwise. Also removes the user from the persistent regular user
+ // list.
+ User *RemoveRegularUserFromList(const std::string& email);
+
+ // Replaces the list of public accounts with |public_accounts|. Ensures that
+ // data belonging to accounts no longer on the list is removed. Returns |true|
+ // if the list has changed.
+ // Public accounts are defined by policy. This method is called whenever an
+ // updated list of public accounts is received from policy.
+ bool UpdateAndCleanUpPublicAccounts(const base::ListValue& public_accounts);
+
+ // Interface to the signed settings store.
+ CrosSettings* cros_settings_;
+
+ // True if users have been loaded from prefs already.
+ bool users_loaded_;
+
+ // List of all known users. User instances are owned by |this|. Regular users
+ // are removed by |RemoveUserFromList|, public accounts by
+ // |UpdateAndCleanUpPublicAccounts|.
+ UserList users_;
// The logged-in user. NULL until a user has logged in, then points to one
// of the User instances in |users_|, the |guest_user_| instance or an
@@ -176,6 +199,7 @@ class UserManagerImpl : public UserManager,
ObserverList<UserManager::Observer> observer_list_;
+ // User avatar manager.
scoped_ptr<UserImageManagerImpl> user_image_manager_;
DISALLOW_COPY_AND_ASSIGN(UserManagerImpl);
« no previous file with comments | « chrome/browser/chromeos/login/user_manager.h ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698