| Index: chrome/browser/sync/engine/get_commit_ids_command.cc
|
| diff --git a/chrome/browser/sync/engine/get_commit_ids_command.cc b/chrome/browser/sync/engine/get_commit_ids_command.cc
|
| index 4c280ecd644401982bb3e69e71a8fe24d01fff18..aa90ccc74a45f060f3a3fb784b9a7f7f27fc0ede 100644
|
| --- a/chrome/browser/sync/engine/get_commit_ids_command.cc
|
| +++ b/chrome/browser/sync/engine/get_commit_ids_command.cc
|
| @@ -44,7 +44,7 @@ void GetCommitIdsCommand::ExecuteImpl(SyncSession* session) {
|
| passphrase_missing_ = cryptographer->has_pending_keys();
|
| };
|
|
|
| - const syncable::ModelTypeSet& throttled_types =
|
| + const syncable::ModelEnumSet throttled_types =
|
| session->context()->GetThrottledTypes();
|
| // We filter out all unready entries from the set of unsynced handles to
|
| // ensure we don't trigger useless sync cycles attempting to retry due to
|
| @@ -74,10 +74,10 @@ namespace {
|
| // and not requiring encryption (any entry containing an encrypted datatype
|
| // while the cryptographer requires a passphrase is not ready for commit.)
|
| // 2. Its type is not currently throttled.
|
| -bool IsEntryReadyForCommit(const syncable::ModelTypeSet& encrypted_types,
|
| +bool IsEntryReadyForCommit(syncable::ModelEnumSet encrypted_types,
|
| bool passphrase_missing,
|
| const syncable::Entry& entry,
|
| - const syncable::ModelTypeSet& throttled_types) {
|
| + syncable::ModelEnumSet throttled_types) {
|
| if (!entry.Get(syncable::IS_UNSYNCED))
|
| return false;
|
|
|
| @@ -93,12 +93,13 @@ bool IsEntryReadyForCommit(const syncable::ModelTypeSet& encrypted_types,
|
| return false;
|
| }
|
|
|
| - syncable::ModelType type = entry.GetModelType();
|
| + const syncable::ModelType type = entry.GetModelType();
|
| // We special case the nigori node because even though it is considered an
|
| // "encrypted type", not all nigori node changes require valid encryption
|
| // (ex: sync_tabs).
|
| - if (type != syncable::NIGORI &&
|
| - encrypted_types.count(type) > 0 &&
|
| + if (syncable::IsRealDataType(type) &&
|
| + (type != syncable::NIGORI) &&
|
| + encrypted_types.Has(type) &&
|
| (passphrase_missing ||
|
| syncable::EntryNeedsEncryption(encrypted_types, entry))) {
|
| // This entry requires encryption but is not properly encrypted (possibly
|
| @@ -111,7 +112,7 @@ bool IsEntryReadyForCommit(const syncable::ModelTypeSet& encrypted_types,
|
| }
|
|
|
| // Look at the throttled types.
|
| - if (throttled_types.count(type) > 0)
|
| + if (syncable::IsRealDataType(type) && throttled_types.Has(type))
|
| return false;
|
|
|
| return true;
|
| @@ -121,7 +122,7 @@ bool IsEntryReadyForCommit(const syncable::ModelTypeSet& encrypted_types,
|
|
|
| void GetCommitIdsCommand::FilterUnreadyEntries(
|
| syncable::BaseTransaction* trans,
|
| - const syncable::ModelTypeSet& throttled_types,
|
| + syncable::ModelEnumSet throttled_types,
|
| syncable::Directory::UnsyncedMetaHandles* unsynced_handles) {
|
| syncable::Directory::UnsyncedMetaHandles::iterator iter;
|
| syncable::Directory::UnsyncedMetaHandles new_unsynced_handles;
|
| @@ -144,7 +145,7 @@ void GetCommitIdsCommand::AddUncommittedParentsAndTheirPredecessors(
|
| syncable::BaseTransaction* trans,
|
| syncable::Id parent_id,
|
| const ModelSafeRoutingInfo& routes,
|
| - const syncable::ModelTypeSet& throttled_types) {
|
| + syncable::ModelEnumSet throttled_types) {
|
| OrderedCommitSet item_dependencies(routes);
|
|
|
| // Climb the tree adding entries leaf -> root.
|
| @@ -169,8 +170,8 @@ void GetCommitIdsCommand::AddUncommittedParentsAndTheirPredecessors(
|
| }
|
|
|
| bool GetCommitIdsCommand::AddItem(syncable::Entry* item,
|
| - const syncable::ModelTypeSet& throttled_types,
|
| - OrderedCommitSet* result) {
|
| + syncable::ModelEnumSet throttled_types,
|
| + OrderedCommitSet* result) {
|
| if (!IsEntryReadyForCommit(encrypted_types_, passphrase_missing_, *item,
|
| throttled_types))
|
| return false;
|
| @@ -186,7 +187,7 @@ bool GetCommitIdsCommand::AddItem(syncable::Entry* item,
|
|
|
| bool GetCommitIdsCommand::AddItemThenPredecessors(
|
| syncable::BaseTransaction* trans,
|
| - const syncable::ModelTypeSet& throttled_types,
|
| + syncable::ModelEnumSet throttled_types,
|
| syncable::Entry* item,
|
| syncable::IndexedBitField inclusion_filter,
|
| OrderedCommitSet* result) {
|
| @@ -210,7 +211,7 @@ bool GetCommitIdsCommand::AddItemThenPredecessors(
|
|
|
| void GetCommitIdsCommand::AddPredecessorsThenItem(
|
| syncable::BaseTransaction* trans,
|
| - const syncable::ModelTypeSet& throttled_types,
|
| + syncable::ModelEnumSet throttled_types,
|
| syncable::Entry* item,
|
| syncable::IndexedBitField inclusion_filter,
|
| const ModelSafeRoutingInfo& routes) {
|
| @@ -230,7 +231,7 @@ void GetCommitIdsCommand::AddCreatesAndMoves(
|
| const vector<int64>& unsynced_handles,
|
| syncable::WriteTransaction* write_transaction,
|
| const ModelSafeRoutingInfo& routes,
|
| - const syncable::ModelTypeSet& throttled_types) {
|
| + syncable::ModelEnumSet throttled_types) {
|
| // Add moves and creates, and prepend their uncommitted parents.
|
| for (CommitMetahandleIterator iterator(unsynced_handles, write_transaction,
|
| ordered_commit_set_.get());
|
| @@ -341,7 +342,7 @@ void GetCommitIdsCommand::AddDeletes(const vector<int64>& unsynced_handles,
|
| void GetCommitIdsCommand::BuildCommitIds(const vector<int64>& unsynced_handles,
|
| syncable::WriteTransaction* write_transaction,
|
| const ModelSafeRoutingInfo& routes,
|
| - const syncable::ModelTypeSet& throttled_types) {
|
| + syncable::ModelEnumSet throttled_types) {
|
| ordered_commit_set_.reset(new OrderedCommitSet(routes));
|
| // Commits follow these rules:
|
| // 1. Moves or creates are preceded by needed folder creates, from
|
|
|