Commit 833c7658 authored by Renato Silva's avatar Renato Silva Committed by Commit Bot

OOBE - Skip enrollment for tests when not forced

Enterprise Enrollment will be skipped and the normal Gaia login will
be shown if enrollment was advertised, but isn't mandatory.

Bug: 1084442
Change-Id: Ia26d75ebb85eec21942702d43b182b337b4ac858
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2279891
Commit-Queue: Renato Silva <rrsilva@google.com>
Commit-Queue: Roman Sorokin [CET] <rsorokin@chromium.org>
Reviewed-by: default avatarRoman Sorokin [CET] <rsorokin@chromium.org>
Reviewed-by: default avatarDenis Kuznetsov [CET] <antrim@chromium.org>
Auto-Submit: Renato Silva <rrsilva@google.com>
Cr-Commit-Position: refs/heads/master@{#792316}
parent 2217db1d
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "chrome/browser/chromeos/login/configuration_keys.h" #include "chrome/browser/chromeos/login/configuration_keys.h"
#include "chrome/browser/chromeos/login/enrollment/enrollment_uma.h" #include "chrome/browser/chromeos/login/enrollment/enrollment_uma.h"
#include "chrome/browser/chromeos/login/screen_manager.h" #include "chrome/browser/chromeos/login/screen_manager.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h"
#include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h"
#include "chrome/browser/chromeos/login/wizard_context.h" #include "chrome/browser/chromeos/login/wizard_context.h"
...@@ -92,6 +93,8 @@ std::string EnrollmentScreen::GetResultString(Result result) { ...@@ -92,6 +93,8 @@ std::string EnrollmentScreen::GetResultString(Result result) {
return "Completed"; return "Completed";
case Result::BACK: case Result::BACK:
return "Back"; return "Back";
case Result::SKIPPED_FOR_TESTS:
return BaseScreen::kNotApplicable;
} }
} }
...@@ -198,6 +201,14 @@ void EnrollmentScreen::OnAuthCleared(const base::Closure& callback) { ...@@ -198,6 +201,14 @@ void EnrollmentScreen::OnAuthCleared(const base::Closure& callback) {
callback.Run(); callback.Run();
} }
bool EnrollmentScreen::MaybeSkip(WizardContext* context) {
if (context->skip_non_forced_enrollment_for_tests && !config_.is_forced()) {
exit_callback_.Run(Result::SKIPPED_FOR_TESTS);
return true;
}
return false;
}
void EnrollmentScreen::ShowImpl() { void EnrollmentScreen::ShowImpl() {
VLOG(1) << "Show enrollment screen"; VLOG(1) << "Show enrollment screen";
UMA(policy::kMetricEnrollmentTriggered); UMA(policy::kMetricEnrollmentTriggered);
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "chrome/browser/chromeos/login/enrollment/enrollment_screen_view.h" #include "chrome/browser/chromeos/login/enrollment/enrollment_screen_view.h"
#include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.h" #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.h"
#include "chrome/browser/chromeos/login/screens/base_screen.h" #include "chrome/browser/chromeos/login/screens/base_screen.h"
#include "chrome/browser/chromeos/login/wizard_context.h"
#include "chrome/browser/chromeos/policy/active_directory_join_delegate.h" #include "chrome/browser/chromeos/policy/active_directory_join_delegate.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h" #include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h"
...@@ -44,7 +45,7 @@ class EnrollmentScreen ...@@ -44,7 +45,7 @@ class EnrollmentScreen
public EnrollmentScreenView::Controller, public EnrollmentScreenView::Controller,
public ActiveDirectoryJoinDelegate { public ActiveDirectoryJoinDelegate {
public: public:
enum class Result { COMPLETED, BACK }; enum class Result { COMPLETED, BACK, SKIPPED_FOR_TESTS };
static std::string GetResultString(Result result); static std::string GetResultString(Result result);
...@@ -95,6 +96,7 @@ class EnrollmentScreen ...@@ -95,6 +96,7 @@ class EnrollmentScreen
protected: protected:
// BaseScreen: // BaseScreen:
bool MaybeSkip(WizardContext* context) override;
void ShowImpl() override; void ShowImpl() override;
void HideImpl() override; void HideImpl() override;
......
...@@ -34,6 +34,11 @@ class WizardContext { ...@@ -34,6 +34,11 @@ class WizardContext {
// Indicates that user selects to sign in or create a new account for a child. // Indicates that user selects to sign in or create a new account for a child.
bool sign_in_as_child = false; bool sign_in_as_child = false;
// Whether the enrollment screen should be skipped when enrollment isn't
// mandatory so that the normal gaia login is shown. Set by WizardController
// SkipToLoginForTesting and checked on EnrollmentScreen::MaybeSkip
bool skip_non_forced_enrollment_for_tests = false;
}; };
} // namespace chromeos } // namespace chromeos
......
...@@ -640,6 +640,9 @@ void WizardController::ShowLoginScreen() { ...@@ -640,6 +640,9 @@ void WizardController::ShowLoginScreen() {
if (login_screen_started_) if (login_screen_started_)
return; return;
// Landed on the login screen. No longer skipping enrollment for tests.
wizard_context_->skip_non_forced_enrollment_for_tests = false;
if (!time_eula_accepted_.is_null()) { if (!time_eula_accepted_.is_null()) {
base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_; base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_;
UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta); UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta);
...@@ -808,6 +811,7 @@ void WizardController::OnActiveDirectoryPasswordChangeScreenExit() { ...@@ -808,6 +811,7 @@ void WizardController::OnActiveDirectoryPasswordChangeScreenExit() {
void WizardController::SkipToLoginForTesting() { void WizardController::SkipToLoginForTesting() {
VLOG(1) << "SkipToLoginForTesting."; VLOG(1) << "SkipToLoginForTesting.";
wizard_context_->skip_non_forced_enrollment_for_tests = true;
StartupUtils::MarkEulaAccepted(); StartupUtils::MarkEulaAccepted();
PerformPostEulaActions(); PerformPostEulaActions();
...@@ -1021,6 +1025,7 @@ void WizardController::OnEnrollmentScreenExit(EnrollmentScreen::Result result) { ...@@ -1021,6 +1025,7 @@ void WizardController::OnEnrollmentScreenExit(EnrollmentScreen::Result result) {
switch (result) { switch (result) {
case EnrollmentScreen::Result::COMPLETED: case EnrollmentScreen::Result::COMPLETED:
case EnrollmentScreen::Result::SKIPPED_FOR_TESTS:
OnEnrollmentDone(); OnEnrollmentDone();
break; break;
case EnrollmentScreen::Result::BACK: case EnrollmentScreen::Result::BACK:
......
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