blob: 38ddba41e7c19738845f58587329a9a9e9ac2e7e [file] [log] [blame]
// Copyright (c) 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_SCREEN_H_
#define CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_SCREEN_H_
#include <string>
namespace chromeos {
// TODO(jdufault): Rename to LoginScreen or similar since this is not directly
// tied to Oobe. See crbug.com/678740.
// Different screens in the Oobe. If you update this enum, *make sure* to
// update kScreenNames in the cc file as well.
enum class OobeScreen : unsigned int {
SCREEN_OOBE_HID_DETECTION = 0,
SCREEN_OOBE_WELCOME,
SCREEN_OOBE_NETWORK,
SCREEN_OOBE_EULA,
SCREEN_OOBE_UPDATE,
SCREEN_OOBE_ENABLE_DEBUGGING,
SCREEN_OOBE_ENROLLMENT,
SCREEN_OOBE_RESET,
SCREEN_GAIA_SIGNIN,
SCREEN_ACCOUNT_PICKER,
SCREEN_KIOSK_AUTOLAUNCH,
SCREEN_KIOSK_ENABLE,
SCREEN_ERROR_MESSAGE,
SCREEN_USER_IMAGE_PICKER,
SCREEN_TPM_ERROR,
SCREEN_PASSWORD_CHANGED,
SCREEN_CREATE_SUPERVISED_USER_FLOW_DEPRECATED,
SCREEN_TERMS_OF_SERVICE,
SCREEN_ARC_TERMS_OF_SERVICE,
SCREEN_WRONG_HWID,
SCREEN_AUTO_ENROLLMENT_CHECK,
SCREEN_APP_LAUNCH_SPLASH,
SCREEN_ARC_KIOSK_SPLASH,
SCREEN_CONFIRM_PASSWORD,
SCREEN_FATAL_ERROR,
SCREEN_DEVICE_DISABLED,
SCREEN_UNRECOVERABLE_CRYPTOHOME_ERROR,
SCREEN_USER_SELECTION,
SCREEN_ACTIVE_DIRECTORY_PASSWORD_CHANGE,
SCREEN_ENCRYPTION_MIGRATION,
SCREEN_VOICE_INTERACTION_VALUE_PROP,
SCREEN_WAIT_FOR_CONTAINER_READY,
SCREEN_SUPERVISION_TRANSITION,
SCREEN_UPDATE_REQUIRED,
SCREEN_ASSISTANT_OPTIN_FLOW,
// Special "first screen" that initiates login flow.
SCREEN_SPECIAL_LOGIN,
// Special "first screen" that initiates full OOBE flow.
SCREEN_SPECIAL_OOBE,
// Special test value that commands not to create any window yet.
SCREEN_TEST_NO_WINDOW,
SCREEN_SYNC_CONSENT,
SCREEN_FINGERPRINT_SETUP,
SCREEN_OOBE_DEMO_SETUP,
SCREEN_OOBE_DEMO_PREFERENCES,
SCREEN_RECOMMEND_APPS,
SCREEN_APP_DOWNLOADING,
SCREEN_DISCOVER,
SCREEN_MARKETING_OPT_IN,
SCREEN_MULTIDEVICE_SETUP,
SCREEN_UNKNOWN // This must always be the last element.
};
// Returns the JS name for the given screen.
std::string GetOobeScreenName(OobeScreen screen);
// Converts the JS name for the given sreen into a Screen instance.
OobeScreen GetOobeScreenFromName(const std::string& name);
// Returns true if a command line argument requests |screen| to always be shown.
bool ForceShowOobeScreen(OobeScreen screen);
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_SCREEN_H_