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

Unified Diff: content/browser/accessibility/site_per_process_accessibility_browsertest.cc

Issue 1155993003: Fix accessibility with out-of-process iframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixing unittests Created 5 years, 6 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/browser/accessibility/site_per_process_accessibility_browsertest.cc
diff --git a/content/browser/accessibility/site_per_process_accessibility_browsertest.cc b/content/browser/accessibility/site_per_process_accessibility_browsertest.cc
index 1a3ace113889ff7e56c7f20942fec580ba17d618..59e217ae2ee6d2f36042cbd7cada1d63889e33e9 100644
--- a/content/browser/accessibility/site_per_process_accessibility_browsertest.cc
+++ b/content/browser/accessibility/site_per_process_accessibility_browsertest.cc
@@ -47,17 +47,17 @@ bool AccessibilityTreeIsLoaded(BrowserAccessibilityManager* manager) {
root->GetStringAttribute(ui::AX_ATTR_DOC_URL) != url::kAboutBlankURL);
}
-// Disabled, see https://crbug.com/490831.
// Times out on Android, not clear if it's an actual bug or just slow.
+#if defined(OS_ANDROID)
+#define MAYBE_CrossSiteIframeAccessibility DISABLED_CrossSiteIframeAccessibility
+#else
+#define MAYBE_CrossSiteIframeAccessibility CrossSiteIframeAccessibility
+#endif
IN_PROC_BROWSER_TEST_F(SitePerProcessAccessibilityBrowserTest,
- DISABLED_CrossSiteIframeAccessibility) {
+ MAYBE_CrossSiteIframeAccessibility) {
// Enable full accessibility for all current and future WebContents.
BrowserAccessibilityState::GetInstance()->EnableAccessibility();
- AccessibilityNotificationWaiter main_frame_accessibility_waiter(
- shell(), AccessibilityModeComplete,
- ui::AX_EVENT_LOAD_COMPLETE);
-
host_resolver()->AddRule("*", "127.0.0.1");
ASSERT_TRUE(test_server()->Start());
GURL main_url(test_server()->GetURL("files/site_per_process_main.html"));
@@ -74,6 +74,9 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessAccessibilityBrowserTest,
NavigateFrameToURL(child, http_url);
// Load cross-site page into iframe.
+ RenderFrameHostImpl* child_rfh =
+ child->render_manager()->current_frame_host();
+ RenderFrameDeletedObserver deleted_observer(child_rfh);
GURL::Replacements replace_host;
GURL cross_site_url(test_server()->GetURL("files/title2.html"));
replace_host.SetHostStr("foo.com");
@@ -85,10 +88,8 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessAccessibilityBrowserTest,
SiteInstance* site_instance = child->current_frame_host()->GetSiteInstance();
EXPECT_NE(shell()->web_contents()->GetSiteInstance(), site_instance);
- // Wait for the accessibility tree from the main frame to load.
- // Because we created the AccessibilityNotificationWaiter before accessibility
- // was enabled, we're guaranteed to get a LOAD_COMPLETE event.
- main_frame_accessibility_waiter.WaitForNotification();
+ // Wait until the iframe completes the swap.
+ deleted_observer.WaitUntilDeleted();
RenderFrameHostImpl* main_frame = static_cast<RenderFrameHostImpl*>(
shell()->web_contents()->GetMainFrame());
@@ -130,12 +131,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessAccessibilityBrowserTest,
EXPECT_EQ(ui::AX_ROLE_IFRAME, ax_iframe->GetRole());
ASSERT_EQ(1U, ax_iframe->PlatformChildCount());
- BrowserAccessibility* ax_scroll_area = ax_iframe->PlatformGetChild(0);
- EXPECT_EQ(ui::AX_ROLE_SCROLL_AREA, ax_scroll_area->GetRole());
- ASSERT_EQ(1U, ax_scroll_area->PlatformChildCount());
-
- BrowserAccessibility* ax_child_frame_root =
- ax_scroll_area->PlatformGetChild(0);
+ BrowserAccessibility* ax_child_frame_root = ax_iframe->PlatformGetChild(0);
EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, ax_child_frame_root->GetRole());
ASSERT_EQ(1U, ax_child_frame_root->PlatformChildCount());
EXPECT_EQ("Title Of Awesomeness",
@@ -152,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessAccessibilityBrowserTest,
ASSERT_EQ(0U, ax_child_frame_static_text->PlatformChildCount());
// Last, check that the parent of the child frame root is correct.
- EXPECT_EQ(ax_child_frame_root->GetParent(), ax_scroll_area);
+ EXPECT_EQ(ax_child_frame_root->GetParent(), ax_iframe);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698