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

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

Issue 625443002: Reset accessibility if it gets out of sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed flakiness Created 6 years, 2 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
« no previous file with comments | « content/renderer/accessibility/renderer_accessibility_complete.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 a6cfa4dd1b63256809e9d1d448364cc1483424dc..28536b03649a14acd8ad1699150069d160bcf8b6 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),
+ reset_token_(0),
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()
@@ -247,7 +249,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, reset_token_));
+ reset_token_ = 0;
if (had_layout_complete_messages)
SendLocationChanges();
@@ -434,6 +437,16 @@ void RendererAccessibilityComplete::OnSetFocus(int acc_obj_id) {
obj.setFocused(true);
}
+void RendererAccessibilityComplete::OnReset(int reset_token) {
+ reset_token_ = reset_token;
+ 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.";
}
« no previous file with comments | « content/renderer/accessibility/renderer_accessibility_complete.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698