diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-13 06:44:16 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-13 06:44:16 +0000 |
commit | 7de53c6c4492948ac3292e4cc5b3dd796078babf (patch) | |
tree | c4c695dea7d48615fa5ca991b033f228c091c57a /chrome/browser/ui/browser_navigator_browsertest.cc | |
parent | 4d45a6de69bc499b21c06deedf80edda06793de0 (diff) | |
download | chromium_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.cc | 29 |
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 |