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

Side by Side Diff: trunk/src/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc

Issue 330623005: Revert 277655 "Remove more unretained" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 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 | « trunk/src/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/users/wallpaper/wallpaper_manager.h" 5 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
6 6
7 #include <numeric> 7 #include <numeric>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/ash_constants.h" 10 #include "ash/ash_constants.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 // Some users may still have legacy wallpapers with png extension. We need 166 // Some users may still have legacy wallpapers with png extension. We need
167 // to delete these wallpapers too. 167 // to delete these wallpapers too.
168 if (!base::DeleteFile(path, true) && 168 if (!base::DeleteFile(path, true) &&
169 !base::DeleteFile(path.AddExtension(".png"), false)) { 169 !base::DeleteFile(path.AddExtension(".png"), false)) {
170 LOG(ERROR) << "Failed to remove user wallpaper at " << path.value(); 170 LOG(ERROR) << "Failed to remove user wallpaper at " << path.value();
171 } 171 }
172 } 172 }
173 } 173 }
174 174
175 // Creates all new custom wallpaper directories for |user_id_hash| if not exist. 175 // Creates all new custom wallpaper directories for |user_id_hash| if not exist.
176 // static
177 void EnsureCustomWallpaperDirectories(const std::string& user_id_hash) { 176 void EnsureCustomWallpaperDirectories(const std::string& user_id_hash) {
178 base::FilePath dir; 177 base::FilePath dir;
179 dir = GetCustomWallpaperDir(kSmallWallpaperSubDir); 178 dir = GetCustomWallpaperDir(kSmallWallpaperSubDir);
180 dir = dir.Append(user_id_hash); 179 dir = dir.Append(user_id_hash);
181 if (!base::PathExists(dir)) 180 if (!base::PathExists(dir))
182 base::CreateDirectory(dir); 181 base::CreateDirectory(dir);
183 dir = GetCustomWallpaperDir(kLargeWallpaperSubDir); 182 dir = GetCustomWallpaperDir(kLargeWallpaperSubDir);
184 dir = dir.Append(user_id_hash); 183 dir = dir.Append(user_id_hash);
185 if (!base::PathExists(dir)) 184 if (!base::PathExists(dir))
186 base::CreateDirectory(dir); 185 base::CreateDirectory(dir);
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 registry->RegisterDictionaryPref(prefs::kUsersWallpaperInfo); 519 registry->RegisterDictionaryPref(prefs::kUsersWallpaperInfo);
521 registry->RegisterDictionaryPref(kUserWallpapers); 520 registry->RegisterDictionaryPref(kUserWallpapers);
522 registry->RegisterDictionaryPref(kUserWallpapersProperties); 521 registry->RegisterDictionaryPref(kUserWallpapersProperties);
523 } 522 }
524 523
525 void WallpaperManager::AddObservers() { 524 void WallpaperManager::AddObservers() {
526 show_user_name_on_signin_subscription_ = 525 show_user_name_on_signin_subscription_ =
527 CrosSettings::Get()->AddSettingsObserver( 526 CrosSettings::Get()->AddSettingsObserver(
528 kAccountsPrefShowUserNamesOnSignIn, 527 kAccountsPrefShowUserNamesOnSignIn,
529 base::Bind(&WallpaperManager::InitializeRegisteredDeviceWallpaper, 528 base::Bind(&WallpaperManager::InitializeRegisteredDeviceWallpaper,
530 weak_factory_.GetWeakPtr())); 529 base::Unretained(this)));
531 } 530 }
532 531
533 void WallpaperManager::EnsureLoggedInUserWallpaperLoaded() { 532 void WallpaperManager::EnsureLoggedInUserWallpaperLoaded() {
534 // Some browser tests do not have a shell instance. As no wallpaper is needed 533 // Some browser tests do not have a shell instance. As no wallpaper is needed
535 // in these tests anyway, avoid loading one, preventing crashes and speeding 534 // in these tests anyway, avoid loading one, preventing crashes and speeding
536 // up the tests. 535 // up the tests.
537 if (!ash::Shell::HasInstance()) 536 if (!ash::Shell::HasInstance())
538 return; 537 return;
539 538
540 WallpaperInfo info; 539 WallpaperInfo info;
(...skipping 22 matching lines...) Expand all
563 for (CustomWallpaperMap::iterator it = wallpaper_cache_.begin(); 562 for (CustomWallpaperMap::iterator it = wallpaper_cache_.begin();
564 it != wallpaper_cache_.end(); ++it) { 563 it != wallpaper_cache_.end(); ++it) {
565 if (logged_in_users_names.find(it->first) != 564 if (logged_in_users_names.find(it->first) !=
566 logged_in_users_names.end()) { 565 logged_in_users_names.end()) {
567 logged_in_users_cache.insert(*it); 566 logged_in_users_cache.insert(*it);
568 } 567 }
569 } 568 }
570 wallpaper_cache_ = logged_in_users_cache; 569 wallpaper_cache_ = logged_in_users_cache;
571 } 570 }
572 571
572 base::FilePath WallpaperManager::GetCustomWallpaperPath(
573 const char* sub_dir,
574 const std::string& user_id_hash,
575 const std::string& file) const {
576 base::FilePath custom_wallpaper_path = GetCustomWallpaperDir(sub_dir);
577 return custom_wallpaper_path.Append(user_id_hash).Append(file);
578 }
579
573 bool WallpaperManager::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) { 580 bool WallpaperManager::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) {
574 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 581 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
575 582
576 if (UserManager::Get()->IsLoggedInAsStub()) { 583 if (UserManager::Get()->IsLoggedInAsStub()) {
577 info->file = current_user_wallpaper_info_.file = ""; 584 info->file = current_user_wallpaper_info_.file = "";
578 info->layout = current_user_wallpaper_info_.layout = 585 info->layout = current_user_wallpaper_info_.layout =
579 ash::WALLPAPER_LAYOUT_CENTER_CROPPED; 586 ash::WALLPAPER_LAYOUT_CENTER_CROPPED;
580 info->type = current_user_wallpaper_info_.type = User::DEFAULT; 587 info->type = current_user_wallpaper_info_.type = User::DEFAULT;
581 info->date = current_user_wallpaper_info_.date = 588 info->date = current_user_wallpaper_info_.date =
582 base::Time::Now().LocalMidnight(); 589 base::Time::Now().LocalMidnight();
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 WallpaperManager::GetAppropriateResolution() { 821 WallpaperManager::GetAppropriateResolution() {
815 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 822 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
816 gfx::Size size = 823 gfx::Size size =
817 ash::DesktopBackgroundController::GetMaxDisplaySizeInNative(); 824 ash::DesktopBackgroundController::GetMaxDisplaySizeInNative();
818 return (size.width() > kSmallWallpaperMaxWidth || 825 return (size.width() > kSmallWallpaperMaxWidth ||
819 size.height() > kSmallWallpaperMaxHeight) 826 size.height() > kSmallWallpaperMaxHeight)
820 ? WALLPAPER_RESOLUTION_LARGE 827 ? WALLPAPER_RESOLUTION_LARGE
821 : WALLPAPER_RESOLUTION_SMALL; 828 : WALLPAPER_RESOLUTION_SMALL;
822 } 829 }
823 830
824 // static
825 base::FilePath WallpaperManager::GetCustomWallpaperPath(
826 const char* sub_dir,
827 const std::string& user_id_hash,
828 const std::string& file) {
829 base::FilePath custom_wallpaper_path = GetCustomWallpaperDir(sub_dir);
830 return custom_wallpaper_path.Append(user_id_hash).Append(file);
831 }
832
833 // static
834 void WallpaperManager::RecordUma(User::WallpaperType type, int index) {
835 UMA_HISTOGRAM_ENUMERATION("Ash.Wallpaper.Type", type,
836 User::WALLPAPER_TYPE_COUNT);
837 }
838
839 // static
840 void WallpaperManager::SaveCustomWallpaper(const std::string& user_id_hash,
841 const base::FilePath& original_path,
842 ash::WallpaperLayout layout,
843 scoped_ptr<gfx::ImageSkia> image) {
844 EnsureCustomWallpaperDirectories(user_id_hash);
845 std::string file_name = original_path.BaseName().value();
846 base::FilePath small_wallpaper_path =
847 GetCustomWallpaperPath(kSmallWallpaperSubDir, user_id_hash, file_name);
848 base::FilePath large_wallpaper_path =
849 GetCustomWallpaperPath(kLargeWallpaperSubDir, user_id_hash, file_name);
850
851 // Re-encode orginal file to jpeg format and saves the result in case that
852 // resized wallpaper is not generated (i.e. chrome shutdown before resized
853 // wallpaper is saved).
854 ResizeAndSaveWallpaper(*image,
855 original_path,
856 ash::WALLPAPER_LAYOUT_STRETCH,
857 image->width(),
858 image->height(),
859 NULL);
860 DeleteAllExcept(original_path);
861
862 ResizeAndSaveWallpaper(*image,
863 small_wallpaper_path,
864 layout,
865 kSmallWallpaperMaxWidth,
866 kSmallWallpaperMaxHeight,
867 NULL);
868 DeleteAllExcept(small_wallpaper_path);
869 ResizeAndSaveWallpaper(*image,
870 large_wallpaper_path,
871 layout,
872 kLargeWallpaperMaxWidth,
873 kLargeWallpaperMaxHeight,
874 NULL);
875 DeleteAllExcept(large_wallpaper_path);
876 }
877
878 void WallpaperManager::SetPolicyControlledWallpaper( 831 void WallpaperManager::SetPolicyControlledWallpaper(
879 const std::string& user_id, 832 const std::string& user_id,
880 const UserImage& user_image) { 833 const UserImage& user_image) {
881 const User *user = chromeos::UserManager::Get()->FindUser(user_id); 834 const User *user = chromeos::UserManager::Get()->FindUser(user_id);
882 if (!user) { 835 if (!user) {
883 NOTREACHED() << "Unknown user."; 836 NOTREACHED() << "Unknown user.";
884 return; 837 return;
885 } 838 }
886 SetCustomWallpaper(user_id, 839 SetCustomWallpaper(user_id,
887 user->username_hash(), 840 user->username_hash(),
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 // Block shutdown on this task. Otherwise, we may lose the custom wallpaper 889 // Block shutdown on this task. Otherwise, we may lose the custom wallpaper
937 // that the user selected. 890 // that the user selected.
938 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = 891 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
939 BrowserThread::GetBlockingPool() 892 BrowserThread::GetBlockingPool()
940 ->GetSequencedTaskRunnerWithShutdownBehavior( 893 ->GetSequencedTaskRunnerWithShutdownBehavior(
941 sequence_token_, base::SequencedWorkerPool::BLOCK_SHUTDOWN); 894 sequence_token_, base::SequencedWorkerPool::BLOCK_SHUTDOWN);
942 // TODO(bshe): This may break if RawImage becomes RefCountedMemory. 895 // TODO(bshe): This may break if RawImage becomes RefCountedMemory.
943 blocking_task_runner->PostTask( 896 blocking_task_runner->PostTask(
944 FROM_HERE, 897 FROM_HERE,
945 base::Bind(&WallpaperManager::SaveCustomWallpaper, 898 base::Bind(&WallpaperManager::SaveCustomWallpaper,
899 base::Unretained(this),
946 user_id_hash, 900 user_id_hash,
947 base::FilePath(wallpaper_info.file), 901 base::FilePath(wallpaper_info.file),
948 wallpaper_info.layout, 902 wallpaper_info.layout,
949 base::Passed(deep_copy.Pass()))); 903 base::Passed(deep_copy.Pass())));
950 } 904 }
951 905
952 std::string relative_path = base::FilePath(user_id_hash).Append(file).value(); 906 std::string relative_path = base::FilePath(user_id_hash).Append(file).value();
953 // User's custom wallpaper path is determined by relative path and the 907 // User's custom wallpaper path is determined by relative path and the
954 // appropriate wallpaper resolution in GetCustomWallpaperInternal. 908 // appropriate wallpaper resolution in GetCustomWallpaperInternal.
955 WallpaperInfo info = { 909 WallpaperInfo info = {
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 1174
1221 base::FilePath wallpaper_dir; 1175 base::FilePath wallpaper_dir;
1222 base::FilePath wallpaper_path; 1176 base::FilePath wallpaper_path;
1223 if (info.type == User::CUSTOMIZED || info.type == User::POLICY) { 1177 if (info.type == User::CUSTOMIZED || info.type == User::POLICY) {
1224 const char* sub_dir = GetCustomWallpaperSubdirForCurrentResolution(); 1178 const char* sub_dir = GetCustomWallpaperSubdirForCurrentResolution();
1225 base::FilePath wallpaper_path = GetCustomWallpaperDir(sub_dir); 1179 base::FilePath wallpaper_path = GetCustomWallpaperDir(sub_dir);
1226 wallpaper_path = wallpaper_path.Append(info.file); 1180 wallpaper_path = wallpaper_path.Append(info.file);
1227 task_runner_->PostTask( 1181 task_runner_->PostTask(
1228 FROM_HERE, 1182 FROM_HERE,
1229 base::Bind(&WallpaperManager::GetCustomWallpaperInternal, 1183 base::Bind(&WallpaperManager::GetCustomWallpaperInternal,
1230 weak_factory_.GetWeakPtr(), 1184 base::Unretained(this),
1231 user_id, 1185 user_id,
1232 info, 1186 info,
1233 wallpaper_path, 1187 wallpaper_path,
1234 false /* do not update wallpaper */, 1188 false /* do not update wallpaper */,
1235 base::Passed(MovableOnDestroyCallbackHolder()))); 1189 base::Passed(MovableOnDestroyCallbackHolder())));
1236 return; 1190 return;
1237 } 1191 }
1238 LoadWallpaper(user_id, 1192 LoadWallpaper(user_id,
1239 info, 1193 info,
1240 false /* do not update wallpaper */, 1194 false /* do not update wallpaper */,
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 IsRunningSequenceOnCurrentThread(sequence_token_)); 1394 IsRunningSequenceOnCurrentThread(sequence_token_));
1441 if (MoveCustomWallpaperDirectory( 1395 if (MoveCustomWallpaperDirectory(
1442 kOriginalWallpaperSubDir, user_id, user_id_hash)) { 1396 kOriginalWallpaperSubDir, user_id, user_id_hash)) {
1443 // Consider success if the original wallpaper is moved to the new directory. 1397 // Consider success if the original wallpaper is moved to the new directory.
1444 // Original wallpaper is the fallback if the correct resolution wallpaper 1398 // Original wallpaper is the fallback if the correct resolution wallpaper
1445 // can not be found. 1399 // can not be found.
1446 BrowserThread::PostTask( 1400 BrowserThread::PostTask(
1447 BrowserThread::UI, 1401 BrowserThread::UI,
1448 FROM_HERE, 1402 FROM_HERE,
1449 base::Bind(&WallpaperManager::MoveCustomWallpapersSuccess, 1403 base::Bind(&WallpaperManager::MoveCustomWallpapersSuccess,
1450 weak_factory_.GetWeakPtr(), 1404 base::Unretained(this),
1451 user_id, 1405 user_id,
1452 user_id_hash)); 1406 user_id_hash));
1453 } 1407 }
1454 MoveCustomWallpaperDirectory(kLargeWallpaperSubDir, user_id, user_id_hash); 1408 MoveCustomWallpaperDirectory(kLargeWallpaperSubDir, user_id, user_id_hash);
1455 MoveCustomWallpaperDirectory(kSmallWallpaperSubDir, user_id, user_id_hash); 1409 MoveCustomWallpaperDirectory(kSmallWallpaperSubDir, user_id, user_id_hash);
1456 MoveCustomWallpaperDirectory( 1410 MoveCustomWallpaperDirectory(
1457 kThumbnailWallpaperSubDir, user_id, user_id_hash); 1411 kThumbnailWallpaperSubDir, user_id, user_id_hash);
1458 } 1412 }
1459 1413
1460 void WallpaperManager::MoveCustomWallpapersSuccess( 1414 void WallpaperManager::MoveCustomWallpapersSuccess(
(...skipping 11 matching lines...) Expand all
1472 !UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id); 1426 !UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id);
1473 SetUserWallpaperInfo(user_id, info, is_persistent); 1427 SetUserWallpaperInfo(user_id, info, is_persistent);
1474 } 1428 }
1475 } 1429 }
1476 1430
1477 void WallpaperManager::MoveLoggedInUserCustomWallpaper() { 1431 void WallpaperManager::MoveLoggedInUserCustomWallpaper() {
1478 const User* logged_in_user = UserManager::Get()->GetLoggedInUser(); 1432 const User* logged_in_user = UserManager::Get()->GetLoggedInUser();
1479 task_runner_->PostTask( 1433 task_runner_->PostTask(
1480 FROM_HERE, 1434 FROM_HERE,
1481 base::Bind(&WallpaperManager::MoveCustomWallpapersOnWorker, 1435 base::Bind(&WallpaperManager::MoveCustomWallpapersOnWorker,
1482 weak_factory_.GetWeakPtr(), 1436 base::Unretained(this),
1483 logged_in_user->email(), 1437 logged_in_user->email(),
1484 logged_in_user->username_hash())); 1438 logged_in_user->username_hash()));
1485 } 1439 }
1486 1440
1487 void WallpaperManager::GetCustomWallpaperInternal( 1441 void WallpaperManager::GetCustomWallpaperInternal(
1488 const std::string& user_id, 1442 const std::string& user_id,
1489 const WallpaperInfo& info, 1443 const WallpaperInfo& info,
1490 const base::FilePath& wallpaper_path, 1444 const base::FilePath& wallpaper_path,
1491 bool update_wallpaper, 1445 bool update_wallpaper,
1492 MovableOnDestroyCallbackHolder on_finish) { 1446 MovableOnDestroyCallbackHolder on_finish) {
(...skipping 15 matching lines...) Expand all
1508 valid_path = 1462 valid_path =
1509 GetCustomWallpaperPath(kOriginalWallpaperSubDir, user_id, info.file); 1463 GetCustomWallpaperPath(kOriginalWallpaperSubDir, user_id, info.file);
1510 } 1464 }
1511 1465
1512 if (!base::PathExists(valid_path)) { 1466 if (!base::PathExists(valid_path)) {
1513 LOG(ERROR) << "Failed to load previously selected custom wallpaper. " << 1467 LOG(ERROR) << "Failed to load previously selected custom wallpaper. " <<
1514 "Fallback to default wallpaper"; 1468 "Fallback to default wallpaper";
1515 BrowserThread::PostTask(BrowserThread::UI, 1469 BrowserThread::PostTask(BrowserThread::UI,
1516 FROM_HERE, 1470 FROM_HERE,
1517 base::Bind(&WallpaperManager::DoSetDefaultWallpaper, 1471 base::Bind(&WallpaperManager::DoSetDefaultWallpaper,
1518 weak_factory_.GetWeakPtr(), 1472 base::Unretained(this),
1519 user_id, 1473 user_id,
1520 base::Passed(on_finish.Pass()))); 1474 base::Passed(on_finish.Pass())));
1521 } else { 1475 } else {
1522 BrowserThread::PostTask(BrowserThread::UI, 1476 BrowserThread::PostTask(BrowserThread::UI,
1523 FROM_HERE, 1477 FROM_HERE,
1524 base::Bind(&WallpaperManager::StartLoad, 1478 base::Bind(&WallpaperManager::StartLoad,
1525 weak_factory_.GetWeakPtr(), 1479 base::Unretained(this),
1526 user_id, 1480 user_id,
1527 info, 1481 info,
1528 update_wallpaper, 1482 update_wallpaper,
1529 valid_path, 1483 valid_path,
1530 base::Passed(on_finish.Pass()))); 1484 base::Passed(on_finish.Pass())));
1531 } 1485 }
1532 } 1486 }
1533 1487
1534 void WallpaperManager::OnWallpaperDecoded( 1488 void WallpaperManager::OnWallpaperDecoded(
1535 const std::string& user_id, 1489 const std::string& user_id,
(...skipping 23 matching lines...) Expand all
1559 1513
1560 wallpaper_cache_[user_id] = user_image.image(); 1514 wallpaper_cache_[user_id] = user_image.image();
1561 1515
1562 if (update_wallpaper) { 1516 if (update_wallpaper) {
1563 ash::Shell::GetInstance() 1517 ash::Shell::GetInstance()
1564 ->desktop_background_controller() 1518 ->desktop_background_controller()
1565 ->SetWallpaperImage(user_image.image(), layout); 1519 ->SetWallpaperImage(user_image.image(), layout);
1566 } 1520 }
1567 } 1521 }
1568 1522
1523 void WallpaperManager::SaveCustomWallpaper(
1524 const std::string& user_id_hash,
1525 const base::FilePath& original_path,
1526 ash::WallpaperLayout layout,
1527 scoped_ptr<gfx::ImageSkia> image) const {
1528 DCHECK(BrowserThread::GetBlockingPool()->
1529 IsRunningSequenceOnCurrentThread(sequence_token_));
1530 EnsureCustomWallpaperDirectories(user_id_hash);
1531 std::string file_name = original_path.BaseName().value();
1532 base::FilePath small_wallpaper_path =
1533 GetCustomWallpaperPath(kSmallWallpaperSubDir, user_id_hash, file_name);
1534 base::FilePath large_wallpaper_path =
1535 GetCustomWallpaperPath(kLargeWallpaperSubDir, user_id_hash, file_name);
1536
1537 // Re-encode orginal file to jpeg format and saves the result in case that
1538 // resized wallpaper is not generated (i.e. chrome shutdown before resized
1539 // wallpaper is saved).
1540 ResizeAndSaveWallpaper(*image,
1541 original_path,
1542 ash::WALLPAPER_LAYOUT_STRETCH,
1543 image->width(),
1544 image->height(),
1545 NULL);
1546 DeleteAllExcept(original_path);
1547
1548 ResizeAndSaveWallpaper(*image,
1549 small_wallpaper_path,
1550 layout,
1551 kSmallWallpaperMaxWidth,
1552 kSmallWallpaperMaxHeight,
1553 NULL);
1554 DeleteAllExcept(small_wallpaper_path);
1555 ResizeAndSaveWallpaper(*image,
1556 large_wallpaper_path,
1557 layout,
1558 kLargeWallpaperMaxWidth,
1559 kLargeWallpaperMaxHeight,
1560 NULL);
1561 DeleteAllExcept(large_wallpaper_path);
1562 }
1563
1564 void WallpaperManager::RecordUma(User::WallpaperType type, int index) const {
1565 UMA_HISTOGRAM_ENUMERATION("Ash.Wallpaper.Type", type,
1566 User::WALLPAPER_TYPE_COUNT);
1567 }
1568
1569 void WallpaperManager::StartLoad(const std::string& user_id, 1569 void WallpaperManager::StartLoad(const std::string& user_id,
1570 const WallpaperInfo& info, 1570 const WallpaperInfo& info,
1571 bool update_wallpaper, 1571 bool update_wallpaper,
1572 const base::FilePath& wallpaper_path, 1572 const base::FilePath& wallpaper_path,
1573 MovableOnDestroyCallbackHolder on_finish) { 1573 MovableOnDestroyCallbackHolder on_finish) {
1574 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1574 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1575 TRACE_EVENT_ASYNC_BEGIN0("ui", "LoadAndDecodeWallpaper", this); 1575 TRACE_EVENT_ASYNC_BEGIN0("ui", "LoadAndDecodeWallpaper", this);
1576 1576
1577 wallpaper_loader_->Start(wallpaper_path.value(), 1577 wallpaper_loader_->Start(wallpaper_path.value(),
1578 0, // Do not crop. 1578 0, // Do not crop.
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1906 loaded_wallpapers_++; 1906 loaded_wallpapers_++;
1907 SkBitmap bitmap; 1907 SkBitmap bitmap;
1908 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 1, 1, 0); 1908 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 1, 1, 0);
1909 bitmap.allocPixels(); 1909 bitmap.allocPixels();
1910 bitmap.eraseColor(kDefaultWallpaperColor); 1910 bitmap.eraseColor(kDefaultWallpaperColor);
1911 const gfx::ImageSkia image = gfx::ImageSkia::CreateFrom1xBitmap(bitmap); 1911 const gfx::ImageSkia image = gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
1912 default_wallpaper_image_.reset(new UserImage(image)); 1912 default_wallpaper_image_.reset(new UserImage(image));
1913 } 1913 }
1914 1914
1915 } // namespace chromeos 1915 } // namespace chromeos
OLDNEW
« no previous file with comments | « trunk/src/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698