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

Issue 883199 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 28
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task

Blocking:
issue 882777



Sign in to add a comment

Move sessions datatype ownership away from ProfileSyncService

Project Member Reported by mastiz@chromium.org, Sep 12

Issue description

Sessions code owns many objects including:
1. The sessions bridge.
2. FaviconCache.
3. GlobalIdMapper.
4. OpenTabsUIDelegate.

All these are currently owned by ProfileSyncService. Untangling this code away should simplify layering, code dependencies, and reduce the size for ProfileSyncService.

Besides, the APIs above are quite widely used throughout the codebase, and in some cases (like UserEventServiceFactory) leads to keyedservice dependencies not being declared to avoid dependency cycles.
 
Labels: -Type-Bug Type-Task
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 13

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

commit f35fd70308600fb2a0168a294f334ec4cb928416
Author: Mikel Astiz <mastiz@chromium.org>
Date: Thu Sep 13 14:48:27 2018

Generate session name during engine initialization

The operation is asynchronous (but very fast) and the result is used to
initialize LocalDeviceInfoProvider. This is only kicked off when the
engine is initialized, so we might as well, for convenience, generate
the session name on the sync thread itself (during initialization).

This simplifies datatypes having to support an extra state and waiting
mechanism. As an example of that, SessionDataTypeController is
simplified.

As future steps, it may make sense to get entirely rid of
LocalDeviceInfoProvider, and replace it with a simpler DeviceInfo
getter.

Bug:  883199 
Change-Id: I642110ac2f2b85adb7f18a3b530733b41e539a1d
Reviewed-on: https://chromium-review.googlesource.com/1224392
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591007}
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/browser_sync/profile_sync_service_mock.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/browser_sync/profile_sync_service_startup_unittest.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/base/get_session_name.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/base/get_session_name.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/base/get_session_name_unittest.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider_impl.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider_impl.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider_impl_unittest.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider_mock.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/device_info/local_device_info_provider_mock.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/driver/glue/sync_backend_host_core.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/engine/fake_sync_engine.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/engine/sync_engine_host.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/engine/sync_engine_host_stub.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync/engine/sync_engine_host_stub.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync_sessions/session_data_type_controller.cc
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync_sessions/session_data_type_controller.h
[modify] https://crrev.com/f35fd70308600fb2a0168a294f334ec4cb928416/components/sync_sessions/session_data_type_controller_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 25

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

commit df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Sep 25 08:29:02 2018

Plumb local DeviceInfo via SyncSessionsClient

Local DeviceInfo becomes available during engine initialization,
before datatypes themselves get started. Hence, it is guaranteed to
be available at the sites where sync_sessions wants to consume the
data, which allows removing any subscription/waiting mechanism, and
instead plumb the information via a simple getter in
SyncSessionsClient.

This also unblocks splitting session sync to a dedicated KeyedService,
because it would otherwise be a cyclic dependency between that keyed
service and ProfileSyncService (which owns LocalDeviceInfoProvider).

Bug:  883199 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I6e15b624b163180290705576867878ca3a375487
Reviewed-on: https://chromium-review.googlesource.com/1224058
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593860}
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/chrome/browser/extensions/api/sessions/sessions_apitest.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync/driver/fake_sync_service.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync/driver/fake_sync_service.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync/driver/sync_service.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/mock_sync_sessions_client.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_store.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_store.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/session_sync_bridge_unittest.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/components/sync_sessions/sync_sessions_client.h
[modify] https://crrev.com/df3781a9a2f2c22b4771b3d3ec7bbaa7b953bf22/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 25

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

commit 0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Sep 25 16:20:41 2018

Move sessions datatype away from ProfileSyncService

The patch introduces a dedicated KeyedService that owns all relevant
objects for syncing SESSIONS, FAVICON_IMAGES and FAVICON_TRACKING. This
prevents some cyclic dependencies and makes sessions more similar to
regular datatypes, owned by some service outside ProfileSyncService.

The change allows simplifications in ProfileSyncService at the expense
of the usual boilerplate with KeyedService factories.

Bug:  883199 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I662dc5a55dc3e7aaae2f0acace3b7895fa7affc8
Reviewed-on: https://chromium-review.googlesource.com/1221126
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593959}
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/extensions/api/sessions/sessions_apitest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/chrome_sync_client.h
[delete] https://crrev.com/a6c36efbc356df53c7507d64e4029b3276d710c1/chrome/browser/sync/chrome_sync_client_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/profile_sync_service_android.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/profile_sync_service_factory.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/session_sync_service_factory.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/session_sync_service_factory.h
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/session_sync_service_factory_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/sync/user_event_service_factory.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/chrome/test/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/browser_sync/profile_sync_service_mock.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/browser_sync/profile_sync_test_util.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/browser_sync/profile_sync_test_util.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/base/pref_names.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/base/pref_names.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/base/sync_prefs.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/base/sync_prefs.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/fake_sync_client.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/fake_sync_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/fake_sync_service.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/fake_sync_service.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/sync_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/sync_client_mock.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync/driver/sync_service.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/DEPS
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/mock_sync_sessions_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_store.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_store.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_store_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_bridge_unittest.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_prefs.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_prefs.h
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_service.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/session_sync_service.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/components/sync_sessions/sync_sessions_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/prefs/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/prefs/browser_prefs.mm
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/ios_chrome_sync_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/ios_chrome_sync_client.mm
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/ios_user_event_service_factory.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/profile_sync_service_factory.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/session_sync_service_factory.cc
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/session_sync_service_factory.h
[add] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/chrome/browser/sync/session_sync_service_factory_unittest.cc
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/web_view/BUILD.gn
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/web_view/internal/DEPS
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/web_view/internal/sync/web_view_sync_client.h
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/web_view/internal/sync/web_view_sync_client.mm
[modify] https://crrev.com/0889b2bea99ac006dee4c05e3e6dfd23c1c4bf62/ios/web_view/internal/web_view_browser_state.mm

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 25

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

commit fd51efd105c258483ed27bf286e83c681c31ac2d
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Sep 25 18:22:23 2018

Avoid task posting for sessions controller

Now that sessions have their own KeyedService, we can migrate away from
ProxyModelTypeControllerDelegate, which was needed before for the subtle
reason of avoiding a dependency cycle during initialization of
ProfileSyncService.

This removes a transitional state and simplifies reasoning about the
datatype's state (controller and bridge are always in a consistent
state).

Bug:  883199 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Ia52284c8eb61314486807a626580dbe132401051
Reviewed-on: https://chromium-review.googlesource.com/1243086
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594016}
[modify] https://crrev.com/fd51efd105c258483ed27bf286e83c681c31ac2d/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/fd51efd105c258483ed27bf286e83c681c31ac2d/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/fd51efd105c258483ed27bf286e83c681c31ac2d/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/fd51efd105c258483ed27bf286e83c681c31ac2d/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Status: Fixed (was: Assigned)
There's some follow-up work like migrating away UIs to use SessionSyncService only (without ProfileSyncService), but that requires quite some work and should be tracked elsewhere.
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 10

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

commit 614329748647f3ad452be3d4d86d6a3c9fb9ae77
Author: Mikel Astiz <mastiz@chromium.org>
Date: Wed Oct 10 07:36:05 2018

Remove experimental NTPForeignSessionsSuggestions

The feature was never launched and the code has been effectively dead
for about a year, so let's clean it up.

Bug:  883199 ,649880
Change-Id: I91bb4cf9e94e01fcea07d4bc70812f95da2f1231
Reviewed-on: https://chromium-review.googlesource.com/c/1271096
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598244}
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/about_flags.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/ntp_snippets/dependent_features.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/ntp_snippets/dependent_features.h
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/components/ntp_snippets/BUILD.gn
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/components/ntp_snippets/pref_names.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/components/ntp_snippets/pref_names.h
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/DEPS
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.cc
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.h
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/foreign_sessions_suggestions_provider_unittest.cc
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/tab_delegate_sync_adapter.cc
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/tab_delegate_sync_adapter.h
[delete] https://crrev.com/b59c44708859da79e43f97807e971f266e5cb60d/components/ntp_snippets/sessions/tab_delegate_sync_adapter_unittest.cc
[modify] https://crrev.com/614329748647f3ad452be3d4d86d6a3c9fb9ae77/components/ntp_snippets_strings.grdp

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 12

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

commit 0dd1e66bf3b9f187c3ccfabbde624bd68933a527
Author: Mikel Astiz <mastiz@chromium.org>
Date: Mon Nov 12 10:08:57 2018

Move OpenTabsUIDelegate API away from SyncService

This cleans up the remaining leftovers of sessions-related logic from
interface SyncService, including:
1. The propagation of PROXY_TABS's runtime state directly from the
   controller to SessionSyncService.

2. The removal of the getter, SyncService::GetOpenTabsUIDelegate().

3. The removal of SyncServiceObserver::OnForeignSessionUpdated(), now
   replaced by a new subscription mechanism in SessionSyncService.

Besides simplifying core sync code, it also means client code (UI and
tests) have less dependencies, since they can now depend exclusively on
SessionSyncService.

Bug:  883199 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Id89410fa7149ae97db8e707adbab331e68d5cb8b
Reviewed-on: https://chromium-review.googlesource.com/c/1271101
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Sergio Collazos <sczs@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607180}
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/android/favicon_helper.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/android/foreign_session_helper.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/android/foreign_session_helper.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/extensions/api/sessions/sessions_api.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/extensions/api/sessions/sessions_apitest.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/sync/session_sync_service_factory.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/sync/test/integration/sessions_helper.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/app_list/internal_app/internal_app_metadata.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/app_list/search/app_search_provider.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/webui/favicon_source.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/webui/foreign_session_handler.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/chrome/browser/ui/webui/foreign_session_handler.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/browser_sync/profile_sync_service.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/browser_sync/profile_sync_service_mock.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/browser_sync/profile_sync_service_mock.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/fake_sync_service.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/fake_sync_service.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/proxy_data_type_controller.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/proxy_data_type_controller.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/sync_service.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/sync_service_observer.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/test_sync_service.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync/driver/test_sync_service.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/mock_sync_sessions_client.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/session_sync_bridge.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/session_sync_bridge.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/session_sync_bridge_unittest.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/session_sync_service.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/session_sync_service.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/sessions_sync_manager.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/sessions_sync_manager_unittest.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/components/sync_sessions/sync_sessions_client.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/sync/session_sync_service_factory.cc
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/recent_tabs_mediator.mm
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/synced_sessions.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/synced_sessions.mm
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/synced_sessions_bridge.h
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/chrome/browser/ui/recent_tabs/synced_sessions_bridge.mm
[modify] https://crrev.com/0dd1e66bf3b9f187c3ccfabbde624bd68933a527/ios/web_view/internal/sync/cwv_sync_controller.mm

Sign in to add a comment