Chromium Code Reviews| Index: chrome/browser/sessions/session_restore.cc |
| diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc |
| index c6692162035c06fdb0cb02d7c1b7714f178e2d53..134397d09e0fc4d95941ac26bfc502f94d308a22 100644 |
| --- a/chrome/browser/sessions/session_restore.cc |
| +++ b/chrome/browser/sessions/session_restore.cc |
| @@ -521,7 +521,8 @@ class SessionRestoreImpl : public content::NotificationObserver { |
| continue; |
| RestoredTab restored_tab(contents, is_selected_tab, |
| - tab.extension_app_id.empty(), tab.pinned); |
| + tab.extension_app_id.empty(), tab.pinned, |
| + tab.last_activation_time); |
| created_contents->push_back(restored_tab); |
| // If this isn't the selected tab, there's nothing else to do. |
| @@ -545,7 +546,8 @@ class SessionRestoreImpl : public content::NotificationObserver { |
| RestoreTab(tab, tab_index_offset + i, browser, false); |
| if (contents) { |
| RestoredTab restored_tab(contents, false, |
| - tab.extension_app_id.empty(), tab.pinned); |
| + tab.extension_app_id.empty(), tab.pinned, |
| + tab.last_activation_time); |
| created_contents->push_back(restored_tab); |
| } |
| } |
| @@ -591,6 +593,12 @@ class SessionRestoreImpl : public content::NotificationObserver { |
| // focused tab will be loaded by Browser, and TabLoader will load the rest. |
| DCHECK(web_contents->GetController().NeedsReload()); |
| + // Restore the saved activation time. By default, the activation time of a |
| + // WebContent is initially set to the creation time of the tab, which is not |
| + // necessarly the same as the loading time. This makes sure that the state |
| + // is preserved between restores. |
| + web_contents->SetLastActiveTime(tab.last_activation_time); |
|
sky
2015/05/12 21:25:29
It's my understanding there is no guarantee that t
Georges Khalil
2015/05/15 16:55:30
You are right, if the OS reboots, TimeTicks become
sky
2015/05/18 15:53:28
I think time ticks is safer as blocks can go back.
Georges Khalil
2015/05/19 19:32:15
I'm not sure how we could sanitize time ticks, as
sky
2015/05/19 19:55:16
After you've read the data in all we care about is
gab
2015/05/20 17:08:57
I'm not convinced that this is true. For example,
|
| + |
| return web_contents; |
| } |