summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_navigator_browsertest.cc
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 06:44:16 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 06:44:16 +0000
commit7de53c6c4492948ac3292e4cc5b3dd796078babf (patch)
treec4c695dea7d48615fa5ca991b033f228c091c57a /chrome/browser/ui/browser_navigator_browsertest.cc
parent4d45a6de69bc499b21c06deedf80edda06793de0 (diff)
downloadchromium_src-7de53c6c4492948ac3292e4cc5b3dd796078babf.zip
chromium_src-7de53c6c4492948ac3292e4cc5b3dd796078babf.tar.gz
chromium_src-7de53c6c4492948ac3292e4cc5b3dd796078babf.tar.bz2
Reload a crashed singleton tab when trying to navigate to it.
BUG=82506 TEST=BrowserNavigatorTest.NavigateToCrashedSingletonTab Review URL: http://codereview.chromium.org/7014032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85244 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_navigator_browsertest.cc')
-rw-r--r--chrome/browser/ui/browser_navigator_browsertest.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc
index 156db2d..bd717ed 100644
--- a/chrome/browser/ui/browser_navigator_browsertest.cc
+++ b/chrome/browser/ui/browser_navigator_browsertest.cc
@@ -834,4 +834,33 @@ IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
browser()->GetSelectedTabContents()->GetURL());
}
+// This test makes sure a crashed singleton tab reloads from a new navigation.
+IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
+ NavigateToCrashedSingletonTab) {
+ GURL singleton_url("chrome://settings/advanced");
+ TabContentsWrapper* wrapper =
+ browser()->AddSelectedTabWithURL(singleton_url, PageTransition::LINK);
+ TabContents* tab_contents = wrapper->tab_contents();
+
+ // We should have one browser with 2 tabs, the 2nd selected.
+ EXPECT_EQ(1u, BrowserList::size());
+ EXPECT_EQ(2, browser()->tab_count());
+ EXPECT_EQ(1, browser()->active_index());
+
+ // Kill the singleton tab.
+ tab_contents->SetIsCrashed(base::TERMINATION_STATUS_PROCESS_CRASHED, -1);
+ EXPECT_TRUE(tab_contents->is_crashed());
+
+ browser::NavigateParams p(MakeNavigateParams());
+ p.disposition = SINGLETON_TAB;
+ p.url = singleton_url;
+ p.window_action = browser::NavigateParams::SHOW_WINDOW;
+ p.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE;
+ browser::Navigate(&p);
+ ui_test_utils::WaitForNavigationInCurrentTab(browser());
+
+ // The tab should not be sad anymore.
+ EXPECT_FALSE(tab_contents->is_crashed());
+}
+
} // namespace