| 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 19 matching lines...) Expand all Loading... |
| 30 #include "content/public/browser/browser_plugin_guest_manager.h" | 30 #include "content/public/browser/browser_plugin_guest_manager.h" |
| 31 #include "content/public/browser/render_frame_host.h" | 31 #include "content/public/browser/render_frame_host.h" |
| 32 #include "content/public/browser/render_view_host.h" | 32 #include "content/public/browser/render_view_host.h" |
| 33 #include "content/public/browser/render_widget_host.h" | 33 #include "content/public/browser/render_widget_host.h" |
| 34 #include "content/public/browser/render_widget_host_view.h" | 34 #include "content/public/browser/render_widget_host_view.h" |
| 35 #include "content/public/browser/web_contents.h" | 35 #include "content/public/browser/web_contents.h" |
| 36 #include "content/public/browser/web_contents_observer.h" | 36 #include "content/public/browser/web_contents_observer.h" |
| 37 #include "content/public/browser/web_contents_user_data.h" | 37 #include "content/public/browser/web_contents_user_data.h" |
| 38 #include "extensions/common/extension_messages.h" | 38 #include "extensions/common/extension_messages.h" |
| 39 #include "extensions/common/permissions/permissions_data.h" | 39 #include "extensions/common/permissions/permissions_data.h" |
| 40 #include "ui/accessibility/ax_action_data.h" |
| 40 | 41 |
| 41 #if defined(USE_AURA) | 42 #if defined(USE_AURA) |
| 42 #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" | 43 #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" |
| 43 #endif | 44 #endif |
| 44 | 45 |
| 45 namespace extensions { | 46 namespace extensions { |
| 46 class AutomationWebContentsObserver; | 47 class AutomationWebContentsObserver; |
| 47 } // namespace extensions | 48 } // namespace extensions |
| 48 | 49 |
| 49 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver); | 50 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 | 156 |
| 156 // Helper class that implements an action adapter for a |RenderFrameHost|. | 157 // Helper class that implements an action adapter for a |RenderFrameHost|. |
| 157 class RenderFrameHostActionAdapter : public AutomationActionAdapter { | 158 class RenderFrameHostActionAdapter : public AutomationActionAdapter { |
| 158 public: | 159 public: |
| 159 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh) | 160 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh) |
| 160 : rfh_(rfh) {} | 161 : rfh_(rfh) {} |
| 161 | 162 |
| 162 virtual ~RenderFrameHostActionAdapter() {} | 163 virtual ~RenderFrameHostActionAdapter() {} |
| 163 | 164 |
| 164 // AutomationActionAdapter implementation. | 165 // AutomationActionAdapter implementation. |
| 165 void DoDefault(int32_t id) override { | 166 void PerformAction(const ui::AXActionData& data) override { |
| 166 rfh_->AccessibilityDoDefaultAction(id); | 167 rfh_->AccessibilityPerformAction(data); |
| 167 } | |
| 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 action; |
| 353 action.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 action.action = ui::AX_ACTION_DO_DEFAULT; |
| 357 adapter->PerformAction(action); |
| 373 break; | 358 break; |
| 374 case api::automation_internal::ACTION_TYPE_FOCUS: | 359 case api::automation_internal::ACTION_TYPE_FOCUS: |
| 375 adapter->Focus(automation_id); | 360 action.action = ui::AX_ACTION_SET_FOCUS; |
| 361 adapter->PerformAction(action); |
| 376 break; | 362 break; |
| 377 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE: | 363 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE: |
| 378 adapter->MakeVisible(automation_id); | 364 action.action = ui::AX_ACTION_SCROLL_TO_MAKE_VISIBLE; |
| 365 adapter->PerformAction(action); |
| 379 break; | 366 break; |
| 380 case api::automation_internal::ACTION_TYPE_SETSELECTION: { | 367 case api::automation_internal::ACTION_TYPE_SETSELECTION: { |
| 381 api::automation_internal::SetSelectionParams selection_params; | 368 api::automation_internal::SetSelectionParams selection_params; |
| 382 EXTENSION_FUNCTION_VALIDATE( | 369 EXTENSION_FUNCTION_VALIDATE( |
| 383 api::automation_internal::SetSelectionParams::Populate( | 370 api::automation_internal::SetSelectionParams::Populate( |
| 384 params->opt_args.additional_properties, &selection_params)); | 371 params->opt_args.additional_properties, &selection_params)); |
| 385 adapter->SetSelection(automation_id, selection_params.anchor_offset, | 372 action.anchor_node_id = params->args.automation_node_id; |
| 386 selection_params.focus_node_id, | 373 action.anchor_offset = selection_params.anchor_offset; |
| 387 selection_params.focus_offset); | 374 action.focus_node_id = selection_params.focus_node_id; |
| 375 action.focus_offset = selection_params.focus_offset; |
| 376 action.action = ui::AX_ACTION_SET_SELECTION; |
| 377 adapter->PerformAction(action); |
| 388 break; | 378 break; |
| 389 } | 379 } |
| 390 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: { | 380 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: { |
| 391 adapter->ShowContextMenu(automation_id); | 381 action.action = ui::AX_ACTION_SHOW_CONTEXT_MENU; |
| 382 adapter->PerformAction(action); |
| 383 break; |
| 384 } |
| 385 case api::automation_internal::ACTION_TYPE_SETACCESSIBILITYFOCUS: { |
| 386 action.action = ui::AX_ACTION_SET_ACCESSIBILITY_FOCUS; |
| 387 adapter->PerformAction(action); |
| 392 break; | 388 break; |
| 393 } | 389 } |
| 394 default: | 390 default: |
| 395 NOTREACHED(); | 391 NOTREACHED(); |
| 396 } | 392 } |
| 397 return RespondNow(NoArguments()); | 393 return RespondNow(NoArguments()); |
| 398 } | 394 } |
| 399 | 395 |
| 400 ExtensionFunction::ResponseAction | 396 ExtensionFunction::ResponseAction |
| 401 AutomationInternalEnableDesktopFunction::Run() { | 397 AutomationInternalEnableDesktopFunction::Run() { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 if (!error.empty()) { | 458 if (!error.empty()) { |
| 463 Respond(Error(error)); | 459 Respond(Error(error)); |
| 464 return; | 460 return; |
| 465 } | 461 } |
| 466 | 462 |
| 467 Respond( | 463 Respond( |
| 468 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id))); | 464 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id))); |
| 469 } | 465 } |
| 470 | 466 |
| 471 } // namespace extensions | 467 } // namespace extensions |
| OLD | NEW |