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

Side by Side Diff: chrome/browser/chromeos/login/user_manager_impl.cc

Issue 10829381: Remove call to UserManager::Get when initializing UserManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ivan's review 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/wallpaper_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/chromeos/login/user_manager_impl.h" 5 #include "chrome/browser/chromeos/login/user_manager_impl.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/desktop_background/desktop_background_controller.h" 9 #include "ash/desktop_background/desktop_background_controller.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 logged_in_user_ = *logged_in_user; 269 logged_in_user_ = *logged_in_user;
270 users_.erase(logged_in_user); 270 users_.erase(logged_in_user);
271 } 271 }
272 // This user must be in the front of the user list. 272 // This user must be in the front of the user list.
273 users_.insert(users_.begin(), logged_in_user_); 273 users_.insert(users_.begin(), logged_in_user_);
274 274
275 if (is_current_user_new_) { 275 if (is_current_user_new_) {
276 SaveUserDisplayName(GetLoggedInUser().email(), 276 SaveUserDisplayName(GetLoggedInUser().email(),
277 UTF8ToUTF16(GetLoggedInUser().GetAccountName(true))); 277 UTF8ToUTF16(GetLoggedInUser().GetAccountName(true)));
278 SetInitialUserImage(email); 278 SetInitialUserImage(email);
279 WallpaperManager::Get()->SetInitialUserWallpaper(email); 279 WallpaperManager::Get()->SetInitialUserWallpaper(email, true);
280 } else { 280 } else {
281 int image_index = logged_in_user_->image_index(); 281 int image_index = logged_in_user_->image_index();
282 // If current user image is profile image, it needs to be refreshed. 282 // If current user image is profile image, it needs to be refreshed.
283 bool download_profile_image = image_index == User::kProfileImageIndex; 283 bool download_profile_image = image_index == User::kProfileImageIndex;
284 if (download_profile_image) 284 if (download_profile_image)
285 InitDownloadedProfileImage(); 285 InitDownloadedProfileImage();
286 286
287 // Download user's profile data (full name and optionally image) to see if 287 // Download user's profile data (full name and optionally image) to see if
288 // it has changed. 288 // it has changed.
289 BrowserThread::PostDelayedTask( 289 BrowserThread::PostDelayedTask(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 323
324 NotifyOnLogin(); 324 NotifyOnLogin();
325 } 325 }
326 326
327 void UserManagerImpl::DemoUserLoggedIn() { 327 void UserManagerImpl::DemoUserLoggedIn() {
328 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 328 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
329 is_current_user_new_ = true; 329 is_current_user_new_ = true;
330 is_current_user_ephemeral_ = true; 330 is_current_user_ephemeral_ = true;
331 logged_in_user_ = CreateUser(kDemoUser, /* is_ephemeral= */ true); 331 logged_in_user_ = CreateUser(kDemoUser, /* is_ephemeral= */ true);
332 SetInitialUserImage(kDemoUser); 332 SetInitialUserImage(kDemoUser);
333 WallpaperManager::Get()->SetInitialUserWallpaper(kDemoUser); 333 WallpaperManager::Get()->SetInitialUserWallpaper(kDemoUser, false);
334 NotifyOnLogin(); 334 NotifyOnLogin();
335 } 335 }
336 336
337 void UserManagerImpl::GuestUserLoggedIn() { 337 void UserManagerImpl::GuestUserLoggedIn() {
338 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 338 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
339 is_current_user_ephemeral_ = true; 339 is_current_user_ephemeral_ = true;
340 WallpaperManager::Get()->SetInitialUserWallpaper(kGuestUser); 340 WallpaperManager::Get()->SetInitialUserWallpaper(kGuestUser, false);
341 logged_in_user_ = CreateUser(kGuestUser, /* is_ephemeral= */ true); 341 logged_in_user_ = CreateUser(kGuestUser, /* is_ephemeral= */ true);
342 NotifyOnLogin(); 342 NotifyOnLogin();
343 } 343 }
344 344
345 void UserManagerImpl::EphemeralUserLoggedIn(const std::string& email) { 345 void UserManagerImpl::EphemeralUserLoggedIn(const std::string& email) {
346 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 346 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
347 is_current_user_new_ = true; 347 is_current_user_new_ = true;
348 is_current_user_ephemeral_ = true; 348 is_current_user_ephemeral_ = true;
349 logged_in_user_ = CreateUser(email, /* is_ephemeral= */ true); 349 logged_in_user_ = CreateUser(email, /* is_ephemeral= */ true);
350 SetInitialUserImage(email); 350 SetInitialUserImage(email);
351 WallpaperManager::Get()->SetInitialUserWallpaper(email); 351 WallpaperManager::Get()->SetInitialUserWallpaper(email, false);
352 NotifyOnLogin(); 352 NotifyOnLogin();
353 } 353 }
354 354
355 void UserManagerImpl::SessionStarted() { 355 void UserManagerImpl::SessionStarted() {
356 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 356 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
357 session_started_ = true; 357 session_started_ = true;
358 content::NotificationService::current()->Notify( 358 content::NotificationService::current()->Notify(
359 chrome::NOTIFICATION_SESSION_STARTED, 359 chrome::NOTIFICATION_SESSION_STARTED,
360 content::NotificationService::AllSources(), 360 content::NotificationService::AllSources(),
361 content::NotificationService::NoDetails()); 361 content::NotificationService::NoDetails());
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 const UserList& users = GetUsers(); 921 const UserList& users = GetUsers();
922 for (UserList::const_iterator it = users.begin(); 922 for (UserList::const_iterator it = users.begin();
923 it != users.end(); 923 it != users.end();
924 ++it) { 924 ++it) {
925 std::string username = (*it)->email(); 925 std::string username = (*it)->email();
926 if (user_wallpapers->GetIntegerWithoutPathExpansion((username), 926 if (user_wallpapers->GetIntegerWithoutPathExpansion((username),
927 &index)) { 927 &index)) {
928 DictionaryPrefUpdate prefs_wallpapers_update(local_state, 928 DictionaryPrefUpdate prefs_wallpapers_update(local_state,
929 kUserWallpapers); 929 kUserWallpapers);
930 prefs_wallpapers_update->RemoveWithoutPathExpansion(username, NULL); 930 prefs_wallpapers_update->RemoveWithoutPathExpansion(username, NULL);
931 WallpaperManager::Get()->SaveUserWallpaperProperties(username, 931 WallpaperManager::Get()->SetUserWallpaperProperties(username,
932 User::DEFAULT, 932 User::DEFAULT,
933 index); 933 index,
934 true);
934 } else { 935 } else {
935 // Before M20, wallpaper index is not saved into LocalState unless 936 // Before M20, wallpaper index is not saved into LocalState unless
936 // user specifically sets a wallpaper. After M20, the default 937 // user specifically sets a wallpaper. After M20, the default
937 // wallpaper index is saved to LocalState as soon as a new user login. 938 // wallpaper index is saved to LocalState as soon as a new user login.
938 // When migrating wallpaper index from M20 to M21, we only migrate 939 // When migrating wallpaper index from M20 to M21, we only migrate
939 // data that is in LocalState. This cause a problem when users login 940 // data that is in LocalState. This cause a problem when users login
940 // on a M20 device and then update the device to M21. The default 941 // on a M20 device and then update the device to M21. The default
941 // wallpaper index failed to migrate because it was not saved into 942 // wallpaper index failed to migrate because it was not saved into
942 // LocalState. Then we assume that all users have index saved in 943 // LocalState. Then we assume that all users have index saved in
943 // LocalState in M21. This is not true and it results an empty 944 // LocalState in M21. This is not true and it results an empty
944 // wallpaper for those users as described in cr/130685. So here we use 945 // wallpaper for those users as described in cr/130685. So here we use
945 // default wallpaper for users that exist in user list but does not 946 // default wallpaper for users that exist in user list but does not
946 // have an index saved in LocalState. 947 // have an index saved in LocalState.
947 WallpaperManager::Get()->SaveUserWallpaperProperties(username, 948 WallpaperManager::Get()->SetUserWallpaperProperties(username,
948 User::DEFAULT, ash::GetDefaultWallpaperIndex()); 949 User::DEFAULT, ash::GetDefaultWallpaperIndex(), true);
949 } 950 }
950 } 951 }
951 } 952 }
952 } 953 }
953 } 954 }
954 955
955 void UserManagerImpl::SaveLoggedInUserWallpaperProperties( 956 void UserManagerImpl::SaveLoggedInUserWallpaperProperties(
956 User::WallpaperType type, int index) { 957 User::WallpaperType type, int index) {
957 WallpaperManager::Get()->SaveUserWallpaperProperties( 958 // Ephemeral users can not save data to local state.
958 GetLoggedInUser().email(), type, index); 959 // We just cache the index in memory for them.
960 bool is_persistent = !IsCurrentUserEphemeral();
961 WallpaperManager::Get()->SetUserWallpaperProperties(
962 GetLoggedInUser().email(), type, index, is_persistent);
959 } 963 }
960 964
961 void UserManagerImpl::SetUserImage(const std::string& username, 965 void UserManagerImpl::SetUserImage(const std::string& username,
962 int image_index, 966 int image_index,
963 const GURL& image_url, 967 const GURL& image_url,
964 const UserImage& user_image) { 968 const UserImage& user_image) {
965 User* user = const_cast<User*>(FindUser(username)); 969 User* user = const_cast<User*>(FindUser(username));
966 // User may have been removed by now. 970 // User may have been removed by now.
967 if (user) { 971 if (user) {
968 // For existing users, a valid image index should have been set upon loading 972 // For existing users, a valid image index should have been set upon loading
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1069 DVLOG(1) << "Saving path to user image in Local State."; 1073 DVLOG(1) << "Saving path to user image in Local State.";
1070 1074
1071 NotifyLocalStateChanged(); 1075 NotifyLocalStateChanged();
1072 } 1076 }
1073 1077
1074 void UserManagerImpl::SaveWallpaperToLocalState(const std::string& username, 1078 void UserManagerImpl::SaveWallpaperToLocalState(const std::string& username,
1075 const std::string& wallpaper_path, 1079 const std::string& wallpaper_path,
1076 ash::WallpaperLayout layout, 1080 ash::WallpaperLayout layout,
1077 User::WallpaperType type) { 1081 User::WallpaperType type) {
1078 // TODO(bshe): We probably need to save wallpaper_path instead of index. 1082 // TODO(bshe): We probably need to save wallpaper_path instead of index.
1079 WallpaperManager::Get()->SaveUserWallpaperProperties(username, type, layout); 1083 WallpaperManager::Get()->SetUserWallpaperProperties(
1084 username, type, layout, true);
1080 } 1085 }
1081 1086
1082 bool UserManagerImpl::SaveBitmapToFile(const UserImage& user_image, 1087 bool UserManagerImpl::SaveBitmapToFile(const UserImage& user_image,
1083 const FilePath& image_path) { 1088 const FilePath& image_path) {
1084 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 1089 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
1085 1090
1086 const UserImage::RawImage* encoded_image = NULL; 1091 const UserImage::RawImage* encoded_image = NULL;
1087 if (user_image.has_animated_image()) { 1092 if (user_image.has_animated_image()) {
1088 encoded_image = &user_image.animated_image(); 1093 encoded_image = &user_image.animated_image();
1089 } else if (user_image.has_raw_image()) { 1094 } else if (user_image.has_raw_image()) {
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 BrowserThread::PostTask( 1373 BrowserThread::PostTask(
1369 BrowserThread::FILE, 1374 BrowserThread::FILE,
1370 FROM_HERE, 1375 FROM_HERE,
1371 base::Bind(&UserManagerImpl::DeleteUserImage, 1376 base::Bind(&UserManagerImpl::DeleteUserImage,
1372 base::Unretained(this), 1377 base::Unretained(this),
1373 image_path)); 1378 image_path));
1374 } 1379 }
1375 } 1380 }
1376 1381
1377 } // namespace chromeos 1382 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/wallpaper_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698