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

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

Issue 2426193003: Re-land: Create AXAction and AXActionData as a way to simplify accessibility actions (Closed)
Patch Set: Rebase 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..15264f1c13a965791e37277d5f58adf9369f8613 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
+++ b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
@@ -37,6 +37,7 @@
#include "content/public/browser/web_contents_user_data.h"
#include "extensions/common/extension_messages.h"
#include "extensions/common/permissions/permissions_data.h"
+#include "ui/accessibility/ax_action_data.h"
#if defined(USE_AURA)
#include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h"
@@ -162,26 +163,8 @@ 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(const ui::AXActionData& data) override {
+ rfh_->AccessibilityPerformAction(data);
}
private:
@@ -366,29 +349,42 @@ ExtensionFunction::ResponseAction
AutomationInternalPerformActionFunction::RouteActionToAdapter(
api::automation_internal::PerformAction::Params* params,
AutomationActionAdapter* adapter) {
- int32_t automation_id = params->args.automation_node_id;
+ ui::AXActionData action;
+ action.target_node_id = params->args.automation_node_id;
switch (params->args.action_type) {
case api::automation_internal::ACTION_TYPE_DODEFAULT:
- adapter->DoDefault(automation_id);
+ action.action = ui::AX_ACTION_DO_DEFAULT;
+ adapter->PerformAction(action);
break;
case api::automation_internal::ACTION_TYPE_FOCUS:
- adapter->Focus(automation_id);
+ action.action = ui::AX_ACTION_SET_FOCUS;
+ adapter->PerformAction(action);
break;
case api::automation_internal::ACTION_TYPE_MAKEVISIBLE:
- adapter->MakeVisible(automation_id);
+ action.action = ui::AX_ACTION_SCROLL_TO_MAKE_VISIBLE;
+ adapter->PerformAction(action);
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);
+ action.anchor_node_id = params->args.automation_node_id;
+ action.anchor_offset = selection_params.anchor_offset;
+ action.focus_node_id = selection_params.focus_node_id;
+ action.focus_offset = selection_params.focus_offset;
+ action.action = ui::AX_ACTION_SET_SELECTION;
+ adapter->PerformAction(action);
break;
}
case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: {
- adapter->ShowContextMenu(automation_id);
+ action.action = ui::AX_ACTION_SHOW_CONTEXT_MENU;
+ adapter->PerformAction(action);
+ break;
+ }
+ case api::automation_internal::ACTION_TYPE_SETACCESSIBILITYFOCUS: {
+ action.action = ui::AX_ACTION_SET_ACCESSIBILITY_FOCUS;
+ adapter->PerformAction(action);
break;
}
default:

Powered by Google App Engine
This is Rietveld 408576698