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..12a59d3a1c38df477770dcf147a662876838f3df 100644 |
--- a/content/renderer/accessibility/renderer_accessibility.cc |
+++ b/content/renderer/accessibility/renderer_accessibility.cc |
@@ -25,11 +25,29 @@ 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) { |
+ DCHECK(render_frame); |
+ DCHECK(response); |
+ if (!render_frame->GetWebFrame()) |
+ 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), |