Chromium Code Reviews| Index: chrome/browser/extensions/api/automation_internal/automation_internal_api.cc |
| diff --git a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc |
| index 9a59de2925c881a1e755d89436078f32382b132f..b67167614897fea25eb53e752d315ab437683842 100644 |
| --- a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc |
| +++ b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc |
| @@ -12,8 +12,8 @@ |
| #include "chrome/common/extensions/api/automation_internal.h" |
| #include "chrome/common/extensions/manifest_handlers/automation.h" |
| #include "content/public/browser/ax_event_notification_details.h" |
| +#include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/render_process_host.h" |
| -#include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/render_widget_host.h" |
| #include "content/public/browser/render_widget_host_view.h" |
| #include "content/public/browser/web_contents.h" |
| @@ -75,7 +75,7 @@ AutomationInternalEnableCurrentTabFunction::Run() { |
| if (!rwh) |
| return RespondNow(Error("Could not enable accessibility for active tab")); |
| AutomationWebContentsObserver::CreateForWebContents(contents); |
| - rwh->EnableTreeOnlyAccessibilityMode(); |
| + contents->EnableTreeOnlyAccessibilityMode(); |
| scoped_ptr<base::ListValue> results = |
| api::automation_internal::EnableCurrentTab::Results::Create( |
| rwh->GetProcess()->GetID(), rwh->GetRoutingID()); |
| @@ -88,19 +88,21 @@ AutomationInternalPerformActionFunction::Run() { |
| scoped_ptr<Params> params(Params::Create(*args_)); |
| EXTENSION_FUNCTION_VALIDATE(params.get()); |
| - content::RenderWidgetHost* rwh = |
| - content::RenderWidgetHost::FromID(params->args.process_id, |
| - params->args.routing_id); |
| + content::RenderFrameHost* rfh = |
| + content::RenderFrameHost::FromID(params->args.process_id, |
| + params->args.routing_id); |
| + if (!rfh) |
| + return RespondNow(NoArguments()); |
| switch (params->args.action_type) { |
| case api::automation_internal::ACTION_TYPE_DO_DEFAULT: |
| - rwh->AccessibilityDoDefaultAction(params->args.automation_node_id); |
| + rfh->AccessibilityDoDefaultAction(params->args.automation_node_id); |
|
jam
2014/05/28 18:49:21
can you explain to me how this id is generated? I
dmazzoni
2014/05/28 18:59:33
Every accessibility node in Blink has an accessibi
jam
2014/05/28 21:10:31
I see, thanks for the explanation I understand thi
|
| break; |
| case api::automation_internal::ACTION_TYPE_FOCUS: |
| - rwh->AccessibilitySetFocus(params->args.automation_node_id); |
| + rfh->AccessibilitySetFocus(params->args.automation_node_id); |
| break; |
| case api::automation_internal::ACTION_TYPE_MAKE_VISIBLE: |
| - rwh->AccessibilityScrollToMakeVisible(params->args.automation_node_id, |
| + rfh->AccessibilityScrollToMakeVisible(params->args.automation_node_id, |
| gfx::Rect()); |
| break; |
| case api::automation_internal::ACTION_TYPE_SET_SELECTION: { |
| @@ -108,7 +110,7 @@ AutomationInternalPerformActionFunction::Run() { |
| EXTENSION_FUNCTION_VALIDATE( |
| extensions::api::automation_internal::SetSelectionParams::Populate( |
| params->opt_args.additional_properties, &selection_params)); |
| - rwh->AccessibilitySetTextSelection(params->args.automation_node_id, |
| + rfh->AccessibilitySetTextSelection(params->args.automation_node_id, |
| selection_params.start_index, |
| selection_params.end_index); |
| break; |