| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/extensions/wallpaper_private_api.h" | 5 #include "chrome/browser/chromeos/extensions/wallpaper_private_api.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 #include "extensions/browser/event_router.h" | 41 #include "extensions/browser/event_router.h" |
| 42 #include "grit/components_strings.h" | 42 #include "grit/components_strings.h" |
| 43 #include "ui/base/l10n/l10n_util.h" | 43 #include "ui/base/l10n/l10n_util.h" |
| 44 #include "ui/base/webui/web_ui_util.h" | 44 #include "ui/base/webui/web_ui_util.h" |
| 45 #include "ui/strings/grit/app_locale_settings.h" | 45 #include "ui/strings/grit/app_locale_settings.h" |
| 46 #include "url/gurl.h" | 46 #include "url/gurl.h" |
| 47 | 47 |
| 48 using base::BinaryValue; | 48 using base::BinaryValue; |
| 49 using content::BrowserThread; | 49 using content::BrowserThread; |
| 50 | 50 |
| 51 namespace wallpaper_base = extensions::api::wallpaper; |
| 51 namespace wallpaper_private = extensions::api::wallpaper_private; | 52 namespace wallpaper_private = extensions::api::wallpaper_private; |
| 52 namespace set_wallpaper_if_exists = wallpaper_private::SetWallpaperIfExists; | 53 namespace set_wallpaper_if_exists = wallpaper_private::SetWallpaperIfExists; |
| 53 namespace set_wallpaper = wallpaper_private::SetWallpaper; | 54 namespace set_wallpaper = wallpaper_private::SetWallpaper; |
| 54 namespace set_custom_wallpaper = wallpaper_private::SetCustomWallpaper; | 55 namespace set_custom_wallpaper = wallpaper_private::SetCustomWallpaper; |
| 55 namespace set_custom_wallpaper_layout = | 56 namespace set_custom_wallpaper_layout = |
| 56 wallpaper_private::SetCustomWallpaperLayout; | 57 wallpaper_private::SetCustomWallpaperLayout; |
| 57 namespace get_thumbnail = wallpaper_private::GetThumbnail; | 58 namespace get_thumbnail = wallpaper_private::GetThumbnail; |
| 58 namespace save_thumbnail = wallpaper_private::SaveThumbnail; | 59 namespace save_thumbnail = wallpaper_private::SaveThumbnail; |
| 59 namespace get_offline_wallpaper_list = | 60 namespace get_offline_wallpaper_list = |
| 60 wallpaper_private::GetOfflineWallpaperList; | 61 wallpaper_private::GetOfflineWallpaperList; |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 | 355 |
| 355 base::FilePath wallpaper_path; | 356 base::FilePath wallpaper_path; |
| 356 base::FilePath fallback_path; | 357 base::FilePath fallback_path; |
| 357 chromeos::WallpaperManager::WallpaperResolution resolution = | 358 chromeos::WallpaperManager::WallpaperResolution resolution = |
| 358 chromeos::WallpaperManager::Get()->GetAppropriateResolution(); | 359 chromeos::WallpaperManager::Get()->GetAppropriateResolution(); |
| 359 | 360 |
| 360 std::string file_name = GURL(params->url).ExtractFileName(); | 361 std::string file_name = GURL(params->url).ExtractFileName(); |
| 361 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, | 362 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, |
| 362 &wallpaper_path)); | 363 &wallpaper_path)); |
| 363 fallback_path = wallpaper_path.Append(file_name); | 364 fallback_path = wallpaper_path.Append(file_name); |
| 364 if (params->layout != wallpaper_private::WALLPAPER_LAYOUT_STRETCH && | 365 if (params->layout != wallpaper_base::WALLPAPER_LAYOUT_STRETCH && |
| 365 resolution == chromeos::WallpaperManager::WALLPAPER_RESOLUTION_SMALL) { | 366 resolution == chromeos::WallpaperManager::WALLPAPER_RESOLUTION_SMALL) { |
| 366 file_name = base::FilePath(file_name) | 367 file_name = base::FilePath(file_name) |
| 367 .InsertBeforeExtension(wallpaper::kSmallWallpaperSuffix) | 368 .InsertBeforeExtension(wallpaper::kSmallWallpaperSuffix) |
| 368 .value(); | 369 .value(); |
| 369 } | 370 } |
| 370 wallpaper_path = wallpaper_path.Append(file_name); | 371 wallpaper_path = wallpaper_path.Append(file_name); |
| 371 | 372 |
| 372 sequence_token_ = BrowserThread::GetBlockingPool()->GetNamedSequenceToken( | 373 sequence_token_ = BrowserThread::GetBlockingPool()->GetNamedSequenceToken( |
| 373 wallpaper::kWallpaperSequenceTokenName); | 374 wallpaper::kWallpaperSequenceTokenName); |
| 374 scoped_refptr<base::SequencedTaskRunner> task_runner = | 375 scoped_refptr<base::SequencedTaskRunner> task_runner = |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 } | 414 } |
| 414 | 415 |
| 415 void WallpaperPrivateSetWallpaperIfExistsFunction::OnWallpaperDecoded( | 416 void WallpaperPrivateSetWallpaperIfExistsFunction::OnWallpaperDecoded( |
| 416 const gfx::ImageSkia& image) { | 417 const gfx::ImageSkia& image) { |
| 417 // Set unsafe_wallpaper_decoder_ to null since the decoding already finished. | 418 // Set unsafe_wallpaper_decoder_ to null since the decoding already finished. |
| 418 unsafe_wallpaper_decoder_ = NULL; | 419 unsafe_wallpaper_decoder_ = NULL; |
| 419 | 420 |
| 420 chromeos::WallpaperManager* wallpaper_manager = | 421 chromeos::WallpaperManager* wallpaper_manager = |
| 421 chromeos::WallpaperManager::Get(); | 422 chromeos::WallpaperManager::Get(); |
| 422 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( | 423 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( |
| 423 wallpaper_private::ToString(params->layout)); | 424 wallpaper_base::ToString(params->layout)); |
| 424 | 425 |
| 425 bool update_wallpaper = | 426 bool update_wallpaper = |
| 426 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); | 427 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); |
| 427 wallpaper_manager->SetWallpaperFromImageSkia( | 428 wallpaper_manager->SetWallpaperFromImageSkia( |
| 428 user_id_, image, layout, update_wallpaper); | 429 user_id_, image, layout, update_wallpaper); |
| 429 bool is_persistent = !user_manager::UserManager::Get() | 430 bool is_persistent = !user_manager::UserManager::Get() |
| 430 ->IsCurrentUserNonCryptohomeDataEphemeral(); | 431 ->IsCurrentUserNonCryptohomeDataEphemeral(); |
| 431 wallpaper::WallpaperInfo info = {params->url, | 432 wallpaper::WallpaperInfo info = {params->url, |
| 432 layout, | 433 layout, |
| 433 user_manager::User::ONLINE, | 434 user_manager::User::ONLINE, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 this, error)); | 524 this, error)); |
| 524 } | 525 } |
| 525 } | 526 } |
| 526 | 527 |
| 527 void WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper( | 528 void WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper( |
| 528 scoped_ptr<gfx::ImageSkia> image) { | 529 scoped_ptr<gfx::ImageSkia> image) { |
| 529 chromeos::WallpaperManager* wallpaper_manager = | 530 chromeos::WallpaperManager* wallpaper_manager = |
| 530 chromeos::WallpaperManager::Get(); | 531 chromeos::WallpaperManager::Get(); |
| 531 | 532 |
| 532 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( | 533 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( |
| 533 wallpaper_private::ToString(params->layout)); | 534 wallpaper_base::ToString(params->layout)); |
| 534 | 535 |
| 535 bool update_wallpaper = | 536 bool update_wallpaper = |
| 536 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); | 537 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); |
| 537 wallpaper_manager->SetWallpaperFromImageSkia( | 538 wallpaper_manager->SetWallpaperFromImageSkia( |
| 538 user_id_, *image.get(), layout, update_wallpaper); | 539 user_id_, *image.get(), layout, update_wallpaper); |
| 539 | 540 |
| 540 bool is_persistent = !user_manager::UserManager::Get() | 541 bool is_persistent = !user_manager::UserManager::Get() |
| 541 ->IsCurrentUserNonCryptohomeDataEphemeral(); | 542 ->IsCurrentUserNonCryptohomeDataEphemeral(); |
| 542 wallpaper::WallpaperInfo info = {params->url, | 543 wallpaper::WallpaperInfo info = {params->url, |
| 543 layout, | 544 layout, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 613 wallpaper::kThumbnailWallpaperSubDir, user_id_hash_, params->file_name); | 614 wallpaper::kThumbnailWallpaperSubDir, user_id_hash_, params->file_name); |
| 614 | 615 |
| 615 sequence_token_ = BrowserThread::GetBlockingPool()->GetNamedSequenceToken( | 616 sequence_token_ = BrowserThread::GetBlockingPool()->GetNamedSequenceToken( |
| 616 wallpaper::kWallpaperSequenceTokenName); | 617 wallpaper::kWallpaperSequenceTokenName); |
| 617 scoped_refptr<base::SequencedTaskRunner> task_runner = | 618 scoped_refptr<base::SequencedTaskRunner> task_runner = |
| 618 BrowserThread::GetBlockingPool()-> | 619 BrowserThread::GetBlockingPool()-> |
| 619 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, | 620 GetSequencedTaskRunnerWithShutdownBehavior(sequence_token_, |
| 620 base::SequencedWorkerPool::BLOCK_SHUTDOWN); | 621 base::SequencedWorkerPool::BLOCK_SHUTDOWN); |
| 621 | 622 |
| 622 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( | 623 wallpaper::WallpaperLayout layout = wallpaper_api_util::GetLayoutEnum( |
| 623 wallpaper_private::ToString(params->layout)); | 624 wallpaper_base::ToString(params->layout)); |
| 624 | 625 |
| 625 bool update_wallpaper = | 626 bool update_wallpaper = |
| 626 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); | 627 user_id_ == user_manager::UserManager::Get()->GetActiveUser()->email(); |
| 627 wallpaper_manager->SetCustomWallpaper(user_id_, | 628 wallpaper_manager->SetCustomWallpaper(user_id_, |
| 628 user_id_hash_, | 629 user_id_hash_, |
| 629 params->file_name, | 630 params->file_name, |
| 630 layout, | 631 layout, |
| 631 user_manager::User::CUSTOMIZED, | 632 user_manager::User::CUSTOMIZED, |
| 632 image, | 633 image, |
| 633 update_wallpaper); | 634 update_wallpaper); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 chromeos::WallpaperManager* wallpaper_manager = | 696 chromeos::WallpaperManager* wallpaper_manager = |
| 696 chromeos::WallpaperManager::Get(); | 697 chromeos::WallpaperManager::Get(); |
| 697 wallpaper::WallpaperInfo info; | 698 wallpaper::WallpaperInfo info; |
| 698 wallpaper_manager->GetLoggedInUserWallpaperInfo(&info); | 699 wallpaper_manager->GetLoggedInUserWallpaperInfo(&info); |
| 699 if (info.type != user_manager::User::CUSTOMIZED) { | 700 if (info.type != user_manager::User::CUSTOMIZED) { |
| 700 SetError("Only custom wallpaper can change layout."); | 701 SetError("Only custom wallpaper can change layout."); |
| 701 SendResponse(false); | 702 SendResponse(false); |
| 702 return false; | 703 return false; |
| 703 } | 704 } |
| 704 info.layout = wallpaper_api_util::GetLayoutEnum( | 705 info.layout = wallpaper_api_util::GetLayoutEnum( |
| 705 wallpaper_private::ToString(params->layout)); | 706 wallpaper_base::ToString(params->layout)); |
| 706 | 707 |
| 707 std::string email = | 708 std::string email = |
| 708 user_manager::UserManager::Get()->GetActiveUser()->email(); | 709 user_manager::UserManager::Get()->GetActiveUser()->email(); |
| 709 bool is_persistent = !user_manager::UserManager::Get() | 710 bool is_persistent = !user_manager::UserManager::Get() |
| 710 ->IsCurrentUserNonCryptohomeDataEphemeral(); | 711 ->IsCurrentUserNonCryptohomeDataEphemeral(); |
| 711 wallpaper_manager->SetUserWallpaperInfo(email, info, is_persistent); | 712 wallpaper_manager->SetUserWallpaperInfo(email, info, is_persistent); |
| 712 wallpaper_manager->UpdateWallpaper(false /* clear_cache */); | 713 wallpaper_manager->UpdateWallpaper(false /* clear_cache */); |
| 713 SendResponse(true); | 714 SendResponse(true); |
| 714 | 715 |
| 715 // Gets email address while at UI thread. | 716 // Gets email address while at UI thread. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 751 } | 752 } |
| 752 | 753 |
| 753 bool WallpaperPrivateGetThumbnailFunction::RunAsync() { | 754 bool WallpaperPrivateGetThumbnailFunction::RunAsync() { |
| 754 scoped_ptr<get_thumbnail::Params> params( | 755 scoped_ptr<get_thumbnail::Params> params( |
| 755 get_thumbnail::Params::Create(*args_)); | 756 get_thumbnail::Params::Create(*args_)); |
| 756 EXTENSION_FUNCTION_VALIDATE(params); | 757 EXTENSION_FUNCTION_VALIDATE(params); |
| 757 | 758 |
| 758 base::FilePath thumbnail_path; | 759 base::FilePath thumbnail_path; |
| 759 std::string email = | 760 std::string email = |
| 760 user_manager::UserManager::Get()->GetActiveUser()->email(); | 761 user_manager::UserManager::Get()->GetActiveUser()->email(); |
| 761 if (params->source == get_thumbnail::Params::SOURCE_ONLINE) { | 762 if (params->source == wallpaper_private::WALLPAPER_SOURCE_ONLINE) { |
| 762 std::string file_name = GURL(params->url_or_file).ExtractFileName(); | 763 std::string file_name = GURL(params->url_or_file).ExtractFileName(); |
| 763 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, | 764 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPER_THUMBNAILS, |
| 764 &thumbnail_path)); | 765 &thumbnail_path)); |
| 765 thumbnail_path = thumbnail_path.Append(file_name); | 766 thumbnail_path = thumbnail_path.Append(file_name); |
| 766 } else { | 767 } else { |
| 767 if (!IsOEMDefaultWallpaper()) { | 768 if (!IsOEMDefaultWallpaper()) { |
| 768 SetError("No OEM wallpaper."); | 769 SetError("No OEM wallpaper."); |
| 769 SendResponse(false); | 770 SendResponse(false); |
| 770 return false; | 771 return false; |
| 771 } | 772 } |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 928 this, file_list)); | 929 this, file_list)); |
| 929 } | 930 } |
| 930 | 931 |
| 931 void WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete( | 932 void WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete( |
| 932 const std::vector<std::string>& file_list) { | 933 const std::vector<std::string>& file_list) { |
| 933 base::ListValue* results = new base::ListValue(); | 934 base::ListValue* results = new base::ListValue(); |
| 934 results->AppendStrings(file_list); | 935 results->AppendStrings(file_list); |
| 935 SetResult(results); | 936 SetResult(results); |
| 936 SendResponse(true); | 937 SendResponse(true); |
| 937 } | 938 } |
| OLD | NEW |