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

Unified Diff: content/browser/renderer_host/render_view_host_manager_browsertest.cc

Issue 10831056: Port the render_view_host_manager_browsertest.cc to content_browsertests. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 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/renderer_host/render_view_host_manager_browsertest.cc
===================================================================
--- content/browser/renderer_host/render_view_host_manager_browsertest.cc (revision 148713)
+++ content/browser/renderer_host/render_view_host_manager_browsertest.cc (working copy)
@@ -6,11 +6,6 @@
#include "base/memory/ref_counted.h"
#include "base/path_service.h"
#include "base/utf_string_conversions.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/ui_test_utils.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/site_instance_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
@@ -22,15 +17,19 @@
#include "content/public/browser/notification_types.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host_observer.h"
+#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/test_utils.h"
+#include "content/shell/shell.h"
+#include "content/test/content_browser_test.h"
+#include "content/test/content_browser_test_utils.h"
#include "net/base/net_util.h"
#include "net/test/test_server.h"
-using content::RenderViewHost;
-using content::SiteInstance;
+namespace content {
-class RenderViewHostManagerTest : public InProcessBrowserTest {
+class RenderViewHostManagerTest : public ContentBrowserTest {
public:
RenderViewHostManagerTest() {}
@@ -53,7 +52,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -62,62 +61,51 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
- // Open a same-site link in a new tab.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ // Open a same-site link in a new window.
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
- // Wait for the navigation in the new tab to finish, if it hasn't.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ // Wait for the navigation in the new window to finish, if it hasn't.
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
+ new_shell->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, blank_site_instance);
- // We should have access to the opened tab's location.
- chrome::ActivateTabAt(browser(), 0, true);
+ // We should have access to the opened window's location.
success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(testScriptAccessToWindow());",
&success));
EXPECT_TRUE(success);
- // Now navigate the new tab to a different site.
- chrome::ActivateTabAt(browser(), 1, true);
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ // Now navigate the new window to a different site.
+ NavigateToURL(new_shell, https_server.GetURL("files/title1.html"));
scoped_refptr<SiteInstance> new_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, new_site_instance);
- // We should no longer have script access to the opened tab's location.
- chrome::ActivateTabAt(browser(), 0, true);
+ // We should no longer have script access to the opened window's location.
success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(testScriptAccessToWindow());",
&success));
EXPECT_FALSE(success);
@@ -132,7 +120,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -141,42 +129,37 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a rel=noreferrer + target=blank link.
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickNoRefTargetBlankLink());",
&success));
EXPECT_TRUE(success);
- // Wait for the tab to open.
- if (browser()->tab_count() < 2)
- ui_test_utils::WaitForNewTab(browser());
+ // Wait for the window to open.
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
- EXPECT_EQ("/files/title2.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ EXPECT_EQ("/files/title2.html", new_shell->web_contents()->GetURL().path());
// Wait for the cross-site transition in the new tab to finish.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(new_shell->web_contents());
WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
- chrome::GetActiveWebContents(browser()));
+ new_shell->web_contents());
EXPECT_FALSE(web_contents->GetRenderManagerForTesting()->
pending_render_view_host());
// Should have a new SiteInstance.
scoped_refptr<SiteInstance> noref_blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, noref_blank_site_instance);
}
@@ -190,7 +173,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -199,42 +182,38 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a same-site rel=noreferrer + target=foo link.
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteNoRefTargetedLink());",
&success));
EXPECT_TRUE(success);
- // Wait for the tab to open.
- if (browser()->tab_count() < 2)
- ui_test_utils::WaitForNewTab(browser());
+ // Wait for the window to open.
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
- EXPECT_EQ("/files/title2.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ // Opens in new window.
+ EXPECT_EQ("/files/title2.html", new_shell->web_contents()->GetURL().path());
// Wait for the cross-site transition in the new tab to finish.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(new_shell->web_contents());
WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
- chrome::GetActiveWebContents(browser()));
+ new_shell->web_contents());
EXPECT_FALSE(web_contents->GetRenderManagerForTesting()->
pending_render_view_host());
// Should have a new SiteInstance (in a new BrowsingInstance).
scoped_refptr<SiteInstance> noref_blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, noref_blank_site_instance);
}
@@ -247,7 +226,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -256,38 +235,33 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a target=blank link.
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickTargetBlankLink());",
&success));
EXPECT_TRUE(success);
- // Wait for the tab to open.
- if (browser()->tab_count() < 2)
- ui_test_utils::WaitForNewTab(browser());
+ // Wait for the window to open.
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
// Wait for the cross-site transition in the new tab to finish.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/title2.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ new_shell->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, blank_site_instance);
}
@@ -300,7 +274,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -309,34 +283,31 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a rel=noreferrer link.
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickNoRefLink());",
&success));
EXPECT_TRUE(success);
// Wait for the cross-site transition in the current tab to finish.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(shell()->web_contents());
- // Opens in same tab.
- EXPECT_EQ(1, browser()->tab_count());
- EXPECT_EQ(0, browser()->active_index());
- EXPECT_EQ("/files/title2.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ // Opens in same window.
+ EXPECT_EQ(1u, Shell::windows().size());
+ EXPECT_EQ("/files/title2.html", shell()->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> noref_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, noref_site_instance);
}
@@ -349,7 +320,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -358,79 +329,66 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a target=foo link.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
// Wait for the navigation in the new tab to finish, if it hasn't.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
+ new_shell->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, blank_site_instance);
// Now navigate the new tab to a different site.
- content::WebContents* new_contents = chrome::GetActiveWebContents(browser());
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ NavigateToURL(new_shell, https_server.GetURL("files/title1.html"));
scoped_refptr<SiteInstance> new_site_instance(
- new_contents->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, new_site_instance);
// Clicking the original link in the first tab should cause us to swap back.
- chrome::ActivateTabAt(browser(), 0, true);
- content::WindowedNotificationObserver navigation_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &new_contents->GetController()));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ WindowedNotificationObserver navigation_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(
+ &new_shell->web_contents()->GetController()));
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
navigation_observer.Wait();
- // Should have swapped back and shown the new tab again.
- EXPECT_EQ(1, browser()->active_index());
+ // Should have swapped back and shown the new widnow again.
Charlie Reis 2012/07/30 16:40:01 nit: window
jam 2012/07/30 17:03:50 Done.
scoped_refptr<SiteInstance> revisit_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, revisit_site_instance);
// If it navigates away to another process, the original window should
// still be able to close it (using a cross-process close message).
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ NavigateToURL(new_shell, https_server.GetURL("files/title1.html"));
EXPECT_EQ(new_site_instance,
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
- chrome::ActivateTabAt(browser(), 0, true);
- content::WindowedNotificationObserver close_observer(
- content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
- content::Source<content::WebContents>(new_contents));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ new_shell->web_contents()->GetSiteInstance());
+ WindowedNotificationObserver close_observer(
+ NOTIFICATION_WEB_CONTENTS_DESTROYED,
+ Source<WebContents>(new_shell->web_contents()));
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(testCloseWindow());",
&success));
EXPECT_TRUE(success);
@@ -451,7 +409,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -460,12 +418,10 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance and RVHM for later comparison.
- content::WebContents* opener_contents =
- chrome::GetActiveWebContents(browser());
+ WebContents* opener_contents = shell()->web_contents();
scoped_refptr<SiteInstance> orig_site_instance(
opener_contents->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
@@ -477,61 +433,54 @@
// reference to each other. We will later post a message between them.
// First, a named target=foo window.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
opener_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Wait for the navigation in the new tab to finish, if it hasn't, then
+ // Wait for the navigation in the new window to finish, if it hasn't, then
// send it to post_message.html on a different site.
- content::WebContents* foo_contents = chrome::GetActiveWebContents(browser());
- content::WaitForLoadStop(foo_contents);
+ WebContents* foo_contents = new_shell->web_contents();
+ WaitForLoadStop(foo_contents);
EXPECT_EQ("/files/navigate_opener.html", foo_contents->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/post_message.html"));
+ NavigateToURL(new_shell, https_server.GetURL("files/post_message.html"));
scoped_refptr<SiteInstance> foo_site_instance(
foo_contents->GetSiteInstance());
EXPECT_NE(orig_site_instance, foo_site_instance);
// Second, a target=_blank window.
- chrome::ActivateTabAt(browser(), 0, true);
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer2((
- content::Source<content::WebContentsDelegate>(browser())));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ ShellAddedObserver new_shell_observer2;
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetBlankLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer2.Wait();
- // Wait for the navigation in the new tab to finish, if it hasn't, then
+ // Wait for the navigation in the new window to finish, if it hasn't, then
// send it to post_message.html on the original site.
- content::WebContents* new_contents = chrome::GetActiveWebContents(browser());
- content::WaitForLoadStop(new_contents);
+ Shell* new_shell2 = new_shell_observer2.GetShell();
+ WebContents* new_contents = new_shell2->web_contents();
+ WaitForLoadStop(new_contents);
EXPECT_EQ("/files/title2.html", new_contents->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
- ui_test_utils::NavigateToURL(
- browser(), test_server()->GetURL("files/post_message.html"));
+ NavigateToURL(new_shell2, test_server()->GetURL("files/post_message.html"));
EXPECT_EQ(orig_site_instance, new_contents->GetSiteInstance());
RenderViewHostManager* new_manager =
static_cast<WebContentsImpl*>(new_contents)->GetRenderManagerForTesting();
// We now have three windows. The opener should have a swapped out RVH
// for the new SiteInstance, but the _blank window should not.
- EXPECT_EQ(3, browser()->tab_count());
+ EXPECT_EQ(3u, Shell::windows().size());
EXPECT_TRUE(opener_manager->GetSwappedOutRenderViewHost(foo_site_instance));
EXPECT_FALSE(new_manager->GetSwappedOutRenderViewHost(foo_site_instance));
// 2) Fail to post a message from the foo window to the opener if the target
// origin is wrong. We won't see an error, but we can check for the right
// number of received messages below.
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
foo_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(postToOpener('msg',"
L"'http://google.com'));",
@@ -540,10 +489,10 @@
// 3) Post a message from the foo window to the opener. The opener will
// reply, causing the foo window to update its own title.
- content::WindowedNotificationObserver title_observer(
- content::NOTIFICATION_WEB_CONTENTS_TITLE_UPDATED,
- content::Source<content::WebContents>(foo_contents));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ WindowedNotificationObserver title_observer(
+ NOTIFICATION_WEB_CONTENTS_TITLE_UPDATED,
+ Source<WebContents>(foo_contents));
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
foo_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(postToOpener('msg','*'));",
&success));
@@ -553,12 +502,12 @@
// We should have received only 1 message in the opener and "foo" tabs,
// and updated the title.
int opener_received_messages = 0;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractInt(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractInt(
opener_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(window.receivedMessages);",
&opener_received_messages));
int foo_received_messages = 0;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractInt(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractInt(
foo_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(window.receivedMessages);",
&foo_received_messages));
@@ -568,10 +517,10 @@
// 4) Now post a message from the _blank window to the foo window. The
// foo window will update its title and will not reply.
- content::WindowedNotificationObserver title_observer2(
- content::NOTIFICATION_WEB_CONTENTS_TITLE_UPDATED,
- content::Source<content::WebContents>(foo_contents));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ WindowedNotificationObserver title_observer2(
+ NOTIFICATION_WEB_CONTENTS_TITLE_UPDATED,
+ Source<WebContents>(foo_contents));
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
new_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(postToFoo('msg2'));",
&success));
@@ -593,7 +542,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -602,69 +551,55 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original tab and SiteInstance for later comparison.
- content::WebContents* orig_contents = chrome::GetActiveWebContents(browser());
+ WebContents* orig_contents = shell()->web_contents();
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ orig_contents->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a target=foo link.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ orig_contents->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
- // Wait for the navigation in the new tab to finish, if it hasn't.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ // Wait for the navigation in the new window to finish, if it hasn't.
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
+ new_shell->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> blank_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, blank_site_instance);
// Now navigate the original (opener) tab to a different site.
- chrome::ActivateTabAt(browser(), 0, true);
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ NavigateToURL(shell(), https_server.GetURL("files/title1.html"));
scoped_refptr<SiteInstance> new_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, new_site_instance);
// The opened tab should be able to navigate the opener back to its process.
- chrome::ActivateTabAt(browser(), 1, true);
- content::WindowedNotificationObserver navigation_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &orig_contents->GetController()));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ WindowedNotificationObserver navigation_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(
+ &orig_contents->GetController()));
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ new_shell->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(navigateOpener());",
&success));
EXPECT_TRUE(success);
navigation_observer.Wait();
- // Active tab should not have changed.
- EXPECT_EQ(1, browser()->active_index());
-
// Should have swapped back into this process.
- chrome::ActivateTabAt(browser(), 0, true);
scoped_refptr<SiteInstance> revisit_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, revisit_site_instance);
}
@@ -678,7 +613,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -687,63 +622,53 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Test clicking a target=foo link.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
- // Wait for the navigation in the new tab to finish, if it hasn't.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ // Wait for the navigation in the new window to finish, if it hasn't.
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
+ new_shell->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> opened_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, opened_site_instance);
- // Now navigate the opened tab to a different site.
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ // Now navigate the opened window to a different site.
+ NavigateToURL(new_shell, https_server.GetURL("files/title1.html"));
scoped_refptr<SiteInstance> new_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ new_shell->web_contents()->GetSiteInstance());
EXPECT_NE(orig_site_instance, new_site_instance);
// The original process should still be alive, since it is still used in the
- // first tab.
- content::RenderProcessHost* orig_process = orig_site_instance->GetProcess();
+ // first window.
+ RenderProcessHost* orig_process = orig_site_instance->GetProcess();
EXPECT_TRUE(orig_process->HasConnection());
- // Navigate the first tab to a different site as well. The original process
- // should exit, since all of its views are now swapped out.
- chrome::ActivateTabAt(browser(), 0, true);
- content::WindowedNotificationObserver exit_observer(
- content::NOTIFICATION_RENDERER_PROCESS_TERMINATED,
- content::Source<content::RenderProcessHost>(orig_process));
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ // Navigate the first window to a different site as well. The original
+ // process should exit, since all of its views are now swapped out.
+ WindowedNotificationObserver exit_observer(
+ NOTIFICATION_RENDERER_PROCESS_TERMINATED,
+ Source<RenderProcessHost>(orig_process));
+ NavigateToURL(shell(), https_server.GetURL("files/title1.html"));
exit_observer.Wait();
scoped_refptr<SiteInstance> new_site_instance2(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_EQ(new_site_instance, new_site_instance2);
}
@@ -755,7 +680,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -765,49 +690,45 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
// Get the original SiteInstance for later comparison.
scoped_refptr<SiteInstance> orig_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_TRUE(orig_site_instance != NULL);
// Load a cross-site page that fails with a 204 error.
- ui_test_utils::NavigateToURL(browser(), https_server.GetURL("nocontent"));
+ NavigateToURL(shell(), https_server.GetURL("nocontent"));
// We should still be looking at the normal page. The typed URL will
// still be visible until the user clears it manually, but the last
// committed URL will be the previous page.
scoped_refptr<SiteInstance> post_nav_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, post_nav_site_instance);
- EXPECT_EQ("/nocontent",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ EXPECT_EQ("/nocontent", shell()->web_contents()->GetURL().path());
EXPECT_EQ("/files/click-noreferrer-links.html",
- chrome::GetActiveWebContents(browser())->GetController().
+ shell()->web_contents()->GetController().
GetLastCommittedEntry()->GetVirtualURL().path());
// Renderer-initiated navigations should work.
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickNoRefLink());",
&success));
EXPECT_TRUE(success);
// Wait for the cross-site transition in the current tab to finish.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(shell()->web_contents());
// Opens in same tab.
- EXPECT_EQ(1, browser()->tab_count());
- EXPECT_EQ(0, browser()->active_index());
- EXPECT_EQ("/files/title2.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ EXPECT_EQ(1u, Shell::windows().size());
+ EXPECT_EQ("/files/title2.html", shell()->web_contents()->GetURL().path());
// Should have the same SiteInstance.
scoped_refptr<SiteInstance> noref_site_instance(
- chrome::GetActiveWebContents(browser())->GetSiteInstance());
+ shell()->web_contents()->GetSiteInstance());
EXPECT_EQ(orig_site_instance, noref_site_instance);
}
@@ -815,12 +736,14 @@
// do not cause back/forward navigations to be considered stale by the
// renderer.
IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest, BackForwardNotStale) {
+ NavigateToURL(shell(), GURL(chrome::kAboutBlankURL));
+
// Start two servers with different sites.
ASSERT_TRUE(test_server()->Start());
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Visit a page on first site.
@@ -829,8 +752,7 @@
"files/title1.html",
test_server()->host_port_pair(),
&replacement_path_a1));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path_a1));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path_a1));
// Visit three pages on second site.
std::string replacement_path_b1;
@@ -838,101 +760,91 @@
"files/title1.html",
https_server.host_port_pair(),
&replacement_path_b1));
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL(replacement_path_b1));
+ NavigateToURL(shell(), https_server.GetURL(replacement_path_b1));
std::string replacement_path_b2;
ASSERT_TRUE(GetFilePathWithHostAndPortReplacement(
"files/title2.html",
https_server.host_port_pair(),
&replacement_path_b2));
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL(replacement_path_b2));
+ NavigateToURL(shell(), https_server.GetURL(replacement_path_b2));
std::string replacement_path_b3;
ASSERT_TRUE(GetFilePathWithHostAndPortReplacement(
"files/title3.html",
https_server.host_port_pair(),
&replacement_path_b3));
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL(replacement_path_b3));
+ NavigateToURL(shell(), https_server.GetURL(replacement_path_b3));
// History is now [blank, A1, B1, B2, *B3].
- content::WebContents* contents = chrome::GetActiveWebContents(browser());
+ WebContents* contents = shell()->web_contents();
EXPECT_EQ(5, contents->GetController().GetEntryCount());
- // Open another tab in same process to keep this process alive.
- ui_test_utils::NavigateToURLWithDisposition(
- browser(), https_server.GetURL(replacement_path_b1),
- NEW_BACKGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ // Open another window in same process to keep this process alive.
+ Shell* new_shell = CreateBrowser();
+ NavigateToURL(new_shell, https_server.GetURL(replacement_path_b1));
// Go back three times to first site.
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(
&contents->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ shell()->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(
&contents->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ shell()->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
// Now go forward twice to B2. Shouldn't be left spinning.
{
- content::WindowedNotificationObserver forward_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- chrome::GoForward(browser(), CURRENT_TAB);
+ WindowedNotificationObserver forward_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoForward();
forward_nav_load_observer.Wait();
}
{
- content::WindowedNotificationObserver forward_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- chrome::GoForward(browser(), CURRENT_TAB);
+ WindowedNotificationObserver forward_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoForward();
forward_nav_load_observer.Wait();
}
// Go back twice to first site.
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
// Now go forward directly to B3. Shouldn't be left spinning.
{
- content::WindowedNotificationObserver forward_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &contents->GetController()));
- contents->GetController().GoToIndex(4);
+ WindowedNotificationObserver forward_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&contents->GetController()));
+ shell()->web_contents()->GetController().GoToIndex(4);
forward_nav_load_observer.Wait();
}
}
@@ -946,7 +858,7 @@
net::TestServer https_server(
net::TestServer::TYPE_HTTPS,
net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
// Load a page with links that open in a new window.
@@ -955,46 +867,36 @@
"files/click-noreferrer-links.html",
https_server.host_port_pair(),
&replacement_path));
- ui_test_utils::NavigateToURL(browser(),
- test_server()->GetURL(replacement_path));
+ NavigateToURL(shell(), test_server()->GetURL(replacement_path));
- // Open a same-site link in a new tab.
- ui_test_utils::WindowedTabAddedNotificationObserver new_tab_observer((
- content::Source<content::WebContentsDelegate>(browser())));
+ // Open a same-site link in a new widnow.
+ ShellAddedObserver new_shell_observer;
bool success = false;
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
- chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"",
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
+ shell()->web_contents()->GetRenderViewHost(), L"",
L"window.domAutomationController.send(clickSameSiteTargetedLink());",
&success));
EXPECT_TRUE(success);
- new_tab_observer.Wait();
+ Shell* new_shell = new_shell_observer.GetShell();
- // Opens in new tab.
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(1, browser()->active_index());
-
// Wait for the navigation in the new tab to finish, if it hasn't.
- content::WaitForLoadStop(chrome::GetActiveWebContents(browser()));
+ WaitForLoadStop(new_shell->web_contents());
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
- EXPECT_EQ(1, browser()->active_index());
+ new_shell->web_contents()->GetURL().path());
- RenderViewHost* rvh =
- chrome::GetActiveWebContents(browser())->GetRenderViewHost();
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ RenderViewHost* rvh = new_shell->web_contents()->GetRenderViewHost();
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
rvh, L"",
L"window.domAutomationController.send("
L"document.webkitVisibilityState == 'visible');",
&success));
EXPECT_TRUE(success);
- // Now navigate the new tab to a different site. This should swap out the
+ // Now navigate the new window to a different site. This should swap out the
// tab's existing RenderView, causing it become hidden.
- chrome::ActivateTabAt(browser(), 1, true);
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title1.html"));
+ NavigateToURL(new_shell, https_server.GetURL("files/title1.html"));
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
rvh, L"",
L"window.domAutomationController.send("
L"document.webkitVisibilityState == 'hidden');",
@@ -1004,21 +906,21 @@
// Going back should make the previously swapped-out view to become visible
// again.
{
- content::WindowedNotificationObserver back_nav_load_observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::Source<content::NavigationController>(
- &chrome::GetActiveWebContents(browser())->GetController()));
- chrome::GoBack(browser(), CURRENT_TAB);
+ WindowedNotificationObserver back_nav_load_observer(
+ NOTIFICATION_NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(
+ &new_shell->web_contents()->GetController()));
+ new_shell->web_contents()->GetController().GoBack();
back_nav_load_observer.Wait();
}
EXPECT_EQ("/files/navigate_opener.html",
- chrome::GetActiveWebContents(browser())->GetURL().path());
+ new_shell->web_contents()->GetURL().path());
- EXPECT_EQ(rvh, chrome::GetActiveWebContents(browser())->GetRenderViewHost());
+ EXPECT_EQ(rvh, new_shell->web_contents()->GetRenderViewHost());
- EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
+ EXPECT_TRUE(ExecuteJavaScriptAndExtractBool(
rvh, L"",
L"window.domAutomationController.send("
L"document.webkitVisibilityState == 'visible');",
@@ -1046,16 +948,16 @@
}
private:
friend class RVHObserver;
- class RVHObserver : public content::RenderViewHostObserver {
+ class RVHObserver : public RenderViewHostObserver {
public:
RVHObserver(RenderViewHostObserverArray* parent, RenderViewHost* rvh)
- : content::RenderViewHostObserver(rvh),
+ : RenderViewHostObserver(rvh),
parent_(parent) {
}
virtual void RenderViewHostDestroyed(RenderViewHost* rvh) OVERRIDE {
if (parent_)
parent_->RemoveObserver(this);
- content::RenderViewHostObserver::RenderViewHostDestroyed(rvh);
+ RenderViewHostObserver::RenderViewHostDestroyed(rvh);
};
void ClearParent() {
parent_ = NULL;
@@ -1077,46 +979,41 @@
IN_PROC_BROWSER_TEST_F(RenderViewHostManagerTest, LeakingRenderViewHosts) {
// Start two servers with different sites.
ASSERT_TRUE(test_server()->Start());
- net::TestServer https_server(net::TestServer::TYPE_HTTPS,
- net::TestServer::kLocalhost,
- FilePath(FILE_PATH_LITERAL("chrome/test/data")));
+ net::TestServer https_server(
+ net::TestServer::TYPE_HTTPS,
+ net::TestServer::kLocalhost,
+ FilePath(FILE_PATH_LITERAL("content/test/data")));
ASSERT_TRUE(https_server.Start());
- // Create a new tab so that we can close the one we navigate and still have
- // a running browser.
- AddBlankTabAndShow(browser());
Charlie Reis 2012/07/30 16:40:01 I guess this isn't needed?
jam 2012/07/30 17:03:50 right. this was needed for chrome (which quits if
-
// Load a random page and then navigate to view-source: of it.
// This used to cause two RVH instances for the same SiteInstance, which
// was a problem. This is no longer the case.
GURL navigated_url(test_server()->GetURL("files/title2.html"));
- ui_test_utils::NavigateToURL(browser(), navigated_url);
- SiteInstance* site_instance1 = chrome::GetActiveWebContents(browser())->
+ NavigateToURL(shell(), navigated_url);
+ SiteInstance* site_instance1 = shell()->web_contents()->
GetRenderViewHost()->GetSiteInstance();
// Observe the newly created render_view_host to make sure it will not leak.
RenderViewHostObserverArray rvh_observers;
- rvh_observers.AddObserverToRVH(chrome::GetActiveWebContents(browser())->
- GetRenderViewHost());
+ rvh_observers.AddObserverToRVH(shell()->web_contents()->GetRenderViewHost());
GURL view_source_url(chrome::kViewSourceScheme + std::string(":") +
navigated_url.spec());
- ui_test_utils::NavigateToURL(browser(), view_source_url);
- rvh_observers.AddObserverToRVH(chrome::GetActiveWebContents(browser())->
- GetRenderViewHost());
- SiteInstance* site_instance2 = chrome::GetActiveWebContents(browser())->
+ NavigateToURL(shell(), view_source_url);
+ rvh_observers.AddObserverToRVH(shell()->web_contents()->GetRenderViewHost());
+ SiteInstance* site_instance2 = shell()->web_contents()->
GetRenderViewHost()->GetSiteInstance();
// Ensure that view-source navigations force a new SiteInstance.
EXPECT_NE(site_instance1, site_instance2);
// Now navigate to a different instance so that we swap out again.
- ui_test_utils::NavigateToURL(browser(),
- https_server.GetURL("files/title2.html"));
- rvh_observers.AddObserverToRVH(chrome::GetActiveWebContents(browser())->
- GetRenderViewHost());
+ NavigateToURL(shell(), https_server.GetURL("files/title2.html"));
+ rvh_observers.AddObserverToRVH(shell()->web_contents()->GetRenderViewHost());
// This used to leak a render view host.
- chrome::CloseWebContents(browser(), chrome::GetActiveWebContents(browser()));
+ shell()->Close();
EXPECT_EQ(0U, rvh_observers.GetNumObservers());
}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698