| 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 2ba5be4e99daa2686deab061c830f81a78f781e1..13b255c6a1ffc98806fed1a3153e8ec13fd6fa95 100644
|
| --- a/content/renderer/accessibility/blink_ax_tree_source.cc
|
| +++ b/content/renderer/accessibility/blink_ax_tree_source.cc
|
| @@ -26,12 +26,14 @@
|
| #include "third_party/WebKit/public/web/WebNode.h"
|
| #include "third_party/WebKit/public/web/WebView.h"
|
|
|
| +
|
| using base::ASCIIToUTF16;
|
| using base::UTF16ToUTF8;
|
| using blink::WebAXObject;
|
| using blink::WebDocument;
|
| using blink::WebDocumentType;
|
| using blink::WebElement;
|
| +using blink::WebFrame;
|
| using blink::WebLocalFrame;
|
| using blink::WebNode;
|
| using blink::WebVector;
|
| @@ -100,6 +102,13 @@ BlinkAXTreeSource::BlinkAXTreeSource(RenderViewImpl* render_view)
|
| BlinkAXTreeSource::~BlinkAXTreeSource() {
|
| }
|
|
|
| +void BlinkAXTreeSource::CollectChildFrameIdMapping(
|
| + std::map<int32, int>* guest_instance_ids,
|
| + std::map<int32, int>* frame_routing_ids) {
|
| + guest_instance_ids_ = guest_instance_ids;
|
| + frame_routing_ids_ = frame_routing_ids;
|
| +}
|
| +
|
| blink::WebAXObject BlinkAXTreeSource::GetRoot() const {
|
| return GetMainDocument().accessibilityObject();
|
| }
|
| @@ -438,6 +447,13 @@ void BlinkAXTreeSource::SerializeNode(blink::WebAXObject src,
|
| const gfx::Size& max_offset = document.frame()->maximumScrollOffset();
|
| dst->AddIntAttribute(ui::AX_ATTR_SCROLL_X_MAX, max_offset.width());
|
| dst->AddIntAttribute(ui::AX_ATTR_SCROLL_Y_MAX, max_offset.height());
|
| +
|
| + if (frame_routing_ids_ && !src.equals(GetRoot())) {
|
| + WebFrame* frame = document.frame();
|
| + RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(frame);
|
| + frame_routing_ids_->insert(std::pair<int32, int>(
|
| + dst->id, render_frame->GetRoutingID()));
|
| + }
|
| }
|
|
|
| if (dst->role == ui::AX_ROLE_TABLE) {
|
|
|