New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 681921 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , iOS , Chrome , Mac , Fuchsia
Pri: 2
Type: Feature

Blocked on:
issue 491325
issue 823798
issue 836139
issue 848441

Blocking:
issue 895455



Sign in to add a comment

[USS] Upgrade Sessions sync integration to use USS

Project Member Reported by s...@chromium.org, Jan 17 2017

Issue description

Tracking issue for design/implementation changes needed.
 

Comment 1 by s...@chromium.org, Jan 17 2017

Blockedon: 491325

Comment 2 by mastiz@chromium.org, Dec 18 2017

Owner: mastiz@chromium.org
Status: Assigned (was: Available)
I'm interested in picking this up so self-assigning, please let me know if there's any work that has already started.

Comment 3 by s...@chromium.org, Dec 19 2017

Cc: s...@chromium.org
I'm currently trying to deal with a bug in sessions that's a result of, at least partially, storing sync data and sessions data separately, see  crbug.com/639009 . Migrating SESSIONS to USS will likely have to understand/deal with the sessions differences on Android.

Comment 4 by gangwu@chromium.org, Jan 17 2018

Labels: SyncHandoff2018
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4af2087ee901078812d549f8bd8e636f12f69596

commit 4af2087ee901078812d549f8bd8e636f12f69596
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Feb 15 10:34:07 2018

Factor out implementation of GlobalIdMapper to dedicated class

This makes SessionsSyncManager smaller, which I believe justifies the
change. But actually, it is motivated by upcoming changes in sessions
sync code, where a new implementation will be introduced for USS. We
anticipate the need for the very same logic to track global ID mappings
for user events.

Bug:  681921 
Change-Id: I0dcd1858c602a2cc167ca3ac0e2e9d55d072c291
Reviewed-on: https://chromium-review.googlesource.com/916763
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536983}
[modify] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/BUILD.gn
[add] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_global_id_mapper.cc
[add] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_global_id_mapper.h
[add] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_global_id_mapper_unittest.cc
[modify] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/4af2087ee901078812d549f8bd8e636f12f69596/components/sync_sessions/sessions_sync_manager_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377

commit 35fd82bfc1cb6a1cd2c0796c1efe88baa1149377
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Feb 19 12:47:13 2018

Remove sync_sessions::SyncedSession::DeviceType

We use the proto enum directly in most places, and leave Android code
unchanged for now (we may want to consider exposing proto lite to
Android code in future CLs, but this particular enum doesn't seem to
justify it).

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Ia3e030a6058a3f7e4e6feb1800fe618ae435ffb4
Reviewed-on: https://chromium-review.googlesource.com/921283
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537635}
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/chrome/android/java/src/org/chromium/chrome/browser/ntp/ForeignSessionHelper.java
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/chrome/browser/ui/webui/foreign_session_handler.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync/protocol/proto_enum_conversions.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync/protocol/sync_enums.proto
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/session_sync_test_helper.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/synced_session.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/synced_session.h
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/components/sync_sessions/synced_session_tracker_unittest.cc
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/ios/chrome/browser/ui/ntp/recent_tabs/synced_sessions.h
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/ios/chrome/browser/ui/ntp/recent_tabs/views/session_section_header_view.mm
[modify] https://crrev.com/35fd82bfc1cb6a1cd2c0796c1efe88baa1149377/ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7e0e6689c1082b132ade79d72f12a3e1c8f0745d

commit 7e0e6689c1082b132ade79d72f12a3e1c8f0745d
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Feb 21 19:06:37 2018

Remove zombie code in components/sync_sessions/revisit

The code is instrumented behind variations / field trial configs, but
hasn't been active for a while, so let's just remove the code and make
the binaries smaller.

Bug:  681921 
Change-Id: I7174796c7c192f8b3b04c06a7defe85d00821597
Reviewed-on: https://chromium-review.googlesource.com/922624
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538176}
[modify] https://crrev.com/7e0e6689c1082b132ade79d72f12a3e1c8f0745d/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/7e0e6689c1082b132ade79d72f12a3e1c8f0745d/components/sync_sessions/BUILD.gn
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/bookmarks_by_url_provider_impl.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/bookmarks_by_url_provider_impl.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/bookmarks_page_revisit_observer.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/bookmarks_page_revisit_observer.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/bookmarks_page_revisit_observer_unittest.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/current_tab_matcher.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/current_tab_matcher.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/current_tab_matcher_unittest.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/offset_tab_matcher.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/offset_tab_matcher.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/offset_tab_matcher_unittest.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/page_equality.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/page_revisit_broadcaster.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/page_revisit_broadcaster.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/page_revisit_broadcaster_unittest.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/page_visit_observer.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/sessions_page_revisit_observer.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/sessions_page_revisit_observer.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/sessions_page_revisit_observer_unittest.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/typed_url_page_revisit_observer.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/typed_url_page_revisit_observer.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/typed_url_page_revisit_task.cc
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/typed_url_page_revisit_task.h
[delete] https://crrev.com/6159cc652681c439663e8823135effe968b97077/components/sync_sessions/revisit/typed_url_page_revisit_task_unittest.cc
[modify] https://crrev.com/7e0e6689c1082b132ade79d72f12a3e1c8f0745d/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/7e0e6689c1082b132ade79d72f12a3e1c8f0745d/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/7e0e6689c1082b132ade79d72f12a3e1c8f0745d/tools/metrics/histograms/histograms.xml

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/353d99ee4366b620aafe56edf8e7bca5541f5aac

commit 353d99ee4366b620aafe56edf8e7bca5541f5aac
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Feb 22 09:58:44 2018

Remove metric Sync.YoungestForeignTabAgeOnNTP

The metric has been around for some time and we don't currently have
plans to introduce recent tabs on the NTP, so let's clean up the old
code, and simplify some ongoing refactoring work (USS).

Bug:  681921 
Change-Id: I300194ee7ae34995c9c2a7df371c05d50f1fe840
Reviewed-on: https://chromium-review.googlesource.com/925273
Reviewed-by: Nicolas Zea <zea@chromium.org>
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538386}
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
[delete] https://crrev.com/dc68cb1454636776f3a8858af6569efbffdd3f93/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncSessionsMetrics.java
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/chrome/android/java_sources.gni
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/chrome/browser/BUILD.gn
[delete] https://crrev.com/dc68cb1454636776f3a8858af6569efbffdd3f93/chrome/browser/sync/sessions/sync_sessions_metrics_android.cc
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/chrome/browser/ui/search/ntp_user_data_logger.cc
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/components/sync_sessions/BUILD.gn
[delete] https://crrev.com/dc68cb1454636776f3a8858af6569efbffdd3f93/components/sync_sessions/sync_sessions_metrics.cc
[delete] https://crrev.com/dc68cb1454636776f3a8858af6569efbffdd3f93/components/sync_sessions/sync_sessions_metrics.h
[delete] https://crrev.com/dc68cb1454636776f3a8858af6569efbffdd3f93/components/sync_sessions/sync_sessions_metrics_unittest.cc
[modify] https://crrev.com/353d99ee4366b620aafe56edf8e7bca5541f5aac/tools/metrics/histograms/histograms.xml

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b999cc0158de5b8c004e8623af6a4a9491991877

commit b999cc0158de5b8c004e8623af6a4a9491991877
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Feb 22 12:04:59 2018

Factor out OpenTabsUIDelegate implementation to dedicated class

This makes SessionsSyncManager less monolithic because it implements one
interface less, now taken care of by the newly introduced class,
OpenTabsUIDelegateImpl.

Bug:  681921 
Change-Id: I452cf38b5d9f581c011f852c9f4fdbc49bd8b3f9
Reviewed-on: https://chromium-review.googlesource.com/921624
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538408}
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/chrome/browser/ui/toolbar/recent_tabs_builder_test_helper.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/browser_sync/profile_sync_test_util.h
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/BUILD.gn
[delete] https://crrev.com/3029b43bbfa38bea51d58aa78162415c44d57a41/components/sync_sessions/fake_sync_sessions_client.cc
[delete] https://crrev.com/3029b43bbfa38bea51d58aa78162415c44d57a41/components/sync_sessions/fake_sync_sessions_client.h
[add] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/mock_sync_sessions_client.cc
[add] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/mock_sync_sessions_client.h
[add] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/open_tabs_ui_delegate_impl.cc
[add] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/open_tabs_ui_delegate_impl.h
[add] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/open_tabs_ui_delegate_impl_unittest.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/session_data_type_controller_unittest.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/b999cc0158de5b8c004e8623af6a4a9491991877/components/sync_sessions/synced_session_tracker_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f82416e909c9f74d4a19cca450d26c67fd64199d

commit f82416e909c9f74d4a19cca450d26c67fd64199d
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Feb 27 16:11:13 2018

Factor out logic from SessionsSyncManager to SyncedSessionTracker

The change makes SessionsSyncManager smaller which is good for our
upcoming changes to introduce an alternative implementation based on
USS.

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I6e8ed8b3b588b6a8da5e9b6b90be6ed9f479b04c
Reviewed-on: https://chromium-review.googlesource.com/918863
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539444}
[modify] https://crrev.com/f82416e909c9f74d4a19cca450d26c67fd64199d/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/f82416e909c9f74d4a19cca450d26c67fd64199d/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/f82416e909c9f74d4a19cca450d26c67fd64199d/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/f82416e909c9f74d4a19cca450d26c67fd64199d/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/f82416e909c9f74d4a19cca450d26c67fd64199d/components/sync_sessions/synced_session_tracker.h

Project Member

Comment 11 by bugdroid1@chromium.org, Mar 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/069039783c0cf6442af273fb02e10bcb25a41b2e

commit 069039783c0cf6442af273fb02e10bcb25a41b2e
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Mar 02 11:04:43 2018

Factor out implementation of LocalSessionEventHandler

We move all the logic to a dedicated class, responsible for maintaining
the state of the local session, that is, updating the session tracker
and sync entities corresponding to the local session.

The change makes the code less monolithic, more testable and reusable
by the future implementation of the USS-based session sync.

Strictly speaking, the patch is *not* a purely refactoring change: the
handling of local_tab_pool_out_of_sync_ is has a minor behavioral
difference that should however not be noticeable outside
SessionsSyncManager. In the new implementation, for the cases where
the state is out of sync, the session tracker is first updated normally,
followed by a full re-association.

Test coverage is improved now that there is a cleaner API.

Bug:  681921 
Change-Id: I5c8beae09ab4c19cacc82225546babcec0e06baa
Reviewed-on: https://chromium-review.googlesource.com/932301
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Nicolas Zea (slow) <zea@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540490}
[modify] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/BUILD.gn
[add] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/local_session_event_handler_impl.cc
[add] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/local_session_event_handler_impl.h
[add] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/local_session_event_handler_impl_unittest.cc
[modify] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/sessions_sync_manager_unittest.cc
[add] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/test_synced_window_delegates_getter.cc
[add] https://crrev.com/069039783c0cf6442af273fb02e10bcb25a41b2e/components/sync_sessions/test_synced_window_delegates_getter.h

Project Member

Comment 12 by bugdroid1@chromium.org, Mar 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5f07ce2578fb40622d2e9592fe73c1b00101f85b

commit 5f07ce2578fb40622d2e9592fe73c1b00101f85b
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Mar 05 07:52:28 2018

Adopt OnceCallback in ModelTypeStore

Trivial change, no behavioral differences.

Bug:  681921 
Change-Id: Id512b11a574afcf902d35553bb10a1a85cbcdea7
Reviewed-on: https://chromium-review.googlesource.com/940134
Reviewed-by: Sean Kau <skau@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540790}
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/chrome/browser/chromeos/printing/printers_sync_bridge.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/autofill/core/browser/webdata/autocomplete_sync_bridge.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/history/core/browser/typed_url_sync_bridge.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/reading_list/core/reading_list_store.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/sync/device_info/device_info_sync_bridge.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/sync/model/fake_model_type_sync_bridge.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/sync/model/model_type_sync_bridge.h
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/sync/model_impl/shared_model_type_processor_unittest.cc
[modify] https://crrev.com/5f07ce2578fb40622d2e9592fe73c1b00101f85b/components/sync/user_events/user_event_sync_bridge.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/556bf096d65eb3f2fdc9d0de1431cd077876dd18

commit 556bf096d65eb3f2fdc9d0de1431cd077876dd18
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Mar 06 13:16:33 2018

Avoid two-step initialization for LocalSessionEventHandlerImpl

This patch addresses a TODO introduced recently about merging the
class constructor with the former AssociateWindowsAndTabs(). It is
mostly a refactoring change with a minor behavioral difference
described below.

The half-initialized state no longer exists, except for the manager's
member field |local_session_event_handler_| now being potentially null
if sync is disabled. This requires moving the ownership of
GlobalIdMapper to upper layers, because the call to GetGlobalIdMapper()
precedes the construction of LocalSessionEventHandlerImpl.

In order to avoid a large number of parameters, the initialization of
the local session (i.e. setting the name and device type) is moved to
SyncedSessionTracker, where it actually fits better. This introduces a
minor behavioral difference affecting the session name used for the
in-memory representation of the local session in SyncedSessionTracker.
In the new implementation, the name provided by LocalDeviceInfoProvider
is preferred over names previously persisted on disk.

Bug:  681921 
Change-Id: I3bf854e96c035f27232626489a5f1ab873f7904d
Reviewed-on: https://chromium-review.googlesource.com/942881
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541087}
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/local_session_event_handler_impl.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/local_session_event_handler_impl.h
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/local_session_event_handler_impl_unittest.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/sessions_global_id_mapper.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/sessions_global_id_mapper.h
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/sessions_global_id_mapper_unittest.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/synced_session_tracker.h
[modify] https://crrev.com/556bf096d65eb3f2fdc9d0de1431cd077876dd18/components/sync_sessions/synced_session_tracker_unittest.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f88d7e872096cae5705fbc3c4efcbbf0ed844713

commit f88d7e872096cae5705fbc3c4efcbbf0ed844713
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Mar 07 20:06:40 2018

Simplify metadata handling in ModelTypeStore

The patch refactors the code without behavioral changes: ~800 LoC are
removed and various friend classes accessing private or protected APIs.
The resulting code is simpler and less error-prone.

In the new implementation, ModelTypeStore::WriteBatch is made an
interface, in consistency with ModelTypeStore itself. The actual
production implementation talks to leveldb directly, which avoids the
need for a protected, type-unsafe API in ModelTypeStore (and impls).

Because protos are now delivered as-is to the actual implementation
of MetadataChangeList, and serialized to string in a very late stage,
some tests become unnecessary and are removed.

Bug:  681921 
Change-Id: Ib9f8a6ede63d7f32116c14e75c1d25d49e1eb7bd
Reviewed-on: https://chromium-review.googlesource.com/951304
Reviewed-by: Eric Noyau <noyau@chromium.org>
Reviewed-by: Sean Kau <skau@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541542}
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/chrome/browser/chromeos/printing/printers_sync_bridge.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/reading_list/core/reading_list_store.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/BUILD.gn
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/device_info/device_info_sync_bridge.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model/fake_model_type_sync_bridge.cc
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model/mock_model_type_store.cc
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model/mock_model_type_store.h
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model/model_type_store.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model/model_type_store.h
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/accumulating_metadata_change_list.cc
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/accumulating_metadata_change_list.h
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/accumulating_metadata_change_list_unittest.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/in_memory_metadata_change_list.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/in_memory_metadata_change_list.h
[add] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/in_memory_metadata_change_list_unittest.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/model_type_store_impl.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/model_type_store_impl.h
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/model_impl/model_type_store_impl_unittest.cc
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/passthrough_metadata_change_list.cc
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/passthrough_metadata_change_list.h
[delete] https://crrev.com/1b9f5f8cee9aeb7e73020405ba9be3c0bcc57f71/components/sync/model_impl/passthrough_metadata_change_list_unittest.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/components/sync/user_events/user_event_sync_bridge.cc
[modify] https://crrev.com/f88d7e872096cae5705fbc3c4efcbbf0ed844713/docs/sync/model_api.md

Project Member

Comment 15 by bugdroid1@chromium.org, Mar 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/acf85687c9982600257a4a516dad241128cbfa02

commit acf85687c9982600257a4a516dad241128cbfa02
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Mar 08 07:31:21 2018

Remove unused session sync code

Various unused or redundant APIs are removed trivially.

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I6e5b85b69a002b1037e1ee4f778f29af31af1525
Reviewed-on: https://chromium-review.googlesource.com/952922
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541752}
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/chrome/browser/ui/cocoa/app_menu/app_menu_controller_unittest.mm
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/sync_sessions/mock_sync_sessions_client.h
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/components/sync_sessions/sync_sessions_client.h
[modify] https://crrev.com/acf85687c9982600257a4a516dad241128cbfa02/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Blockedon: 823798
Project Member

Comment 17 by bugdroid1@chromium.org, Mar 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d052892587278fa853befbae5eabbcb46477e97

commit 6d052892587278fa853befbae5eabbcb46477e97
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Mar 29 07:15:55 2018

Avoid parallel maps in SyncedSessionTracker

No behavioral differences: a new struct (TrackedSession) is introduced
to represent what the tracker knows about a session, which is an
extended version of SyncedSession.

The set |tab_node_ids| is moved away from SyncedSession to the new
struct, because there's nothing that depends on it except the tracker
itself.

Somewhat unrelated, minor changes are introduced in the API as have
been suggested in code reviews.

Bug:  681921 
Change-Id: Ife4c215b65dfbeb97d5c70fd1f984986b9938a8f
Reviewed-on: https://chromium-review.googlesource.com/983773
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546755}
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/local_session_event_handler_impl.cc
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/open_tabs_ui_delegate_impl.cc
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/synced_session.h
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/synced_session_tracker.h
[modify] https://crrev.com/6d052892587278fa853befbae5eabbcb46477e97/components/sync_sessions/synced_session_tracker_unittest.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bef1f995cc57f921037601b43e89fbffe62ba562

commit bef1f995cc57f921037601b43e89fbffe62ba562
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Apr 10 10:42:55 2018

Update local tab state with UpdateTrackerWithSpecifics()

Instead of first manually updating SyncedSessionTracker and later
producing the protos (SessionTab, SessionSpecifics), we now propose the
opposite and:
1. Produce the specifics first from SyncedTabDelegate.
2. Update the tracker using the specifics.

This flow is a lot nicer because, once other calling sites are updated,
we could move the updating of SyncedSessionTracker a lot closer to where
the persistence layers & sync are updated
(LocalSessionEventHandlerImpl::WriteBatch), to guarantee that the two
stay consistent.

This patch does not address the analogous updates for placeholder tabs
and the header updates.

Bug:  681921 
Change-Id: I6bf7e90f9a3b236ce9e7b1f985fc0626369d8659
Reviewed-on: https://chromium-review.googlesource.com/1002176
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549477}
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/chrome/browser/sessions/session_restore_browsertest.cc
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/components/sessions/core/serialized_navigation_entry.cc
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/components/sessions/core/serialized_navigation_entry_unittest.cc
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/components/sync_sessions/local_session_event_handler_impl.cc
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/components/sync_sessions/local_session_event_handler_impl.h
[modify] https://crrev.com/bef1f995cc57f921037601b43e89fbffe62ba562/components/sync_sessions/local_session_event_handler_impl_unittest.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5d2356b0c22a6e7c868e9e205129723ed66f799

commit e5d2356b0c22a6e7c868e9e205129723ed66f799
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Apr 10 14:44:51 2018

Introduce common gmock matchers for USS

We adopt them already in some existing tests and plan to use them in
future patches as part of the migration of session sync to USS.

Bug:  681921 
Change-Id: I91bcb5b2d0383be89bef1b905e1d3b16259f94bb
Reviewed-on: https://chromium-review.googlesource.com/983918
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549525}
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync/BUILD.gn
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync/device_info/DEPS
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync/device_info/device_info_sync_bridge_unittest.cc
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync/model_impl/model_type_store_impl_unittest.cc
[add] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync/test/test_matchers.h
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync_sessions/BUILD.gn
[modify] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync_sessions/local_session_event_handler_impl_unittest.cc
[add] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync_sessions/test_matchers.cc
[add] https://crrev.com/e5d2356b0c22a6e7c868e9e205129723ed66f799/components/sync_sessions/test_matchers.h

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aadda59130715434b8dee000519d46377bb244e0

commit aadda59130715434b8dee000519d46377bb244e0
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Apr 13 11:14:37 2018

Introduce SessionStore for migrating sessions to USS

The class is a key piece in the design doc ([1], accessible for Google
employees only) and will be used by the future USS bridge, to be
introduced in follow-up patches.

Ideally, SessionStore is an abstraction on top of SyncedSessionTracker
that in addition supports [de]serialization to/from disk. In the current
form, in diverges slightly from the design doc because direct mutable
access to the underlying SyncedSessionTracker is exposed. TODOs have
been added to address this in the future.

[1] https://docs.google.com/document/d/1UGM1yhHznmXvfeGvckdzBcrE6GLpgk7LsLmgPhFcIdk/edit#

Bug:  681921 
Change-Id: Ia483faf7256b5c6296f33236b42974697f4e6f4e
Reviewed-on: https://chromium-review.googlesource.com/973222
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550587}
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/base/sync_prefs.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/base/sync_prefs.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/entity_data.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/entity_data.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/metadata_batch.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/metadata_batch.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_error.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_type_store_test_util.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_type_store_test_util.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/BUILD.gn
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store.cc
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store.h
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker_unittest.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool_unittest.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Apr 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b789651af177bb85f4f5b0e01bbafe636ed8259a

commit b789651af177bb85f4f5b0e01bbafe636ed8259a
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Apr 16 15:59:07 2018

Adopt OnceCallback for OnSyncStarting()

The callback must be called at most once, so let's migrate away from
deprecated APIs and adopt base::OnceCallback.

Bug:  681921 
Change-Id: I2cc0fb6b75771b4a203584154178a1a897a305b8
Reviewed-on: https://chromium-review.googlesource.com/1012063
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550976}
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/base/bind_to_task_runner.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/fake_model_type_change_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/fake_model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/mock_model_type_change_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/mock_model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge_unittest.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model_impl/client_tag_based_model_type_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model_impl/client_tag_based_model_type_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/user_events/user_event_sync_bridge.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/user_events/user_event_sync_bridge.h

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aadda59130715434b8dee000519d46377bb244e0

commit aadda59130715434b8dee000519d46377bb244e0
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Apr 13 11:14:37 2018

Introduce SessionStore for migrating sessions to USS

The class is a key piece in the design doc ([1], accessible for Google
employees only) and will be used by the future USS bridge, to be
introduced in follow-up patches.

Ideally, SessionStore is an abstraction on top of SyncedSessionTracker
that in addition supports [de]serialization to/from disk. In the current
form, in diverges slightly from the design doc because direct mutable
access to the underlying SyncedSessionTracker is exposed. TODOs have
been added to address this in the future.

[1] https://docs.google.com/document/d/1UGM1yhHznmXvfeGvckdzBcrE6GLpgk7LsLmgPhFcIdk/edit#

Bug:  681921 
Change-Id: Ia483faf7256b5c6296f33236b42974697f4e6f4e
Reviewed-on: https://chromium-review.googlesource.com/973222
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550587}
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/base/sync_prefs.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/base/sync_prefs.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/entity_data.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/entity_data.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/metadata_batch.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/metadata_batch.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_error.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_type_store_test_util.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync/model/model_type_store_test_util.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/BUILD.gn
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store.cc
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store.h
[add] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/synced_session_tracker_unittest.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool.cc
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool.h
[modify] https://crrev.com/aadda59130715434b8dee000519d46377bb244e0/components/sync_sessions/tab_node_pool_unittest.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b789651af177bb85f4f5b0e01bbafe636ed8259a

commit b789651af177bb85f4f5b0e01bbafe636ed8259a
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Apr 16 15:59:07 2018

Adopt OnceCallback for OnSyncStarting()

The callback must be called at most once, so let's migrate away from
deprecated APIs and adopt base::OnceCallback.

Bug:  681921 
Change-Id: I2cc0fb6b75771b4a203584154178a1a897a305b8
Reviewed-on: https://chromium-review.googlesource.com/1012063
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550976}
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/base/bind_to_task_runner.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/fake_model_type_change_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/fake_model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/mock_model_type_change_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/mock_model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_change_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model/model_type_sync_bridge_unittest.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model_impl/client_tag_based_model_type_processor.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/model_impl/client_tag_based_model_type_processor.h
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/user_events/user_event_sync_bridge.cc
[modify] https://crrev.com/b789651af177bb85f4f5b0e01bbafe636ed8259a/components/sync/user_events/user_event_sync_bridge.h

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/527ec9147c418c18194e4e18439bc143d448e3ec

commit 527ec9147c418c18194e4e18439bc143d448e3ec
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Apr 18 15:25:28 2018

Introduce USS bridge for sessions

As described in the design doc ([1], accessible for Google employees
only), the proposed bridge integrates all relevant classes for syncing
sessions and exposes a USS API for a processor to use. This includes
propagating local changes to the server, as well as receiving remote
updates for foreign sessions.

The class is analogous to SessionsSyncManager and implements similar
logic, although many bits are handled in SessionStore (preceding
patch) to make the bridge simpler.

Some functionality is still pending implementation, including the
actual wiring to use the bridge instead of SessionsSyncManager.

[1] https://docs.google.com/document/d/1UGM1yhHznmXvfeGvckdzBcrE6GLpgk7LsLmgPhFcIdk/edit#

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I40ccfad85061076079ab3159f09fcea4a4e6c096
Reviewed-on: https://chromium-review.googlesource.com/911091
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551682}
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/device_info/device_info_sync_bridge.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/device_info/device_info_sync_bridge.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/metadata_batch.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/metadata_batch.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/mock_model_type_change_processor.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/mock_model_type_change_processor.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/model_type_sync_bridge.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model/model_type_sync_bridge.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model_impl/client_tag_based_model_type_processor.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model_impl/client_tag_based_model_type_processor.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/model_impl/processor_entity_tracker.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/user_events/user_event_sync_bridge.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync/user_events/user_event_sync_bridge.h
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/BUILD.gn
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/session_store.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/session_store.h
[add] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/session_sync_bridge.cc
[add] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/session_sync_bridge.h
[add] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/session_sync_bridge_unittest.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/test_synced_window_delegates_getter.cc
[modify] https://crrev.com/527ec9147c418c18194e4e18439bc143d448e3ec/components/sync_sessions/test_synced_window_delegates_getter.h

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d41dc458b1839714e6e99ab9aa1d80096fbbdab

commit 6d41dc458b1839714e6e99ab9aa1d80096fbbdab
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Apr 18 19:30:27 2018

Integrate SessionSyncBridge behind feature toggle

A common interface (AbstractSessionsSyncManager) is introduce with
two implementations of session sync:
1. SessionsSyncManager (Directory-based, legacy).
2. SessionSyncBridge (USS-based, new).

A feature toggle controls which of the two is used by the browser (no
behavioral change by default).

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I8ccf7747b785134a23814a63f0e9d8ac9a47facf
Reviewed-on: https://chromium-review.googlesource.com/1013522
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551782}
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync/driver/sync_driver_switches.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync/driver/sync_driver_switches.h
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/BUILD.gn
[add] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/abstract_sessions_sync_manager.cc
[add] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/abstract_sessions_sync_manager.h
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/6d41dc458b1839714e6e99ab9aa1d80096fbbdab/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Project Member

Comment 26 by bugdroid1@chromium.org, Apr 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a5a9a32aea8eaa67c01ce8a0bb86729fc5dc5545

commit a5a9a32aea8eaa67c01ce8a0bb86729fc5dc5545
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Apr 19 11:13:20 2018

Notify UI of foreign session changes

The bridge is expected to exercise the callback that was provided in the
constructor when foreign sessions change, so it gets propagated to the
UI and other observers.

This simple implementation sometimes overtriggers (e.g. if the local tab
was attempted to be deleted) but it doesn't seem worth adding extra
complexity to prevent this from happening.

Bug:  681921 
Change-Id: I5f66a46db5e84ee90819367cc915fb79c2b1fb07
Reviewed-on: https://chromium-review.googlesource.com/1016645
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551977}
[modify] https://crrev.com/a5a9a32aea8eaa67c01ce8a0bb86729fc5dc5545/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/a5a9a32aea8eaa67c01ce8a0bb86729fc5dc5545/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/a5a9a32aea8eaa67c01ce8a0bb86729fc5dc5545/components/sync_sessions/session_sync_bridge_unittest.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Apr 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db744b64994aab87f03043bfd1c2935d066c4e82

commit db744b64994aab87f03043bfd1c2935d066c4e82
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Apr 20 10:17:14 2018

USS: Expose foreign sessions in debug UIs

This requires maintaining a mapping between tab IDs and tab node IDs
even for foreign sessions.

We reuse TabNodePool for this purpose, which is a stretch because it
supports features that are not needed for foreign sessions. The upside
is that SyncedSessionTracker does less special handling for local
sessions, and in fact could be rewritten to unify the API for local
and remote sessions (not addressed in this patch).

Bug:  681921 
Change-Id: I109d3663f3670c4bfea43d688bcfa1c2585150c6
Reviewed-on: https://chromium-review.googlesource.com/1012844
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552296}
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/session_store.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/session_store.h
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/synced_session_tracker.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/synced_session_tracker.h
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/synced_session_tracker_unittest.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/tab_node_pool.cc
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/tab_node_pool.h
[modify] https://crrev.com/db744b64994aab87f03043bfd1c2935d066c4e82/components/sync_sessions/tab_node_pool_unittest.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Apr 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c6a0352ffd6cc6557fe656d8f34fc549860cc256

commit c6a0352ffd6cc6557fe656d8f34fc549860cc256
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Apr 20 13:29:14 2018

Implement deletion of foreign sessions from the UI

The feature was not yet supported by the newly introduced USS
implementation of session sync. This patch introduces a logic that
is analogous to what SessionsSyncManager does.

Bug:  681921 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I6a6b76d014d2e63616a889d1a7164af46f822aaa
Reviewed-on: https://chromium-review.googlesource.com/1016912
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552316}
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_store.cc
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_store.h
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/c6a0352ffd6cc6557fe656d8f34fc549860cc256/components/sync_sessions/session_sync_bridge_unittest.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Apr 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/179e92c3a1c32244404a6bbf8e4c77d5ce7ce659

commit 179e92c3a1c32244404a6bbf8e4c77d5ce7ce659
Author: Mikel Astiz <mastiz@chromium.org>
Date: Fri Apr 20 18:41:54 2018

Run sync session integration tests for both USS and legacy

We use parameterized test to decide whether the feature (enable USS
implementation of sessions) is enabled or not. This reduces the risk
of regressions during development of the remaining features and the
later experimentation in dev channel.

Bug:  681921 
Change-Id: I8519aab1b6c24affb18391c7a63e7f224a06a710
Reviewed-on: https://chromium-review.googlesource.com/1019320
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552408}
[modify] https://crrev.com/179e92c3a1c32244404a6bbf8e4c77d5ce7ce659/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
[modify] https://crrev.com/179e92c3a1c32244404a6bbf8e4c77d5ce7ce659/chrome/browser/sync/test/integration/two_client_sessions_sync_test.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Apr 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2aea13c48978329e7ee2c768d0fa88a2b5faed3c

commit 2aea13c48978329e7ee2c768d0fa88a2b5faed3c
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Apr 23 13:52:07 2018

Implement garbage collection of sessions in USS

SessionSyncBridge now addresses a pending TODO and properly implements
AbstractSessionsSyncManager::ScheduleGarbageCollection(). The logic is
identical to the one in SessionSyncManager.

Bug:  681921 
Change-Id: Icdc388c588397354453913a922dd525455dfb8c5
Reviewed-on: https://chromium-review.googlesource.com/1023420
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552682}
[modify] https://crrev.com/2aea13c48978329e7ee2c768d0fa88a2b5faed3c/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/2aea13c48978329e7ee2c768d0fa88a2b5faed3c/components/sync_sessions/session_sync_bridge_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5029dde2779ba9c0c896d957bc87092023087a58

commit 5029dde2779ba9c0c896d957bc87092023087a58
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Apr 23 23:36:47 2018

USS: Resubmit local session after remote deletion

In the unlikely event that a remote instance deletes our local session,
either via garbage collection or by the user manually requesting a
deletion from the UI, restore a consistent state once a local change
is observed.

This mimics the analogous logic in SessionsSyncManager.

Bug:  681921 
Change-Id: Ie3171852abb9a9f1b350535317b73a3fcb907cb6
Reviewed-on: https://chromium-review.googlesource.com/1024036
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552900}
[modify] https://crrev.com/5029dde2779ba9c0c896d957bc87092023087a58/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/5029dde2779ba9c0c896d957bc87092023087a58/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/5029dde2779ba9c0c896d957bc87092023087a58/components/sync_sessions/session_sync_bridge_unittest.cc

Blockedon: 836139
Project Member

Comment 33 by bugdroid1@chromium.org, Apr 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/38837f8387bec281109544717ac24278d1dd616d

commit 38837f8387bec281109544717ac24278d1dd616d
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Apr 24 22:23:23 2018

Introduce about flag for USS session sync

This allows more easy testing of the feature under development/
experimentation.

Bug:  681921 
Change-Id: Ibdf822b04312e794ec2a20051d02f1847275a9f9
Reviewed-on: https://chromium-review.googlesource.com/1024831
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553318}
[modify] https://crrev.com/38837f8387bec281109544717ac24278d1dd616d/chrome/browser/about_flags.cc
[modify] https://crrev.com/38837f8387bec281109544717ac24278d1dd616d/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/38837f8387bec281109544717ac24278d1dd616d/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/38837f8387bec281109544717ac24278d1dd616d/tools/metrics/histograms/enums.xml

Labels: -Type-Feature -Pri-3 OS-Android OS-Chrome OS-Fuchsia OS-iOS OS-Linux OS-Mac OS-Windows Pri-2 Type-Launch
Labels: -Type-Launch Type-Feature
Reverting back to type 'Feature' since apparently that's the way to go for the no-longer-existing simple launches. Sorry for the back and forth.
Blockedon: 848441
Project Member

Comment 37 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c

commit cfd7bc6a9287e22fcf02cba25b8a68e656ed677c
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Jun 13 13:18:31 2018

[USS sessions] Honor history being disabled by policy

This was the last known missing bit prior to enabling USS by default,
now implemented in SessionModelTypeController, which is a subset of
what the non-USS SessionDataTypeController does, and almost identical
to TypedURLModelTypeController.

Some unrelated tests have been updated as a preparation for toggling
the switch.

Bug:  681921 
Change-Id: I2e0ebec6a3020bff350091ca63c9a8f4d74a81c5
Reviewed-on: https://chromium-review.googlesource.com/1097492
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566813}
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_service_unittest.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_test_util.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/browser_sync/profile_sync_test_util.h
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/history/core/browser/typed_url_model_type_controller.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync/driver/model_type_controller.h
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync_sessions/BUILD.gn
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync_sessions/open_tabs_ui_delegate_impl.cc
[add] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync_sessions/session_model_type_controller.cc
[add] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync_sessions/session_model_type_controller.h
[modify] https://crrev.com/cfd7bc6a9287e22fcf02cba25b8a68e656ed677c/components/sync_sessions/session_sync_bridge.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3d44b30ee06660e2efc8ebf974eb80efea56acc

commit e3d44b30ee06660e2efc8ebf974eb80efea56acc
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Jun 18 17:05:19 2018

Enable USS version of session sync by default

The feature has been running for a while on 50% canary and dev
with only one known issue which is already fixed on trunk.

Hence, let's enable it by default, which also requires updating
a few tests.

The switch exercises a more modern implementation of sessions
sync that should be identical from the users perspective, besides
the performance improvements (most notably, memory consumption
estimated to be reduced by a factor of 70% according to metric
Sync.ModelTypeMemoryKB.SESSION), or ~350 KB for the 95th
percentile.

Bug:  681921 
Change-Id: Ida3e676a534d8c3ced174092d5498a793860020b
Reviewed-on: https://chromium-review.googlesource.com/1086945
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568045}
[modify] https://crrev.com/e3d44b30ee06660e2efc8ebf974eb80efea56acc/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/OpenTabsTest.java
[modify] https://crrev.com/e3d44b30ee06660e2efc8ebf974eb80efea56acc/chrome/browser/extensions/api/sessions/sessions_apitest.cc
[modify] https://crrev.com/e3d44b30ee06660e2efc8ebf974eb80efea56acc/chrome/browser/sync/test/integration/enable_disable_test.cc
[modify] https://crrev.com/e3d44b30ee06660e2efc8ebf974eb80efea56acc/components/sync/driver/sync_driver_switches.cc
[modify] https://crrev.com/e3d44b30ee06660e2efc8ebf974eb80efea56acc/components/sync/test/fake_server/android/fake_server_helper_android.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a67b26b56c9782451b0c553f4941c27407adc1b

commit 8a67b26b56c9782451b0c553f4941c27407adc1b
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Jun 19 09:06:41 2018

Notify USS types about sync being stopped

We currently only stop sync (without disabling) in tests only, but we
expect this to be more common in the future (DICe, payments, Butter).
Instead of letting bridges do ugly workarounds, let propagate the
transition to the processor, and allow bridges to (if interested) do
something about it.

Bug:  681921 
Change-Id: I9689346e71d7eeb0c7b13eb601d88722e51f5ae4
Reviewed-on: https://chromium-review.googlesource.com/1098915
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: vitaliii <vitaliii@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: Jan Krcal <jkrcal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568375}
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/consent_auditor/consent_sync_bridge_impl.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/consent_auditor/consent_sync_bridge_impl.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/consent_auditor/consent_sync_bridge_impl_unittest.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/BUILD.gn
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/device_info/device_info_sync_bridge.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/device_info/device_info_sync_bridge.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/device_info/device_info_sync_bridge_unittest.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model/fake_model_type_controller_delegate.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model/fake_model_type_controller_delegate.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model/model_type_controller_delegate.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model/model_type_sync_bridge.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model/model_type_sync_bridge.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model_impl/client_tag_based_model_type_processor.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model_impl/client_tag_based_model_type_processor.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/user_events/user_event_sync_bridge.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/user_events/user_event_sync_bridge.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync/user_events/user_event_sync_bridge_unittest.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync_bookmarks/bookmark_model_type_processor.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync_bookmarks/bookmark_model_type_processor.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/8a67b26b56c9782451b0c553f4941c27407adc1b/components/sync_sessions/session_sync_bridge_unittest.cc

Blocking: 895455
Status: Fixed (was: Assigned)

Sign in to add a comment