| 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 1936535d32eca779153db6b86bb2eb95de799c1d..b4094e0ded3c604bcc591f5515576fec3c302cec 100644
|
| --- a/content/renderer/accessibility/blink_ax_tree_source.cc
|
| +++ b/content/renderer/accessibility/blink_ax_tree_source.cc
|
| @@ -162,19 +162,22 @@ AXContentTreeData BlinkAXTreeSource::GetTreeData() const {
|
| tree_data.sel_focus_offset = focus_offset;
|
| }
|
|
|
| - // Get the tree ID for this frame and possibly the parent frame.
|
| + // Get the tree ID for this frame and the parent frame.
|
| WebLocalFrame* web_frame = document.frame();
|
| if (web_frame) {
|
| RenderFrame* render_frame = RenderFrame::FromWebFrame(web_frame);
|
| tree_data.routing_id = render_frame->GetRoutingID();
|
|
|
| - // Get the tree ID for the parent frame, if it's remote.
|
| - // (If it's local, it's already part of this same tree.)
|
| + // Get the tree ID for the parent frame.
|
| blink::WebFrame* parent_web_frame = web_frame->parent();
|
| if (parent_web_frame && parent_web_frame->isWebRemoteFrame()) {
|
| RenderFrameProxy* parent_render_frame_proxy =
|
| RenderFrameProxy::FromWebFrame(parent_web_frame);
|
| tree_data.parent_routing_id = parent_render_frame_proxy->routing_id();
|
| + } else if (parent_web_frame && parent_web_frame->isWebLocalFrame()) {
|
| + RenderFrame* parent_render_frame = RenderFrame::FromWebFrame(
|
| + parent_web_frame);
|
| + tree_data.parent_routing_id = parent_render_frame->GetRoutingID();
|
| }
|
| }
|
|
|
| @@ -465,10 +468,9 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
|
| browser_plugin->browser_plugin_instance_id());
|
| }
|
|
|
| - // Out-of-process iframe.
|
| + // Iframe.
|
| if (is_iframe) {
|
| WebFrame* frame = WebFrame::fromFrameOwnerElement(element);
|
| -
|
| if (frame && frame->isWebRemoteFrame()) {
|
| RenderFrameProxy* render_frame_proxy =
|
| RenderFrameProxy::FromWebFrame(frame);
|
| @@ -476,6 +478,12 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
|
| dst->AddContentIntAttribute(
|
| AX_CONTENT_ATTR_CHILD_ROUTING_ID,
|
| render_frame_proxy->routing_id());
|
| + } else if (frame && frame->isWebLocalFrame()) {
|
| + RenderFrame* render_frame = RenderFrame::FromWebFrame(frame);
|
| + DCHECK(render_frame);
|
| + dst->AddContentIntAttribute(
|
| + AX_CONTENT_ATTR_CHILD_ROUTING_ID,
|
| + render_frame->GetRoutingID());
|
| }
|
| }
|
| }
|
|
|