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