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); |
} |
} |
} |