OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/accessibility/render_accessibility_impl.h" | 5 #include "content/renderer/accessibility/render_accessibility_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <queue> | 10 #include <queue> |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 void RenderAccessibilityImpl::SnapshotAccessibilityTree( | 51 void RenderAccessibilityImpl::SnapshotAccessibilityTree( |
52 RenderFrameImpl* render_frame, | 52 RenderFrameImpl* render_frame, |
53 AXContentTreeUpdate* response) { | 53 AXContentTreeUpdate* response) { |
54 DCHECK(render_frame); | 54 DCHECK(render_frame); |
55 DCHECK(response); | 55 DCHECK(response); |
56 if (!render_frame->GetWebFrame()) | 56 if (!render_frame->GetWebFrame()) |
57 return; | 57 return; |
58 | 58 |
59 WebDocument document = render_frame->GetWebFrame()->document(); | 59 WebDocument document = render_frame->GetWebFrame()->document(); |
60 WebScopedAXContext context(document); | 60 WebScopedAXContext context(document); |
| 61 WebAXObject root = context.root(); |
| 62 if (!root.updateLayoutAndCheckValidity()) |
| 63 return; |
61 BlinkAXTreeSource tree_source(render_frame); | 64 BlinkAXTreeSource tree_source(render_frame); |
62 tree_source.SetRoot(context.root()); | 65 tree_source.SetRoot(root); |
63 BlinkAXTreeSerializer serializer(&tree_source); | 66 BlinkAXTreeSerializer serializer(&tree_source); |
64 serializer.set_max_node_count(kMaxSnapshotNodeCount); | 67 serializer.set_max_node_count(kMaxSnapshotNodeCount); |
65 serializer.SerializeChanges(context.root(), response); | 68 serializer.SerializeChanges(context.root(), response); |
66 } | 69 } |
67 | 70 |
68 RenderAccessibilityImpl::RenderAccessibilityImpl(RenderFrameImpl* render_frame) | 71 RenderAccessibilityImpl::RenderAccessibilityImpl(RenderFrameImpl* render_frame) |
69 : RenderFrameObserver(render_frame), | 72 : RenderFrameObserver(render_frame), |
70 render_frame_(render_frame), | 73 render_frame_(render_frame), |
71 tree_source_(render_frame), | 74 tree_source_(render_frame), |
72 serializer_(&tree_source_), | 75 serializer_(&tree_source_), |
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 size_t new_count = pdf_update.nodes.size(); | 692 size_t new_count = pdf_update.nodes.size(); |
690 update->nodes.resize(old_count + new_count); | 693 update->nodes.resize(old_count + new_count); |
691 for (size_t i = 0; i < new_count; ++i) | 694 for (size_t i = 0; i < new_count; ++i) |
692 update->nodes[old_count + i] = pdf_update.nodes[i]; | 695 update->nodes[old_count + i] = pdf_update.nodes[i]; |
693 break; | 696 break; |
694 } | 697 } |
695 } | 698 } |
696 } | 699 } |
697 | 700 |
698 } // namespace content | 701 } // namespace content |
OLD | NEW |