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 addc5758f1655b49c81747ff6d97e20860f7c601..9d8d47e6f0f11804e07cd3f6e80ea35d082ed20d 100644 |
--- a/content/renderer/accessibility/blink_ax_tree_source.cc |
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc |
@@ -480,17 +480,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/07/16 19:50:23
This code doesn't make sense here - it's in a bloc
|
+ int anchorOffset, focusOffset; |
+ src.selection(anchorObject, anchorOffset, focusObject, focusOffset); |
+ if (!anchorObject.isNull() && !focusObject.isNull() && |
+ anchorOffset >= 0 && focusOffset >= 0) { |
+ int anchorId = anchorObject.axID(); |
dmazzoni
2015/07/16 19:50:23
nit: anchor_id, etc.
|
+ int focusId = focusObject.axID(); |
+ dst->AddIntAttribute(ui::AX_ATTR_ANCHOR_OBJECT_ID, anchorId); |
+ dst->AddIntAttribute(ui::AX_ATTR_ANCHOR_OFFSET, anchorOffset); |
+ dst->AddIntAttribute(ui::AX_ATTR_FOCUS_OBJECT_ID, focusId); |
+ dst->AddIntAttribute(ui::AX_ATTR_FOCUS_OFFSET, focusOffset); |
} |
} |
} |