diff options
author | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-19 06:49:20 +0000 |
---|---|---|
committer | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-19 06:49:20 +0000 |
commit | 847af343455fca79c86ec35634565a6324bac8bf (patch) | |
tree | 1337bc00da21b3c68b932ca8a96b2f1480bb5a94 /chrome | |
parent | b905b58c2856c067b6d5ab25c5d6d9d5a32965df (diff) | |
download | chromium_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.cc | 25 |
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 |