| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/wm/window_cycle_controller.h" | 10 #include "ash/wm/window_cycle_controller.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 // directory can not be found/created or failed to write file. | 76 // directory can not be found/created or failed to write file. |
| 77 bool SaveData(int key, const std::string& file_name, const std::string& data) { | 77 bool SaveData(int key, const std::string& file_name, const std::string& data) { |
| 78 base::FilePath data_dir; | 78 base::FilePath data_dir; |
| 79 CHECK(PathService::Get(key, &data_dir)); | 79 CHECK(PathService::Get(key, &data_dir)); |
| 80 if (!file_util::DirectoryExists(data_dir) && | 80 if (!file_util::DirectoryExists(data_dir) && |
| 81 !file_util::CreateDirectory(data_dir)) { | 81 !file_util::CreateDirectory(data_dir)) { |
| 82 return false; | 82 return false; |
| 83 } | 83 } |
| 84 base::FilePath file_path = data_dir.Append(file_name); | 84 base::FilePath file_path = data_dir.Append(file_name); |
| 85 | 85 |
| 86 return file_util::PathExists(file_path) || | 86 return base::PathExists(file_path) || |
| 87 (file_util::WriteFile(file_path, data.c_str(), | 87 (file_util::WriteFile(file_path, data.c_str(), |
| 88 data.size()) != -1); | 88 data.size()) != -1); |
| 89 } | 89 } |
| 90 | 90 |
| 91 // Gets |file_name| from directory with |key|. Return false if the directory can | 91 // Gets |file_name| from directory with |key|. Return false if the directory can |
| 92 // not be found or failed to read file to string |data|. Note if the |file_name| | 92 // not be found or failed to read file to string |data|. Note if the |file_name| |
| 93 // can not be found in the directory, return true with empty |data|. It is | 93 // can not be found in the directory, return true with empty |data|. It is |
| 94 // expected that we may try to access file which did not saved yet. | 94 // expected that we may try to access file which did not saved yet. |
| 95 bool GetData(const base::FilePath& path, std::string* data) { | 95 bool GetData(const base::FilePath& path, std::string* data) { |
| 96 base::FilePath data_dir = path.DirName(); | 96 base::FilePath data_dir = path.DirName(); |
| 97 if (!file_util::DirectoryExists(data_dir) && | 97 if (!file_util::DirectoryExists(data_dir) && |
| 98 !file_util::CreateDirectory(data_dir)) | 98 !file_util::CreateDirectory(data_dir)) |
| 99 return false; | 99 return false; |
| 100 | 100 |
| 101 return !file_util::PathExists(path) || | 101 return !base::PathExists(path) || |
| 102 file_util::ReadFileToString(path, data); | 102 file_util::ReadFileToString(path, data); |
| 103 } | 103 } |
| 104 | 104 |
| 105 class WindowStateManager; | 105 class WindowStateManager; |
| 106 | 106 |
| 107 // static | 107 // static |
| 108 WindowStateManager* g_window_state_manager = NULL; | 108 WindowStateManager* g_window_state_manager = NULL; |
| 109 | 109 |
| 110 // WindowStateManager remembers which windows have been minimized in order to | 110 // WindowStateManager remembers which windows have been minimized in order to |
| 111 // restore them when the wallpaper viewer is hidden. | 111 // restore them when the wallpaper viewer is hidden. |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 } | 375 } |
| 376 | 376 |
| 377 void WallpaperPrivateSetWallpaperIfExistsFunction:: | 377 void WallpaperPrivateSetWallpaperIfExistsFunction:: |
| 378 ReadFileAndInitiateStartDecode(const base::FilePath& file_path, | 378 ReadFileAndInitiateStartDecode(const base::FilePath& file_path, |
| 379 const base::FilePath& fallback_path) { | 379 const base::FilePath& fallback_path) { |
| 380 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( | 380 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( |
| 381 sequence_token_)); | 381 sequence_token_)); |
| 382 std::string data; | 382 std::string data; |
| 383 base::FilePath path = file_path; | 383 base::FilePath path = file_path; |
| 384 | 384 |
| 385 if (!file_util::PathExists(file_path)) | 385 if (!base::PathExists(file_path)) |
| 386 path = fallback_path; | 386 path = fallback_path; |
| 387 | 387 |
| 388 if (file_util::PathExists(path) && | 388 if (base::PathExists(path) && |
| 389 file_util::ReadFileToString(path, &data)) { | 389 file_util::ReadFileToString(path, &data)) { |
| 390 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 390 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 391 base::Bind(&WallpaperPrivateSetWallpaperIfExistsFunction::StartDecode, | 391 base::Bind(&WallpaperPrivateSetWallpaperIfExistsFunction::StartDecode, |
| 392 this, data)); | 392 this, data)); |
| 393 return; | 393 return; |
| 394 } | 394 } |
| 395 std::string error = base::StringPrintf( | 395 std::string error = base::StringPrintf( |
| 396 "Failed to set wallpaper %s from file system.", | 396 "Failed to set wallpaper %s from file system.", |
| 397 path.BaseName().value().c_str()); | 397 path.BaseName().value().c_str()); |
| 398 BrowserThread::PostTask( | 398 BrowserThread::PostTask( |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 BrowserThread::PostTask( | 485 BrowserThread::PostTask( |
| 486 BrowserThread::UI, FROM_HERE, | 486 BrowserThread::UI, FROM_HERE, |
| 487 base::Bind(&WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper, | 487 base::Bind(&WallpaperPrivateSetWallpaperFunction::SetDecodedWallpaper, |
| 488 this, base::Passed(&deep_copy))); | 488 this, base::Passed(&deep_copy))); |
| 489 chromeos::UserImage wallpaper(wallpaper_); | 489 chromeos::UserImage wallpaper(wallpaper_); |
| 490 | 490 |
| 491 base::FilePath wallpaper_dir; | 491 base::FilePath wallpaper_dir; |
| 492 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir)); | 492 CHECK(PathService::Get(chrome::DIR_CHROMEOS_WALLPAPERS, &wallpaper_dir)); |
| 493 base::FilePath file_path = wallpaper_dir.Append( | 493 base::FilePath file_path = wallpaper_dir.Append( |
| 494 file_name).InsertBeforeExtension(chromeos::kSmallWallpaperSuffix); | 494 file_name).InsertBeforeExtension(chromeos::kSmallWallpaperSuffix); |
| 495 if (file_util::PathExists(file_path)) | 495 if (base::PathExists(file_path)) |
| 496 return; | 496 return; |
| 497 // Generates and saves small resolution wallpaper. Uses CENTER_CROPPED to | 497 // Generates and saves small resolution wallpaper. Uses CENTER_CROPPED to |
| 498 // maintain the aspect ratio after resize. | 498 // maintain the aspect ratio after resize. |
| 499 chromeos::WallpaperManager::Get()->ResizeAndSaveWallpaper( | 499 chromeos::WallpaperManager::Get()->ResizeAndSaveWallpaper( |
| 500 wallpaper, | 500 wallpaper, |
| 501 file_path, | 501 file_path, |
| 502 ash::WALLPAPER_LAYOUT_CENTER_CROPPED, | 502 ash::WALLPAPER_LAYOUT_CENTER_CROPPED, |
| 503 ash::kSmallWallpaperMaxWidth, | 503 ash::kSmallWallpaperMaxWidth, |
| 504 ash::kSmallWallpaperMaxHeight); | 504 ash::kSmallWallpaperMaxHeight); |
| 505 } else { | 505 } else { |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 } else { | 621 } else { |
| 622 SendResponse(true); | 622 SendResponse(true); |
| 623 } | 623 } |
| 624 } | 624 } |
| 625 | 625 |
| 626 void WallpaperPrivateSetCustomWallpaperFunction::GenerateThumbnail( | 626 void WallpaperPrivateSetCustomWallpaperFunction::GenerateThumbnail( |
| 627 const base::FilePath& thumbnail_path, scoped_ptr<gfx::ImageSkia> image) { | 627 const base::FilePath& thumbnail_path, scoped_ptr<gfx::ImageSkia> image) { |
| 628 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( | 628 DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread( |
| 629 sequence_token_)); | 629 sequence_token_)); |
| 630 chromeos::UserImage wallpaper(*image.get()); | 630 chromeos::UserImage wallpaper(*image.get()); |
| 631 if (!file_util::PathExists(thumbnail_path.DirName())) | 631 if (!base::PathExists(thumbnail_path.DirName())) |
| 632 file_util::CreateDirectory(thumbnail_path.DirName()); | 632 file_util::CreateDirectory(thumbnail_path.DirName()); |
| 633 | 633 |
| 634 scoped_refptr<base::RefCountedBytes> data; | 634 scoped_refptr<base::RefCountedBytes> data; |
| 635 chromeos::WallpaperManager::Get()->ResizeWallpaper( | 635 chromeos::WallpaperManager::Get()->ResizeWallpaper( |
| 636 wallpaper, | 636 wallpaper, |
| 637 ash::WALLPAPER_LAYOUT_STRETCH, | 637 ash::WALLPAPER_LAYOUT_STRETCH, |
| 638 ash::kWallpaperThumbnailWidth, | 638 ash::kWallpaperThumbnailWidth, |
| 639 ash::kWallpaperThumbnailHeight, | 639 ash::kWallpaperThumbnailHeight, |
| 640 &data); | 640 &data); |
| 641 BrowserThread::PostTask( | 641 BrowserThread::PostTask( |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 911 this, file_list)); | 911 this, file_list)); |
| 912 } | 912 } |
| 913 | 913 |
| 914 void WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete( | 914 void WallpaperPrivateGetOfflineWallpaperListFunction::OnComplete( |
| 915 const std::vector<std::string>& file_list) { | 915 const std::vector<std::string>& file_list) { |
| 916 ListValue* results = new ListValue(); | 916 ListValue* results = new ListValue(); |
| 917 results->AppendStrings(file_list); | 917 results->AppendStrings(file_list); |
| 918 SetResult(results); | 918 SetResult(results); |
| 919 SendResponse(true); | 919 SendResponse(true); |
| 920 } | 920 } |
| OLD | NEW |