Index: chrome/browser/sessions/session_restore_delegate.cc |
diff --git a/chrome/browser/sessions/session_restore_delegate.cc b/chrome/browser/sessions/session_restore_delegate.cc |
index 28b2966f818c6a42ba26c4b1c9d1017cd44b0ec6..42f97e099456cf0e0ab0e63a04388e4e886805d8 100644 |
--- a/chrome/browser/sessions/session_restore_delegate.cc |
+++ b/chrome/browser/sessions/session_restore_delegate.cc |
@@ -33,15 +33,18 @@ bool IsInternalPage(const GURL& url) { |
} // namespace |
-SessionRestoreDelegate::RestoredTab::RestoredTab(content::WebContents* contents, |
- bool is_active, |
- bool is_app, |
- bool is_pinned) |
+SessionRestoreDelegate::RestoredTab::RestoredTab( |
+ content::WebContents* contents, |
+ bool is_active, |
+ bool is_app, |
+ bool is_pinned, |
+ base::TimeTicks last_activation_time) |
: contents_(contents), |
is_active_(is_active), |
is_app_(is_app), |
is_internal_page_(IsInternalPage(contents->GetLastCommittedURL())), |
- is_pinned_(is_pinned) { |
+ is_pinned_(is_pinned), |
+ last_activation_time_(last_activation_time) { |
} |
bool SessionRestoreDelegate::RestoredTab::operator<( |
@@ -56,7 +59,10 @@ bool SessionRestoreDelegate::RestoredTab::operator<( |
// Apps should be loaded before normal tabs. |
if (is_app_ != right.is_app_) |
return is_app_; |
- // TODO(georgesak): Add criterion based on recency. |
+ // Restore using MRU. Behind an experiment for now. |
+ if (SessionRestore::GetSmartRestoreMode() == |
+ SessionRestore::SMART_RESTORE_MODE_MRU) |
+ return last_activation_time_ > right.last_activation_time_; |
return false; |
} |