Index: chrome/browser/sync/sessions/sessions_sync_manager.cc |
diff --git a/chrome/browser/sync/sessions/sessions_sync_manager.cc b/chrome/browser/sync/sessions/sessions_sync_manager.cc |
index 05bc926903316b5d7c39ed3b85ada16d4375c583..06f33dd8cd3b573b3d03803ff16fb8c0b66a9b63 100644 |
--- a/chrome/browser/sync/sessions/sessions_sync_manager.cc |
+++ b/chrome/browser/sync/sessions/sessions_sync_manager.cc |
@@ -652,6 +652,16 @@ void SessionsSyncManager::UpdateTrackerWithForeignSession( |
} else if (specifics.has_tab()) { |
const sync_pb::SessionTab& tab_s = specifics.tab(); |
SessionID::id_type tab_id = tab_s.tab_id(); |
+ |
+ const SessionTab* existing_tab; |
+ if (session_tracker_.LookupSessionTab( |
+ foreign_session_tag, tab_id, &existing_tab) && |
+ existing_tab->timestamp > modification_time) { |
+ DVLOG(1) << "Ignoring " << foreign_session_tag << "'s session tab " |
+ << tab_id << " with earlier modification time"; |
+ return; |
+ } |
+ |
SessionTab* tab = |
session_tracker_.GetTab(foreign_session_tag, |
tab_id, |