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

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

Issue 275503002: Ignore accessibility events fired on objects that aren't in the tree. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add Android suppression Created 6 years, 7 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
Index: content/renderer/accessibility/renderer_accessibility_browsertest.cc
diff --git a/content/renderer/accessibility/renderer_accessibility_browsertest.cc b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
index f1b559b4ae504f1d1662c142f0076695e8698a5d..bf299d46124a822ba2b799b62d17938b008ec930 100644
--- a/content/renderer/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
@@ -516,4 +516,38 @@ TEST_F(RendererAccessibilityTest, DetachAccessibilityObject) {
// so we don't have a test expectation for it.
}
+TEST_F(RendererAccessibilityTest, EventOnObjectNotInTree) {
+ // Test RendererAccessibilityComplete and make sure it doesn't send anything
+ // if we get a notification from Blink for an object that isn't in the
+ // tree, like the scroll area that's the parent of the main document,
+ // which we don't expose.
+ std::string html = "<body><input></body>";
+ LoadHTML(html.c_str());
+
+ scoped_ptr<TestRendererAccessibilityComplete> accessibility(
+ new TestRendererAccessibilityComplete(view()));
+ accessibility->SendPendingAccessibilityEvents();
+ EXPECT_EQ(3, CountAccessibilityNodesSentToBrowser());
+
+ WebDocument document = view()->GetWebView()->mainFrame()->document();
+ WebAXObject root_obj = document.accessibilityObject();
+ WebAXObject scroll_area = root_obj.parentObject();
+ EXPECT_EQ(blink::WebAXRoleScrollArea, scroll_area.role());
+
+ // Try to fire a message on the scroll area, and assert that we just
+ // ignore it.
+ sink_->ClearMessages();
+ accessibility->HandleAXEvent(scroll_area,
+ ui::AX_EVENT_VALUE_CHANGED);
+
+ accessibility->SendPendingAccessibilityEvents();
+
+ const IPC::Message* message =
+ sink_->GetUniqueMessageMatching(AccessibilityHostMsg_Events::ID);
+ ASSERT_TRUE(message);
+ Tuple1<std::vector<AccessibilityHostMsg_EventParams> > param;
+ AccessibilityHostMsg_Events::Read(message, &param);
+ ASSERT_EQ(0U, param.a.size());
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698