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