15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_switches.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "base/command_line.h"
8a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace switches {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables an animated transition from the boot splash screen (Chrome logo on a
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// white background) to the login screen.  Implies
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |kAshCopyHostBackgroundAtBoot| and doesn't make much sense if used in
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// conjunction with |kDisableBootAnimation| (since the transition begins at the
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// same time as the white/grayscale login screen animation).
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshAnimateFromBootSplashScreen[] =
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "ash-animate-from-boot-splash-screen";
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Constrains the pointer movement within a root window on desktop.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshConstrainPointerToRoot[] = "ash-constrain-pointer-to-root";
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copies the host window's content to the system background layer at startup.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Can make boot slightly slower, but also hides an even-longer awkward period
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// where we display a white background if the login wallpaper takes a long time
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to load.
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshCopyHostBackgroundAtBoot[] = "ash-copy-host-background-at-boot";
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enable keyboard shortcuts useful for debugging.
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshDebugShortcuts[] = "ash-debug-shortcuts";
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Indicates that the wallpaper images specified by
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// kAshDefaultWallpaper{Large,Small} are OEM-specific (i.e. they are not
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// downloadable from Google).
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const char kAshDefaultWallpaperIsOem[] = "ash-default-wallpaper-is-oem";
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Default wallpaper to use (as paths to trusted, non-user-writable JPEG files).
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kAshDefaultWallpaperLarge[] = "ash-default-wallpaper-large";
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kAshDefaultWallpaperSmall[] = "ash-default-wallpaper-small";
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Disables LockLayoutManager used for LockScreenContainer, return back to
4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// WorkspaceLayoutManager.
4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kAshDisableLockLayoutManager[] = "ash-disable-lock-layout-manager";
4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Disable the Touch Exploration Mode. Touch Exploration Mode will no longer be
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// turned on automatically when spoken feedback is enabled when this flag is
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// set.
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const char kAshDisableTouchExplorationMode[] =
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    "ash-disable-touch-exploration-mode";
5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if defined(OS_CHROMEOS)
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Enables key bindings to scroll magnified screen.
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const char kAshEnableMagnifierKeyScroller[] =
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    "ash-enable-magnifier-key-scroller";
55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif
56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Enables text filtering with the keyboard in Overview Mode.
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kAshDisableTextFilteringInOverviewMode[] =
59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    "ash-disable-text-filtering-in-overview-mode";
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Enables quick, non-cancellable locking of the screen when in maximize mode.
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kAshEnablePowerButtonQuickLock[] =
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    "ash-enable-power-button-quick-lock";
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
6568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Enables software based mirroring.
6668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)const char kAshEnableSoftwareMirroring[] = "ash-enable-software-mirroring";
67a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Enables touch view testing.
69c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// TODO(skuhne): Remove TOGGLE_TOUCH_VIEW_TESTING accelerator once this
70c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// flag is removed.
71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)const char kAshEnableTouchViewTesting[] = "ash-enable-touch-view-testing";
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Enables additional visual feedback to touch input.
741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kAshEnableTouchViewTouchFeedback[] =
751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    "ash-enable-touch-view-touch-feedback";
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// When this flag is set, system sounds will be played whether the
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// ChromeVox is enabled or not.
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const char kAshEnableSystemSounds[] = "ash-enable-system-sounds";
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables showing the tray bubble by dragging on the shelf.
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshEnableTrayDragging[] = "ash-enable-tray-dragging";
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Wallpaper to use in guest mode (as paths to trusted, non-user-writable JPEG
854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// files).
864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)const char kAshGuestWallpaperLarge[] = "ash-guest-wallpaper-large";
874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)const char kAshGuestWallpaperSmall[] = "ash-guest-wallpaper-small";
884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
897d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Hides notifications that are irrelevant to Chrome OS device factory testing,
907d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// such as battery level updates.
917d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)const char kAshHideNotificationsForFactory[] =
927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    "ash-hide-notifications-for-factory";
937d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets a window size, optional position, and optional scale factor.
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "1024x768" creates a window of size 1024x768.
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "100+200-1024x768" positions the window at 100,200.
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "1024x768*2" sets the scale factor to 2 for a high DPI display.
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kAshHostWindowBounds[] = "ash-host-window-bounds";
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Specifies the layout mode and offsets for the secondary display for
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// testing. The format is "<t|r|b|l>,<offset>" where t=TOP, r=RIGHT,
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// b=BOTTOM and L=LEFT. For example, 'r,-100' means the secondary display
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// is positioned on the right with -100 offset. (above than primary)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshSecondaryDisplayLayout[] = "ash-secondary-display-layout";
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Enables the heads-up display for tracking touch points.
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAshTouchHud[] = "ash-touch-hud";
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Uses the 1st display in --ash-host-window-bounds as internal display.
110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This is for debugging on linux desktop.
111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kAshUseFirstDisplayAsInternal[] =
112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    "ash-use-first-display-as-internal";
113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (Most) Chrome OS hardware reports ACPI power button releases correctly.
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Standard hardware reports releases immediately after presses.  If set, we
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// lock the screen or shutdown the system immediately in response to a press
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instead of displaying an interactive animation.
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kAuraLegacyPowerButton[] = "aura-legacy-power-button";
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_WIN)
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Force Ash to open its root window on the desktop, even on Windows 8 where
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// it would normally end up in metro.
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kForceAshToDesktop[] = "ash-force-desktop";
124b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace switches
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
129