| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/automation_internal/automation_internal_
api.h" | 5 #include "chrome/browser/extensions/api/automation_internal/automation_internal_
api.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 | 155 |
| 156 // Helper class that implements an action adapter for a |RenderFrameHost|. | 156 // Helper class that implements an action adapter for a |RenderFrameHost|. |
| 157 class RenderFrameHostActionAdapter : public AutomationActionAdapter { | 157 class RenderFrameHostActionAdapter : public AutomationActionAdapter { |
| 158 public: | 158 public: |
| 159 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh) | 159 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh) |
| 160 : rfh_(rfh) {} | 160 : rfh_(rfh) {} |
| 161 | 161 |
| 162 virtual ~RenderFrameHostActionAdapter() {} | 162 virtual ~RenderFrameHostActionAdapter() {} |
| 163 | 163 |
| 164 // AutomationActionAdapter implementation. | 164 // AutomationActionAdapter implementation. |
| 165 void DoDefault(int32_t id) override { | 165 void PerformAction(ui::AXAction action, |
| 166 rfh_->AccessibilityDoDefaultAction(id); | 166 const ui::AXActionData& data) override { |
| 167 } | 167 rfh_->AccessibilityPerformAction(action, data); |
| 168 | |
| 169 void Focus(int32_t id) override { rfh_->AccessibilitySetFocus(id); } | |
| 170 | |
| 171 void MakeVisible(int32_t id) override { | |
| 172 rfh_->AccessibilityScrollToMakeVisible(id, gfx::Rect()); | |
| 173 } | |
| 174 | |
| 175 void SetSelection(int32_t anchor_id, | |
| 176 int32_t anchor_offset, | |
| 177 int32_t focus_id, | |
| 178 int32_t focus_offset) override { | |
| 179 rfh_->AccessibilitySetSelection(anchor_id, anchor_offset, focus_id, | |
| 180 focus_offset); | |
| 181 } | |
| 182 | |
| 183 void ShowContextMenu(int32_t id) override { | |
| 184 rfh_->AccessibilityShowContextMenu(id); | |
| 185 } | 168 } |
| 186 | 169 |
| 187 private: | 170 private: |
| 188 content::RenderFrameHost* rfh_; | 171 content::RenderFrameHost* rfh_; |
| 189 | 172 |
| 190 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostActionAdapter); | 173 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostActionAdapter); |
| 191 }; | 174 }; |
| 192 | 175 |
| 193 } // namespace | 176 } // namespace |
| 194 | 177 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 } | 342 } |
| 360 | 343 |
| 361 RenderFrameHostActionAdapter adapter(rfh); | 344 RenderFrameHostActionAdapter adapter(rfh); |
| 362 return RouteActionToAdapter(params.get(), &adapter); | 345 return RouteActionToAdapter(params.get(), &adapter); |
| 363 } | 346 } |
| 364 | 347 |
| 365 ExtensionFunction::ResponseAction | 348 ExtensionFunction::ResponseAction |
| 366 AutomationInternalPerformActionFunction::RouteActionToAdapter( | 349 AutomationInternalPerformActionFunction::RouteActionToAdapter( |
| 367 api::automation_internal::PerformAction::Params* params, | 350 api::automation_internal::PerformAction::Params* params, |
| 368 AutomationActionAdapter* adapter) { | 351 AutomationActionAdapter* adapter) { |
| 369 int32_t automation_id = params->args.automation_node_id; | 352 ui::AXActionData data; |
| 353 data.target_node_id = params->args.automation_node_id; |
| 370 switch (params->args.action_type) { | 354 switch (params->args.action_type) { |
| 371 case api::automation_internal::ACTION_TYPE_DODEFAULT: | 355 case api::automation_internal::ACTION_TYPE_DODEFAULT: |
| 372 adapter->DoDefault(automation_id); | 356 adapter->PerformAction(ui::AX_ACTION_DO_DEFAULT, data); |
| 373 break; | 357 break; |
| 374 case api::automation_internal::ACTION_TYPE_FOCUS: | 358 case api::automation_internal::ACTION_TYPE_FOCUS: |
| 375 adapter->Focus(automation_id); | 359 adapter->PerformAction(ui::AX_ACTION_SET_FOCUS, data); |
| 376 break; | 360 break; |
| 377 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE: | 361 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE: |
| 378 adapter->MakeVisible(automation_id); | 362 adapter->PerformAction(ui::AX_ACTION_SCROLL_TO_MAKE_VISIBLE, data); |
| 379 break; | 363 break; |
| 380 case api::automation_internal::ACTION_TYPE_SETSELECTION: { | 364 case api::automation_internal::ACTION_TYPE_SETSELECTION: { |
| 381 api::automation_internal::SetSelectionParams selection_params; | 365 api::automation_internal::SetSelectionParams selection_params; |
| 382 EXTENSION_FUNCTION_VALIDATE( | 366 EXTENSION_FUNCTION_VALIDATE( |
| 383 api::automation_internal::SetSelectionParams::Populate( | 367 api::automation_internal::SetSelectionParams::Populate( |
| 384 params->opt_args.additional_properties, &selection_params)); | 368 params->opt_args.additional_properties, &selection_params)); |
| 385 adapter->SetSelection(automation_id, selection_params.anchor_offset, | 369 data.anchor_node_id = params->args.automation_node_id; |
| 386 selection_params.focus_node_id, | 370 data.anchor_offset = selection_params.anchor_offset; |
| 387 selection_params.focus_offset); | 371 data.focus_node_id = selection_params.focus_node_id; |
| 372 data.focus_offset = selection_params.focus_offset; |
| 373 adapter->PerformAction(ui::AX_ACTION_SET_SELECTION, data); |
| 388 break; | 374 break; |
| 389 } | 375 } |
| 390 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: { | 376 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: { |
| 391 adapter->ShowContextMenu(automation_id); | 377 adapter->PerformAction(ui::AX_ACTION_SHOW_CONTEXT_MENU, data); |
| 378 break; |
| 379 } |
| 380 case api::automation_internal::ACTION_TYPE_SETACCESSIBILITYFOCUS: { |
| 381 adapter->PerformAction(ui::AX_ACTION_SET_ACCESSIBILITY_FOCUS, data); |
| 392 break; | 382 break; |
| 393 } | 383 } |
| 394 default: | 384 default: |
| 395 NOTREACHED(); | 385 NOTREACHED(); |
| 396 } | 386 } |
| 397 return RespondNow(NoArguments()); | 387 return RespondNow(NoArguments()); |
| 398 } | 388 } |
| 399 | 389 |
| 400 ExtensionFunction::ResponseAction | 390 ExtensionFunction::ResponseAction |
| 401 AutomationInternalEnableDesktopFunction::Run() { | 391 AutomationInternalEnableDesktopFunction::Run() { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 if (!error.empty()) { | 452 if (!error.empty()) { |
| 463 Respond(Error(error)); | 453 Respond(Error(error)); |
| 464 return; | 454 return; |
| 465 } | 455 } |
| 466 | 456 |
| 467 Respond( | 457 Respond( |
| 468 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id))); | 458 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id))); |
| 469 } | 459 } |
| 470 | 460 |
| 471 } // namespace extensions | 461 } // namespace extensions |
| OLD | NEW |