diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-04 02:26:36 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-04 02:26:36 +0000 |
commit | 2ca1ea66c938dd34c25e3cafe9cdfc46cdd50881 (patch) | |
tree | d1f83644dd7f5c4e59304c5286f509eb1d8c46cb /chrome/browser/ui/browser_tabrestore.cc | |
parent | b68232832acde42bf3835dae286870c57ba1c6f7 (diff) | |
download | chromium_src-2ca1ea66c938dd34c25e3cafe9cdfc46cdd50881.zip chromium_src-2ca1ea66c938dd34c25e3cafe9cdfc46cdd50881.tar.gz chromium_src-2ca1ea66c938dd34c25e3cafe9cdfc46cdd50881.tar.bz2 |
Removes BrowserContext::DidLastSessionExitCleanly() and makes
NavigationController::Restore() take an enum instead that
encapsculates this.
BUG=90737
TEST=none
R=avi@chromium.org,sail@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11016038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160052 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_tabrestore.cc')
-rw-r--r-- | chrome/browser/ui/browser_tabrestore.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc index da35864..7c93e92 100644 --- a/chrome/browser/ui/browser_tabrestore.cc +++ b/chrome/browser/ui/browser_tabrestore.cc @@ -5,6 +5,7 @@ #include "chrome/browser/ui/browser_tabrestore.h" #include "chrome/browser/extensions/tab_helper.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_service.h" #include "chrome/browser/sessions/session_service_factory.h" #include "chrome/browser/tab_contents/tab_util.h" @@ -26,6 +27,20 @@ using content::NavigationEntry; namespace chrome { +namespace { + +NavigationController::RestoreType GetRestoreType( + Browser* browser, + bool from_last_session) { + if (!from_last_session) + return NavigationController::RESTORE_CURRENT_SESSION; + return browser->profile()->DidLastSessionExitCleanly() ? + NavigationController::RESTORE_LAST_SESSION_EXITED_CLEANLY : + NavigationController::RESTORE_LAST_SESSION_CRASHED; +} + +} + int GetIndexForInsertionDuringRestore(Browser* browser, int relative_index) { return (browser->tab_strip_model()->insertion_policy() == TabStripModel::INSERT_AFTER) ? browser->tab_count() : relative_index; @@ -64,7 +79,8 @@ content::WebContents* AddRestoredTab( navigations, browser->profile()); new_tab->SetUserAgentOverride(user_agent_override); new_tab->GetController().Restore( - selected_navigation, from_last_session, &entries); + selected_navigation, GetRestoreType(browser, from_last_session), + &entries); DCHECK_EQ(0u, entries.size()); int add_types = select ? TabStripModel::ADD_ACTIVE : @@ -127,7 +143,8 @@ void ReplaceRestoredTab( TabNavigation::CreateNavigationEntriesFromTabNavigations( navigations, browser->profile()); replacement->GetController().Restore( - selected_navigation, from_last_session, &entries); + selected_navigation, GetRestoreType(browser, from_last_session), + &entries); DCHECK_EQ(0u, entries.size()); browser->tab_strip_model()->ReplaceNavigationControllerAt( |