| 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:
|
|
|