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"; ...@@ -89,6 +89,7 @@ const char kAccelNameDeviceRequisitionShark[] = "device_requisition_shark";
const char kAccelNameAppLaunchBailout[] = "app_launch_bailout"; const char kAccelNameAppLaunchBailout[] = "app_launch_bailout";
const char kAccelNameAppLaunchNetworkConfig[] = "app_launch_network_config"; const char kAccelNameAppLaunchNetworkConfig[] = "app_launch_network_config";
const char kAccelNameBootstrappingSlave[] = "bootstrapping_slave"; const char kAccelNameBootstrappingSlave[] = "bootstrapping_slave";
const char kAccelNameDemoMode[] = "demo_mode";
// A class to change arrow key traversal behavior when it's alive. // A class to change arrow key traversal behavior when it's alive.
class ScopedArrowKeyTraversal { class ScopedArrowKeyTraversal {
...@@ -175,6 +176,9 @@ WebUILoginView::WebUILoginView(const WebViewSettings& settings) ...@@ -175,6 +176,9 @@ WebUILoginView::WebUILoginView(const WebViewSettings& settings)
ui::VKEY_S, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN)] = ui::VKEY_S, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN)] =
kAccelNameBootstrappingSlave; 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) { for (AccelMap::iterator i(accel_map_.begin()); i != accel_map_.end(); ++i) {
if (!ash_util::IsRunningInMash()) { if (!ash_util::IsRunningInMash()) {
// To make reset accelerator work while system tray is open, register it // To make reset accelerator work while system tray is open, register it
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "chrome/grit/chromium_strings.h" #include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "chromeos/chromeos_constants.h" #include "chromeos/chromeos_constants.h"
#include "chromeos/chromeos_switches.h"
#include "components/login/base_screen_handler_utils.h" #include "components/login/base_screen_handler_utils.h"
#include "components/login/localized_values_builder.h" #include "components/login/localized_values_builder.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
...@@ -183,6 +184,7 @@ void CoreOobeHandler::RegisterMessages() { ...@@ -183,6 +184,7 @@ void CoreOobeHandler::RegisterMessages() {
&CoreOobeHandler::HandleSetOobeBootstrappingSlave); &CoreOobeHandler::HandleSetOobeBootstrappingSlave);
AddRawCallback("getPrimaryDisplayNameForTesting", AddRawCallback("getPrimaryDisplayNameForTesting",
&CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting); &CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting);
AddCallback("setupDemoMode", &CoreOobeHandler::HandleSetupDemoMode);
} }
void CoreOobeHandler::ShowSignInError( void CoreOobeHandler::ShowSignInError(
...@@ -561,6 +563,15 @@ void CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting( ...@@ -561,6 +563,15 @@ void CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting(
ResolveJavascriptCallback(*callback_id, base::Value(display_name)); 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() { void CoreOobeHandler::InitDemoModeDetection() {
demo_mode_detector_.InitDetection(); demo_mode_detector_.InitDetection();
} }
......
...@@ -122,6 +122,7 @@ class CoreOobeHandler : public BaseWebUIHandler, ...@@ -122,6 +122,7 @@ class CoreOobeHandler : public BaseWebUIHandler,
void HandleHeaderBarVisible(); void HandleHeaderBarVisible();
void HandleSetOobeBootstrappingSlave(); void HandleSetOobeBootstrappingSlave();
void HandleGetPrimaryDisplayNameForTesting(const base::ListValue* args); void HandleGetPrimaryDisplayNameForTesting(const base::ListValue* args);
void HandleSetupDemoMode();
// When keyboard_utils.js arrow key down event is reached, raise it // When keyboard_utils.js arrow key down event is reached, raise it
// to tab/shift-tab event. // to tab/shift-tab event.
......
...@@ -310,6 +310,9 @@ const char kEnableConsumerKiosk[] = "enable-consumer-kiosk"; ...@@ -310,6 +310,9 @@ const char kEnableConsumerKiosk[] = "enable-consumer-kiosk";
// Enables Data Saver prompt on cellular networks. // Enables Data Saver prompt on cellular networks.
const char kEnableDataSaverPrompt[] = "enable-datasaver-prompt"; 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. // Enables the slider in display settings to modify the display size.
const char kEnableDisplayZoomSetting[] = "enable-display-zoom-setting"; const char kEnableDisplayZoomSetting[] = "enable-display-zoom-setting";
......
...@@ -92,6 +92,7 @@ CHROMEOS_EXPORT extern const char kEnableCastReceiver[]; ...@@ -92,6 +92,7 @@ CHROMEOS_EXPORT extern const char kEnableCastReceiver[];
CHROMEOS_EXPORT extern const char kEnableChromeVoxArcSupport[]; CHROMEOS_EXPORT extern const char kEnableChromeVoxArcSupport[];
CHROMEOS_EXPORT extern const char kEnableConsumerKiosk[]; CHROMEOS_EXPORT extern const char kEnableConsumerKiosk[];
CHROMEOS_EXPORT extern const char kEnableDataSaverPrompt[]; CHROMEOS_EXPORT extern const char kEnableDataSaverPrompt[];
CHROMEOS_EXPORT extern const char kEnableDemoMode[];
CHROMEOS_EXPORT extern const char kEnableDisplayZoomSetting[]; CHROMEOS_EXPORT extern const char kEnableDisplayZoomSetting[];
CHROMEOS_EXPORT extern const char kEnableEncryptionMigration[]; CHROMEOS_EXPORT extern const char kEnableEncryptionMigration[];
CHROMEOS_EXPORT extern const char kEnableExperimentalAccessibilityFeatures[]; CHROMEOS_EXPORT extern const char kEnableExperimentalAccessibilityFeatures[];
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
/** @const */ var ACCELERATOR_APP_LAUNCH_NETWORK_CONFIG = /** @const */ var ACCELERATOR_APP_LAUNCH_NETWORK_CONFIG =
'app_launch_network_config'; 'app_launch_network_config';
/** @const */ var ACCELERATOR_BOOTSTRAPPING_SLAVE = "bootstrapping_slave"; /** @const */ var ACCELERATOR_BOOTSTRAPPING_SLAVE = "bootstrapping_slave";
/** @const */ var ACCELERATOR_DEMO_MODE = "demo_mode";
/* Signin UI state constants. Used to control header bar UI. */ /* Signin UI state constants. Used to control header bar UI. */
/** @const */ var SIGNIN_UI_STATE = { /** @const */ var SIGNIN_UI_STATE = {
...@@ -187,6 +188,15 @@ cr.define('cr.ui.login', function() { ...@@ -187,6 +188,15 @@ cr.define('cr.ui.login', function() {
SCREEN_OOBE_RESET, 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. * OOBE screens group index.
...@@ -431,6 +441,11 @@ cr.define('cr.ui.login', function() { ...@@ -431,6 +441,11 @@ cr.define('cr.ui.login', function() {
chrome.send('networkConfigRequest'); chrome.send('networkConfigRequest');
} else if (name == ACCELERATOR_BOOTSTRAPPING_SLAVE) { } else if (name == ACCELERATOR_BOOTSTRAPPING_SLAVE) {
chrome.send('setOobeBootstrappingSlave'); 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