summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 20:45:53 +0000
committerbshe@chromium.org <bshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 20:45:53 +0000
commit1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7 (patch)
tree96e5b831ce305a1684f0c9278d73896267c095ae
parentf861b390b63e33491ed82c3b2fb29eb17a4849e1 (diff)
downloadchromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.zip
chromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.tar.gz
chromium_src-1c7abf7a02fe79fdd77fc09e8b7c658f449ed6f7.tar.bz2
Use low resolution wallpapers for small screens
BUG=140336 TBR=jhawkins Review URL: https://chromiumcodereview.appspot.com/10837089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149915 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/desktop_background/desktop_background_controller.cc50
-rw-r--r--ash/desktop_background/desktop_background_controller.h6
-rw-r--r--ash/desktop_background/desktop_background_resources.cc300
-rw-r--r--ash/desktop_background/desktop_background_resources.h17
-rw-r--r--chrome/browser/chromeos/login/wallpaper_manager.cc10
-rw-r--r--chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler.cc2
-rw-r--r--ui/resources/ui_resources.grd87
7 files changed, 364 insertions, 108 deletions
diff --git a/ash/desktop_background/desktop_background_controller.cc b/ash/desktop_background/desktop_background_controller.cc
index 022ca0b..3f9dcba 100644
--- a/ash/desktop_background/desktop_background_controller.cc
+++ b/ash/desktop_background/desktop_background_controller.cc
@@ -23,6 +23,10 @@
namespace ash {
namespace {
+
+const int kSmallWallpaperMaximalWidth = 1366;
+const int kSmallWallpaperMaximalHeight = 800;
+
internal::RootWindowLayoutManager* GetRootWindowLayoutManager(
aura::RootWindow* root_window) {
return static_cast<internal::RootWindowLayoutManager*>(
@@ -32,11 +36,11 @@ internal::RootWindowLayoutManager* GetRootWindowLayoutManager(
// Stores the current wallpaper data.
struct DesktopBackgroundController::WallpaperData {
- explicit WallpaperData(int index)
+ WallpaperData(int index, WallpaperResolution resolution)
: wallpaper_index(index),
- wallpaper_layout(GetWallpaperInfo(index).layout),
+ wallpaper_layout(GetWallpaperViewInfo(index, resolution).layout),
wallpaper_image(*(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- GetWallpaperInfo(index).id).ToImageSkia())) {
+ GetWallpaperViewInfo(index, resolution).id).ToImageSkia())) {
}
WallpaperData(WallpaperLayout layout, const gfx::ImageSkia& image)
: wallpaper_index(-1),
@@ -54,7 +58,9 @@ class DesktopBackgroundController::WallpaperOperation
: public base::RefCountedThreadSafe<
DesktopBackgroundController::WallpaperOperation> {
public:
- explicit WallpaperOperation(int index) : index_(index) {
+ WallpaperOperation(int index, WallpaperResolution resolution)
+ : index_(index),
+ resolution_(resolution) {
}
static void Run(scoped_refptr<WallpaperOperation> wo) {
@@ -64,7 +70,7 @@ class DesktopBackgroundController::WallpaperOperation
void LoadingWallpaper() {
if (cancel_flag_.IsSet())
return;
- wallpaper_data_.reset(new WallpaperData(index_));
+ wallpaper_data_.reset(new WallpaperData(index_, resolution_));
}
void Cancel() {
@@ -85,7 +91,9 @@ class DesktopBackgroundController::WallpaperOperation
scoped_ptr<WallpaperData> wallpaper_data_;
- int index_;
+ const int index_;
+
+ const WallpaperResolution resolution_;
DISALLOW_COPY_AND_ASSIGN(WallpaperOperation);
};
@@ -123,7 +131,17 @@ void DesktopBackgroundController::OnRootWindowAdded(
switch (desktop_background_mode_) {
case BACKGROUND_IMAGE:
if (current_wallpaper_.get()) {
- SetDesktopBackgroundImage(root_window);
+ gfx::Size root_window_size = root_window->GetHostSize();
+ int wallpaper_width = current_wallpaper_->wallpaper_image.width();
+ int wallpaper_height = current_wallpaper_->wallpaper_image.height();
+ // Loads a higher resolution wallpaper if needed.
+ if ((wallpaper_width < root_window_size.width() ||
+ wallpaper_height < root_window_size.height()) &&
+ current_wallpaper_->wallpaper_index != -1 &&
+ current_wallpaper_->wallpaper_layout != TILE)
+ SetDefaultWallpaper(current_wallpaper_->wallpaper_index, true);
+ else
+ SetDesktopBackgroundImage(root_window);
} else {
internal::CreateDesktopBackground(root_window);
}
@@ -134,7 +152,8 @@ void DesktopBackgroundController::OnRootWindowAdded(
}
}
-void DesktopBackgroundController::SetDefaultWallpaper(int index) {
+void DesktopBackgroundController::SetDefaultWallpaper(int index,
+ bool force_reload) {
// We should not change background when index is invalid. For instance, at
// login screen or stub_user login.
if (index == ash::GetInvalidWallpaperIndex()) {
@@ -145,12 +164,23 @@ void DesktopBackgroundController::SetDefaultWallpaper(int index) {
return;
}
- if (current_wallpaper_.get() && current_wallpaper_->wallpaper_index == index)
+ if (!force_reload && current_wallpaper_.get() &&
+ current_wallpaper_->wallpaper_index == index)
return;
CancelPendingWallpaperOperation();
- wallpaper_op_ = new WallpaperOperation(index);
+ WallpaperResolution resolution = SMALL;
+ Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
+ for (Shell::RootWindowList::iterator iter = root_windows.begin();
+ iter != root_windows.end(); ++iter) {
+ gfx::Size root_window_size = (*iter)->GetHostSize();
+ if (root_window_size.width() > kSmallWallpaperMaximalWidth ||
+ root_window_size.height() > kSmallWallpaperMaximalHeight)
+ resolution = LARGE;
+ }
+
+ wallpaper_op_ = new WallpaperOperation(index, resolution);
base::WorkerPool::PostTaskAndReply(
FROM_HERE,
base::Bind(&WallpaperOperation::Run, wallpaper_op_),
diff --git a/ash/desktop_background/desktop_background_controller.h b/ash/desktop_background/desktop_background_controller.h
index b575654..813e338 100644
--- a/ash/desktop_background/desktop_background_controller.h
+++ b/ash/desktop_background/desktop_background_controller.h
@@ -71,8 +71,10 @@ class ASH_EXPORT DesktopBackgroundController {
void OnRootWindowAdded(aura::RootWindow* root_window);
// Loads default wallpaper at |index| asynchronously and sets to current
- // wallpaper after loaded.
- void SetDefaultWallpaper(int index);
+ // wallpaper after loaded. When |force_reload| is true, reload wallpaper
+ // for all root windows even if |index| is the same as current wallpaper. It
+ // must be true when a different resolution of current wallpaper is needed.
+ void SetDefaultWallpaper(int index, bool force_reload);
// Sets the user selected custom wallpaper. Called when user selected a file
// from file system or changed the layout of wallpaper.
diff --git a/ash/desktop_background/desktop_background_resources.cc b/ash/desktop_background/desktop_background_resources.cc
index 01f7f46..48a6dcf 100644
--- a/ash/desktop_background/desktop_background_resources.cc
+++ b/ash/desktop_background/desktop_background_resources.cc
@@ -23,210 +23,384 @@ const char* kWallpaperLayoutArrays[] = {
const ash::WallpaperInfo kDefaultWallpapers[] = {
#if !defined(GOOGLE_CHROME_BUILD)
{
- IDR_AURA_WALLPAPERS_ROMAINGUY_0,
+ {
+ IDR_AURA_WALLPAPERS_ROMAINGUY_0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_ROMAINGUY_0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_ROMAINGUY_0_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
#else
{
- IDR_AURA_WALLPAPERS_1_NATURE0,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE0_THUMB,
- ash::CENTER_CROPPED,
"Kathy Collins / Getty Images",
"http://www.gettyimages.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE1,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE1_THUMB,
- ash::CENTER_CROPPED,
"Johannes van Donge",
"http://www.diginature.nl"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE2,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE2_THUMB,
- ash::CENTER_CROPPED,
"Oleg Zhukov",
"http://500px.com/eosboy"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE3,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE3_THUMB,
- ash::CENTER_CROPPED,
"Stefano Ronchi",
"http://www.stefanoronchi.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE4,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE4_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE4_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE4_THUMB,
- ash::CENTER_CROPPED,
"Stefano Ronchi",
"http://www.stefanoronchi.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE5,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE5_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE5_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE5_THUMB,
- ash::CENTER_CROPPED,
"Mario Moreno",
"http://www.mariomorenophotography.com"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE6,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE6_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE6_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE6_THUMB,
- ash::CENTER_CROPPED,
"Walter Soestbergen",
"http://www.waltersoestbergen.nl"
},
{
- IDR_AURA_WALLPAPERS_1_NATURE7,
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE7_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_1_NATURE7_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_1_NATURE7_THUMB,
- ash::CENTER_CROPPED,
"Mark Bridger",
"http://www.bridgephotography.co.uk"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE0,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE0_THUMB,
- ash::CENTER_CROPPED,
"Vitali Prokopenko",
"http://www.vitphoto.com/"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE1,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE1_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE2,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE2_THUMB,
- ash::CENTER_CROPPED,
"Mark Bridger",
"http://www.bridgephotography.co.uk"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE3,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE3_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE4,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE4_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE4_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE4_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE5,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE5_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE5_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE5_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE6,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE6_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE6_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE6_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_2_LANDSCAPE7,
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE7_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_2_LANDSCAPE7_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_2_LANDSCAPE7_THUMB,
- ash::CENTER_CROPPED,
"Romain Guy",
"http://www.curious-creature.org"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN0,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN0_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN0_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN0_THUMB,
- ash::CENTER_CROPPED,
"Paulo FLOP",
"http://500px.com/FLOP"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN1,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN1_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN1_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN1_THUMB,
- ash::CENTER_CROPPED,
"Mike Reyfman",
"http://mikereyfman.com"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN2,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN2_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN2_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN2_THUMB,
- ash::CENTER_CROPPED,
"Neil Kremer",
"http://lightshedimagery.smugmug.com"
},
{
- IDR_AURA_WALLPAPERS_3_URBAN3,
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN3_LARGE,
+ ash::CENTER_CROPPED
+ },
+ {
+ IDR_AURA_WALLPAPERS_3_URBAN3_SMALL,
+ ash::CENTER
+ },
IDR_AURA_WALLPAPERS_3_URBAN3_THUMB,
- ash::CENTER_CROPPED,
"Neil Kremer",
"http://lightshedimagery.smugmug.com"
},
#endif
{
- IDR_AURA_WALLPAPERS_5_GRADIENT0,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT0_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT0_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT0_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT1,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT1_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT1_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT1_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT2,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT2_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT2_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT2_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT3,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT3_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT3_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT3_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT4,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT4_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT4_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT4_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT5,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT5_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT5_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT5_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT6,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT6_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT6_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT6_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
},
{
- IDR_AURA_WALLPAPERS_5_GRADIENT7,
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT7_LARGE,
+ ash::TILE
+ },
+ {
+ IDR_AURA_WALLPAPERS_5_GRADIENT7_SMALL,
+ ash::TILE
+ },
IDR_AURA_WALLPAPERS_5_GRADIENT7_THUMB,
- ash::TILE,
"Chromium",
"http://www.chromium.org"
- },
+ }
};
const int kWallpaperLayoutCount = arraysize(kWallpaperLayoutArrays);
@@ -294,4 +468,12 @@ const WallpaperInfo& GetWallpaperInfo(int index) {
return kDefaultWallpapers[index];
}
+const WallpaperViewInfo& GetWallpaperViewInfo(int index,
+ WallpaperResolution resolution) {
+ if (resolution == SMALL)
+ return kDefaultWallpapers[index].small;
+ else
+ return kDefaultWallpapers[index].large;
+}
+
} // namespace ash
diff --git a/ash/desktop_background/desktop_background_resources.h b/ash/desktop_background/desktop_background_resources.h
index 54cdf55..f9c99b5 100644
--- a/ash/desktop_background/desktop_background_resources.h
+++ b/ash/desktop_background/desktop_background_resources.h
@@ -19,10 +19,21 @@ enum WallpaperLayout {
TILE,
};
-struct ASH_EXPORT WallpaperInfo {
+enum WallpaperResolution {
+ LARGE,
+ SMALL
+};
+
+// Encapsulates wallpaper infomation needed by desktop background view.
+struct ASH_EXPORT WallpaperViewInfo {
int id;
- int thumb_id;
WallpaperLayout layout;
+};
+
+struct ASH_EXPORT WallpaperInfo {
+ WallpaperViewInfo large;
+ WallpaperViewInfo small;
+ int thumb_id;
// TODO(bshe): author member should be encoded to UTF16. We need to use i18n
// string for this member after M19.
const char* author;
@@ -39,6 +50,8 @@ ASH_EXPORT int GetNextWallpaperIndex(int index);
ASH_EXPORT int GetSolidColorIndex();
ASH_EXPORT int GetWallpaperCount();
ASH_EXPORT const WallpaperInfo& GetWallpaperInfo(int index);
+ASH_EXPORT const WallpaperViewInfo& GetWallpaperViewInfo(int index,
+ WallpaperResolution resolution);
} // namespace ash
diff --git a/chrome/browser/chromeos/login/wallpaper_manager.cc b/chrome/browser/chromeos/login/wallpaper_manager.cc
index 1543c1e..8fa5b66 100644
--- a/chrome/browser/chromeos/login/wallpaper_manager.cc
+++ b/chrome/browser/chromeos/login/wallpaper_manager.cc
@@ -206,7 +206,7 @@ void WallpaperManager::InitializeWallpaper() {
// TODO(nkostylev): Add switch to disable wallpaper transition on OOBE.
// Should be used on test images so that they are not slowed down.
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(kDefaultOOBEWallpaperIndex);
+ SetDefaultWallpaper(kDefaultOOBEWallpaperIndex, false);
} else {
bool show_users = true;
bool result = CrosSettings::Get()->GetBoolean(
@@ -215,7 +215,7 @@ void WallpaperManager::InitializeWallpaper() {
<< kAccountsPrefShowUserNamesOnSignIn;
if (!show_users) {
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(ash::GetSolidColorIndex());
+ SetDefaultWallpaper(ash::GetSolidColorIndex(), false);
}
}
}
@@ -307,7 +307,7 @@ void WallpaperManager::SetInitialUserWallpaper(const std::string& username) {
// crash and speed up the tests by avoid loading wallpaper.
if (ash::Shell::HasInstance()) {
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(current_user_wallpaper_index_);
+ SetDefaultWallpaper(current_user_wallpaper_index_, false);
}
}
@@ -366,7 +366,7 @@ void WallpaperManager::SetUserWallpaper(const std::string& email) {
return;
}
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(index);
+ SetDefaultWallpaper(index, false);
SetLastSelectedUser(email);
}
@@ -381,7 +381,7 @@ void WallpaperManager::OnUserDeselected() {
if (!UserManager::Get()->IsUserLoggedIn()) {
// This will set default login wallpaper (#fefefe).
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(ash::GetSolidColorIndex());
+ SetDefaultWallpaper(ash::GetSolidColorIndex(), false);
}
}
diff --git a/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler.cc b/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler.cc
index 2137452..9de453dd 100644
--- a/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler.cc
+++ b/chrome/browser/ui/webui/options2/chromeos/set_wallpaper_options_handler.cc
@@ -248,7 +248,7 @@ void SetWallpaperOptionsHandler::HandleDailyWallpaper(const ListValue* args) {
index = ash::GetNextWallpaperIndex(index);
UserManager::Get()->SaveLoggedInUserWallpaperProperties(User::DAILY, index);
ash::Shell::GetInstance()->desktop_background_controller()->
- SetDefaultWallpaper(index);
+ SetDefaultWallpaper(index, false);
base::StringValue image_url(GetDefaultWallpaperThumbnailURL(index));
base::FundamentalValue is_daily(true);
web_ui()->CallJavascriptFunction("SetWallpaperOptions.setSelectedImage",
diff --git a/ui/resources/ui_resources.grd b/ui/resources/ui_resources.grd
index 41db982..d94da3f 100644
--- a/ui/resources/ui_resources.grd
+++ b/ui/resources/ui_resources.grd
@@ -470,71 +470,100 @@
<includes>
<!-- Wallpapers used by Ash when building ChromiumOS. -->
<if expr="pp_ifdef('use_ash') and not pp_ifdef('_google_chrome')">
- <include name="IDR_AURA_WALLPAPERS_ROMAINGUY_0" file="aura/wallpapers/romainguy_0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_ROMAINGUY_0_LARGE" file="aura/wallpapers/large/romainguy_0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_ROMAINGUY_0_SMALL" file="aura/wallpapers/small/romainguy_0.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_ROMAINGUY_0_THUMB" file="aura/wallpapers/romainguy_0_thumb.jpg" type="BINDATA" />
</if>
<!-- Wallpapers available to Ash when building Official ChromeOS. -->
<if expr="pp_ifdef('use_ash') and pp_ifdef('_google_chrome')">
- <include name="IDR_AURA_WALLPAPERS_1_NATURE0" file="aura/google_wallpapers/1-nature0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE0_LARGE" file="aura/google_wallpapers/large/1-nature0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE0_SMALL" file="aura/google_wallpapers/small/1-nature0.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE0_THUMB" file="aura/google_wallpapers/1-nature0_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE1" file="aura/google_wallpapers/1-nature1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE1_LARGE" file="aura/google_wallpapers/large/1-nature1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE1_SMALL" file="aura/google_wallpapers/small/1-nature1.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE1_THUMB" file="aura/google_wallpapers/1-nature1_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE2" file="aura/google_wallpapers/1-nature2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE2_LARGE" file="aura/google_wallpapers/large/1-nature2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE2_SMALL" file="aura/google_wallpapers/small/1-nature2.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE2_THUMB" file="aura/google_wallpapers/1-nature2_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE3" file="aura/google_wallpapers/1-nature3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE3_LARGE" file="aura/google_wallpapers/large/1-nature3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE3_SMALL" file="aura/google_wallpapers/small/1-nature3.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE3_THUMB" file="aura/google_wallpapers/1-nature3_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE4" file="aura/google_wallpapers/1-nature4.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE4_LARGE" file="aura/google_wallpapers/large/1-nature4.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE4_SMALL" file="aura/google_wallpapers/small/1-nature4.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE4_THUMB" file="aura/google_wallpapers/1-nature4_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE5" file="aura/google_wallpapers/1-nature5.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE5_LARGE" file="aura/google_wallpapers/large/1-nature5.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE5_SMALL" file="aura/google_wallpapers/small/1-nature5.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE5_THUMB" file="aura/google_wallpapers/1-nature5_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE6" file="aura/google_wallpapers/1-nature6.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE6_LARGE" file="aura/google_wallpapers/large/1-nature6.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE6_SMALL" file="aura/google_wallpapers/small/1-nature6.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE6_THUMB" file="aura/google_wallpapers/1-nature6_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_1_NATURE7" file="aura/google_wallpapers/1-nature7.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE7_LARGE" file="aura/google_wallpapers/large/1-nature7.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_1_NATURE7_SMALL" file="aura/google_wallpapers/small/1-nature7.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_1_NATURE7_THUMB" file="aura/google_wallpapers/1-nature7_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE0" file="aura/google_wallpapers/2-landscape0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE0_LARGE" file="aura/google_wallpapers/large/2-landscape0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE0_SMALL" file="aura/google_wallpapers/small/2-landscape0.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE0_THUMB" file="aura/google_wallpapers/2-landscape0_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE1" file="aura/google_wallpapers/2-landscape1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE1_LARGE" file="aura/google_wallpapers/large/2-landscape1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE1_SMALL" file="aura/google_wallpapers/small/2-landscape1.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE1_THUMB" file="aura/google_wallpapers/2-landscape1_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE2" file="aura/google_wallpapers/2-landscape2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE2_LARGE" file="aura/google_wallpapers/large/2-landscape2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE2_SMALL" file="aura/google_wallpapers/small/2-landscape2.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE2_THUMB" file="aura/google_wallpapers/2-landscape2_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE3" file="aura/google_wallpapers/2-landscape3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE3_LARGE" file="aura/google_wallpapers/large/2-landscape3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE3_SMALL" file="aura/google_wallpapers/small/2-landscape3.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE3_THUMB" file="aura/google_wallpapers/2-landscape3_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE4" file="aura/google_wallpapers/2-landscape4.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE4_LARGE" file="aura/google_wallpapers/large/2-landscape4.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE4_SMALL" file="aura/google_wallpapers/small/2-landscape4.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE4_THUMB" file="aura/google_wallpapers/2-landscape4_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE5" file="aura/google_wallpapers/2-landscape5.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE5_LARGE" file="aura/google_wallpapers/large/2-landscape5.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE5_SMALL" file="aura/google_wallpapers/small/2-landscape5.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE5_THUMB" file="aura/google_wallpapers/2-landscape5_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE6" file="aura/google_wallpapers/2-landscape6.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE6_LARGE" file="aura/google_wallpapers/large/2-landscape6.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE6_SMALL" file="aura/google_wallpapers/small/2-landscape6.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE6_THUMB" file="aura/google_wallpapers/2-landscape6_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE7" file="aura/google_wallpapers/2-landscape7.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE7_LARGE" file="aura/google_wallpapers/large/2-landscape7.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE7_SMALL" file="aura/google_wallpapers/small/2-landscape7.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_2_LANDSCAPE7_THUMB" file="aura/google_wallpapers/2-landscape7_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_3_URBAN0" file="aura/google_wallpapers/3-urban0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN0_LARGE" file="aura/google_wallpapers/large/3-urban0.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN0_SMALL" file="aura/google_wallpapers/small/3-urban0.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_3_URBAN0_THUMB" file="aura/google_wallpapers/3-urban0_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_3_URBAN1" file="aura/google_wallpapers/3-urban1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN1_LARGE" file="aura/google_wallpapers/large/3-urban1.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN1_SMALL" file="aura/google_wallpapers/small/3-urban1.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_3_URBAN1_THUMB" file="aura/google_wallpapers/3-urban1_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_3_URBAN2" file="aura/google_wallpapers/3-urban2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN2_LARGE" file="aura/google_wallpapers/large/3-urban2.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN2_SMALL" file="aura/google_wallpapers/small/3-urban2.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_3_URBAN2_THUMB" file="aura/google_wallpapers/3-urban2_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_3_URBAN3" file="aura/google_wallpapers/3-urban3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN3_LARGE" file="aura/google_wallpapers/large/3-urban3.jpg" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_3_URBAN3_SMALL" file="aura/google_wallpapers/small/3-urban3.jpg" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_3_URBAN3_THUMB" file="aura/google_wallpapers/3-urban3_thumb.png" type="BINDATA" />
</if>
<!-- Wallpapers (gradients) used by Ash. -->
<if expr="pp_ifdef('use_ash')">
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT0" file="aura/wallpapers/5-gradient0.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT0_LARGE" file="aura/wallpapers/large/5-gradient0.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT0_SMALL" file="aura/wallpapers/small/5-gradient0.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT0_THUMB" file="aura/wallpapers/5-gradient0_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT1" file="aura/wallpapers/5-gradient1.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT1_LARGE" file="aura/wallpapers/large/5-gradient1.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT1_SMALL" file="aura/wallpapers/small/5-gradient1.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT1_THUMB" file="aura/wallpapers/5-gradient1_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT2" file="aura/wallpapers/5-gradient2.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT2_LARGE" file="aura/wallpapers/large/5-gradient2.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT2_SMALL" file="aura/wallpapers/small/5-gradient2.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT2_THUMB" file="aura/wallpapers/5-gradient2_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT3" file="aura/wallpapers/5-gradient3.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT3_LARGE" file="aura/wallpapers/large/5-gradient3.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT3_SMALL" file="aura/wallpapers/small/5-gradient3.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT3_THUMB" file="aura/wallpapers/5-gradient3_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT4" file="aura/wallpapers/5-gradient4.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT4_LARGE" file="aura/wallpapers/large/5-gradient4.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT4_SMALL" file="aura/wallpapers/small/5-gradient4.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT4_THUMB" file="aura/wallpapers/5-gradient4_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT5" file="aura/wallpapers/5-gradient5.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT5_LARGE" file="aura/wallpapers/large/5-gradient5.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT5_SMALL" file="aura/wallpapers/small/5-gradient5.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT5_THUMB" file="aura/wallpapers/5-gradient5_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT6" file="aura/wallpapers/5-gradient6.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT6_LARGE" file="aura/wallpapers/large/5-gradient6.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT6_SMALL" file="aura/wallpapers/small/5-gradient6.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT6_THUMB" file="aura/wallpapers/5-gradient6_thumb.png" type="BINDATA" />
- <include name="IDR_AURA_WALLPAPERS_5_GRADIENT7" file="aura/wallpapers/5-gradient7.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT7_LARGE" file="aura/wallpapers/large/5-gradient7.png" type="BINDATA" />
+ <include name="IDR_AURA_WALLPAPERS_5_GRADIENT7_SMALL" file="aura/wallpapers/small/5-gradient7.png" type="BINDATA" />
<include name="IDR_AURA_WALLPAPERS_5_GRADIENT7_THUMB" file="aura/wallpapers/5-gradient7_thumb.png" type="BINDATA" />
</if>
</includes>