Commit 7fa0c20b authored by Aga Wronska's avatar Aga Wronska Committed by Commit Bot

demo mode: Add feature flag and keycombo for demo mode.

--enable-demo-mode switch turns on new demo mode feature that is under
development.
Ctrl+Alt+D shortcut opens new demo mode setup flow from OOBE (sign in screen).
It is used for development and might change in the future.

Change-Id: Ie3c0d954cd7d3d82f030873b9472debb1ebb2a1d
Bug: 812460
Reviewed-on: https://chromium-review.googlesource.com/914846Reviewed-by: default avatarAlexander Alekseev <alemate@chromium.org>
Commit-Queue: Aga Wronska <agawronska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537820}
parent 13f7178d
......@@ -89,6 +89,7 @@ const char kAccelNameDeviceRequisitionShark[] = "device_requisition_shark";
const char kAccelNameAppLaunchBailout[] = "app_launch_bailout";
const char kAccelNameAppLaunchNetworkConfig[] = "app_launch_network_config";
const char kAccelNameBootstrappingSlave[] = "bootstrapping_slave";
const char kAccelNameDemoMode[] = "demo_mode";
// A class to change arrow key traversal behavior when it's alive.
class ScopedArrowKeyTraversal {
......@@ -175,6 +176,9 @@ WebUILoginView::WebUILoginView(const WebViewSettings& settings)
ui::VKEY_S, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN)] =
kAccelNameBootstrappingSlave;
accel_map_[ui::Accelerator(
ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN)] = kAccelNameDemoMode;
for (AccelMap::iterator i(accel_map_.begin()); i != accel_map_.end(); ++i) {
if (!ash_util::IsRunningInMash()) {
// To make reset accelerator work while system tray is open, register it
......
......@@ -36,6 +36,7 @@
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/chromeos_constants.h"
#include "chromeos/chromeos_switches.h"
#include "components/login/base_screen_handler_utils.h"
#include "components/login/localized_values_builder.h"
#include "components/prefs/pref_service.h"
......@@ -183,6 +184,7 @@ void CoreOobeHandler::RegisterMessages() {
&CoreOobeHandler::HandleSetOobeBootstrappingSlave);
AddRawCallback("getPrimaryDisplayNameForTesting",
&CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting);
AddCallback("setupDemoMode", &CoreOobeHandler::HandleSetupDemoMode);
}
void CoreOobeHandler::ShowSignInError(
......@@ -561,6 +563,15 @@ void CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting(
ResolveJavascriptCallback(*callback_id, base::Value(display_name));
}
void CoreOobeHandler::HandleSetupDemoMode() {
const bool is_demo_mode_enabled =
base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableDemoMode);
if (is_demo_mode_enabled) {
NOTIMPLEMENTED();
}
}
void CoreOobeHandler::InitDemoModeDetection() {
demo_mode_detector_.InitDetection();
}
......
......@@ -122,6 +122,7 @@ class CoreOobeHandler : public BaseWebUIHandler,
void HandleHeaderBarVisible();
void HandleSetOobeBootstrappingSlave();
void HandleGetPrimaryDisplayNameForTesting(const base::ListValue* args);
void HandleSetupDemoMode();
// When keyboard_utils.js arrow key down event is reached, raise it
// to tab/shift-tab event.
......
......@@ -310,6 +310,9 @@ const char kEnableConsumerKiosk[] = "enable-consumer-kiosk";
// Enables Data Saver prompt on cellular networks.
const char kEnableDataSaverPrompt[] = "enable-datasaver-prompt";
// Enables demo mode feature.
const char kEnableDemoMode[] = "enable-demo-mode";
// Enables the slider in display settings to modify the display size.
const char kEnableDisplayZoomSetting[] = "enable-display-zoom-setting";
......
......@@ -92,6 +92,7 @@ CHROMEOS_EXPORT extern const char kEnableCastReceiver[];
CHROMEOS_EXPORT extern const char kEnableChromeVoxArcSupport[];
CHROMEOS_EXPORT extern const char kEnableConsumerKiosk[];
CHROMEOS_EXPORT extern const char kEnableDataSaverPrompt[];
CHROMEOS_EXPORT extern const char kEnableDemoMode[];
CHROMEOS_EXPORT extern const char kEnableDisplayZoomSetting[];
CHROMEOS_EXPORT extern const char kEnableEncryptionMigration[];
CHROMEOS_EXPORT extern const char kEnableExperimentalAccessibilityFeatures[];
......
......@@ -56,6 +56,7 @@
/** @const */ var ACCELERATOR_APP_LAUNCH_NETWORK_CONFIG =
'app_launch_network_config';
/** @const */ var ACCELERATOR_BOOTSTRAPPING_SLAVE = "bootstrapping_slave";
/** @const */ var ACCELERATOR_DEMO_MODE = "demo_mode";
/* Signin UI state constants. Used to control header bar UI. */
/** @const */ var SIGNIN_UI_STATE = {
......@@ -187,6 +188,15 @@ cr.define('cr.ui.login', function() {
SCREEN_OOBE_RESET,
];
/**
* Group of screens (screen IDs) where demo mode setup invocation is
* available.
* @type Array<string>
* @const
*/
var DEMO_MODE_SETUP_AVAILABLE_SCREEN_GROUP = [
SCREEN_GAIA_SIGNIN,
];
/**
* OOBE screens group index.
......@@ -431,6 +441,11 @@ cr.define('cr.ui.login', function() {
chrome.send('networkConfigRequest');
} else if (name == ACCELERATOR_BOOTSTRAPPING_SLAVE) {
chrome.send('setOobeBootstrappingSlave');
} else if (name == ACCELERATOR_DEMO_MODE) {
if (DEMO_MODE_SETUP_AVAILABLE_SCREEN_GROUP.indexOf(currentStepId) !=
-1) {
chrome.send('setupDemoMode');
}
}
},
......
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