| Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| index 168c632f511766e5a7433c295925a78d8a9b1ad1..30e6aa0cd04e7e60cb90961b39517383977db98a 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
|
| @@ -11,6 +11,7 @@
|
|
|
| #include "ash/public/interfaces/constants.mojom.h"
|
| #include "ash/public/interfaces/tray_action.mojom.h"
|
| +#include "ash/shelf/shelf_constants.h"
|
| #include "ash/shell.h"
|
| #include "ash/system/devicetype_utils.h"
|
| #include "ash/wm/lock_state_controller.h"
|
| @@ -51,7 +52,6 @@
|
| #include "chrome/browser/chromeos/login/ui/login_feedback.h"
|
| #include "chrome/browser/chromeos/login/ui/webui_login_display.h"
|
| #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
|
| -#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account.h"
|
| @@ -101,6 +101,7 @@
|
| #include "ui/base/ime/chromeos/input_method_manager.h"
|
| #include "ui/base/ime/chromeos/input_method_util.h"
|
| #include "ui/base/webui/web_ui_util.h"
|
| +#include "ui/gfx/color_utils.h"
|
|
|
| namespace {
|
|
|
| @@ -126,6 +127,11 @@ const char kNoLockScreenApps[] = "LOCK_SCREEN_APPS_STATE.NONE";
|
| const char kBackgroundLockScreenApps[] = "LOCK_SCREEN_APPS_STATE.BACKGROUND";
|
| const char kForegroundLockScreenApps[] = "LOCK_SCREEN_APPS_STATE.FOREGROUND";
|
|
|
| +// The alpha value for the signin screen background.
|
| +// TODO(crbug.com/732566): Move all constants related to views-based signin
|
| +// screen to a separate file.
|
| +constexpr int kLoginTranslucentAlpha = 76;
|
| +
|
| static bool Contains(const std::vector<std::string>& container,
|
| const std::string& value) {
|
| return std::find(container.begin(), container.end(), value) !=
|
| @@ -352,6 +358,7 @@ SigninScreenHandler::SigninScreenHandler(
|
| lock_screen_apps::StateController::IsEnabled()) {
|
| lock_screen_apps_observer_.Add(lock_screen_apps::StateController::Get());
|
| }
|
| + WallpaperManager::Get()->AddObserver(this);
|
| }
|
|
|
| SigninScreenHandler::~SigninScreenHandler() {
|
| @@ -371,6 +378,7 @@ SigninScreenHandler::~SigninScreenHandler() {
|
| network_state_informer_->RemoveObserver(this);
|
| proximity_auth::ScreenlockBridge::Get()->SetLockHandler(nullptr);
|
| proximity_auth::ScreenlockBridge::Get()->SetFocusedUser(EmptyAccountId());
|
| + WallpaperManager::Get()->RemoveObserver(this);
|
| }
|
|
|
| // static
|
| @@ -977,6 +985,22 @@ void SigninScreenHandler::ReloadGaia(bool force_reload) {
|
| gaia_screen_handler_->ReloadGaia(force_reload);
|
| }
|
|
|
| +void SigninScreenHandler::SetSigninScreenColors(SkColor dark_muted_color) {
|
| + // The dark muted color should have 100% opacity.
|
| + dark_muted_color = SkColorSetA(dark_muted_color, 0xFF);
|
| + SkColor base_color = color_utils::GetResultingPaintColor(
|
| + SkColorSetA(ash::kShelfDefaultBaseColor,
|
| + ash::kShelfTranslucentColorDarkenAlpha),
|
| + dark_muted_color);
|
| + SkColor background_color =
|
| + SkColorSetA(base_color, ash::kShelfTranslucentAlpha);
|
| + SkColor scroll_color = SkColorSetA(base_color, kLoginTranslucentAlpha);
|
| + CallJS("login.AccountPickerScreen.setOverlayColors",
|
| + color_utils::SkColorToRgbaString(dark_muted_color),
|
| + color_utils::SkColorToRgbaString(scroll_color),
|
| + color_utils::SkColorToRgbaString(background_color));
|
| +}
|
| +
|
| void SigninScreenHandler::Initialize() {
|
| // Preload PIN keyboard if any of the users can authenticate via PIN.
|
| if (user_manager::UserManager::IsInitialized()) {
|
| @@ -1017,6 +1041,17 @@ void SigninScreenHandler::OnCurrentScreenChanged(OobeScreen current_screen,
|
| }
|
| }
|
|
|
| +void SigninScreenHandler::OnWallpaperColorsChanged() {
|
| + base::Optional<SkColor> color = WallpaperManager::Get()->prominent_color();
|
| + // If color extraction fails, use transparent as default.
|
| + if (!color.has_value())
|
| + color = SK_ColorTRANSPARENT;
|
| + SetSigninScreenColors(color.value());
|
| +}
|
| +
|
| +void SigninScreenHandler::OnWallpaperAnimationFinished(
|
| + const AccountId& account_id) {}
|
| +
|
| void SigninScreenHandler::ClearAndEnablePassword() {
|
| core_oobe_view_->ResetSignInUI(false);
|
| }
|
|
|