Commit cd09f64d authored by afakhry's avatar afakhry Committed by Commit bot

Separate debugging and developer accelerators

Hide developer accelerators behind --ash-developer-shortcuts command line
switch.

BUG=642945,642551

Review-Url: https://codereview.chromium.org/2323863002
Cr-Commit-Position: refs/heads/master@{#419301}
parent 1bc2ed36
...@@ -274,10 +274,10 @@ bool AcceleratorControllerDelegateAura::HandlesAction( ...@@ -274,10 +274,10 @@ bool AcceleratorControllerDelegateAura::HandlesAction(
// add it to accelerator_controller.cc instead. See class comment. // add it to accelerator_controller.cc instead. See class comment.
switch (action) { switch (action) {
case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
case DEBUG_TOGGLE_SHOW_FPS_COUNTER: case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
case DEBUG_TOGGLE_SHOW_PAINT_RECTS: case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
case DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
case MAGNIFY_SCREEN_ZOOM_IN: case MAGNIFY_SCREEN_ZOOM_IN:
case MAGNIFY_SCREEN_ZOOM_OUT: case MAGNIFY_SCREEN_ZOOM_OUT:
case ROTATE_SCREEN: case ROTATE_SCREEN:
...@@ -294,8 +294,8 @@ bool AcceleratorControllerDelegateAura::HandlesAction( ...@@ -294,8 +294,8 @@ bool AcceleratorControllerDelegateAura::HandlesAction(
return true; return true;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
case DEBUG_ADD_REMOVE_DISPLAY: case DEV_ADD_REMOVE_DISPLAY:
case DEBUG_TOGGLE_UNIFIED_DESKTOP: case DEV_TOGGLE_UNIFIED_DESKTOP:
case DISABLE_GPU_WATCHDOG: case DISABLE_GPU_WATCHDOG:
case LOCK_PRESSED: case LOCK_PRESSED:
case LOCK_RELEASED: case LOCK_RELEASED:
...@@ -321,11 +321,12 @@ bool AcceleratorControllerDelegateAura::CanPerformAction( ...@@ -321,11 +321,12 @@ bool AcceleratorControllerDelegateAura::CanPerformAction(
const ui::Accelerator& previous_accelerator) { const ui::Accelerator& previous_accelerator) {
switch (action) { switch (action) {
case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
case DEBUG_TOGGLE_SHOW_FPS_COUNTER: case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
case DEBUG_TOGGLE_SHOW_PAINT_RECTS: case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
return debug::DebugAcceleratorsEnabled(); return debug::DebugAcceleratorsEnabled();
case DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
return debug::DeveloperAcceleratorsEnabled();
case MAGNIFY_SCREEN_ZOOM_IN: case MAGNIFY_SCREEN_ZOOM_IN:
case MAGNIFY_SCREEN_ZOOM_OUT: case MAGNIFY_SCREEN_ZOOM_OUT:
return CanHandleMagnifyScreen(); return CanHandleMagnifyScreen();
...@@ -346,9 +347,10 @@ bool AcceleratorControllerDelegateAura::CanPerformAction( ...@@ -346,9 +347,10 @@ bool AcceleratorControllerDelegateAura::CanPerformAction(
return true; return true;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
case DEBUG_ADD_REMOVE_DISPLAY: case DEV_ADD_REMOVE_DISPLAY:
case DEBUG_TOGGLE_UNIFIED_DESKTOP: case DEV_TOGGLE_UNIFIED_DESKTOP:
return debug::DebugAcceleratorsEnabled(); case TOGGLE_MIRROR_MODE:
return debug::DeveloperAcceleratorsEnabled();
case SWAP_PRIMARY_DISPLAY: case SWAP_PRIMARY_DISPLAY:
return display::Screen::GetScreen()->GetNumDisplays() > 1; return display::Screen::GetScreen()->GetNumDisplays() > 1;
...@@ -362,7 +364,6 @@ bool AcceleratorControllerDelegateAura::CanPerformAction( ...@@ -362,7 +364,6 @@ bool AcceleratorControllerDelegateAura::CanPerformAction(
case LOCK_RELEASED: case LOCK_RELEASED:
case POWER_PRESSED: case POWER_PRESSED:
case POWER_RELEASED: case POWER_RELEASED:
case TOGGLE_MIRROR_MODE:
case TOUCH_HUD_PROJECTION_TOGGLE: case TOUCH_HUD_PROJECTION_TOGGLE:
return true; return true;
#endif #endif
...@@ -381,9 +382,6 @@ void AcceleratorControllerDelegateAura::PerformAction( ...@@ -381,9 +382,6 @@ void AcceleratorControllerDelegateAura::PerformAction(
case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
Shell::GetInstance()->display_manager()->ToggleDisplayScaleFactor(); Shell::GetInstance()->display_manager()->ToggleDisplayScaleFactor();
break; break;
case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
Shell::GetPrimaryRootWindowController()->ash_host()->ToggleFullScreen();
break;
case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
debug::ToggleShowDebugBorders(); debug::ToggleShowDebugBorders();
break; break;
...@@ -393,6 +391,9 @@ void AcceleratorControllerDelegateAura::PerformAction( ...@@ -393,6 +391,9 @@ void AcceleratorControllerDelegateAura::PerformAction(
case DEBUG_TOGGLE_SHOW_PAINT_RECTS: case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
debug::ToggleShowPaintRects(); debug::ToggleShowPaintRects();
break; break;
case DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
Shell::GetPrimaryRootWindowController()->ash_host()->ToggleFullScreen();
break;
case MAGNIFY_SCREEN_ZOOM_IN: case MAGNIFY_SCREEN_ZOOM_IN:
HandleMagnifyScreen(1); HandleMagnifyScreen(1);
break; break;
...@@ -430,10 +431,10 @@ void AcceleratorControllerDelegateAura::PerformAction( ...@@ -430,10 +431,10 @@ void AcceleratorControllerDelegateAura::PerformAction(
accelerators::Unpin(); accelerators::Unpin();
break; break;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
case DEBUG_ADD_REMOVE_DISPLAY: case DEV_ADD_REMOVE_DISPLAY:
Shell::GetInstance()->display_manager()->AddRemoveDisplay(); Shell::GetInstance()->display_manager()->AddRemoveDisplay();
break; break;
case DEBUG_TOGGLE_UNIFIED_DESKTOP: case DEV_TOGGLE_UNIFIED_DESKTOP:
Shell::GetInstance()->display_manager()->SetUnifiedDesktopEnabled( Shell::GetInstance()->display_manager()->SetUnifiedDesktopEnabled(
!Shell::GetInstance()->display_manager()->unified_desktop_enabled()); !Shell::GetInstance()->display_manager()->unified_desktop_enabled());
break; break;
......
...@@ -1190,29 +1190,30 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { ...@@ -1190,29 +1190,30 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) {
std::set<AcceleratorAction> all_debug_actions; std::set<AcceleratorAction> all_debug_actions;
for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
all_debug_actions.insert(kDebugAcceleratorData[i].action); all_debug_actions.insert(kDebugAcceleratorData[i].action);
std::set<AcceleratorAction> all_dev_actions;
for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i)
all_dev_actions.insert(kDeveloperAcceleratorData[i].action);
std::set<AcceleratorAction> actionsAllowedAtModalWindow; std::set<AcceleratorAction> actionsAllowedAtModalWindow;
for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k) for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k)
actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]); actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]);
for (std::set<AcceleratorAction>::const_iterator it = for (const auto& action : actionsAllowedAtModalWindow) {
actionsAllowedAtModalWindow.begin(); EXPECT_TRUE(all_actions.find(action) != all_actions.end() ||
it != actionsAllowedAtModalWindow.end(); ++it) { all_debug_actions.find(action) != all_debug_actions.end() ||
EXPECT_TRUE(all_actions.find(*it) != all_actions.end() || all_dev_actions.find(action) != all_dev_actions.end())
all_debug_actions.find(*it) != all_debug_actions.end())
<< " action from kActionsAllowedAtModalWindow" << " action from kActionsAllowedAtModalWindow"
<< " not found in kAcceleratorData or kDebugAcceleratorData. " << " not found in kAcceleratorData, kDebugAcceleratorData or"
<< "action: " << *it; << " kDeveloperAcceleratorData action: " << action;
} }
std::unique_ptr<aura::Window> window( std::unique_ptr<aura::Window> window(
CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20))); CreateTestWindowInShellWithBounds(gfx::Rect(5, 5, 20, 20)));
wm::ActivateWindow(window.get()); wm::ActivateWindow(window.get());
WmShell::Get()->SimulateModalWindowOpenForTesting(true); WmShell::Get()->SimulateModalWindowOpenForTesting(true);
for (std::set<AcceleratorAction>::const_iterator it = all_actions.begin(); for (const auto& action : all_actions) {
it != all_actions.end(); ++it) { if (actionsAllowedAtModalWindow.find(action) ==
if (actionsAllowedAtModalWindow.find(*it) ==
actionsAllowedAtModalWindow.end()) { actionsAllowedAtModalWindow.end()) {
EXPECT_TRUE(GetController()->PerformActionIfEnabled(*it)) EXPECT_TRUE(GetController()->PerformActionIfEnabled(action))
<< " for action (disallowed at modal window): " << *it; << " for action (disallowed at modal window): " << action;
} }
} }
// Testing of top row (F5-F10) accelerators that should still work // Testing of top row (F5-F10) accelerators that should still work
......
...@@ -686,6 +686,14 @@ void AcceleratorController::Init() { ...@@ -686,6 +686,14 @@ void AcceleratorController::Init() {
for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
reserved_actions_.insert(kDebugAcceleratorData[i].action); reserved_actions_.insert(kDebugAcceleratorData[i].action);
} }
if (debug::DeveloperAcceleratorsEnabled()) {
RegisterAccelerators(kDeveloperAcceleratorData,
kDeveloperAcceleratorDataLength);
// Developer accelerators are also reserved.
for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i)
reserved_actions_.insert(kDeveloperAcceleratorData[i].action);
}
} }
void AcceleratorController::RegisterAccelerators( void AcceleratorController::RegisterAccelerators(
......
...@@ -238,11 +238,33 @@ const size_t kDeprecatedAcceleratorsDataLength = ...@@ -238,11 +238,33 @@ const size_t kDeprecatedAcceleratorsDataLength =
const AcceleratorData kDebugAcceleratorData[] = { const AcceleratorData kDebugAcceleratorData[] = {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
// Extra shortcut for debug build to control magnifier on linux desktop. {true, ui::VKEY_O, kDebugModifier, DEBUG_SHOW_TOAST},
{true, ui::VKEY_P, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_TOGGLE_TOUCH_PAD},
{true, ui::VKEY_T, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_TOGGLE_TOUCH_SCREEN},
{true, ui::VKEY_T, kDebugModifier, DEBUG_TOGGLE_TOUCH_VIEW},
#endif // defined(OS_CHROMEOS)
{true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
DEBUG_TOGGLE_WALLPAPER_MODE},
{true, ui::VKEY_L, kDebugModifier, DEBUG_PRINT_LAYER_HIERARCHY},
{true, ui::VKEY_V, kDebugModifier, DEBUG_PRINT_VIEW_HIERARCHY},
{true, ui::VKEY_W, kDebugModifier, DEBUG_PRINT_WINDOW_HIERARCHY},
{true, ui::VKEY_D, kDebugModifier, DEBUG_TOGGLE_DEVICE_SCALE_FACTOR},
{true, ui::VKEY_B, kDebugModifier, DEBUG_TOGGLE_SHOW_DEBUG_BORDERS},
{true, ui::VKEY_F, kDebugModifier, DEBUG_TOGGLE_SHOW_FPS_COUNTER},
{true, ui::VKEY_P, kDebugModifier, DEBUG_TOGGLE_SHOW_PAINT_RECTS},
};
const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData);
const AcceleratorData kDeveloperAcceleratorData[] = {
#if defined(OS_CHROMEOS)
// Extra shortcut for debug build to control magnifier on Linux desktop.
{true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, {true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN,
MAGNIFY_SCREEN_ZOOM_OUT}, MAGNIFY_SCREEN_ZOOM_OUT},
{true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, {true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN},
// Extra shortcuts to lock the screen on linux desktop. // Extra shortcuts to lock the screen on Linux desktop.
{true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_PRESSED}, {true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_PRESSED},
{false, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_RELEASED}, {false, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_RELEASED},
{true, ui::VKEY_P, ui::EF_ALT_DOWN, POWER_PRESSED}, {true, ui::VKEY_P, ui::EF_ALT_DOWN, POWER_PRESSED},
...@@ -250,43 +272,28 @@ const AcceleratorData kDebugAcceleratorData[] = { ...@@ -250,43 +272,28 @@ const AcceleratorData kDebugAcceleratorData[] = {
{true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED}, {true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED},
{false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED}, {false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED},
{true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, {true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_ADD_REMOVE_DISPLAY}, DEV_ADD_REMOVE_DISPLAY},
{true, ui::VKEY_O, kDebugModifier, DEBUG_SHOW_TOAST},
{true, ui::VKEY_J, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, {true, ui::VKEY_J, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_TOGGLE_UNIFIED_DESKTOP}, DEV_TOGGLE_UNIFIED_DESKTOP},
{true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, {true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
TOGGLE_MIRROR_MODE}, TOGGLE_MIRROR_MODE},
{true, ui::VKEY_P, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_TOGGLE_TOUCH_PAD},
{true, ui::VKEY_T, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
DEBUG_TOGGLE_TOUCH_SCREEN},
{true, ui::VKEY_T, kDebugModifier, DEBUG_TOGGLE_TOUCH_VIEW},
{true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI}, {true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI},
// Extra shortcut for display swapping as alt-f4 is taken on linux desktop. // Extra shortcut for display swapping as Alt-F4 is taken on Linux desktop.
{true, ui::VKEY_S, kDebugModifier, SWAP_PRIMARY_DISPLAY}, {true, ui::VKEY_S, kDebugModifier, SWAP_PRIMARY_DISPLAY},
#endif #endif // defined(OS_CHROMEOS)
// Extra shortcut to rotate/scale up/down the screen on linux desktop. // Extra shortcut to rotate/scale up/down the screen on Linux desktop.
{true, ui::VKEY_R, {true, ui::VKEY_R, kDebugModifier, ROTATE_SCREEN},
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_SCREEN},
// For testing on systems where Alt-Tab is already mapped. // For testing on systems where Alt-Tab is already mapped.
{true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU}, {true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU},
{true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, {true, ui::VKEY_F11, ui::EF_CONTROL_DOWN,
DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN}, DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN},
{true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU}, {true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU},
{true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
DEBUG_TOGGLE_WALLPAPER_MODE},
{true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, {true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
TOGGLE_FULLSCREEN}, TOGGLE_FULLSCREEN},
{true, ui::VKEY_L, kDebugModifier, DEBUG_PRINT_LAYER_HIERARCHY},
{true, ui::VKEY_V, kDebugModifier, DEBUG_PRINT_VIEW_HIERARCHY},
{true, ui::VKEY_W, kDebugModifier, DEBUG_PRINT_WINDOW_HIERARCHY},
{true, ui::VKEY_D, kDebugModifier, DEBUG_TOGGLE_DEVICE_SCALE_FACTOR},
{true, ui::VKEY_B, kDebugModifier, DEBUG_TOGGLE_SHOW_DEBUG_BORDERS},
{true, ui::VKEY_F, kDebugModifier, DEBUG_TOGGLE_SHOW_FPS_COUNTER},
{true, ui::VKEY_P, kDebugModifier, DEBUG_TOGGLE_SHOW_PAINT_RECTS},
}; };
const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData); const size_t kDeveloperAcceleratorDataLength =
arraysize(kDeveloperAcceleratorData);
const AcceleratorAction kPreferredActions[] = { const AcceleratorAction kPreferredActions[] = {
// Window cycling accelerators. // Window cycling accelerators.
...@@ -327,10 +334,10 @@ const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = { ...@@ -327,10 +334,10 @@ const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
BRIGHTNESS_DOWN, BRIGHTNESS_DOWN,
BRIGHTNESS_UP, BRIGHTNESS_UP,
DEBUG_ADD_REMOVE_DISPLAY,
DEBUG_TOGGLE_TOUCH_PAD, DEBUG_TOGGLE_TOUCH_PAD,
DEBUG_TOGGLE_TOUCH_SCREEN, DEBUG_TOGGLE_TOUCH_SCREEN,
DEBUG_TOGGLE_TOUCH_VIEW, DEBUG_TOGGLE_TOUCH_VIEW,
DEV_ADD_REMOVE_DISPLAY,
DISABLE_CAPS_LOCK, DISABLE_CAPS_LOCK,
DISABLE_GPU_WATCHDOG, DISABLE_GPU_WATCHDOG,
KEYBOARD_BRIGHTNESS_DOWN, KEYBOARD_BRIGHTNESS_DOWN,
...@@ -386,9 +393,9 @@ const AcceleratorAction kActionsAllowedAtModalWindow[] = { ...@@ -386,9 +393,9 @@ const AcceleratorAction kActionsAllowedAtModalWindow[] = {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
BRIGHTNESS_DOWN, BRIGHTNESS_DOWN,
BRIGHTNESS_UP, BRIGHTNESS_UP,
DEBUG_ADD_REMOVE_DISPLAY,
DEBUG_TOGGLE_TOUCH_PAD, DEBUG_TOGGLE_TOUCH_PAD,
DEBUG_TOGGLE_TOUCH_SCREEN, DEBUG_TOGGLE_TOUCH_SCREEN,
DEV_ADD_REMOVE_DISPLAY,
DISABLE_CAPS_LOCK, DISABLE_CAPS_LOCK,
KEYBOARD_BRIGHTNESS_DOWN, KEYBOARD_BRIGHTNESS_DOWN,
KEYBOARD_BRIGHTNESS_UP, KEYBOARD_BRIGHTNESS_UP,
...@@ -451,7 +458,7 @@ const AcceleratorAction kActionsAllowedInAppModeOrPinnedMode[] = { ...@@ -451,7 +458,7 @@ const AcceleratorAction kActionsAllowedInAppModeOrPinnedMode[] = {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
BRIGHTNESS_DOWN, BRIGHTNESS_DOWN,
BRIGHTNESS_UP, BRIGHTNESS_UP,
DEBUG_ADD_REMOVE_DISPLAY, DEV_ADD_REMOVE_DISPLAY,
DEBUG_TOGGLE_TOUCH_PAD, DEBUG_TOGGLE_TOUCH_PAD,
DEBUG_TOGGLE_TOUCH_SCREEN, DEBUG_TOGGLE_TOUCH_SCREEN,
DISABLE_CAPS_LOCK, DISABLE_CAPS_LOCK,
......
...@@ -57,12 +57,12 @@ enum AcceleratorAction { ...@@ -57,12 +57,12 @@ enum AcceleratorAction {
DEBUG_PRINT_LAYER_HIERARCHY, DEBUG_PRINT_LAYER_HIERARCHY,
DEBUG_PRINT_VIEW_HIERARCHY, DEBUG_PRINT_VIEW_HIERARCHY,
DEBUG_PRINT_WINDOW_HIERARCHY, DEBUG_PRINT_WINDOW_HIERARCHY,
DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN,
DEBUG_TOGGLE_DEVICE_SCALE_FACTOR, DEBUG_TOGGLE_DEVICE_SCALE_FACTOR,
DEBUG_TOGGLE_SHOW_DEBUG_BORDERS, DEBUG_TOGGLE_SHOW_DEBUG_BORDERS,
DEBUG_TOGGLE_SHOW_FPS_COUNTER, DEBUG_TOGGLE_SHOW_FPS_COUNTER,
DEBUG_TOGGLE_SHOW_PAINT_RECTS, DEBUG_TOGGLE_SHOW_PAINT_RECTS,
DEBUG_TOGGLE_WALLPAPER_MODE, DEBUG_TOGGLE_WALLPAPER_MODE,
DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN,
EXIT, EXIT,
FOCUS_NEXT_PANE, FOCUS_NEXT_PANE,
FOCUS_PREVIOUS_PANE, FOCUS_PREVIOUS_PANE,
...@@ -114,12 +114,12 @@ enum AcceleratorAction { ...@@ -114,12 +114,12 @@ enum AcceleratorAction {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
BRIGHTNESS_DOWN, BRIGHTNESS_DOWN,
BRIGHTNESS_UP, BRIGHTNESS_UP,
DEBUG_ADD_REMOVE_DISPLAY,
DEBUG_SHOW_TOAST, DEBUG_SHOW_TOAST,
DEBUG_TOGGLE_TOUCH_PAD, DEBUG_TOGGLE_TOUCH_PAD,
DEBUG_TOGGLE_TOUCH_SCREEN, DEBUG_TOGGLE_TOUCH_SCREEN,
DEBUG_TOGGLE_TOUCH_VIEW, DEBUG_TOGGLE_TOUCH_VIEW,
DEBUG_TOGGLE_UNIFIED_DESKTOP, DEV_ADD_REMOVE_DISPLAY,
DEV_TOGGLE_UNIFIED_DESKTOP,
DISABLE_CAPS_LOCK, DISABLE_CAPS_LOCK,
DISABLE_GPU_WATCHDOG, DISABLE_GPU_WATCHDOG,
KEYBOARD_BRIGHTNESS_DOWN, KEYBOARD_BRIGHTNESS_DOWN,
...@@ -213,6 +213,11 @@ ASH_EXPORT extern const size_t kDeprecatedAcceleratorsDataLength; ...@@ -213,6 +213,11 @@ ASH_EXPORT extern const size_t kDeprecatedAcceleratorsDataLength;
ASH_EXPORT extern const AcceleratorData kDebugAcceleratorData[]; ASH_EXPORT extern const AcceleratorData kDebugAcceleratorData[];
ASH_EXPORT extern const size_t kDebugAcceleratorDataLength; ASH_EXPORT extern const size_t kDebugAcceleratorDataLength;
// Developer accelerators that are enabled only with the command-line switch
// --ash-dev-shortcuts. They are always run similar to reserved actions.
ASH_EXPORT extern const AcceleratorData kDeveloperAcceleratorData[];
ASH_EXPORT extern const size_t kDeveloperAcceleratorDataLength;
// Actions that should be handled very early in Ash unless the current target // Actions that should be handled very early in Ash unless the current target
// window is full-screen. // window is full-screen.
ASH_EXPORT extern const AcceleratorAction kPreferredActions[]; ASH_EXPORT extern const AcceleratorAction kPreferredActions[];
......
...@@ -131,7 +131,7 @@ void HandleToggleTouchscreen() { ...@@ -131,7 +131,7 @@ void HandleToggleTouchscreen() {
ash::WmShell::Get()->delegate()->ToggleTouchscreen(); ash::WmShell::Get()->delegate()->ToggleTouchscreen();
} }
void HandleToggleToggleTouchView() { void HandleToggleTouchView() {
MaximizeModeController* controller = MaximizeModeController* controller =
WmShell::Get()->maximize_mode_controller(); WmShell::Get()->maximize_mode_controller();
controller->EnableMaximizeModeWindowManager( controller->EnableMaximizeModeWindowManager(
...@@ -156,6 +156,11 @@ bool DebugAcceleratorsEnabled() { ...@@ -156,6 +156,11 @@ bool DebugAcceleratorsEnabled() {
switches::kAshDebugShortcuts); switches::kAshDebugShortcuts);
} }
bool DeveloperAcceleratorsEnabled() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kAshDeveloperShortcuts);
}
void PerformDebugActionIfEnabled(AcceleratorAction action) { void PerformDebugActionIfEnabled(AcceleratorAction action) {
if (!DebugAcceleratorsEnabled()) if (!DebugAcceleratorsEnabled())
return; return;
...@@ -174,7 +179,7 @@ void PerformDebugActionIfEnabled(AcceleratorAction action) { ...@@ -174,7 +179,7 @@ void PerformDebugActionIfEnabled(AcceleratorAction action) {
HandleToggleTouchscreen(); HandleToggleTouchscreen();
break; break;
case DEBUG_TOGGLE_TOUCH_VIEW: case DEBUG_TOGGLE_TOUCH_VIEW:
HandleToggleToggleTouchView(); HandleToggleTouchView();
break; break;
#endif #endif
case DEBUG_TOGGLE_WALLPAPER_MODE: case DEBUG_TOGGLE_WALLPAPER_MODE:
......
...@@ -23,6 +23,9 @@ ASH_EXPORT void PrintUIHierarchies(); ...@@ -23,6 +23,9 @@ ASH_EXPORT void PrintUIHierarchies();
// Returns true if debug accelerators are enabled. // Returns true if debug accelerators are enabled.
ASH_EXPORT bool DebugAcceleratorsEnabled(); ASH_EXPORT bool DebugAcceleratorsEnabled();
// Returns true if developer accelerators are enabled.
ASH_EXPORT bool DeveloperAcceleratorsEnabled();
// Performs |action| if |action| belongs to a debug-only accelerator and debug // Performs |action| if |action| belongs to a debug-only accelerator and debug
// accelerators are enabled. // accelerators are enabled.
ASH_EXPORT void PerformDebugActionIfEnabled(AcceleratorAction action); ASH_EXPORT void PerformDebugActionIfEnabled(AcceleratorAction action);
......
...@@ -27,6 +27,9 @@ const char kAshCopyHostBackgroundAtBoot[] = "ash-copy-host-background-at-boot"; ...@@ -27,6 +27,9 @@ const char kAshCopyHostBackgroundAtBoot[] = "ash-copy-host-background-at-boot";
// Enable keyboard shortcuts useful for debugging. // Enable keyboard shortcuts useful for debugging.
const char kAshDebugShortcuts[] = "ash-debug-shortcuts"; const char kAshDebugShortcuts[] = "ash-debug-shortcuts";
// Enable keyboard shortcuts used by developers only.
const char kAshDeveloperShortcuts[] = "ash-dev-shortcuts";
// Disables the window backdrops normally used in maximize mode (TouchView). // Disables the window backdrops normally used in maximize mode (TouchView).
const char kAshDisableMaximizeModeWindowBackdrop[] = const char kAshDisableMaximizeModeWindowBackdrop[] =
"ash-disable-maximize-mode-window-backdrop"; "ash-disable-maximize-mode-window-backdrop";
......
...@@ -21,6 +21,7 @@ namespace switches { ...@@ -21,6 +21,7 @@ namespace switches {
ASH_EXPORT extern const char kAshAnimateFromBootSplashScreen[]; ASH_EXPORT extern const char kAshAnimateFromBootSplashScreen[];
ASH_EXPORT extern const char kAshCopyHostBackgroundAtBoot[]; ASH_EXPORT extern const char kAshCopyHostBackgroundAtBoot[];
ASH_EXPORT extern const char kAshDebugShortcuts[]; ASH_EXPORT extern const char kAshDebugShortcuts[];
ASH_EXPORT extern const char kAshDeveloperShortcuts[];
ASH_EXPORT extern const char kAshDisableMaximizeModeWindowBackdrop[]; ASH_EXPORT extern const char kAshDisableMaximizeModeWindowBackdrop[];
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
ASH_EXPORT extern const char kAshDisableScreenOrientationLock[]; ASH_EXPORT extern const char kAshDisableScreenOrientationLock[];
......
...@@ -31,7 +31,7 @@ bool AcceleratorControllerDelegateMus::HandlesAction(AcceleratorAction action) { ...@@ -31,7 +31,7 @@ bool AcceleratorControllerDelegateMus::HandlesAction(AcceleratorAction action) {
// http://crbug.com/612331. // http://crbug.com/612331.
switch (action) { switch (action) {
case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR: case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN: case DEV_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS: case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
case DEBUG_TOGGLE_SHOW_FPS_COUNTER: case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
case DEBUG_TOGGLE_SHOW_PAINT_RECTS: case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
...@@ -51,13 +51,13 @@ bool AcceleratorControllerDelegateMus::HandlesAction(AcceleratorAction action) { ...@@ -51,13 +51,13 @@ bool AcceleratorControllerDelegateMus::HandlesAction(AcceleratorAction action) {
return false; return false;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
case DEBUG_ADD_REMOVE_DISPLAY: { case DEV_ADD_REMOVE_DISPLAY: {
display::mojom::DisplayControllerPtr display_controller; display::mojom::DisplayControllerPtr display_controller;
connector_->ConnectToInterface("mojo:ui", &display_controller); connector_->ConnectToInterface("mojo:ui", &display_controller);
display_controller->ToggleVirtualDisplay(); display_controller->ToggleVirtualDisplay();
break; break;
} }
case DEBUG_TOGGLE_UNIFIED_DESKTOP: case DEV_TOGGLE_UNIFIED_DESKTOP:
case DISABLE_GPU_WATCHDOG: case DISABLE_GPU_WATCHDOG:
case LOCK_PRESSED: case LOCK_PRESSED:
case LOCK_RELEASED: case LOCK_RELEASED:
......
...@@ -1155,29 +1155,30 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) { ...@@ -1155,29 +1155,30 @@ TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) {
std::set<AcceleratorAction> all_debug_actions; std::set<AcceleratorAction> all_debug_actions;
for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
all_debug_actions.insert(kDebugAcceleratorData[i].action); all_debug_actions.insert(kDebugAcceleratorData[i].action);
std::set<AcceleratorAction> all_dev_actions;
for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i)
all_dev_actions.insert(kDeveloperAcceleratorData[i].action);
std::set<AcceleratorAction> actionsAllowedAtModalWindow; std::set<AcceleratorAction> actionsAllowedAtModalWindow;
for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k) for (size_t k = 0; k < kActionsAllowedAtModalWindowLength; ++k)
actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]); actionsAllowedAtModalWindow.insert(kActionsAllowedAtModalWindow[k]);
for (std::set<AcceleratorAction>::const_iterator it = for (const auto& action : actionsAllowedAtModalWindow) {
actionsAllowedAtModalWindow.begin(); EXPECT_TRUE(all_actions.find(action) != all_actions.end() ||
it != actionsAllowedAtModalWindow.end(); ++it) { all_debug_actions.find(action) != all_debug_actions.end() ||
EXPECT_TRUE(all_actions.find(*it) != all_actions.end() || all_dev_actions.find(action) != all_dev_actions.end())
all_debug_actions.find(*it) != all_debug_actions.end())
<< " action from kActionsAllowedAtModalWindow" << " action from kActionsAllowedAtModalWindow"
<< " not found in kAcceleratorData or kDebugAcceleratorData. " << " not found in kAcceleratorData, kDebugAcceleratorData or"
<< "action: " << *it; << " kDeveloperAcceleratorData action: " << action;
} }
WmWindow* window = WmWindow* window =
mus::WmWindowMus::Get(CreateTestWindow(gfx::Rect(5, 5, 20, 20))); mus::WmWindowMus::Get(CreateTestWindow(gfx::Rect(5, 5, 20, 20)));
window->Activate(); window->Activate();
WmShell::Get()->SimulateModalWindowOpenForTesting(true); WmShell::Get()->SimulateModalWindowOpenForTesting(true);
for (std::set<AcceleratorAction>::const_iterator it = all_actions.begin(); for (const auto& action : all_actions) {
it != all_actions.end(); ++it) { if (actionsAllowedAtModalWindow.find(action) ==
if (actionsAllowedAtModalWindow.find(*it) ==
actionsAllowedAtModalWindow.end()) { actionsAllowedAtModalWindow.end()) {
EXPECT_TRUE(GetController()->PerformActionIfEnabled(*it)) EXPECT_TRUE(GetController()->PerformActionIfEnabled(action))
<< " for action (disallowed at modal window): " << *it; << " for action (disallowed at modal window): " << action;
} }
} }
// Testing of top row (F5-F10) accelerators that should still work // Testing of top row (F5-F10) accelerators that should still work
......
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