Chromium Code Reviews| Index: content/renderer/accessibility/blink_ax_tree_source.cc |
| diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc |
| index 5c804bf89e4cad852b59c050efacf60b5cf01f65..3cf3d6763c139837fe7e892045098d6c09e71993 100644 |
| --- a/content/renderer/accessibility/blink_ax_tree_source.cc |
| +++ b/content/renderer/accessibility/blink_ax_tree_source.cc |
| @@ -492,17 +492,33 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
| if (node_to_frame_routing_id_map_ && !src.equals(GetRoot())) { |
| WebLocalFrame* frame = document.frame(); |
| RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame); |
| + RenderFrameProxy* render_frame_proxy = nullptr; |
| + |
| if (render_frame) { |
| (*node_to_frame_routing_id_map_)[dst->id] = |
| render_frame->GetRoutingID(); |
| - dst->AddBoolAttribute(ui::AX_ATTR_IS_AX_TREE_HOST, true); |
| } else { |
| - RenderFrameProxy* render_frame_proxy = |
| - RenderFrameProxy::FromWebFrame(frame); |
| + render_frame_proxy = RenderFrameProxy::FromWebFrame(frame); |
| if (render_frame_proxy) { |
| (*node_to_frame_routing_id_map_)[dst->id] = |
| render_frame_proxy->routing_id(); |
| - dst->AddBoolAttribute(ui::AX_ATTR_IS_AX_TREE_HOST, true); |
| + } |
| + } |
| + |
| + if (render_frame || render_frame_proxy) { |
| + dst->AddBoolAttribute(ui::AX_ATTR_IS_AX_TREE_HOST, true); |
| + |
| + WebAXObject anchorObject, focusObject; |
|
dmazzoni
2015/06/22 19:23:21
You don't want this code inside this inner "if" bl
|
| + int anchorOffset, focusOffset; |
| + src.selection(anchorObject, anchorOffset, focusObject, focusOffset); |
| + if (anchorObject && focusObject && |
| + anchorOffset >= 0 && focusOffset >= 0) { |
| + int anchorId = anchorObject.axObjectID(); |
| + int focusId = focusObject.axObjectID(); |
| + dst->AddIntAttribute(ui::AX_ATTR_OBJ_SEL_START, anchorId); |
| + dst->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_START, anchorOffset); |
|
dmazzoni
2015/06/22 19:23:21
I think it's confusing to reuse TEXT_SEL_START.
A
|
| + dst->AddIntAttribute(ui::AX_ATTR_OBJ_SEL_END, focusId); |
| + dst->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_END, focusOffset); |
| } |
| } |
| } |