Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(697)

Unified Diff: chrome/browser/extensions/api/automation_internal/automation_internal_api.cc

Issue 2410333005: Create AXAction and AXActionData as a way to simplify accessibility actions (Closed)
Patch Set: Fix Android compile Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
diff --git a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
index 6ada5f161f5d45f507945c640b2352421000688f..ce3678a19eed1eb2b206f7e1e76cc5e8e426bbce 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
+++ b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
@@ -162,26 +162,9 @@ class RenderFrameHostActionAdapter : public AutomationActionAdapter {
virtual ~RenderFrameHostActionAdapter() {}
// AutomationActionAdapter implementation.
- void DoDefault(int32_t id) override {
- rfh_->AccessibilityDoDefaultAction(id);
- }
-
- void Focus(int32_t id) override { rfh_->AccessibilitySetFocus(id); }
-
- void MakeVisible(int32_t id) override {
- rfh_->AccessibilityScrollToMakeVisible(id, gfx::Rect());
- }
-
- void SetSelection(int32_t anchor_id,
- int32_t anchor_offset,
- int32_t focus_id,
- int32_t focus_offset) override {
- rfh_->AccessibilitySetSelection(anchor_id, anchor_offset, focus_id,
- focus_offset);
- }
-
- void ShowContextMenu(int32_t id) override {
- rfh_->AccessibilityShowContextMenu(id);
+ void PerformAction(ui::AXAction action,
+ const ui::AXActionData& data) override {
+ rfh_->AccessibilityPerformAction(action, data);
}
private:
@@ -366,29 +349,36 @@ ExtensionFunction::ResponseAction
AutomationInternalPerformActionFunction::RouteActionToAdapter(
api::automation_internal::PerformAction::Params* params,
AutomationActionAdapter* adapter) {
- int32_t automation_id = params->args.automation_node_id;
+ ui::AXActionData data;
+ data.target_node_id = params->args.automation_node_id;
switch (params->args.action_type) {
case api::automation_internal::ACTION_TYPE_DODEFAULT:
- adapter->DoDefault(automation_id);
+ adapter->PerformAction(ui::AX_ACTION_DO_DEFAULT, data);
break;
case api::automation_internal::ACTION_TYPE_FOCUS:
- adapter->Focus(automation_id);
+ adapter->PerformAction(ui::AX_ACTION_SET_FOCUS, data);
break;
case api::automation_internal::ACTION_TYPE_MAKEVISIBLE:
- adapter->MakeVisible(automation_id);
+ adapter->PerformAction(ui::AX_ACTION_SCROLL_TO_MAKE_VISIBLE, data);
break;
case api::automation_internal::ACTION_TYPE_SETSELECTION: {
api::automation_internal::SetSelectionParams selection_params;
EXTENSION_FUNCTION_VALIDATE(
api::automation_internal::SetSelectionParams::Populate(
params->opt_args.additional_properties, &selection_params));
- adapter->SetSelection(automation_id, selection_params.anchor_offset,
- selection_params.focus_node_id,
- selection_params.focus_offset);
+ data.anchor_node_id = params->args.automation_node_id;
+ data.anchor_offset = selection_params.anchor_offset;
+ data.focus_node_id = selection_params.focus_node_id;
+ data.focus_offset = selection_params.focus_offset;
+ adapter->PerformAction(ui::AX_ACTION_SET_SELECTION, data);
break;
}
case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: {
- adapter->ShowContextMenu(automation_id);
+ adapter->PerformAction(ui::AX_ACTION_SHOW_CONTEXT_MENU, data);
+ break;
+ }
+ case api::automation_internal::ACTION_TYPE_SETACCESSIBILITYFOCUS: {
+ adapter->PerformAction(ui::AX_ACTION_SET_ACCESSIBILITY_FOCUS, data);
break;
}
default:

Powered by Google App Engine
This is Rietveld 408576698