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 addc5758f1655b49c81747ff6d97e20860f7c601..95615354d288cd0868ceaeec8f9609cd9d348b81 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; |
| @@ -421,6 +421,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()) { |
|
michaeln
2015/07/01 20:57:10
looks like |frame| is sometimes null here and this
|
| + 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()) { |
| @@ -477,23 +492,6 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src, |
| 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) { |