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 95615354d288cd0868ceaeec8f9609cd9d348b81..addc5758f1655b49c81747ff6d97e20860f7c601 100644 |
--- a/content/renderer/accessibility/blink_ax_tree_source.cc |
+++ b/content/renderer/accessibility/blink_ax_tree_source.cc |
@@ -37,7 +37,7 @@ |
using blink::WebDocument; |
using blink::WebDocumentType; |
using blink::WebElement; |
-using blink::WebFrame; |
+using blink::WebLocalFrame; |
using blink::WebNode; |
using blink::WebPlugin; |
using blink::WebPluginContainer; |
@@ -421,21 +421,6 @@ |
dst->AddBoolAttribute(ui::AX_ATTR_IS_AX_TREE_HOST, true); |
} |
} |
- |
- // Out-of-process iframe. |
- if (is_iframe && node_to_frame_routing_id_map_) { |
- WebFrame* frame = WebFrame::fromFrameOwnerElement(element); |
- |
- if (frame->isWebRemoteFrame()) { |
- RenderFrameProxy* render_frame_proxy = |
- RenderFrameProxy::FromWebFrame(frame); |
- |
- DCHECK(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 (src.isInLiveRegion()) { |
@@ -492,6 +477,23 @@ |
UTF16ToUTF8(doctype.name())); |
} |
+ if (node_to_frame_routing_id_map_ && !src.equals(GetRoot())) { |
+ WebLocalFrame* frame = document.frame(); |
+ RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame); |
+ 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); |
+ 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 (dst->role == ui::AX_ROLE_TABLE) { |