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

Side by Side Diff: chrome/browser/extensions/api/automation_internal/automation_internal_api.cc

Issue 2430473003: Revert of Create AXAction and AXActionData as a way to simplify accessibility actions (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
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
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"
41 40
42 #if defined(USE_AURA) 41 #if defined(USE_AURA)
43 #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" 42 #include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h"
44 #endif 43 #endif
45 44
46 namespace extensions { 45 namespace extensions {
47 class AutomationWebContentsObserver; 46 class AutomationWebContentsObserver;
48 } // namespace extensions 47 } // namespace extensions
49 48
50 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver); 49 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 155
157 // Helper class that implements an action adapter for a |RenderFrameHost|. 156 // Helper class that implements an action adapter for a |RenderFrameHost|.
158 class RenderFrameHostActionAdapter : public AutomationActionAdapter { 157 class RenderFrameHostActionAdapter : public AutomationActionAdapter {
159 public: 158 public:
160 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh) 159 explicit RenderFrameHostActionAdapter(content::RenderFrameHost* rfh)
161 : rfh_(rfh) {} 160 : rfh_(rfh) {}
162 161
163 virtual ~RenderFrameHostActionAdapter() {} 162 virtual ~RenderFrameHostActionAdapter() {}
164 163
165 // AutomationActionAdapter implementation. 164 // AutomationActionAdapter implementation.
166 void PerformAction(const ui::AXActionData& data) override { 165 void DoDefault(int32_t id) override {
167 rfh_->AccessibilityPerformAction(data); 166 rfh_->AccessibilityDoDefaultAction(id);
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);
168 } 185 }
169 186
170 private: 187 private:
171 content::RenderFrameHost* rfh_; 188 content::RenderFrameHost* rfh_;
172 189
173 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostActionAdapter); 190 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostActionAdapter);
174 }; 191 };
175 192
176 } // namespace 193 } // namespace
177 194
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 } 359 }
343 360
344 RenderFrameHostActionAdapter adapter(rfh); 361 RenderFrameHostActionAdapter adapter(rfh);
345 return RouteActionToAdapter(params.get(), &adapter); 362 return RouteActionToAdapter(params.get(), &adapter);
346 } 363 }
347 364
348 ExtensionFunction::ResponseAction 365 ExtensionFunction::ResponseAction
349 AutomationInternalPerformActionFunction::RouteActionToAdapter( 366 AutomationInternalPerformActionFunction::RouteActionToAdapter(
350 api::automation_internal::PerformAction::Params* params, 367 api::automation_internal::PerformAction::Params* params,
351 AutomationActionAdapter* adapter) { 368 AutomationActionAdapter* adapter) {
352 ui::AXActionData action; 369 int32_t automation_id = params->args.automation_node_id;
353 action.target_node_id = params->args.automation_node_id;
354 switch (params->args.action_type) { 370 switch (params->args.action_type) {
355 case api::automation_internal::ACTION_TYPE_DODEFAULT: 371 case api::automation_internal::ACTION_TYPE_DODEFAULT:
356 action.action = ui::AX_ACTION_DO_DEFAULT; 372 adapter->DoDefault(automation_id);
357 adapter->PerformAction(action);
358 break; 373 break;
359 case api::automation_internal::ACTION_TYPE_FOCUS: 374 case api::automation_internal::ACTION_TYPE_FOCUS:
360 action.action = ui::AX_ACTION_SET_FOCUS; 375 adapter->Focus(automation_id);
361 adapter->PerformAction(action);
362 break; 376 break;
363 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE: 377 case api::automation_internal::ACTION_TYPE_MAKEVISIBLE:
364 action.action = ui::AX_ACTION_SCROLL_TO_MAKE_VISIBLE; 378 adapter->MakeVisible(automation_id);
365 adapter->PerformAction(action);
366 break; 379 break;
367 case api::automation_internal::ACTION_TYPE_SETSELECTION: { 380 case api::automation_internal::ACTION_TYPE_SETSELECTION: {
368 api::automation_internal::SetSelectionParams selection_params; 381 api::automation_internal::SetSelectionParams selection_params;
369 EXTENSION_FUNCTION_VALIDATE( 382 EXTENSION_FUNCTION_VALIDATE(
370 api::automation_internal::SetSelectionParams::Populate( 383 api::automation_internal::SetSelectionParams::Populate(
371 params->opt_args.additional_properties, &selection_params)); 384 params->opt_args.additional_properties, &selection_params));
372 action.anchor_node_id = params->args.automation_node_id; 385 adapter->SetSelection(automation_id, selection_params.anchor_offset,
373 action.anchor_offset = selection_params.anchor_offset; 386 selection_params.focus_node_id,
374 action.focus_node_id = selection_params.focus_node_id; 387 selection_params.focus_offset);
375 action.focus_offset = selection_params.focus_offset;
376 action.action = ui::AX_ACTION_SET_SELECTION;
377 adapter->PerformAction(action);
378 break; 388 break;
379 } 389 }
380 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: { 390 case api::automation_internal::ACTION_TYPE_SHOWCONTEXTMENU: {
381 action.action = ui::AX_ACTION_SHOW_CONTEXT_MENU; 391 adapter->ShowContextMenu(automation_id);
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);
388 break; 392 break;
389 } 393 }
390 default: 394 default:
391 NOTREACHED(); 395 NOTREACHED();
392 } 396 }
393 return RespondNow(NoArguments()); 397 return RespondNow(NoArguments());
394 } 398 }
395 399
396 ExtensionFunction::ResponseAction 400 ExtensionFunction::ResponseAction
397 AutomationInternalEnableDesktopFunction::Run() { 401 AutomationInternalEnableDesktopFunction::Run() {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 if (!error.empty()) { 462 if (!error.empty()) {
459 Respond(Error(error)); 463 Respond(Error(error));
460 return; 464 return;
461 } 465 }
462 466
463 Respond( 467 Respond(
464 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id))); 468 OneArgument(base::MakeUnique<base::FundamentalValue>(result_acc_obj_id)));
465 } 469 }
466 470
467 } // namespace extensions 471 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698