| Index: content/browser/renderer_host/render_view_host_manager_browsertest.cc
|
| diff --git a/content/browser/renderer_host/render_view_host_manager_browsertest.cc b/content/browser/renderer_host/render_view_host_manager_browsertest.cc
|
| index 351019a73fb2e4b7ce5359ec3ce285255d9f53eb..20e14a6a52b71fea71f11cf91224204d2eac307f 100644
|
| --- a/content/browser/renderer_host/render_view_host_manager_browsertest.cc
|
| +++ b/content/browser/renderer_host/render_view_host_manager_browsertest.cc
|
| @@ -45,16 +45,16 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| SwapProcessWithRelNoreferrerAndTargetBlank) {
|
| // Start two servers with different sites.
|
| ASSERT_TRUE(test_server()->Start());
|
| - net::TestServer https_server_(
|
| + net::TestServer https_server(
|
| net::TestServer::TYPE_HTTPS,
|
| FilePath(FILE_PATH_LITERAL("chrome/test/data")));
|
| - ASSERT_TRUE(https_server_.Start());
|
| + ASSERT_TRUE(https_server.Start());
|
|
|
| // Load a page with links that open in a new window.
|
| std::string replacement_path;
|
| ASSERT_TRUE(GetFilePathWithHostAndPortReplacement(
|
| "files/click-noreferrer-links.html",
|
| - https_server_.host_port_pair(),
|
| + https_server.host_port_pair(),
|
| &replacement_path));
|
| ui_test_utils::NavigateToURL(browser(),
|
| test_server()->GetURL(replacement_path));
|
| @@ -71,15 +71,21 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| L"window.domAutomationController.send(clickNoRefTargetBlankLink());",
|
| &success));
|
| EXPECT_TRUE(success);
|
| - // Wait for the cross-site transition to finish.
|
| - ui_test_utils::WaitForLoadStop(
|
| - &(browser()->GetSelectedTabContents()->controller()));
|
| +
|
| + // Wait for the tab to open.
|
| + if (browser()->tab_count() < 2)
|
| + ui_test_utils::WaitForNewTab(browser());
|
|
|
| // Opens in new tab.
|
| EXPECT_EQ(2, browser()->tab_count());
|
| EXPECT_EQ(1, browser()->selected_index());
|
| - EXPECT_EQ(L"Title Of Awesomeness",
|
| - browser()->GetSelectedTabContents()->GetTitle());
|
| + EXPECT_EQ("/files/title2.html",
|
| + browser()->GetSelectedTabContents()->GetURL().path());
|
| +
|
| + // Wait for the cross-site transition in the new tab to finish.
|
| + ui_test_utils::WaitForLoadStop(browser()->GetSelectedTabContents());
|
| + EXPECT_FALSE(browser()->GetSelectedTabContents()->render_manager()->
|
| + pending_render_view_host());
|
|
|
| // Should have a new SiteInstance.
|
| scoped_refptr<SiteInstance> noref_blank_site_instance(
|
| @@ -89,21 +95,20 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
|
|
| // Test for crbug.com/24447. Following a cross-site link with just
|
| // target=_blank should not create a new SiteInstance.
|
| -// Disabled, http://crbug.com/67532.
|
| IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| - DISABLED_DontSwapProcessWithOnlyTargetBlank) {
|
| + DontSwapProcessWithOnlyTargetBlank) {
|
| // Start two servers with different sites.
|
| ASSERT_TRUE(test_server()->Start());
|
| - net::TestServer https_server_(
|
| + net::TestServer https_server(
|
| net::TestServer::TYPE_HTTPS,
|
| FilePath(FILE_PATH_LITERAL("chrome/test/data")));
|
| - ASSERT_TRUE(https_server_.Start());
|
| + ASSERT_TRUE(https_server.Start());
|
|
|
| // Load a page with links that open in a new window.
|
| std::string replacement_path;
|
| ASSERT_TRUE(GetFilePathWithHostAndPortReplacement(
|
| "files/click-noreferrer-links.html",
|
| - https_server_.host_port_pair(),
|
| + https_server.host_port_pair(),
|
| &replacement_path));
|
| ui_test_utils::NavigateToURL(browser(),
|
| test_server()->GetURL(replacement_path));
|
| @@ -120,15 +125,19 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| L"window.domAutomationController.send(clickTargetBlankLink());",
|
| &success));
|
| EXPECT_TRUE(success);
|
| - // Wait for the cross-site transition to finish.
|
| - ui_test_utils::WaitForLoadStop(
|
| - &(browser()->GetSelectedTabContents()->controller()));
|
| +
|
| + // Wait for the tab to open.
|
| + if (browser()->tab_count() < 2)
|
| + ui_test_utils::WaitForNewTab(browser());
|
|
|
| // Opens in new tab.
|
| EXPECT_EQ(2, browser()->tab_count());
|
| EXPECT_EQ(1, browser()->selected_index());
|
| - EXPECT_EQ(L"Title Of Awesomeness",
|
| - browser()->GetSelectedTabContents()->GetTitle());
|
| +
|
| + // Wait for the cross-site transition in the new tab to finish.
|
| + ui_test_utils::WaitForLoadStop(browser()->GetSelectedTabContents());
|
| + EXPECT_EQ("/files/title2.html",
|
| + browser()->GetSelectedTabContents()->GetURL().path());
|
|
|
| // Should have the same SiteInstance.
|
| scoped_refptr<SiteInstance> blank_site_instance(
|
| @@ -142,16 +151,16 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| DontSwapProcessWithOnlyRelNoreferrer) {
|
| // Start two servers with different sites.
|
| ASSERT_TRUE(test_server()->Start());
|
| - net::TestServer https_server_(
|
| + net::TestServer https_server(
|
| net::TestServer::TYPE_HTTPS,
|
| FilePath(FILE_PATH_LITERAL("chrome/test/data")));
|
| - ASSERT_TRUE(https_server_.Start());
|
| + ASSERT_TRUE(https_server.Start());
|
|
|
| // Load a page with links that open in a new window.
|
| std::string replacement_path;
|
| ASSERT_TRUE(GetFilePathWithHostAndPortReplacement(
|
| "files/click-noreferrer-links.html",
|
| - https_server_.host_port_pair(),
|
| + https_server.host_port_pair(),
|
| &replacement_path));
|
| ui_test_utils::NavigateToURL(browser(),
|
| test_server()->GetURL(replacement_path));
|
| @@ -168,15 +177,15 @@ IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest,
|
| L"window.domAutomationController.send(clickNoRefLink());",
|
| &success));
|
| EXPECT_TRUE(success);
|
| - // Wait for the cross-site transition to finish.
|
| - ui_test_utils::WaitForLoadStop(
|
| - &(browser()->GetSelectedTabContents()->controller()));
|
| +
|
| + // Wait for the cross-site transition in the current tab to finish.
|
| + ui_test_utils::WaitForLoadStop(browser()->GetSelectedTabContents());
|
|
|
| // Opens in same tab.
|
| EXPECT_EQ(1, browser()->tab_count());
|
| EXPECT_EQ(0, browser()->selected_index());
|
| - EXPECT_EQ(L"Title Of Awesomeness",
|
| - browser()->GetSelectedTabContents()->GetTitle());
|
| + EXPECT_EQ("/files/title2.html",
|
| + browser()->GetSelectedTabContents()->GetURL().path());
|
|
|
| // Should have the same SiteInstance.
|
| scoped_refptr<SiteInstance> noref_site_instance(
|
| @@ -235,6 +244,9 @@ class BrowserClosedObserver : public NotificationObserver {
|
| case NotificationType::BROWSER_CLOSED:
|
| MessageLoopForUI::current()->Quit();
|
| break;
|
| + default:
|
| + NOTREACHED();
|
| + break;
|
| }
|
| }
|
|
|
|
|