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 <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "chrome/browser/extensions/api/automation_internal/automation_util.h" | 10 #include "chrome/browser/extensions/api/automation_internal/automation_util.h" |
11 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
12 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 12 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
13 #include "chrome/common/chrome_switches.h" | 13 #include "chrome/common/chrome_switches.h" |
14 #include "chrome/common/extensions/api/automation_internal.h" | 14 #include "chrome/common/extensions/api/automation_internal.h" |
15 #include "content/public/browser/ax_event_notification_details.h" | 15 #include "content/public/browser/ax_event_notification_details.h" |
| 16 #include "content/public/browser/render_frame_host.h" |
16 #include "content/public/browser/render_process_host.h" | 17 #include "content/public/browser/render_process_host.h" |
17 #include "content/public/browser/render_view_host.h" | |
18 #include "content/public/browser/render_widget_host.h" | 18 #include "content/public/browser/render_widget_host.h" |
19 #include "content/public/browser/render_widget_host_view.h" | 19 #include "content/public/browser/render_widget_host_view.h" |
20 #include "content/public/browser/web_contents.h" | 20 #include "content/public/browser/web_contents.h" |
21 | 21 |
22 namespace extensions { | 22 namespace extensions { |
23 class AutomationWebContentsObserver; | 23 class AutomationWebContentsObserver; |
24 } // namespace extensions | 24 } // namespace extensions |
25 | 25 |
26 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver); | 26 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::AutomationWebContentsObserver); |
27 | 27 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 if (!rwh) | 76 if (!rwh) |
77 return false; | 77 return false; |
78 | 78 |
79 results_ = api::automation_internal::EnableCurrentTab::Results::Create( | 79 results_ = api::automation_internal::EnableCurrentTab::Results::Create( |
80 rwh->GetProcess()->GetID(), rwh->GetRoutingID()); | 80 rwh->GetProcess()->GetID(), rwh->GetRoutingID()); |
81 | 81 |
82 SendResponse(true); | 82 SendResponse(true); |
83 | 83 |
84 AutomationWebContentsObserver::CreateForWebContents(contents); | 84 AutomationWebContentsObserver::CreateForWebContents(contents); |
85 | 85 |
86 rwh->EnableTreeOnlyAccessibilityMode(); | 86 contents->EnableTreeOnlyAccessibilityMode(); |
87 | 87 |
88 return true; | 88 return true; |
89 } | 89 } |
90 | 90 |
91 bool AutomationInternalPerformActionFunction::RunAsync() { | 91 bool AutomationInternalPerformActionFunction::RunAsync() { |
92 using api::automation_internal::PerformAction::Params; | 92 using api::automation_internal::PerformAction::Params; |
93 scoped_ptr<Params> params(Params::Create(*args_)); | 93 scoped_ptr<Params> params(Params::Create(*args_)); |
94 EXTENSION_FUNCTION_VALIDATE(params.get()); | 94 EXTENSION_FUNCTION_VALIDATE(params.get()); |
95 | 95 |
96 content::RenderWidgetHost* rwh = | 96 content::RenderFrameHost* rfh = |
97 content::RenderWidgetHost::FromID(params->args.process_id, | 97 content::RenderFrameHost::FromID(params->args.process_id, |
98 params->args.routing_id); | 98 params->args.routing_id); |
| 99 if (!rfh) |
| 100 return false; |
99 | 101 |
100 switch (params->args.action_type) { | 102 switch (params->args.action_type) { |
101 case api::automation_internal::ACTION_TYPE_DO_DEFAULT: | 103 case api::automation_internal::ACTION_TYPE_DO_DEFAULT: |
102 rwh->AccessibilityDoDefaultAction(params->args.automation_node_id); | 104 rfh->AccessibilityDoDefaultAction(params->args.automation_node_id); |
103 break; | 105 break; |
104 case api::automation_internal::ACTION_TYPE_FOCUS: | 106 case api::automation_internal::ACTION_TYPE_FOCUS: |
105 rwh->AccessibilitySetFocus(params->args.automation_node_id); | 107 rfh->AccessibilitySetFocus(params->args.automation_node_id); |
106 break; | 108 break; |
107 case api::automation_internal::ACTION_TYPE_MAKE_VISIBLE: | 109 case api::automation_internal::ACTION_TYPE_MAKE_VISIBLE: |
108 rwh->AccessibilityScrollToMakeVisible(params->args.automation_node_id, | 110 rfh->AccessibilityScrollToMakeVisible(params->args.automation_node_id, |
109 gfx::Rect()); | 111 gfx::Rect()); |
110 break; | 112 break; |
111 case api::automation_internal::ACTION_TYPE_SET_SELECTION: { | 113 case api::automation_internal::ACTION_TYPE_SET_SELECTION: { |
112 extensions::api::automation_internal::SetSelectionParams selection_params; | 114 extensions::api::automation_internal::SetSelectionParams selection_params; |
113 EXTENSION_FUNCTION_VALIDATE( | 115 EXTENSION_FUNCTION_VALIDATE( |
114 extensions::api::automation_internal::SetSelectionParams::Populate( | 116 extensions::api::automation_internal::SetSelectionParams::Populate( |
115 params->opt_args.additional_properties, &selection_params)); | 117 params->opt_args.additional_properties, &selection_params)); |
116 rwh->AccessibilitySetTextSelection(params->args.automation_node_id, | 118 rfh->AccessibilitySetTextSelection(params->args.automation_node_id, |
117 selection_params.start_index, | 119 selection_params.start_index, |
118 selection_params.end_index); | 120 selection_params.end_index); |
119 break; | 121 break; |
120 } | 122 } |
121 default: | 123 default: |
122 NOTREACHED(); | 124 NOTREACHED(); |
123 } | 125 } |
124 return true; | 126 return true; |
125 } | 127 } |
126 | 128 |
127 } // namespace extensions | 129 } // namespace extensions |
OLD | NEW |