Index: chrome/browser/sessions/session_service.cc |
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc |
index 99de7204e61bdf7d52e078b0e979d175b29f58eb..0b8759a2792ac60d3c11138ff3d9033927f6c7df 100644 |
--- a/chrome/browser/sessions/session_service.cc |
+++ b/chrome/browser/sessions/session_service.cc |
@@ -487,6 +487,16 @@ void SessionService::SetTabExtensionAppID( |
tab_id, extension_app_id).Pass()); |
} |
+void SessionService::SetLastActiveTime(const SessionID& window_id, |
+ const SessionID& tab_id, |
+ base::TimeTicks last_active_time) { |
+ if (!ShouldTrackChangesToWindow(window_id)) |
+ return; |
+ |
+ ScheduleCommand( |
+ sessions::CreateLastActiveTimeCommand(tab_id, last_active_time).Pass()); |
+} |
+ |
base::CancelableTaskTracker::TaskId SessionService::GetLastSession( |
const SessionCallback& callback, |
base::CancelableTaskTracker* tracker) { |
@@ -727,6 +737,13 @@ void SessionService::BuildCommandsForTab(const SessionID& window_id, |
sessions::CreatePinnedStateCommand(session_id, true)); |
} |
+ if (SessionRestore::GetSmartRestoreMode() == |
+ SessionRestore::SMART_RESTORE_MODE_MRU) { |
+ base_session_service_->AppendRebuildCommand( |
+ sessions::CreateLastActiveTimeCommand(session_id, |
+ tab->GetLastActiveTime())); |
+ } |
+ |
extensions::TabHelper* extensions_tab_helper = |
extensions::TabHelper::FromWebContents(tab); |
if (extensions_tab_helper->extension_app()) { |