Commit c3a3f671 authored by merkulova's avatar merkulova Committed by Commit bot

Wallpaper manager now observing user child user status to update default wallpaper.

BUG=461282

Review URL: https://codereview.chromium.org/952853002

Cr-Commit-Position: refs/heads/master@{#318666}
parent 4a636301
...@@ -307,6 +307,8 @@ WallpaperManager::WallpaperManager() ...@@ -307,6 +307,8 @@ WallpaperManager::WallpaperManager()
base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
wallpaper_loader_ = new UserImageLoader(ImageDecoder::ROBUST_JPEG_CODEC, wallpaper_loader_ = new UserImageLoader(ImageDecoder::ROBUST_JPEG_CODEC,
task_runner_); task_runner_);
user_manager::UserManager::Get()->AddSessionStateObserver(this);
} }
WallpaperManager::~WallpaperManager() { WallpaperManager::~WallpaperManager() {
...@@ -314,6 +316,8 @@ WallpaperManager::~WallpaperManager() { ...@@ -314,6 +316,8 @@ WallpaperManager::~WallpaperManager() {
// http://crbug.com/171694 // http://crbug.com/171694
DCHECK(!show_user_name_on_signin_subscription_); DCHECK(!show_user_name_on_signin_subscription_);
user_manager::UserManager::Get()->RemoveSessionStateObserver(this);
ClearObsoleteWallpaperPrefs(); ClearObsoleteWallpaperPrefs();
weak_factory_.InvalidateWeakPtrs(); weak_factory_.InvalidateWeakPtrs();
} }
...@@ -966,6 +970,10 @@ size_t WallpaperManager::GetPendingListSizeForTesting() const { ...@@ -966,6 +970,10 @@ size_t WallpaperManager::GetPendingListSizeForTesting() const {
return loading_.size(); return loading_.size();
} }
void WallpaperManager::UserChangedChildStatus(user_manager::User* user) {
SetUserWallpaperNow(user->email());
}
void WallpaperManager::OnDefaultWallpaperDecoded( void WallpaperManager::OnDefaultWallpaperDecoded(
const base::FilePath& path, const base::FilePath& path,
const wallpaper::WallpaperLayout layout, const wallpaper::WallpaperLayout layout,
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/cros_settings.h"
#include "components/user_manager/user.h" #include "components/user_manager/user.h"
#include "components/user_manager/user_image/user_image.h" #include "components/user_manager/user_image/user_image.h"
#include "components/user_manager/user_manager.h"
#include "components/wallpaper/wallpaper_layout.h" #include "components/wallpaper/wallpaper_layout.h"
#include "components/wallpaper/wallpaper_manager_base.h" #include "components/wallpaper/wallpaper_manager_base.h"
#include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_observer.h"
...@@ -30,7 +31,9 @@ ...@@ -30,7 +31,9 @@
namespace chromeos { namespace chromeos {
class WallpaperManager : public wallpaper::WallpaperManagerBase { class WallpaperManager :
public wallpaper::WallpaperManagerBase,
public user_manager::UserManager::UserSessionStateObserver {
public: public:
class PendingWallpaper; class PendingWallpaper;
...@@ -115,6 +118,9 @@ class WallpaperManager : public wallpaper::WallpaperManagerBase { ...@@ -115,6 +118,9 @@ class WallpaperManager : public wallpaper::WallpaperManagerBase {
// Returns queue size. // Returns queue size.
size_t GetPendingListSizeForTesting() const override; size_t GetPendingListSizeForTesting() const override;
// Overridden from user_manager::UserManager::UserSessionStateObserver:
void UserChangedChildStatus(user_manager::User* user) override;
private: private:
friend class TestApi; friend class TestApi;
friend class WallpaperManagerBrowserTest; friend class WallpaperManagerBrowserTest;
......
...@@ -18,10 +18,12 @@ ...@@ -18,10 +18,12 @@
#include "base/logging.h" #include "base/logging.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h" #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
#include "chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.h" #include "chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "components/user_manager/fake_user_manager.h"
#include "components/user_manager/user_info.h" #include "components/user_manager/user_info.h"
#include "ui/aura/client/aura_constants.h" #include "ui/aura/client/aura_constants.h"
#include "ui/aura/window_event_dispatcher.h" #include "ui/aura/window_event_dispatcher.h"
...@@ -39,7 +41,9 @@ class MultiUserWindowManagerChromeOSTest : public AshTestBase { ...@@ -39,7 +41,9 @@ class MultiUserWindowManagerChromeOSTest : public AshTestBase {
public: public:
MultiUserWindowManagerChromeOSTest() MultiUserWindowManagerChromeOSTest()
: multi_user_window_manager_(NULL), : multi_user_window_manager_(NULL),
session_state_delegate_(NULL) {} session_state_delegate_(NULL),
fake_user_manager_(new user_manager::FakeUserManager),
user_manager_enabler_(fake_user_manager_) {}
void SetUp() override; void SetUp() override;
void TearDown() override; void TearDown() override;
...@@ -158,6 +162,10 @@ class MultiUserWindowManagerChromeOSTest : public AshTestBase { ...@@ -158,6 +162,10 @@ class MultiUserWindowManagerChromeOSTest : public AshTestBase {
// The session state delegate. // The session state delegate.
ash::test::TestSessionStateDelegate* session_state_delegate_; ash::test::TestSessionStateDelegate* session_state_delegate_;
user_manager::FakeUserManager* fake_user_manager_; // Not owned.
chromeos::ScopedUserManagerEnabler user_manager_enabler_;
// The maximized window manager (if enabled). // The maximized window manager (if enabled).
scoped_ptr<MaximizeModeWindowManager> maximize_mode_window_manager_; scoped_ptr<MaximizeModeWindowManager> maximize_mode_window_manager_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment