| Index: content/renderer/accessibility/renderer_accessibility_complete.cc
|
| diff --git a/content/renderer/accessibility/renderer_accessibility_complete.cc b/content/renderer/accessibility/renderer_accessibility_complete.cc
|
| index 6c4cc9245c7630b2bf1fbdd413549fee9cc41e28..e7c5e0fb226127a27e4b5f61fad083a25cec7f6a 100644
|
| --- a/content/renderer/accessibility/renderer_accessibility_complete.cc
|
| +++ b/content/renderer/accessibility/renderer_accessibility_complete.cc
|
| @@ -39,6 +39,7 @@ RendererAccessibilityComplete::RendererAccessibilityComplete(
|
| serializer_(&tree_source_),
|
| last_scroll_offset_(gfx::Size()),
|
| ack_pending_(false),
|
| + needs_reset_(false),
|
| weak_factory_(this) {
|
| WebView* web_view = render_frame_->GetRenderView()->GetWebView();
|
| WebSettings* settings = web_view->settings();
|
| @@ -80,6 +81,7 @@ bool RendererAccessibilityComplete::OnMessageReceived(
|
| IPC_MESSAGE_HANDLER(AccessibilityMsg_SetTextSelection,
|
| OnSetTextSelection)
|
| IPC_MESSAGE_HANDLER(AccessibilityMsg_HitTest, OnHitTest)
|
| + IPC_MESSAGE_HANDLER(AccessibilityMsg_Reset, OnReset)
|
| IPC_MESSAGE_HANDLER(AccessibilityMsg_FatalError, OnFatalError)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| @@ -227,7 +229,8 @@ void RendererAccessibilityComplete::SendPendingAccessibilityEvents() {
|
| << "\n" << event_msg.update.ToString();
|
| }
|
|
|
| - Send(new AccessibilityHostMsg_Events(routing_id(), event_msgs));
|
| + Send(new AccessibilityHostMsg_Events(routing_id(), event_msgs, needs_reset_));
|
| + needs_reset_ = false;
|
|
|
| if (had_layout_complete_messages)
|
| SendLocationChanges();
|
| @@ -414,6 +417,16 @@ void RendererAccessibilityComplete::OnSetFocus(int acc_obj_id) {
|
| obj.setFocused(true);
|
| }
|
|
|
| +void RendererAccessibilityComplete::OnReset() {
|
| + needs_reset_ = true;
|
| + serializer_.Reset();
|
| + pending_events_.clear();
|
| +
|
| + const WebDocument& document = GetMainDocument();
|
| + if (!document.isNull())
|
| + HandleAXEvent(document.accessibilityObject(), ui::AX_EVENT_LAYOUT_COMPLETE);
|
| +}
|
| +
|
| void RendererAccessibilityComplete::OnFatalError() {
|
| CHECK(false) << "Invalid accessibility tree.";
|
| }
|
|
|