Consumer management enrollment signin screen change:
- Show Gaia signin page instead of account picker. - Pre-fill owner email in Gaia signin page. - Show only the enrollment message in Gaia screen right panel. - Show only a cancel button (in addition to Shutdown) at the bottom. BUG=chromium:353050 TEST=manually test the signin page. Review URL: https://codereview.chromium.org/426153003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287143 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
chrome
app
browser
resources
ui
ui/login
@@ -5053,6 +5053,9 @@ Battery full
|
|||||||
<message name="IDS_LOGIN_CONNECTING_INDICATOR_TEXT" desc="A message to show telling the user that the device is attempting to re-connect to the network.">
|
<message name="IDS_LOGIN_CONNECTING_INDICATOR_TEXT" desc="A message to show telling the user that the device is attempting to re-connect to the network.">
|
||||||
Connecting and verifying<ph name="ANIMATED_ELLIPSIS">$1<ex>...</ex></ph>
|
Connecting and verifying<ph name="ANIMATED_ELLIPSIS">$1<ex>...</ex></ph>
|
||||||
</message>
|
</message>
|
||||||
|
<message name="IDS_LOGIN_CONSUMER_MANAGEMENT_ENROLLMENT" desc="A message to show at the signin page when consumer management enrollment is in progress.">
|
||||||
|
The owner must sign in to complete enrollment with Google Device Manager.
|
||||||
|
</message>
|
||||||
|
|
||||||
<!-- Idle warning dialog -->
|
<!-- Idle warning dialog -->
|
||||||
<message name="IDS_IDLE_WARNING_TITLE" desc="Title of the warning dialog shown when the user becomes idle and is about to get logged out.">
|
<message name="IDS_IDLE_WARNING_TITLE" desc="Title of the warning dialog shown when the user becomes idle and is about to get logged out.">
|
||||||
|
@@ -26,4 +26,10 @@
|
|||||||
i18n-content="cancel"></button>
|
i18n-content="cancel"></button>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="cancel-consumer-management-enrollment" class="header-bar-item"
|
||||||
|
hidden>
|
||||||
|
<button id="cancel-consumer-management-enrollment-button"
|
||||||
|
class="custom-appearance" i18n-content="cancel"></button>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -45,6 +45,9 @@ cr.define('login', function() {
|
|||||||
this.handleSignoutClick_);
|
this.handleSignoutClick_);
|
||||||
$('cancel-multiple-sign-in-button').addEventListener('click',
|
$('cancel-multiple-sign-in-button').addEventListener('click',
|
||||||
this.handleCancelMultipleSignInClick_);
|
this.handleCancelMultipleSignInClick_);
|
||||||
|
$('cancel-consumer-management-enrollment-button')
|
||||||
|
.addEventListener('click',
|
||||||
|
this.handleCancelConsumerManagementEnrollmentClick_);
|
||||||
if (Oobe.getInstance().displayType == DISPLAY_TYPE.LOGIN ||
|
if (Oobe.getInstance().displayType == DISPLAY_TYPE.LOGIN ||
|
||||||
Oobe.getInstance().displayType == DISPLAY_TYPE.OOBE) {
|
Oobe.getInstance().displayType == DISPLAY_TYPE.OOBE) {
|
||||||
if (Oobe.getInstance().newKioskUI)
|
if (Oobe.getInstance().newKioskUI)
|
||||||
@@ -153,6 +156,16 @@ cr.define('login', function() {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancel consumer management enrollment button handler.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
handleCancelConsumerManagementEnrollmentClick_: function(e) {
|
||||||
|
chrome.send('cancelConsumerManagementEnrollment');
|
||||||
|
e.stopPropagation();
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If true then "Browse as Guest" button is shown.
|
* If true then "Browse as Guest" button is shown.
|
||||||
*
|
*
|
||||||
@@ -213,6 +226,8 @@ cr.define('login', function() {
|
|||||||
(this.signinUIState_ == SIGNIN_UI_STATE.WRONG_HWID_WARNING);
|
(this.signinUIState_ == SIGNIN_UI_STATE.WRONG_HWID_WARNING);
|
||||||
var isSamlPasswordConfirm =
|
var isSamlPasswordConfirm =
|
||||||
(this.signinUIState_ == SIGNIN_UI_STATE.SAML_PASSWORD_CONFIRM);
|
(this.signinUIState_ == SIGNIN_UI_STATE.SAML_PASSWORD_CONFIRM);
|
||||||
|
var isEnrollingConsumerManagement = (this.signinUIState_ ==
|
||||||
|
SIGNIN_UI_STATE.CONSUMER_MANAGEMENT_ENROLLMENT);
|
||||||
var isMultiProfilesUI =
|
var isMultiProfilesUI =
|
||||||
(Oobe.getInstance().displayType == DISPLAY_TYPE.USER_ADDING);
|
(Oobe.getInstance().displayType == DISPLAY_TYPE.USER_ADDING);
|
||||||
var isLockScreen =
|
var isLockScreen =
|
||||||
@@ -237,6 +252,8 @@ cr.define('login', function() {
|
|||||||
$('apps-header-bar-item').hidden = !this.hasApps_ ||
|
$('apps-header-bar-item').hidden = !this.hasApps_ ||
|
||||||
(!gaiaIsActive && !accountPickerIsActive);
|
(!gaiaIsActive && !accountPickerIsActive);
|
||||||
$('cancel-multiple-sign-in-item').hidden = !isMultiProfilesUI;
|
$('cancel-multiple-sign-in-item').hidden = !isMultiProfilesUI;
|
||||||
|
$('cancel-consumer-management-enrollment').hidden =
|
||||||
|
!isEnrollingConsumerManagement;
|
||||||
|
|
||||||
if (!Oobe.getInstance().newKioskUI) {
|
if (!Oobe.getInstance().newKioskUI) {
|
||||||
if (!$('apps-header-bar-item').hidden)
|
if (!$('apps-header-bar-item').hidden)
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
<div id="createSupervisedUserLinkPlaceholder"></div>
|
<div id="createSupervisedUserLinkPlaceholder"></div>
|
||||||
<div id="createSupervisedUserNoManagerText" hidden></div>
|
<div id="createSupervisedUserNoManagerText" hidden></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="consumerManagementEnrollment" class="signin-text"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="gaia-loading" class="step-loading">
|
<div id="gaia-loading" class="step-loading">
|
||||||
|
@@ -55,6 +55,13 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
|
|||||||
*/
|
*/
|
||||||
email: '',
|
email: '',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether consumer management enrollment is in progress.
|
||||||
|
* @type {boolean}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
isEnrollingConsumerManagement_: false,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timer id of pending load.
|
* Timer id of pending load.
|
||||||
* @type {number}
|
* @type {number}
|
||||||
@@ -211,7 +218,10 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
|
|||||||
*/
|
*/
|
||||||
onBeforeShow: function(data) {
|
onBeforeShow: function(data) {
|
||||||
chrome.send('loginUIStateChanged', ['gaia-signin', true]);
|
chrome.send('loginUIStateChanged', ['gaia-signin', true]);
|
||||||
$('login-header-bar').signinUIState = SIGNIN_UI_STATE.GAIA_SIGNIN;
|
$('login-header-bar').signinUIState =
|
||||||
|
this.isEnrollingConsumerManagement_ ?
|
||||||
|
SIGNIN_UI_STATE.CONSUMER_MANAGEMENT_ENROLLMENT :
|
||||||
|
SIGNIN_UI_STATE.GAIA_SIGNIN;
|
||||||
|
|
||||||
// Ensure that GAIA signin (or loading UI) is actually visible.
|
// Ensure that GAIA signin (or loading UI) is actually visible.
|
||||||
window.webkitRequestAnimationFrame(function() {
|
window.webkitRequestAnimationFrame(function() {
|
||||||
@@ -308,14 +318,20 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
|
|||||||
$('createSupervisedUserNoManagerText').textContent =
|
$('createSupervisedUserNoManagerText').textContent =
|
||||||
data.supervisedUsersRestrictionReason;
|
data.supervisedUsersRestrictionReason;
|
||||||
|
|
||||||
|
$('consumerManagementEnrollment').hidden =
|
||||||
|
!data.isEnrollingConsumerManagement;
|
||||||
|
|
||||||
this.isShowUsers_ = data.isShowUsers;
|
this.isShowUsers_ = data.isShowUsers;
|
||||||
this.updateCancelButtonState();
|
this.updateCancelButtonState();
|
||||||
|
|
||||||
|
this.isEnrollingConsumerManagement_ = data.isEnrollingConsumerManagement;
|
||||||
|
|
||||||
// Sign-in right panel is hidden if all of its items are hidden.
|
// Sign-in right panel is hidden if all of its items are hidden.
|
||||||
var noRightPanel = $('gaia-signin-reason').hidden &&
|
var noRightPanel = $('gaia-signin-reason').hidden &&
|
||||||
$('createAccount').hidden &&
|
$('createAccount').hidden &&
|
||||||
$('guestSignin').hidden &&
|
$('guestSignin').hidden &&
|
||||||
$('createSupervisedUserPane').hidden;
|
$('createSupervisedUserPane').hidden &&
|
||||||
|
$('consumerManagementEnrollment').hidden;
|
||||||
this.classList.toggle('no-right-panel', noRightPanel);
|
this.classList.toggle('no-right-panel', noRightPanel);
|
||||||
if (Oobe.getInstance().currentScreen === this)
|
if (Oobe.getInstance().currentScreen === this)
|
||||||
Oobe.getInstance().updateScreenSize(this);
|
Oobe.getInstance().updateScreenSize(this);
|
||||||
@@ -563,6 +579,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
|
|||||||
'createSupervisedUser',
|
'createSupervisedUser',
|
||||||
'<a id="createSupervisedUserLink" class="signin-link" href="#">',
|
'<a id="createSupervisedUserLink" class="signin-link" href="#">',
|
||||||
'</a>');
|
'</a>');
|
||||||
|
$('consumerManagementEnrollment').innerHTML = loadTimeData.getString(
|
||||||
|
'consumerManagementEnrollmentSigninMessage');
|
||||||
$('createAccountLink').addEventListener('click', function(e) {
|
$('createAccountLink').addEventListener('click', function(e) {
|
||||||
chrome.send('createAccount');
|
chrome.send('createAccount');
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@@ -36,7 +36,8 @@ namespace {
|
|||||||
|
|
||||||
const char kJsScreenPath[] = "login.GaiaSigninScreen";
|
const char kJsScreenPath[] = "login.GaiaSigninScreen";
|
||||||
|
|
||||||
void UpdateAuthParams(base::DictionaryValue* params, bool has_users) {
|
void UpdateAuthParams(base::DictionaryValue* params, bool has_users,
|
||||||
|
bool is_enrolling_consumer_management) {
|
||||||
CrosSettings* cros_settings = CrosSettings::Get();
|
CrosSettings* cros_settings = CrosSettings::Get();
|
||||||
bool allow_new_user = true;
|
bool allow_new_user = true;
|
||||||
cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
|
cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
|
||||||
@@ -73,7 +74,10 @@ void UpdateAuthParams(base::DictionaryValue* params, bool has_users) {
|
|||||||
|
|
||||||
// Now check whether we're in multi-profiles user adding scenario and
|
// Now check whether we're in multi-profiles user adding scenario and
|
||||||
// disable GAIA right panel features if that's the case.
|
// disable GAIA right panel features if that's the case.
|
||||||
if (UserAddingScreen::Get()->IsRunning()) {
|
// For consumer management enrollment, we also hide all right panel components
|
||||||
|
// and show only an enrollment message.
|
||||||
|
if (UserAddingScreen::Get()->IsRunning() ||
|
||||||
|
is_enrolling_consumer_management) {
|
||||||
params->SetBoolean("createAccount", false);
|
params->SetBoolean("createAccount", false);
|
||||||
params->SetBoolean("guestSignin", false);
|
params->SetBoolean("guestSignin", false);
|
||||||
params->SetBoolean("supervisedUsersEnabled", false);
|
params->SetBoolean("supervisedUsersEnabled", false);
|
||||||
@@ -116,6 +120,7 @@ GaiaScreenHandler::GaiaScreenHandler(
|
|||||||
focus_stolen_(false),
|
focus_stolen_(false),
|
||||||
gaia_silent_load_(false),
|
gaia_silent_load_(false),
|
||||||
using_saml_api_(false),
|
using_saml_api_(false),
|
||||||
|
is_enrolling_consumer_management_(false),
|
||||||
test_expects_complete_login_(false),
|
test_expects_complete_login_(false),
|
||||||
signin_screen_handler_(NULL),
|
signin_screen_handler_(NULL),
|
||||||
weak_factory_(this) {
|
weak_factory_(this) {
|
||||||
@@ -134,8 +139,11 @@ void GaiaScreenHandler::LoadGaia(const GaiaContext& context) {
|
|||||||
params.SetBoolean("isShowUsers", context.show_users);
|
params.SetBoolean("isShowUsers", context.show_users);
|
||||||
params.SetBoolean("useOffline", context.use_offline);
|
params.SetBoolean("useOffline", context.use_offline);
|
||||||
params.SetString("email", context.email);
|
params.SetString("email", context.email);
|
||||||
|
params.SetBoolean("isEnrollingConsumerManagement",
|
||||||
|
context.is_enrolling_consumer_management);
|
||||||
|
|
||||||
UpdateAuthParams(¶ms, context.has_users);
|
UpdateAuthParams(¶ms, context.has_users,
|
||||||
|
context.is_enrolling_consumer_management);
|
||||||
|
|
||||||
if (!context.use_offline) {
|
if (!context.use_offline) {
|
||||||
const std::string app_locale = g_browser_process->GetApplicationLocale();
|
const std::string app_locale = g_browser_process->GetApplicationLocale();
|
||||||
@@ -178,7 +186,8 @@ void GaiaScreenHandler::LoadGaia(const GaiaContext& context) {
|
|||||||
|
|
||||||
void GaiaScreenHandler::UpdateGaia(const GaiaContext& context) {
|
void GaiaScreenHandler::UpdateGaia(const GaiaContext& context) {
|
||||||
base::DictionaryValue params;
|
base::DictionaryValue params;
|
||||||
UpdateAuthParams(¶ms, context.has_users);
|
UpdateAuthParams(¶ms, context.has_users,
|
||||||
|
context.is_enrolling_consumer_management);
|
||||||
CallJS("updateAuthExtension", params);
|
CallJS("updateAuthExtension", params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,6 +218,8 @@ void GaiaScreenHandler::DeclareLocalizedValues(
|
|||||||
IDS_CREATE_LOCALLY_MANAGED_USER_HTML);
|
IDS_CREATE_LOCALLY_MANAGED_USER_HTML);
|
||||||
builder->Add("createSupervisedUserFeatureName",
|
builder->Add("createSupervisedUserFeatureName",
|
||||||
IDS_CREATE_LOCALLY_MANAGED_USER_FEATURE_NAME);
|
IDS_CREATE_LOCALLY_MANAGED_USER_FEATURE_NAME);
|
||||||
|
builder->Add("consumerManagementEnrollmentSigninMessage",
|
||||||
|
IDS_LOGIN_CONSUMER_MANAGEMENT_ENROLLMENT);
|
||||||
|
|
||||||
// Strings used by the SAML fatal error dialog.
|
// Strings used by the SAML fatal error dialog.
|
||||||
builder->Add("fatalErrorMessageNoEmail", IDS_LOGIN_FATAL_ERROR_NO_EMAIL);
|
builder->Add("fatalErrorMessageNoEmail", IDS_LOGIN_FATAL_ERROR_NO_EMAIL);
|
||||||
@@ -278,6 +289,14 @@ void GaiaScreenHandler::HandleCompleteAuthentication(
|
|||||||
void GaiaScreenHandler::HandleCompleteLogin(const std::string& typed_email,
|
void GaiaScreenHandler::HandleCompleteLogin(const std::string& typed_email,
|
||||||
const std::string& password,
|
const std::string& password,
|
||||||
bool using_saml) {
|
bool using_saml) {
|
||||||
|
std::string owner_email = UserManager::Get()->GetOwnerEmail();
|
||||||
|
if (is_enrolling_consumer_management_ && typed_email != owner_email) {
|
||||||
|
// Show Gaia signin page again since we only allow the owner to sign in.
|
||||||
|
populated_email_ = owner_email;
|
||||||
|
ShowGaia(is_enrolling_consumer_management_);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!Delegate())
|
if (!Delegate())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -446,7 +465,8 @@ void GaiaScreenHandler::SetSAMLPrincipalsAPIUsed(bool api_used) {
|
|||||||
UMA_HISTOGRAM_BOOLEAN("ChromeOS.SAML.APIUsed", api_used);
|
UMA_HISTOGRAM_BOOLEAN("ChromeOS.SAML.APIUsed", api_used);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GaiaScreenHandler::ShowGaia() {
|
void GaiaScreenHandler::ShowGaia(bool is_enrolling_consumer_management) {
|
||||||
|
is_enrolling_consumer_management_ = is_enrolling_consumer_management;
|
||||||
if (gaia_silent_load_ && populated_email_.empty()) {
|
if (gaia_silent_load_ && populated_email_.empty()) {
|
||||||
dns_cleared_ = true;
|
dns_cleared_ = true;
|
||||||
cookies_cleared_ = true;
|
cookies_cleared_ = true;
|
||||||
@@ -523,6 +543,7 @@ void GaiaScreenHandler::LoadAuthExtension(bool force,
|
|||||||
password_changed_for_.count(populated_email_);
|
password_changed_for_.count(populated_email_);
|
||||||
context.use_offline = offline;
|
context.use_offline = offline;
|
||||||
context.email = populated_email_;
|
context.email = populated_email_;
|
||||||
|
context.is_enrolling_consumer_management = is_enrolling_consumer_management_;
|
||||||
if (Delegate()) {
|
if (Delegate()) {
|
||||||
context.show_users = Delegate()->IsShowUsers();
|
context.show_users = Delegate()->IsShowUsers();
|
||||||
context.has_users = !Delegate()->GetUsers().empty();
|
context.has_users = !Delegate()->GetUsers().empty();
|
||||||
|
@@ -39,6 +39,9 @@ struct GaiaContext {
|
|||||||
|
|
||||||
// Email of current user.
|
// Email of current user.
|
||||||
std::string email;
|
std::string email;
|
||||||
|
|
||||||
|
// Whether consumer management enrollment is in progress.
|
||||||
|
bool is_enrolling_consumer_management;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A class that handles WebUI hooks in Gaia screen.
|
// A class that handles WebUI hooks in Gaia screen.
|
||||||
@@ -116,7 +119,7 @@ class GaiaScreenHandler : public BaseScreenHandler {
|
|||||||
// principals API was used during SAML login.
|
// principals API was used during SAML login.
|
||||||
void SetSAMLPrincipalsAPIUsed(bool api_used);
|
void SetSAMLPrincipalsAPIUsed(bool api_used);
|
||||||
|
|
||||||
void ShowGaia();
|
void ShowGaia(bool is_enrolling_consumer_management);
|
||||||
|
|
||||||
// Shows signin screen after dns cache and cookie cleanup operations finish.
|
// Shows signin screen after dns cache and cookie cleanup operations finish.
|
||||||
void ShowGaiaScreenIfReady();
|
void ShowGaiaScreenIfReady();
|
||||||
@@ -178,6 +181,9 @@ class GaiaScreenHandler : public BaseScreenHandler {
|
|||||||
// API was used.
|
// API was used.
|
||||||
bool using_saml_api_;
|
bool using_saml_api_;
|
||||||
|
|
||||||
|
// Whether consumer management enrollment is in progress.
|
||||||
|
bool is_enrolling_consumer_management_;
|
||||||
|
|
||||||
// Test credentials.
|
// Test credentials.
|
||||||
std::string test_user_;
|
std::string test_user_;
|
||||||
std::string test_pass_;
|
std::string test_pass_;
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include "base/bind.h"
|
#include "base/bind.h"
|
||||||
#include "base/bind_helpers.h"
|
#include "base/bind_helpers.h"
|
||||||
|
#include "base/command_line.h"
|
||||||
#include "base/debug/trace_event.h"
|
#include "base/debug/trace_event.h"
|
||||||
#include "base/location.h"
|
#include "base/location.h"
|
||||||
#include "base/logging.h"
|
#include "base/logging.h"
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
#include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
|
#include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
|
||||||
#include "chrome/browser/chromeos/login/ui/webui_login_display.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/multi_profile_user_controller.h"
|
||||||
|
#include "chrome/browser/chromeos/login/users/user_manager.h"
|
||||||
#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
|
#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
|
||||||
#include "chrome/browser/chromeos/login/wizard_controller.h"
|
#include "chrome/browser/chromeos/login/wizard_controller.h"
|
||||||
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
||||||
@@ -52,6 +54,7 @@
|
|||||||
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
|
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
|
||||||
#include "chrome/common/pref_names.h"
|
#include "chrome/common/pref_names.h"
|
||||||
#include "chrome/common/url_constants.h"
|
#include "chrome/common/url_constants.h"
|
||||||
|
#include "chromeos/chromeos_switches.h"
|
||||||
#include "chromeos/dbus/dbus_thread_manager.h"
|
#include "chromeos/dbus/dbus_thread_manager.h"
|
||||||
#include "chromeos/dbus/power_manager_client.h"
|
#include "chromeos/dbus/power_manager_client.h"
|
||||||
#include "chromeos/ime/ime_keyboard.h"
|
#include "chromeos/ime/ime_keyboard.h"
|
||||||
@@ -295,6 +298,13 @@ SigninScreenHandler::SigninScreenHandler(
|
|||||||
chromeos::input_method::InputMethodManager::Get()->GetImeKeyboard();
|
chromeos::input_method::InputMethodManager::Get()->GetImeKeyboard();
|
||||||
if (keyboard)
|
if (keyboard)
|
||||||
keyboard->AddObserver(this);
|
keyboard->AddObserver(this);
|
||||||
|
|
||||||
|
CommandLine* command_line = CommandLine::ForCurrentProcess();
|
||||||
|
PrefService* prefs = g_browser_process->local_state();
|
||||||
|
is_enrolling_consumer_management_ =
|
||||||
|
command_line->HasSwitch(chromeos::switches::kEnableConsumerManagement) &&
|
||||||
|
prefs->GetBoolean(prefs::kConsumerManagementEnrollmentRequested);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SigninScreenHandler::~SigninScreenHandler() {
|
SigninScreenHandler::~SigninScreenHandler() {
|
||||||
@@ -418,7 +428,17 @@ void SigninScreenHandler::Show(const LoginScreenContext& context) {
|
|||||||
|
|
||||||
// Just initialize internal fields from context and call ShowImpl().
|
// Just initialize internal fields from context and call ShowImpl().
|
||||||
oobe_ui_ = context.oobe_ui();
|
oobe_ui_ = context.oobe_ui();
|
||||||
gaia_screen_handler_->PopulateEmail(context.email());
|
|
||||||
|
std::string email;
|
||||||
|
if (is_enrolling_consumer_management_) {
|
||||||
|
// We don't check if the value of the owner email is trusted because it is
|
||||||
|
// only used to pre-fill the email field in Gaia sign-in page and a cached
|
||||||
|
// value is sufficient.
|
||||||
|
CrosSettings::Get()->GetString(kDeviceOwner, &email);
|
||||||
|
} else {
|
||||||
|
email = context.email();
|
||||||
|
}
|
||||||
|
gaia_screen_handler_->PopulateEmail(email);
|
||||||
ShowImpl();
|
ShowImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -457,7 +477,7 @@ void SigninScreenHandler::ShowImpl() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oobe_ui_) {
|
if (oobe_ui_ || is_enrolling_consumer_management_) {
|
||||||
// Shows new user sign-in for OOBE.
|
// Shows new user sign-in for OOBE.
|
||||||
OnShowAddUser();
|
OnShowAddUser();
|
||||||
} else {
|
} else {
|
||||||
@@ -749,6 +769,8 @@ void SigninScreenHandler::RegisterMessages() {
|
|||||||
&SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail);
|
&SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail);
|
||||||
AddCallback("getPublicSessionKeyboardLayouts",
|
AddCallback("getPublicSessionKeyboardLayouts",
|
||||||
&SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts);
|
&SigninScreenHandler::HandleGetPublicSessionKeyboardLayouts);
|
||||||
|
AddCallback("cancelConsumerManagementEnrollment",
|
||||||
|
&SigninScreenHandler::HandleCancelConsumerManagementEnrollment);
|
||||||
|
|
||||||
|
|
||||||
// This message is sent by the kiosk app menu, but is handled here
|
// This message is sent by the kiosk app menu, but is handled here
|
||||||
@@ -1322,6 +1344,13 @@ void SigninScreenHandler::HandleLaunchKioskApp(const std::string& app_id,
|
|||||||
delegate_->Login(context, specifics);
|
delegate_->Login(context, specifics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SigninScreenHandler::HandleCancelConsumerManagementEnrollment() {
|
||||||
|
PrefService* prefs = g_browser_process->local_state();
|
||||||
|
prefs->SetBoolean(prefs::kConsumerManagementEnrollmentRequested, false);
|
||||||
|
is_enrolling_consumer_management_ = false;
|
||||||
|
ShowImpl();
|
||||||
|
}
|
||||||
|
|
||||||
bool SigninScreenHandler::AllWhitelistedUsersPresent() {
|
bool SigninScreenHandler::AllWhitelistedUsersPresent() {
|
||||||
CrosSettings* cros_settings = CrosSettings::Get();
|
CrosSettings* cros_settings = CrosSettings::Get();
|
||||||
bool allow_new_user = false;
|
bool allow_new_user = false;
|
||||||
@@ -1427,7 +1456,7 @@ void SigninScreenHandler::ContinueKioskEnableFlow(
|
|||||||
void SigninScreenHandler::OnShowAddUser() {
|
void SigninScreenHandler::OnShowAddUser() {
|
||||||
is_account_picker_showing_first_time_ = false;
|
is_account_picker_showing_first_time_ = false;
|
||||||
DCHECK(gaia_screen_handler_);
|
DCHECK(gaia_screen_handler_);
|
||||||
gaia_screen_handler_->ShowGaia();
|
gaia_screen_handler_->ShowGaia(is_enrolling_consumer_management_);
|
||||||
}
|
}
|
||||||
|
|
||||||
GaiaScreenHandler::FrameState SigninScreenHandler::FrameState() const {
|
GaiaScreenHandler::FrameState SigninScreenHandler::FrameState() const {
|
||||||
|
@@ -359,6 +359,7 @@ class SigninScreenHandler
|
|||||||
void HandleRetrieveAuthenticatedUserEmail(double attempt_token);
|
void HandleRetrieveAuthenticatedUserEmail(double attempt_token);
|
||||||
void HandleGetPublicSessionKeyboardLayouts(const std::string& user_id,
|
void HandleGetPublicSessionKeyboardLayouts(const std::string& user_id,
|
||||||
const std::string& locale);
|
const std::string& locale);
|
||||||
|
void HandleCancelConsumerManagementEnrollment();
|
||||||
|
|
||||||
// Sends the list of keyboard layouts available for the currently selected
|
// Sends the list of keyboard layouts available for the currently selected
|
||||||
// public session locale.
|
// public session locale.
|
||||||
@@ -470,6 +471,9 @@ class SigninScreenHandler
|
|||||||
// Helper that retrieves the authenticated user's e-mail address.
|
// Helper that retrieves the authenticated user's e-mail address.
|
||||||
scoped_ptr<AuthenticatedUserEmailRetriever> email_retriever_;
|
scoped_ptr<AuthenticatedUserEmailRetriever> email_retriever_;
|
||||||
|
|
||||||
|
// Whether consumer management enrollment is in progress.
|
||||||
|
bool is_enrolling_consumer_management_;
|
||||||
|
|
||||||
base::WeakPtrFactory<SigninScreenHandler> weak_factory_;
|
base::WeakPtrFactory<SigninScreenHandler> weak_factory_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler);
|
DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler);
|
||||||
|
@@ -55,6 +55,7 @@
|
|||||||
WRONG_HWID_WARNING: 3,
|
WRONG_HWID_WARNING: 3,
|
||||||
SUPERVISED_USER_CREATION_FLOW: 4,
|
SUPERVISED_USER_CREATION_FLOW: 4,
|
||||||
SAML_PASSWORD_CONFIRM: 5,
|
SAML_PASSWORD_CONFIRM: 5,
|
||||||
|
CONSUMER_MANAGEMENT_ENROLLMENT: 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Possible UI states of the error screen. */
|
/* Possible UI states of the error screen. */
|
||||||
|
Reference in New Issue
Block a user