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

Issue 638771 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 634088



Sign in to add a comment

[Sync] Make DataTypeControllers single-threaded and not ref-counted

Project Member Reported by maxbogue@chromium.org, Aug 17 2016

Issue description

Right now DTCs are RefCountedDeleteOnMessageLoop and execute code on both the UI and model threads. This is leading to crashes like http://crbug.com/634088, where the DTC lives too long and tries to access things that have been deleted already. We should make DTCs UI thread only.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 19 2016

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

commit 510f3e9bff01537bca7799b3e9cc2142d64f7376
Author: maxbogue <maxbogue@chromium.org>
Date: Fri Aug 19 17:17:48 2016

[Sync] Move StartAssociation from NonUIDataTypeController to SharedChangeProcessor.

This CL copies a utility function, BindToTaskRunner, from //chromecast/base.
I discussed adding it to //base with danakj@ but apparently it has been
rejected before.

BUG= 638771 

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

[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/BUILD.gn
[add] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/base/bind_to_task_runner.h
[add] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/base/bind_to_task_runner_unittest.cc
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/non_ui_data_type_controller.cc
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/non_ui_data_type_controller.h
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/non_ui_data_type_controller_mock.h
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/non_ui_data_type_controller_unittest.cc
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/shared_change_processor.cc
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/shared_change_processor.h
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/shared_change_processor_unittest.cc
[modify] https://crrev.com/510f3e9bff01537bca7799b3e9cc2142d64f7376/components/sync/driver/ui_data_type_controller.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 23 2016

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

commit 102ca3cf8350354d28ae382fda25a355d1c4069a
Author: maxbogue <maxbogue@chromium.org>
Date: Tue Aug 23 17:33:33 2016

[Sync] Convert NonBlockingDataTypeController to be single-thread.

This change makes ModelTypeService support WeakPtr, which I believe
would have been necessary eventually anyways.

After this change, the only calls left on the model thread are the
DataTypeErrorHandler calls.

BUG= 638771 

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

[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/chrome/browser/sync/chrome_sync_client.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/api/model_type_service.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/device_info/device_info_service.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/device_info/device_info_service.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/fake_sync_client.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/fake_sync_client.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/non_blocking_data_type_controller.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/non_blocking_data_type_controller.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/non_ui_model_type_controller_unittest.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/sync_client.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/components/sync/driver/ui_model_type_controller_unittest.cc
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/ios/chrome/browser/sync/ios_chrome_sync_client.h
[modify] https://crrev.com/102ca3cf8350354d28ae382fda25a355d1c4069a/ios/chrome/browser/sync/ios_chrome_sync_client.mm

Project Member

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

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

commit fd43b4b98dab6bdd565dad4a89e9baf341281f58
Author: maxbogue <maxbogue@chromium.org>
Date: Tue Sep 06 23:09:42 2016

[Sync] Convert DTCs to be not RefCounted and NonThreadSafe.

This CL changes the sync DataTypeControllers to SupportWeakPtr instead
of RefCountedDeleteOnMessageLoop, making them no longer thread safe.

- DTCs are owned by the PSS map so they can no longer outlive PSS.
- Remove the ui_thread parameter to DTC::ctors since it is no longer
  needed by RefCountedDeleteOnMessageLoop or thread checks.
- Add the type parameter to DTC::ctor since so many subclasses stored
  it anyways; put it first because it's important.
- All destructors become public.
- All thread checks become DCHECK(CalledOnValidThread()); and many new
  ones have been added.
- All callbacks are bound with weakptrs to make them safe.
- Remove the unused TypedUrlDataTypeController::SetBackend.
- Remove NonBlockingDataTypeController::BelongsToUIThread and
  ::RunOnUIThread as they are unnecessary.
- Rename error_callback to dump_stack for clarity in the DTCs.

This CL also includes http://crrev.com/2269103003:
Splitting error handling code out of DataTypeControllers.

- Move DataTypeErrorHandler* to //components/sync/api
- Add DataTypeErrorHandlerImpl
- Add DataTypeController::CreateErrorHandler
- Factor some shared logic out of DTCs into DTEHI
- Pass DataTypeErrorHandler as a unique_ptr instead of raw pointer

These are going to be landed together because of a ref-cycle
introduced by the error handling change that the WeakPtr change fixes.

BUG= 638771 

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

[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/supervised_user/supervised_user_sync_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/chrome_sync_client.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/extension_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/extension_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/extension_setting_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/extension_setting_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/theme_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/sync/glue/theme_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/autofill_wallet_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/autofill_wallet_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/webdata/autofill_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/webdata/autofill_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/webdata/autofill_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_components_factory_impl.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_components_factory_impl.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service_autofill_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service_bookmark_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service_startup_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service_typed_url_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/browser_sync/browser/profile_sync_service_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/history/core/browser/history_delete_directives_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/history/core/browser/history_delete_directives_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/history/core/browser/typed_url_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/history/core/browser/typed_url_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/password_manager/sync/browser/password_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/password_manager/sync/browser/password_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/search_engines/BUILD.gn
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/search_engines/search_engine_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/search_engines/search_engine_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/search_engines/search_engine_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/BUILD.gn
[rename] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/data_type_error_handler.h
[add] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/data_type_error_handler_impl.cc
[add] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/data_type_error_handler_impl.h
[rename] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/data_type_error_handler_mock.cc
[rename] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/data_type_error_handler_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/fake_model_type_change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/fake_model_type_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/model_type_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/model_type_service.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/model_type_service.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/api/model_type_service_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/core/shared_model_type_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/core/shared_model_type_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/core/shared_model_type_processor_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/core_impl/model_type_connector_proxy_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/device_info/device_info_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/device_info/device_info_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/device_info/device_info_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/device_info/device_info_service_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/change_processor_mock.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/change_processor_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/data_type_controller_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/data_type_manager_impl_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/directory_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/directory_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_generic_change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_generic_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_sync_service.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/fake_sync_service.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/frontend_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/frontend_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/frontend_data_type_controller_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/frontend_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/generic_change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/generic_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/generic_change_processor_factory.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/generic_change_processor_factory.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/generic_change_processor_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/model_association_manager.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/model_association_manager.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/model_association_manager_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_blocking_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_blocking_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_blocking_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_data_type_controller_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_model_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_model_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/non_ui_model_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/proxy_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/proxy_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/shared_change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/shared_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/shared_change_processor_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/sync_api_component_factory.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/sync_api_component_factory_mock.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/sync_api_component_factory_mock.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/sync_service.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_model_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_model_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync/driver/ui_model_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_change_processor.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_change_processor.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_model_associator.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_bookmarks/bookmark_model_associator.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_sessions/session_data_type_controller.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_sessions/session_data_type_controller.h
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_sessions/session_data_type_controller_unittest.cc
[modify] https://crrev.com/fd43b4b98dab6bdd565dad4a89e9baf341281f58/components/sync_sessions/sessions_sync_manager.h

Status: Fixed (was: Started)
Labels: Sync-Code-Health
Labels: -Sync-Code-Health Hotlist-CodeHealth

Sign in to add a comment