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

Unified Diff: chrome/browser/ui/search/instant_extended_interactive_uitest.cc

Issue 19872007: Use process per site instance for "Instant". (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 7 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: chrome/browser/ui/search/instant_extended_interactive_uitest.cc
diff --git a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
index 7d2f2c819e77eab709cd13139af0a4f4dfa88e0a..686d6548149fed1364a12536cf6b8fa405c9f8d9 100644
--- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
+++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
@@ -579,48 +579,6 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, NoFaviconOnNewTabPage) {
EXPECT_TRUE(favicon_tab_helper->ShouldDisplayFavicon());
}
-IN_PROC_BROWSER_TEST_F(InstantExtendedTest, ProcessIsolation) {
- // Prior to setup, Instant has an ntp with a failed "google.com" load in
- // it, which is rendered in the dedicated Instant renderer process.
- //
- // TODO(sreeram): Fix this up when we stop doing crazy things on init.
- InstantService* instant_service =
- InstantServiceFactory::GetForProfile(browser()->profile());
- ASSERT_NE(static_cast<InstantService*>(NULL), instant_service);
-#if !defined(OS_MACOSX)
- // The failed "google.com" load is deleted, which sometimes leads to the
- // process shutting down on Mac.
- EXPECT_EQ(1, instant_service->GetInstantProcessCount());
-#endif
-
- // Setup Instant.
- ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
- FocusOmniboxAndWaitForInstantNTPSupport();
-
- // The registered Instant render process should still exist.
- EXPECT_EQ(1, instant_service->GetInstantProcessCount());
- // And the Instant ntp should live inside it.
- content::WebContents* ntp_contents = instant()->ntp_->contents();
- EXPECT_TRUE(instant_service->IsInstantProcess(
- ntp_contents->GetRenderProcessHost()->GetID()));
-
- // Navigating to the NTP should use the Instant render process.
- ui_test_utils::NavigateToURLWithDisposition(
- browser(),
- GURL(chrome::kChromeUINewTabURL),
- CURRENT_TAB,
- ui_test_utils::BROWSER_TEST_NONE);
- content::WebContents* active_tab =
- browser()->tab_strip_model()->GetActiveWebContents();
- EXPECT_TRUE(instant_service->IsInstantProcess(
- active_tab->GetRenderProcessHost()->GetID()));
-
- // Navigating elsewhere should not use the Instant render process.
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL));
- EXPECT_FALSE(instant_service->IsInstantProcess(
- active_tab->GetRenderProcessHost()->GetID()));
-}
-
IN_PROC_BROWSER_TEST_F(InstantExtendedTest, DISABLED_MostVisited) {
content::WindowedNotificationObserver observer(
chrome::NOTIFICATION_INSTANT_SENT_MOST_VISITED_ITEMS,
@@ -951,54 +909,6 @@ IN_PROC_BROWSER_TEST_F(
old_render_view_id != new_render_view_id);
}
-// Test that renderer initiated navigations to an Instant URL from an
-// Instant process end up in an Instant process.
-IN_PROC_BROWSER_TEST_F(InstantExtendedTest,
- RendererInitiatedNavigationInInstantProcess) {
- InstantService* instant_service =
- InstantServiceFactory::GetForProfile(browser()->profile());
- ASSERT_NE(static_cast<InstantService*>(NULL), instant_service);
-
- // Setup Instant.
- ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
- FocusOmniboxAndWaitForInstantNTPSupport();
-
- EXPECT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
- EXPECT_EQ(1, browser()->tab_strip_model()->count());
-
- ui_test_utils::NavigateToURLWithDisposition(
- browser(),
- instant_url(),
- CURRENT_TAB,
- ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
- content::WebContents* contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- EXPECT_TRUE(instant_service->IsInstantProcess(
- contents->GetRenderProcessHost()->GetID()));
-
- std::string instant_url_with_query = instant_url().spec() + "q=3";
- std::string add_link_script = base::StringPrintf(
- "var a = document.createElement('a');"
- "a.id = 'toClick';"
- "a.href = '%s';"
- "document.body.appendChild(a);",
- instant_url_with_query.c_str());
- EXPECT_TRUE(content::ExecuteScript(contents, add_link_script));
-
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_NAV_ENTRY_COMMITTED,
- content::NotificationService::AllSources());
- EXPECT_TRUE(content::ExecuteScript(
- contents, "document.getElementById('toClick').click();"));
- observer.Wait();
-
- EXPECT_EQ(1, browser()->tab_strip_model()->count());
- contents = browser()->tab_strip_model()->GetActiveWebContents();
- EXPECT_TRUE(instant_service->IsInstantProcess(
- contents->GetRenderProcessHost()->GetID()));
- EXPECT_EQ(GURL(instant_url_with_query), contents->GetURL());
-}
-
IN_PROC_BROWSER_TEST_F(InstantExtendedTest, AcceptingURLSearchDoesNotNavigate) {
// Get a committed Instant tab, which will be in the Instant process and thus
// support chrome::GetSearchTerms().
@@ -1805,3 +1715,94 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest,
// Make sure the URL remains the same.
EXPECT_EQ(ntp_url, ntp_contents->GetURL());
}
+
+IN_PROC_BROWSER_TEST_F(InstantExtendedTest, ProcessIsolation) {
samarth 2013/07/23 23:44:02 These tests used to be flaky at one point. Can we
kmadhusu 2013/07/24 00:36:02 Added a new test in search_unittest.cc. I am assum
+ // Prior to setup, Instant has an ntp with a failed "google.com" load in
+ // it, which is rendered in the dedicated Instant renderer process.
+ //
+ // TODO(sreeram): Fix this up when we stop doing crazy things on init.
+ InstantService* instant_service =
+ InstantServiceFactory::GetForProfile(browser()->profile());
+ ASSERT_NE(static_cast<InstantService*>(NULL), instant_service);
+#if !defined(OS_MACOSX)
+ // The failed "google.com" load is deleted, which sometimes leads to the
+ // process shutting down on Mac.
+ EXPECT_EQ(1, instant_service->GetInstantProcessCount());
+#endif
+
+ // Setup Instant.
+ ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
+ FocusOmniboxAndWaitForInstantNTPSupport();
+
+ // The registered Instant render process should still exist.
+ EXPECT_EQ(1, instant_service->GetInstantProcessCount());
+ // And the Instant ntp should live inside it.
+ content::WebContents* ntp_contents =
+ instant_service->ntp_prerenderer()->ntp()->contents();
+ EXPECT_TRUE(instant_service->IsInstantProcess(
+ ntp_contents->GetRenderProcessHost()->GetID()));
+
+ // Navigating to the NTP should use the Instant render process.
+ ui_test_utils::NavigateToURLWithDisposition(
+ browser(),
+ GURL(chrome::kChromeUINewTabURL),
+ CURRENT_TAB,
+ ui_test_utils::BROWSER_TEST_NONE);
+ content::WebContents* active_tab =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ EXPECT_TRUE(instant_service->IsInstantProcess(
+ active_tab->GetRenderProcessHost()->GetID()));
+
+ // Navigating elsewhere should not use the Instant render process.
+ ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL));
+ EXPECT_FALSE(instant_service->IsInstantProcess(
+ active_tab->GetRenderProcessHost()->GetID()));
+}
+
+// Test that renderer initiated navigations to an Instant URL from an
+// Instant process end up in an Instant process.
+IN_PROC_BROWSER_TEST_F(InstantExtendedTest,
+ RendererInitiatedNavigationInInstantProcess) {
+ InstantService* instant_service =
+ InstantServiceFactory::GetForProfile(browser()->profile());
+ ASSERT_NE(static_cast<InstantService*>(NULL), instant_service);
+
+ // Setup Instant.
+ ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
+ FocusOmniboxAndWaitForInstantNTPSupport();
+
+ EXPECT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
+ EXPECT_EQ(1, browser()->tab_strip_model()->count());
+
+ ui_test_utils::NavigateToURLWithDisposition(
+ browser(),
+ instant_url(),
+ CURRENT_TAB,
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ content::WebContents* contents =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ EXPECT_TRUE(instant_service->IsInstantProcess(
+ contents->GetRenderProcessHost()->GetID()));
+
+ std::string instant_url_with_query = instant_url().spec() + "q=3";
+ std::string add_link_script = base::StringPrintf(
+ "var a = document.createElement('a');"
+ "a.id = 'toClick';"
+ "a.href = '%s';"
+ "document.body.appendChild(a);",
+ instant_url_with_query.c_str());
+ EXPECT_TRUE(content::ExecuteScript(contents, add_link_script));
+
+ content::WindowedNotificationObserver observer(
+ content::NOTIFICATION_NAV_ENTRY_COMMITTED,
+ content::NotificationService::AllSources());
+ EXPECT_TRUE(content::ExecuteScript(
+ contents, "document.getElementById('toClick').click();"));
+ observer.Wait();
+
+ EXPECT_EQ(1, browser()->tab_strip_model()->count());
+ contents = browser()->tab_strip_model()->GetActiveWebContents();
+ EXPECT_TRUE(instant_service->IsInstantProcess(
+ contents->GetRenderProcessHost()->GetID()));
+ EXPECT_EQ(GURL(instant_url_with_query), contents->GetURL());
+}

Powered by Google App Engine
This is Rietveld 408576698