Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index c1556d9e1bb6c69324779bc9d7c71a1975e8835d..03417fb58feba6109fa25950aca2d4fe196f378e 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -70,6 +70,7 @@ |
#include "chrome/browser/profiles/profiles_state.h" |
#include "chrome/browser/repost_form_warning_controller.h" |
#include "chrome/browser/search/search.h" |
+#include "chrome/browser/sessions/session_restore.h" |
#include "chrome/browser/sessions/session_service.h" |
#include "chrome/browser/sessions/session_service_factory.h" |
#include "chrome/browser/sessions/session_tab_helper.h" |
@@ -1071,13 +1072,22 @@ void Browser::ActiveTabChanged(WebContents* old_contents, |
find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect()); |
} |
- // Update sessions. Don't force creation of sessions. If sessions doesn't |
- // exist, the change will be picked up by sessions when created. |
+ // Update sessions (selected tab index and last active time). Don't force |
+ // creation of sessions. If sessions doesn't exist, the change will be picked |
+ // up by sessions when created. |
SessionService* session_service = |
SessionServiceFactory::GetForProfileIfExisting(profile_); |
if (session_service && !tab_strip_model_->closing_all()) { |
session_service->SetSelectedTabInWindow(session_id(), |
tab_strip_model_->active_index()); |
+ if (SessionRestore::GetSmartRestoreMode() == |
+ SessionRestore::SMART_RESTORE_MODE_MRU) { |
+ SessionTabHelper* session_tab_helper = |
+ SessionTabHelper::FromWebContents(new_contents); |
+ session_service->SetLastActiveTime(session_id(), |
+ session_tab_helper->session_id(), |
+ base::TimeTicks::Now()); |
+ } |
} |
// This needs to be called after notifying SearchDelegate. |