| Index: ash/desktop_background/desktop_background_controller.cc
 | 
| diff --git a/ash/desktop_background/desktop_background_controller.cc b/ash/desktop_background/desktop_background_controller.cc
 | 
| index 8b54cb5b295ca7155edd9c679965b07114d6a07a..e75699779745cd6a4e3121c23f816b9ed21d51f5 100644
 | 
| --- a/ash/desktop_background/desktop_background_controller.cc
 | 
| +++ b/ash/desktop_background/desktop_background_controller.cc
 | 
| @@ -43,6 +43,8 @@ const int kWallpaperReloadDelayMs = 2000;
 | 
|  
 | 
|  }  // namespace
 | 
|  
 | 
| +const int DesktopBackgroundController::kInvalidResourceID = -1;
 | 
| +
 | 
|  DesktopBackgroundController::DesktopBackgroundController()
 | 
|      : locked_(false),
 | 
|        desktop_background_mode_(BACKGROUND_NONE),
 | 
| @@ -83,7 +85,8 @@ bool DesktopBackgroundController::SetWallpaperImage(const gfx::ImageSkia& image,
 | 
|    VLOG(1) << "SetWallpaper: image_id=" << WallpaperResizer::GetImageId(image)
 | 
|            << " layout=" << layout;
 | 
|  
 | 
| -  if (WallpaperIsAlreadyLoaded(&image, kInvalidResourceID, layout)) {
 | 
| +  if (WallpaperIsAlreadyLoaded(
 | 
| +          &image, kInvalidResourceID, true /* compare_layouts */, layout)) {
 | 
|      VLOG(1) << "Wallpaper is already loaded";
 | 
|      return false;
 | 
|    }
 | 
| @@ -104,7 +107,8 @@ bool DesktopBackgroundController::SetWallpaperResource(int resource_id,
 | 
|    VLOG(1) << "SetWallpaper: resource_id=" << resource_id
 | 
|            << " layout=" << layout;
 | 
|  
 | 
| -  if (WallpaperIsAlreadyLoaded(NULL, resource_id, layout)) {
 | 
| +  if (WallpaperIsAlreadyLoaded(
 | 
| +          NULL, resource_id, true /* compare_layouts */, layout)) {
 | 
|      VLOG(1) << "Wallpaper is already loaded";
 | 
|      return false;
 | 
|    }
 | 
| @@ -196,11 +200,13 @@ gfx::Size DesktopBackgroundController::GetMaxDisplaySizeInNative() {
 | 
|  bool DesktopBackgroundController::WallpaperIsAlreadyLoaded(
 | 
|      const gfx::ImageSkia* image,
 | 
|      int resource_id,
 | 
| +    bool compare_layouts,
 | 
|      WallpaperLayout layout) const {
 | 
|    if (!current_wallpaper_.get())
 | 
|      return false;
 | 
|  
 | 
| -  if (layout != current_wallpaper_->layout())
 | 
| +  // Compare layouts only if necessary.
 | 
| +  if (compare_layouts && layout != current_wallpaper_->layout())
 | 
|      return false;
 | 
|  
 | 
|    if (image) {
 | 
| 
 |