Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: content/renderer/accessibility/blink_ax_tree_source.cc

Issue 268543008: Cross-process iframe accessibility. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698