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

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

Issue 10832035: Switch from SignedSettings to DeviceSettingsService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 8 years, 4 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/chromeos/login/user_manager_impl.cc
diff --git a/chrome/browser/chromeos/login/user_manager_impl.cc b/chrome/browser/chromeos/login/user_manager_impl.cc
index a06c0d9fdda6668e4e7eab220f31c1a518142163..33d4ae8b4ecaebb7d3bd6f0c059572e3b1c65dca 100644
--- a/chrome/browser/chromeos/login/user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/user_manager_impl.cc
@@ -34,7 +34,6 @@
#include "chrome/browser/chromeos/login/user_image.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
-#include "chrome/browser/chromeos/settings/ownership_service.h"
#include "chrome/browser/policy/browser_policy_connector.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
@@ -203,7 +202,7 @@ UserManagerImpl::UserManagerImpl()
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
MigrateWallpaperData();
- registrar_.Add(this, chrome::NOTIFICATION_OWNER_KEY_FETCH_ATTEMPT_SUCCEEDED,
+ registrar_.Add(this, chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
content::NotificationService::AllSources());
registrar_.Add(this, chrome::NOTIFICATION_PROFILE_ADDED,
content::NotificationService::AllSources());
@@ -212,7 +211,7 @@ UserManagerImpl::UserManagerImpl()
UserManagerImpl::~UserManagerImpl() {
// Can't use STLDeleteElements because of the private destructor of User.
- for (size_t i = 0; i < users_.size();++i)
+ for (size_t i = 0; i < users_.size(); ++i)
delete users_[i];
users_.clear();
if (is_current_user_ephemeral_)
@@ -585,13 +584,9 @@ void UserManagerImpl::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
switch (type) {
- case chrome::NOTIFICATION_OWNER_KEY_FETCH_ATTEMPT_SUCCEEDED:
- BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- base::Bind(&UserManagerImpl::CheckOwnership,
- base::Unretained(this)));
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&UserManagerImpl::RetrieveTrustedDevicePolicies,
- base::Unretained(this)));
+ case chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED:
+ CheckOwnership();
+ RetrieveTrustedDevicePolicies();
break;
case chrome::NOTIFICATION_PROFILE_ADDED:
if (IsUserLoggedIn() && !IsLoggedInAsGuest()) {
@@ -618,13 +613,13 @@ void UserManagerImpl::OnStateChanged() {
state != AuthError::CONNECTION_FAILED &&
state != AuthError::SERVICE_UNAVAILABLE &&
state != AuthError::REQUEST_CANCELED) {
- // Invalidate OAuth token to force Gaia sign-in flow. This is needed
- // because sign-out/sign-in solution is suggested to the user.
- // TODO(altimofeev): this code isn't needed after crosbug.com/25978 is
- // implemented.
- DVLOG(1) << "Invalidate OAuth token because of a sync error.";
- SaveUserOAuthStatus(GetLoggedInUser().email(),
- User::OAUTH_TOKEN_STATUS_INVALID);
+ // Invalidate OAuth token to force Gaia sign-in flow. This is needed
+ // because sign-out/sign-in solution is suggested to the user.
+ // TODO(altimofeev): this code isn't needed after crosbug.com/25978 is
+ // implemented.
+ DVLOG(1) << "Invalidate OAuth token because of a sync error.";
+ SaveUserOAuthStatus(GetLoggedInUser().email(),
+ User::OAUTH_TOKEN_STATUS_INVALID);
}
}
@@ -698,12 +693,12 @@ bool UserManagerImpl::IsEphemeralUser(const std::string& email) const {
HasSwitch(switches::kLoginManager));
}
-void UserManagerImpl::AddObserver(Observer* obs) {
+void UserManagerImpl::AddObserver(UserManager::Observer* obs) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
observer_list_.AddObserver(obs);
}
-void UserManagerImpl::RemoveObserver(Observer* obs) {
+void UserManagerImpl::RemoveObserver(UserManager::Observer* obs) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
observer_list_.RemoveObserver(obs);
}
@@ -715,10 +710,8 @@ const gfx::ImageSkia& UserManagerImpl::DownloadedProfileImage() const {
void UserManagerImpl::NotifyLocalStateChanged() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- FOR_EACH_OBSERVER(
- Observer,
- observer_list_,
- LocalStateChanged(this));
+ FOR_EACH_OBSERVER(UserManager::Observer, observer_list_,
+ LocalStateChanged(this));
}
FilePath UserManagerImpl::GetImagePathForUser(const std::string& username) {
@@ -895,10 +888,9 @@ void UserManagerImpl::NotifyOnLogin() {
CrosLibrary::Get()->GetCertLibrary()->LoadKeyStore();
- // Schedules current user ownership check on file thread.
- BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- base::Bind(&UserManagerImpl::CheckOwnership,
- base::Unretained(this)));
+ // Indicate to DeviceSettingsService that the owner key may have become
+ // available.
+ DeviceSettingsService::Get()->SetUsername(logged_in_user_->email());
}
void UserManagerImpl::SetInitialUserImage(const std::string& username) {
@@ -1155,32 +1147,18 @@ void UserManagerImpl::DeleteUserImage(const FilePath& image_path) {
}
}
-void UserManagerImpl::UpdateOwnership(bool is_owner) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+void UserManagerImpl::UpdateOwnership(
+ DeviceSettingsService::OwnershipStatus status,
+ bool is_owner) {
+ VLOG(1) << "Current user " << (is_owner ? "is owner" : "is not owner");
SetCurrentUserIsOwner(is_owner);
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_OWNERSHIP_CHECKED,
- content::NotificationService::AllSources(),
- content::NotificationService::NoDetails());
- if (is_owner) {
- // Also update cached value.
- CrosSettings::Get()->SetString(kDeviceOwner, GetLoggedInUser().email());
- }
}
void UserManagerImpl::CheckOwnership() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- bool is_owner = OwnershipService::GetSharedInstance()->IsCurrentUserOwner();
- VLOG(1) << "Current user " << (is_owner ? "is owner" : "is not owner");
-
- // UserManagerImpl should be accessed only on UI thread.
- BrowserThread::PostTask(
- BrowserThread::UI,
- FROM_HERE,
+ DeviceSettingsService::Get()->GetOwnershipStatusAsync(
base::Bind(&UserManagerImpl::UpdateOwnership,
- base::Unretained(this),
- is_owner));
+ base::Unretained(this)));
}
// ProfileDownloaderDelegate override.

Powered by Google App Engine
This is Rietveld 408576698