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

Issue 647505 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[USS] Refactor DataTypeManagerImpl to better support the USS flow

Project Member Reported by maxbogue@chromium.org, Sep 15 2016

Issue description

Right now DataTypeManagerImpl and ModelAssociationManager are designed for directory types' setup flow, and we are hacking the flow for USS types into that. We should step back, evaluate both setup flows, and refactor the manager classes to reflect their commonalities.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 28 2016

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

commit fb4af853e48387330a8f89bc55562e1cc4c42f77
Author: pavely <pavely@chromium.org>
Date: Mon Nov 28 22:56:18 2016

[Sync] Remove UIDataTypeController

The goal is to reduce number of datatype controllers to simplify future
refactoring.

In this chagne:
- Removed UIDataTypeController
- All datatypes are switched to NonUIDataTypeController
- Removed model_safe_group method, in favor of DirectoryDataTypeController field
- Added backend_thread_ so that most of datatypes don't need to override
  PostTaskOnBackendThread

R=maxbogue@chromium.org
BUG=647505

TBR=sdefresne@chromium.org

Review-Url: https://codereview.chromium.org/2511703004
Cr-Commit-Position: refs/heads/master@{#434759}

[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/supervised_user/legacy/supervised_user_sync_service.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/extension_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/extension_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/extension_setting_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/extension_setting_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/theme_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/sync/glue/theme_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/autofill_wallet_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/autofill_wallet_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/webdata/autofill_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/webdata/autofill_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/history/core/browser/history_delete_directives_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/history/core/browser/history_delete_directives_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/history/core/browser/typed_url_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/history/core/browser/typed_url_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/password_manager/sync/browser/password_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/password_manager/sync/browser/password_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/search_engines/search_engine_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/search_engines/search_engine_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/search_engines/search_engine_data_type_controller_unittest.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/device_info/device_info_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/device_info/device_info_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/directory_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/directory_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/fake_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/fake_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/frontend_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/frontend_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/frontend_data_type_controller_mock.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/non_ui_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/non_ui_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/non_ui_data_type_controller_mock.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/non_ui_data_type_controller_unittest.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/shared_change_processor.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/shared_change_processor.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/ui_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync/driver/ui_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync_sessions/session_data_type_controller.cc
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/components/sync_sessions/session_data_type_controller.h
[modify] https://crrev.com/fb4af853e48387330a8f89bc55562e1cc4c42f77/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 5 2016

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

commit d8529e23dd0a239bf2132178e0c7dc53b9010e58
Author: pavely <pavely@chromium.org>
Date: Mon Dec 05 20:43:20 2016

[Sync] Convert SyncSessions to NonUIDataTypeController and remove UIDataTypeController

In this change I:
- Switched SessionDataTypeController to NonUIDataTypeController
- Refactored SessionsSyncManager to only dereference local_device_ in
  MergeDataAndStartSyncing. This ensures that clearing local_device_ either
  doesn't affect SessionsSyncManager or gets properly reproted.
- Since local event notifications can come between PSS::ShutdownImpl and
  StopSyncing, MergeDataAndStartSyncing can fail because local_device_ was
  cleared. I changed RebuildAssociations to recognize this and not to fail
  DCHECK in OnLocalTabModified.

BUG=647505
R=maxbogue@chromium.org

Review-Url: https://codereview.chromium.org/2546163003
Cr-Commit-Position: refs/heads/master@{#436394}

[modify] https://crrev.com/d8529e23dd0a239bf2132178e0c7dc53b9010e58/components/sync/BUILD.gn
[delete] https://crrev.com/f88b52ec1e4aebd7c1f28b13a58bfad92d04ba94/components/sync/driver/ui_data_type_controller.cc
[delete] https://crrev.com/f88b52ec1e4aebd7c1f28b13a58bfad92d04ba94/components/sync/driver/ui_data_type_controller.h
[delete] https://crrev.com/f88b52ec1e4aebd7c1f28b13a58bfad92d04ba94/components/sync/driver/ui_data_type_controller_unittest.cc
[modify] https://crrev.com/d8529e23dd0a239bf2132178e0c7dc53b9010e58/components/sync_sessions/session_data_type_controller.cc
[modify] https://crrev.com/d8529e23dd0a239bf2132178e0c7dc53b9010e58/components/sync_sessions/session_data_type_controller.h
[modify] https://crrev.com/d8529e23dd0a239bf2132178e0c7dc53b9010e58/components/sync_sessions/sessions_sync_manager.cc
[modify] https://crrev.com/d8529e23dd0a239bf2132178e0c7dc53b9010e58/components/sync_sessions/sessions_sync_manager.h

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 6 2016

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

commit 3778079943f27e7cd301ffce30b50ea9d1e2dbb5
Author: pavely <pavely@chromium.org>
Date: Tue Dec 06 01:17:44 2016

[Sync] Rename NonUIDataTypeController to AsyncDirectoryTypeController

This change is mechanical. I renamed files, replaced references and ran through
git cl format.

BUG=647505
R=maxbogue@chromium.org
TBR=treib@chromium.org,mgiuca@chromium.org,vabr@chromium.org,sdefresne@chromium.org,pkasting@chromium.org

Review-Url: https://codereview.chromium.org/2549223003
Cr-Commit-Position: refs/heads/master@{#436480}

[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/extension_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/extension_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/extension_setting_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/extension_setting_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/theme_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/sync/glue/theme_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/autofill_wallet_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/autofill_wallet_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/webdata/autofill_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/webdata/autofill_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/browser_sync/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/history/core/browser/history_delete_directives_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/history/core/browser/history_delete_directives_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/history/core/browser/typed_url_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/history/core/browser/typed_url_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/password_manager/sync/browser/password_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/password_manager/sync/browser/password_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/search_engines/search_engine_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/search_engines/search_engine_data_type_controller.h
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/search_engines/search_engine_data_type_controller_unittest.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/BUILD.gn
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/device_info/device_info_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/device_info/device_info_data_type_controller.h
[rename] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/driver/async_directory_type_controller.cc
[rename] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/driver/async_directory_type_controller.h
[add] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/driver/async_directory_type_controller_mock.cc
[rename] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/driver/async_directory_type_controller_mock.h
[rename] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync/driver/async_directory_type_controller_unittest.cc
[delete] https://crrev.com/84ef86caae2a84f0dd898972ef721d97c02ac6e3/components/sync/driver/non_ui_data_type_controller_mock.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync_sessions/session_data_type_controller.cc
[modify] https://crrev.com/3778079943f27e7cd301ffce30b50ea9d1e2dbb5/components/sync_sessions/session_data_type_controller.h

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 10 2016

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

commit 2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02
Author: pavely <pavely@chromium.org>
Date: Sat Dec 10 01:52:26 2016

[Sync] Separate purge types step from sync manager configuration.

The end goal is to trigger purge from DataTypeManagerImpl at the very beginning
of configuration based on information available in DataTypeManager and
DataTypeControllers.

In this change I moved PurgeDisabledTypes call from
SyncManagerImpl::ConfigureSyncer and called it separately from
SyncBackendHost{Impl/Core}.

R=maxbogue@chromium.org
BUG=647505

Review-Url: https://codereview.chromium.org/2563883006
Cr-Commit-Position: refs/heads/master@{#437715}

[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/browser_sync/abstract_profile_sync_service_test.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/driver/glue/sync_backend_host_core.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/driver/glue/sync_backend_host_core.h
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine/fake_sync_manager.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine/fake_sync_manager.h
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine/sync_manager.h
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine_impl/sync_manager_impl.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine_impl/sync_manager_impl.h
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/engine_impl/sync_manager_impl_unittest.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/syncable/directory.cc
[modify] https://crrev.com/2fd351656a3ff6bd5a7ab51b0ce32cbd33e31e02/components/sync/syncable/directory.h

Comment 5 by pav...@chromium.org, Jan 18 2017

Status: Started (was: Assigned)
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 19 2017

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

commit 1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d
Author: pavely <pavely@chromium.org>
Date: Thu Jan 19 21:28:24 2017

[Sync] Make directory types registration explicit in ModelTypeRegistry

The goal of this change is to make registration of directory types with
ModelTypeRegistry to be driven by individual data type controllers. Today set of
directory data types are registered with single call to
SetEnabledDirectoryTypes, they are derived from routing info passed through
sync manager and scheduler.

Since datatype registration will be performed as separate posts to sync thread
it is important to switch scheduler to configuration mode at the beginning of
configuration.

In this change I:
- Added Register/UnregisterDirectoryType to ModelTypeConnector and
  ModelTypeRegistry.
- Removed SetEnabledDirectoryTypes form ModelTypeRegistry as it is no longer
  needed.
- Added StartConfiguration to SyncEngine. This method needs to be called before
  RegisterDirectoryDataType are called so that normal sync cycle doesn't get
  executed on sync thread and doesn't include new datatypes before their
  services are ready to receive updates.
- Added BeforeLoadModels method to DataTypeController. This method is called
  right before LoadModels and allows directory datatypes to register with sync
  engine before initial data downloading begins.

BUG=647505
R=maxbogue@chromium.org

Review-Url: https://codereview.chromium.org/2641523004
Cr-Commit-Position: refs/heads/master@{#444846}

[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/data_type_controller.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/data_type_manager_impl.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/data_type_manager_impl.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/data_type_manager_impl_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/directory_data_type_controller.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/directory_data_type_controller.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/glue/sync_backend_host_core.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/glue/sync_backend_host_core.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_association_manager.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_association_manager.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_association_manager_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_type_controller.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/proxy_data_type_controller.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/driver/proxy_data_type_controller.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_model_type_connector.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_model_type_connector.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_sync_engine.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_sync_engine.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_sync_manager.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/fake_sync_manager.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/model_type_configurer.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/model_type_connector.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/sync_engine.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine/sync_manager.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/cycle/sync_cycle.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/cycle/sync_cycle_context.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/cycle/sync_cycle_context.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/model_type_connector_proxy.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/model_type_connector_proxy.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/model_type_registry.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/model_type_registry.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/model_type_registry_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_manager_impl.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_manager_impl.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_manager_impl_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_scheduler.h
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_scheduler_impl.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/sync_scheduler_impl_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/engine_impl/syncer_unittest.cc
[modify] https://crrev.com/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d/components/sync/tools/sync_client.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 20 2017

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

commit 5c363ea4a04878fd491b6e674f802deff42245f6
Author: pavely <pavely@chromium.org>
Date: Fri Jan 20 18:48:51 2017

Revert of [Sync] Make directory types registration explicit in ModelTypeRegistry (patchset #3 id:40001 of https://codereview.chromium.org/2641523004/ )

Reason for revert:
This change causes crashes in sync:  http://crbug.com/682998 

Original issue's description:
> [Sync] Make directory types registration explicit in ModelTypeRegistry
>
> The goal of this change is to make registration of directory types with
> ModelTypeRegistry to be driven by individual data type controllers. Today set of
> directory data types are registered with single call to
> SetEnabledDirectoryTypes, they are derived from routing info passed through
> sync manager and scheduler.
>
> Since datatype registration will be performed as separate posts to sync thread
> it is important to switch scheduler to configuration mode at the beginning of
> configuration.
>
> In this change I:
> - Added Register/UnregisterDirectoryType to ModelTypeConnector and
>   ModelTypeRegistry.
> - Removed SetEnabledDirectoryTypes form ModelTypeRegistry as it is no longer
>   needed.
> - Added StartConfiguration to SyncEngine. This method needs to be called before
>   RegisterDirectoryDataType are called so that normal sync cycle doesn't get
>   executed on sync thread and doesn't include new datatypes before their
>   services are ready to receive updates.
> - Added BeforeLoadModels method to DataTypeController. This method is called
>   right before LoadModels and allows directory datatypes to register with sync
>   engine before initial data downloading begins.
>
> BUG=647505
> R=maxbogue@chromium.org
>
> Review-Url: https://codereview.chromium.org/2641523004
> Cr-Commit-Position: refs/heads/master@{#444846}
> Committed: https://chromium.googlesource.com/chromium/src/+/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d

TBR=maxbogue@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=647505

Review-Url: https://codereview.chromium.org/2644373003
Cr-Commit-Position: refs/heads/master@{#445105}

[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/data_type_controller.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/data_type_manager_impl.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/data_type_manager_impl.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/data_type_manager_impl_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/directory_data_type_controller.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/directory_data_type_controller.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/glue/sync_backend_host_core.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/glue/sync_backend_host_core.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_association_manager.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_association_manager.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_association_manager_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_type_controller.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/proxy_data_type_controller.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/driver/proxy_data_type_controller.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_model_type_connector.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_model_type_connector.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_sync_engine.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_sync_engine.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_sync_manager.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/fake_sync_manager.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/model_type_configurer.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/model_type_connector.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/sync_engine.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine/sync_manager.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/cycle/sync_cycle.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/cycle/sync_cycle_context.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/cycle/sync_cycle_context.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/model_type_connector_proxy.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/model_type_connector_proxy.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/model_type_registry.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/model_type_registry.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/model_type_registry_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_manager_impl.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_manager_impl.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_manager_impl_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_scheduler.h
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_scheduler_impl.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/sync_scheduler_impl_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/engine_impl/syncer_unittest.cc
[modify] https://crrev.com/5c363ea4a04878fd491b6e674f802deff42245f6/components/sync/tools/sync_client.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 20 2017

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

commit 61709422b5beea0c9fd25c373788338230b8d1ad
Author: Pavel Yatsuk <pavely@chromium.org>
Date: Fri Jan 20 19:42:46 2017

Revert of [Sync] Make directory types registration explicit in ModelTypeRegistry (patchset #3 id:40001 of https://codereview.chromium.org/2641523004/ )

Reason for revert:
This change causes crashes in sync:  http://crbug.com/682998 

Original issue's description:
> [Sync] Make directory types registration explicit in ModelTypeRegistry
>
> The goal of this change is to make registration of directory types with
> ModelTypeRegistry to be driven by individual data type controllers. Today set of
> directory data types are registered with single call to
> SetEnabledDirectoryTypes, they are derived from routing info passed through
> sync manager and scheduler.
>
> Since datatype registration will be performed as separate posts to sync thread
> it is important to switch scheduler to configuration mode at the beginning of
> configuration.
>
> In this change I:
> - Added Register/UnregisterDirectoryType to ModelTypeConnector and
>   ModelTypeRegistry.
> - Removed SetEnabledDirectoryTypes form ModelTypeRegistry as it is no longer
>   needed.
> - Added StartConfiguration to SyncEngine. This method needs to be called before
>   RegisterDirectoryDataType are called so that normal sync cycle doesn't get
>   executed on sync thread and doesn't include new datatypes before their
>   services are ready to receive updates.
> - Added BeforeLoadModels method to DataTypeController. This method is called
>   right before LoadModels and allows directory datatypes to register with sync
>   engine before initial data downloading begins.
>
> BUG=647505
> R=maxbogue@chromium.org
>
> Review-Url: https://codereview.chromium.org/2641523004
> Cr-Commit-Position: refs/heads/master@{#444846}
> Committed: https://chromium.googlesource.com/chromium/src/+/1c7af89ea2d8e6e5e31be9d1f7bfa6c306584f5d

TBR=maxbogue@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=647505

Review-Url: https://codereview.chromium.org/2644373003
Cr-Commit-Position: refs/heads/master@{#445105}
(cherry picked from commit 5c363ea4a04878fd491b6e674f802deff42245f6)

Review-Url: https://codereview.chromium.org/2641253004 .
Cr-Commit-Position: refs/branch-heads/2987@{#5}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/browser_sync/profile_sync_service.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/data_type_controller.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/data_type_manager_impl.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/data_type_manager_impl.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/data_type_manager_impl_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/directory_data_type_controller.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/directory_data_type_controller.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/glue/sync_backend_host_core.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/glue/sync_backend_host_core.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/glue/sync_backend_host_impl.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/glue/sync_backend_host_impl.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/glue/sync_backend_host_impl_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_association_manager.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_association_manager.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_association_manager_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_type_controller.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_type_controller.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/model_type_controller_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/proxy_data_type_controller.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/driver/proxy_data_type_controller.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_model_type_connector.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_model_type_connector.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_sync_engine.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_sync_engine.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_sync_manager.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/fake_sync_manager.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/model_type_configurer.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/model_type_connector.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/sync_engine.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine/sync_manager.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/cycle/sync_cycle.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/cycle/sync_cycle_context.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/cycle/sync_cycle_context.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/model_type_connector_proxy.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/model_type_connector_proxy.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/model_type_registry.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/model_type_registry.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/model_type_registry_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_manager_impl.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_manager_impl.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_manager_impl_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_scheduler.h
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_scheduler_impl.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/sync_scheduler_impl_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/engine_impl/syncer_unittest.cc
[modify] https://crrev.com/61709422b5beea0c9fd25c373788338230b8d1ad/components/sync/tools/sync_client.cc

Comment 9 by pav...@chromium.org, Jan 17 2018

Status: Archived (was: Started)
Owner: ----
Status: Available (was: Archived)

Sign in to add a comment