Chromium Code Reviews| Index: content/browser/site_per_process_browsertest.cc |
| diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc |
| index 55a2ab9ccfdf381c510fc51fe2d1ba762dbe1398..a0b1add1d6618f7c2cbc1c7ccbd9843e2746b883 100644 |
| --- a/content/browser/site_per_process_browsertest.cc |
| +++ b/content/browser/site_per_process_browsertest.cc |
| @@ -637,13 +637,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessHighDPIBrowserTest, |
| // Ensure that navigating subframes in --site-per-process mode works and the |
| // correct documents are committed. |
| -#if defined(OS_WIN) |
| -// This test is flaky on Windows, see https://crbug.com/629419. |
| -#define MAYBE_CrossSiteIframe DISABLED_CrossSiteIframe |
| -#else |
| -#define MAYBE_CrossSiteIframe CrossSiteIframe |
| -#endif |
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_CrossSiteIframe) { |
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { |
| GURL main_url(embedded_test_server()->GetURL( |
| "a.com", "/cross_site_iframe_factory.html?a(a,a(a,a(a)))")); |
| NavigateToURL(shell(), main_url); |
| @@ -679,7 +673,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_CrossSiteIframe) { |
| // Load cross-site page into iframe. |
| GURL url = embedded_test_server()->GetURL("foo.com", "/title2.html"); |
| - NavigateFrameToURL(root->child_at(0), url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
|
Charlie Reis
2016/11/07 18:20:07
The general rule is that we need this around each
|
| + NavigateFrameToURL(root->child_at(0), url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| // Verify that the navigation succeeded and the expected URL was loaded. |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| @@ -723,7 +721,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_CrossSiteIframe) { |
| // Load another cross-site page into the same iframe. |
| url = embedded_test_server()->GetURL("bar.com", "/title3.html"); |
| - NavigateFrameToURL(root->child_at(0), url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateFrameToURL(root->child_at(0), url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| @@ -1717,13 +1719,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, RestrictFrameDetach) { |
| DepictFrameTree(root)); |
| } |
| -#if defined(OS_WIN) |
| -// This test is flaky on Windows, see https://crbug.com/629419. |
| -#define MAYBE_NavigateRemoteFrame DISABLED_NavigateRemoteFrame |
| -#else |
| -#define MAYBE_NavigateRemoteFrame NavigateRemoteFrame |
| -#endif |
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_NavigateRemoteFrame) { |
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, NavigateRemoteFrame) { |
| GURL main_url(embedded_test_server()->GetURL( |
| "a.com", "/cross_site_iframe_factory.html?a(a,a(a,a(a)))")); |
| NavigateToURL(shell(), main_url); |
| @@ -1742,7 +1738,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_NavigateRemoteFrame) { |
| // Load cross-site page into iframe. |
| GURL url = embedded_test_server()->GetURL("foo.com", "/title2.html"); |
| - NavigateFrameToURL(root->child_at(0), url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateFrameToURL(root->child_at(0), url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| @@ -1763,7 +1763,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_NavigateRemoteFrame) { |
| // Emulate the main frame changing the src of the iframe such that it |
| // navigates cross-site. |
| url = embedded_test_server()->GetURL("bar.com", "/title3.html"); |
| - NavigateIframeToURL(shell()->web_contents(), "child-0", url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateIframeToURL(shell()->web_contents(), "child-0", url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| @@ -1782,7 +1786,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_NavigateRemoteFrame) { |
| // Navigate back to the parent's origin and ensure we return to the |
| // parent's process. |
| - NavigateFrameToURL(child, http_url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateFrameToURL(child, http_url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_EQ(http_url, observer.last_navigation_url()); |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(shell()->web_contents()->GetSiteInstance(), |
| @@ -4248,13 +4256,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, IndexedFrameAccess) { |
| EXPECT_EQ(1, GetReceivedMessages(child2)); |
| } |
| -#if defined(OS_WIN) |
| -// This test is flaky on Windows, see https://crbug.com/629419. |
| -#define MAYBE_RFPHDestruction DISABLED_RFPHDestruction |
| -#else |
| -#define MAYBE_RFPHDestruction RFPHDestruction |
| -#endif |
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_RFPHDestruction) { |
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, RFPHDestruction) { |
| GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html")); |
| NavigateToURL(shell(), main_url); |
| @@ -4266,7 +4268,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_RFPHDestruction) { |
| // Load cross-site page into iframe. |
| FrameTreeNode* child = root->child_at(0); |
| GURL url = embedded_test_server()->GetURL("foo.com", "/title2.html"); |
| - NavigateFrameToURL(root->child_at(0), url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateFrameToURL(root->child_at(0), url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| EXPECT_EQ( |
| @@ -4282,7 +4288,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_RFPHDestruction) { |
| // Load another cross-site page. |
| url = embedded_test_server()->GetURL("bar.com", "/title3.html"); |
| - NavigateIframeToURL(shell()->web_contents(), "test", url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + NavigateIframeToURL(shell()->web_contents(), "test", url); |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| EXPECT_EQ( |
| @@ -4297,14 +4307,16 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_RFPHDestruction) { |
| DepictFrameTree(root)); |
| // Navigate back to the parent's origin. |
| - RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| - url = embedded_test_server()->GetURL("/title1.html"); |
| - NavigateFrameToURL(child, url); |
| + { |
| + RenderFrameDeletedObserver deleted_observer(child->current_frame_host()); |
| + url = embedded_test_server()->GetURL("/title1.html"); |
| + NavigateFrameToURL(child, url); |
| + // Wait for the old process to exit, to verify that the proxies go away. |
| + deleted_observer.WaitUntilDeleted(); |
| + } |
| EXPECT_EQ(url, observer.last_navigation_url()); |
| EXPECT_TRUE(observer.last_navigation_succeeded()); |
| - // Wait for the old process to exit, to verify that the proxies go away. |
| - deleted_observer.WaitUntilDeleted(); |
| EXPECT_EQ( |
| " Site A\n" |
| " |--Site A\n" |