Index: content/renderer/accessibility/renderer_accessibility.cc |
diff --git a/content/renderer/accessibility/renderer_accessibility.cc b/content/renderer/accessibility/renderer_accessibility.cc |
index b8152bac21e896b281d16e09ec84e0fc6c121140..19fe5be49570d1feb37c9ff90f5fcbc0775f1b56 100644 |
--- a/content/renderer/accessibility/renderer_accessibility.cc |
+++ b/content/renderer/accessibility/renderer_accessibility.cc |
@@ -25,11 +25,27 @@ using blink::WebLocalFrame; |
using blink::WebNode; |
using blink::WebPoint; |
using blink::WebRect; |
+using blink::WebScopedAXContext; |
using blink::WebSettings; |
using blink::WebView; |
namespace content { |
+// static |
+void RendererAccessibility::SnapshotAccessibilityTree( |
+ RenderFrameImpl* render_frame, |
+ ui::AXTreeUpdate* response) { |
+ if (!render_frame || !render_frame->GetWebFrame()) |
dcheng
2015/04/10 22:49:00
Why would render_frame be null?
dmazzoni
2015/04/13 06:37:18
Shouldn't happen. Changed to DCHECK(render_frame).
|
+ return; |
+ |
+ WebDocument document = render_frame->GetWebFrame()->document(); |
+ WebScopedAXContext context(document); |
+ BlinkAXTreeSource tree_source(render_frame); |
+ tree_source.SetRoot(context.root()); |
+ ui::AXTreeSerializer<blink::WebAXObject> serializer(&tree_source); |
+ serializer.SerializeChanges(context.root(), response); |
+} |
+ |
RendererAccessibility::RendererAccessibility(RenderFrameImpl* render_frame) |
: RenderFrameObserver(render_frame), |
render_frame_(render_frame), |