summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-19 06:49:20 +0000
committerctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-19 06:49:20 +0000
commit847af343455fca79c86ec35634565a6324bac8bf (patch)
tree1337bc00da21b3c68b932ca8a96b2f1480bb5a94 /chrome
parentb905b58c2856c067b6d5ab25c5d6d9d5a32965df (diff)
downloadchromium_src-847af343455fca79c86ec35634565a6324bac8bf.zip
chromium_src-847af343455fca79c86ec35634565a6324bac8bf.tar.gz
chromium_src-847af343455fca79c86ec35634565a6324bac8bf.tar.bz2
Fix handling of a case where an AccessibilityObject is listed as a child multiple times.
BUG=79726 TEST=browser_tests:RendererAccessibilityBrowserTest.CrossPlatformDuplicateChildrenAccessibility Review URL: http://codereview.chromium.org/6873063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/accessibility/renderer_accessibility_browsertest.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/accessibility/renderer_accessibility_browsertest.cc b/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
index 2944d43..93107cb 100644
--- a/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
+++ b/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
@@ -317,4 +317,29 @@ IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
EXPECT_STREQ("Button 3", UTF16ToUTF8(button3.name).c_str());
}
+IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
+ CrossPlatformDuplicateChildrenAccessibility) {
+ // Here's another html snippet where WebKit has a parent node containing
+ // two duplicate child nodes. Instead of checking the exact output, just
+ // make sure that no id is reused in the resulting tree.
+ const char url_str[] =
+ "data:text/html,"
+ "<!doctype html>"
+ "<script>"
+ " document.write('');"
+ " document.close();"
+ " setTimeout(function () {"
+ " document.write('<DT><em><sr><code ><h4 ></em><<');"
+ " document.close();"
+ " setTimeout('location.reload()', 0);"
+ " }, 0);"
+ "</script>";
+ GURL url(url_str);
+ browser()->OpenURL(url, GURL(), CURRENT_TAB, PageTransition::TYPED);
+
+ const WebAccessibility& tree = GetWebAccessibilityTree();
+ base::hash_set<int> ids;
+ RecursiveAssertUniqueIds(tree, &ids);
+}
+
} // namespace