diff options
author | dtseng <dtseng@chromium.org> | 2015-06-25 10:54:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-25 17:54:54 +0000 |
commit | 459d62d31a6ba4b24c6270428ba88f6d5e9393c8 (patch) | |
tree | 7eb47a0877d7c359cb5f2cbaf548055cfd6eb6e7 /ash/accelerators | |
parent | cb8f11d6958356069893c66d7755d9e868a59a7e (diff) | |
download | chromium_src-459d62d31a6ba4b24c6270428ba88f6d5e9393c8.zip chromium_src-459d62d31a6ba4b24c6270428ba88f6d5e9393c8.tar.gz chromium_src-459d62d31a6ba4b24c6270428ba88f6d5e9393c8.tar.bz2 |
Revert of Support Compat mode inside of the desktop tree. (patchset #12 id:220001 of https://codereview.chromium.org/1191783002/)
Reason for revert:
Parent change reverted.
https://codereview.chromium.org/1185753008/
Original issue's description:
> Support Compat mode inside of the desktop tree.
>
> Depends on
> https://codereview.chromium.org/1185753008/
>
> Removes native bindings for Search+Shift+Arrows in favor of the extension commands bindings. Enables all ChromeVox Compat/Next commands inside of the desktop tree. Adds a test to exercise next element and next button commands.
>
> Also, whitelists root nodes without urls for ChromeVox compat. This includes the shelf/launcher.
>
> TEST=SpokenFeedbackTest.*
>
> Committed: https://crrev.com/e7b1c72c03dcf636e50917b2c8122e5d0ef884b6
> Cr-Commit-Position: refs/heads/master@{#336181}
TBR=dmazzoni@chromium.org,oshima@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1213513003
Cr-Commit-Position: refs/heads/master@{#336195}
Diffstat (limited to 'ash/accelerators')
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 40 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.cc | 7 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.h | 2 |
3 files changed, 49 insertions, 0 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index 8f1d947..6eb68a3 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -79,6 +79,37 @@ namespace { using base::UserMetricsAction; +bool CanHandleAccessibleFocusCycle() { + if (!Shell::GetInstance()->accessibility_delegate()-> + IsSpokenFeedbackEnabled()) { + return false; + } + aura::Window* active_window = ash::wm::GetActiveWindow(); + if (!active_window) + return false; + views::Widget* widget = + views::Widget::GetWidgetForNativeWindow(active_window); + if (!widget) + return false; + views::FocusManager* focus_manager = widget->GetFocusManager(); + if (!focus_manager) + return false; + views::View* view = focus_manager->GetFocusedView(); + return view && strcmp(view->GetClassName(), views::WebView::kViewClassName); +} + +void HandleAccessibleFocusCycle(bool reverse) { + if (reverse) + base::RecordAction(UserMetricsAction("Accel_Accessible_Focus_Previous")); + else + base::RecordAction(UserMetricsAction("Accel_Accessible_Focus_Next")); + + aura::Window* active_window = ash::wm::GetActiveWindow(); + views::Widget* widget = + views::Widget::GetWidgetForNativeWindow(active_window); + widget->GetFocusManager()->AdvanceFocus(reverse); +} + void HandleCycleBackwardMRU(const ui::Accelerator& accelerator) { if (accelerator.key_code() == ui::VKEY_TAB) base::RecordAction(base::UserMetricsAction("Accel_PrevWindow_Tab")); @@ -849,6 +880,9 @@ bool AcceleratorController::CanPerformAction( // false should be returned to give the web contents a chance at handling the // accelerator. switch (action) { + case ACCESSIBLE_FOCUS_NEXT: + case ACCESSIBLE_FOCUS_PREVIOUS: + return CanHandleAccessibleFocusCycle(); case DEBUG_PRINT_LAYER_HIERARCHY: case DEBUG_PRINT_VIEW_HIERARCHY: case DEBUG_PRINT_WINDOW_HIERARCHY: @@ -979,6 +1013,12 @@ void AcceleratorController::PerformAction(AcceleratorAction action, // implement it in your module's controller code (like TOGGLE_MIRROR_MODE // below) or pull it into a HandleFoo() function above. switch (action) { + case ACCESSIBLE_FOCUS_NEXT: + HandleAccessibleFocusCycle(false); + break; + case ACCESSIBLE_FOCUS_PREVIOUS: + HandleAccessibleFocusCycle(true); + break; case CYCLE_BACKWARD_MRU: HandleCycleBackwardMRU(accelerator); break; diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc index 446819c..93ddb01 100644 --- a/ash/accelerators/accelerator_table.cc +++ b/ash/accelerators/accelerator_table.cc @@ -171,6 +171,11 @@ const AcceleratorData kAcceleratorData[] = { { true, ui::VKEY_U, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, PRINT_UI_HIERARCHIES }, + { false, ui::VKEY_HOME, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, + { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS}, + { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, + { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT}, + // TODO(yusukes): Handle VKEY_MEDIA_STOP, and // VKEY_MEDIA_LAUNCH_MAIL. }; @@ -403,6 +408,8 @@ const size_t kActionsAllowedInAppModeLength = arraysize(kActionsAllowedInAppMode); const AcceleratorAction kActionsNeedingWindow[] = { + ACCESSIBLE_FOCUS_NEXT, + ACCESSIBLE_FOCUS_PREVIOUS, CYCLE_BACKWARD_MRU, CYCLE_FORWARD_MRU, TOGGLE_OVERVIEW, diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h index 86ec318..1d478a0 100644 --- a/ash/accelerators/accelerator_table.h +++ b/ash/accelerators/accelerator_table.h @@ -51,6 +51,8 @@ namespace ash { // Please put if/def sections at the end of the bare section and keep the list // within each section in alphabetical order. enum AcceleratorAction { + ACCESSIBLE_FOCUS_NEXT, + ACCESSIBLE_FOCUS_PREVIOUS, CYCLE_BACKWARD_MRU, CYCLE_FORWARD_MRU, DEBUG_PRINT_LAYER_HIERARCHY, |