diff options
author | rlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 22:32:46 +0000 |
---|---|---|
committer | rlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 22:32:46 +0000 |
commit | 41b89266ea2cdc7e93ee20ffaba945bdb7680d1b (patch) | |
tree | 2353d6fc1269f72a3ebcc85e604c5a562edf87fd /sync/sync.gyp | |
parent | 16350fc17d592a88118b97993f33d67840cc2205 (diff) | |
download | chromium_src-41b89266ea2cdc7e93ee20ffaba945bdb7680d1b.zip chromium_src-41b89266ea2cdc7e93ee20ffaba945bdb7680d1b.tar.gz chromium_src-41b89266ea2cdc7e93ee20ffaba945bdb7680d1b.tar.bz2 |
sync: Introduce control data types
The Nigori node has always been treated specially. It is downloaded
during early sync initialization. It has custom encryption, update
application, and conflict resolution logic. It is not user-selectable,
but is instead always implicitly enabled.
This patch replaces a lot of if (NIGORI)' code branches and creates the
infrastructure we will need to support other data types that have these
properties. These types will be used to store metadata required for the
normal operation of the syncer.
Notable changes include:
- Introduce mutually exclusive lists of control types and user types in
model_type.cc.
- Create an ApplyControlDataUpdates() function, which will be used to
apply changes and resolve conflicts for control data types.
- Add some if statements to skip processing of control data updates in
the regular conflict resolution code path.
- Move around some code to accomodate the above changes. Introduce
apply_control_data_updates_unittest.cc and conflict_util.cc
- Have SyncBackendHost download all control types during init, not just
the NIGORI.
- Introduce a PurgeForMigration() function on the DataTypeManagerImpl
class to support migration of control data types. This replaces
ConfigureWithoutNigori(), which would not have scaled well as
additional control data types were addded.
- Modify the encryption logic so that only user types may be set to be
encrypted. The Nigori is no longer expected to be in the set of
encrypted types, though it is no less encrypted than it was before
this change.
- Use the list of user types to help calculate the list of registered
sync prefs.
BUG=122825,111297
Review URL: https://chromiumcodereview.appspot.com/10832286
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154522 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/sync.gyp')
-rw-r--r-- | sync/sync.gyp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sync/sync.gyp b/sync/sync.gyp index 369605b..a5a9e80 100644 --- a/sync/sync.gyp +++ b/sync/sync.gyp @@ -73,6 +73,8 @@ 'internal_api/public/util/weak_handle.h', 'engine/all_status.cc', 'engine/all_status.h', + 'engine/apply_control_data_updates.cc', + 'engine/apply_control_data_updates.h', 'engine/apply_updates_command.cc', 'engine/apply_updates_command.h', 'engine/backoff_delay_provider.cc', @@ -83,6 +85,8 @@ 'engine/commit.h', 'engine/conflict_resolver.cc', 'engine/conflict_resolver.h', + 'engine/conflict_util.cc', + 'engine/conflict_util.h', 'engine/download_updates_command.cc', 'engine/download_updates_command.h', 'engine/get_commit_ids_command.cc', @@ -582,6 +586,7 @@ 'internal_api/public/base/model_type_state_map_unittest.cc', 'internal_api/public/engine/model_safe_worker_unittest.cc', 'internal_api/public/util/immutable_unittest.cc', + 'engine/apply_control_data_updates_unittest.cc', 'engine/apply_updates_command_unittest.cc', 'engine/backoff_delay_provider_unittest.cc', 'engine/build_commit_command_unittest.cc', @@ -590,10 +595,10 @@ 'engine/process_commit_response_command_unittest.cc', 'engine/process_updates_command_unittest.cc', 'engine/resolve_conflicts_command_unittest.cc', - 'engine/syncer_proto_util_unittest.cc', - 'engine/syncer_unittest.cc', 'engine/sync_scheduler_unittest.cc', 'engine/sync_scheduler_whitebox_unittest.cc', + 'engine/syncer_proto_util_unittest.cc', + 'engine/syncer_unittest.cc', 'engine/throttled_data_type_tracker_unittest.cc', 'engine/traffic_recorder_unittest.cc', 'engine/verify_updates_command_unittest.cc', |