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 8ae828e97ed634b76b2567f3a32e6905dc35e660..f7b00533962e522d56d296f04c1f6d070e051d19 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::WebAXObject; |
using blink::WebDocument; |
using blink::WebDocumentType; |
using blink::WebElement; |
-using blink::WebLocalFrame; |
+using blink::WebFrame; |
using blink::WebNode; |
using blink::WebPlugin; |
using blink::WebPluginContainer; |
@@ -431,6 +431,21 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
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()) { |
@@ -498,24 +513,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
const gfx::Size& max_offset = document.maximumScrollOffset(); |
dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X_MAX, max_offset.width()); |
dst->AddIntAttribute(ui::AX_ATTR_SCROLL_Y_MAX, max_offset.height()); |
- |
- 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) { |