| Index: chrome/browser/ui/browser_navigator_browsertest.cc
|
| diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc
|
| index 156db2de6faa8c8c498b5db8a52eec394db1b26b..bd717ed49fd430856a06389df2ab1edc6cbdfbff 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
|
|
|