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 @@
#include "chrome/browser/chromeos/login/configuration_keys.h"
#include "chrome/browser/chromeos/login/enrollment/enrollment_uma.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/ui/login_display_host.h"
#include "chrome/browser/chromeos/login/wizard_context.h"
......@@ -92,6 +93,8 @@ std::string EnrollmentScreen::GetResultString(Result result) {
return "Completed";
case Result::BACK:
return "Back";
case Result::SKIPPED_FOR_TESTS:
return BaseScreen::kNotApplicable;
}
}
......@@ -198,6 +201,14 @@ void EnrollmentScreen::OnAuthCleared(const base::Closure& callback) {
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() {
VLOG(1) << "Show enrollment screen";
UMA(policy::kMetricEnrollmentTriggered);
......
......@@ -18,6 +18,7 @@
#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/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/enrollment_config.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
......@@ -44,7 +45,7 @@ class EnrollmentScreen
public EnrollmentScreenView::Controller,
public ActiveDirectoryJoinDelegate {
public:
enum class Result { COMPLETED, BACK };
enum class Result { COMPLETED, BACK, SKIPPED_FOR_TESTS };
static std::string GetResultString(Result result);
......@@ -95,6 +96,7 @@ class EnrollmentScreen
protected:
// BaseScreen:
bool MaybeSkip(WizardContext* context) override;
void ShowImpl() override;
void HideImpl() override;
......
......@@ -34,6 +34,11 @@ class WizardContext {
// Indicates that user selects to sign in or create a new account for a child.
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
......
......@@ -640,6 +640,9 @@ void WizardController::ShowLoginScreen() {
if (login_screen_started_)
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()) {
base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_;
UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta);
......@@ -808,6 +811,7 @@ void WizardController::OnActiveDirectoryPasswordChangeScreenExit() {
void WizardController::SkipToLoginForTesting() {
VLOG(1) << "SkipToLoginForTesting.";
wizard_context_->skip_non_forced_enrollment_for_tests = true;
StartupUtils::MarkEulaAccepted();
PerformPostEulaActions();
......@@ -1021,6 +1025,7 @@ void WizardController::OnEnrollmentScreenExit(EnrollmentScreen::Result result) {
switch (result) {
case EnrollmentScreen::Result::COMPLETED:
case EnrollmentScreen::Result::SKIPPED_FOR_TESTS:
OnEnrollmentDone();
break;
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