| Index: sync/engine/get_commit_ids_command.cc
|
| diff --git a/sync/engine/get_commit_ids_command.cc b/sync/engine/get_commit_ids_command.cc
|
| index 61d2f78b5177e9a2d960299dfa4d5fbd895cfe88..b2f0cbf8c0a7a9f684ac423cf589092829db3c93 100644
|
| --- a/sync/engine/get_commit_ids_command.cc
|
| +++ b/sync/engine/get_commit_ids_command.cc
|
| @@ -28,9 +28,11 @@ using sessions::StatusController;
|
|
|
| GetCommitIdsCommand::GetCommitIdsCommand(
|
| syncable::BaseTransaction* trans,
|
| + ModelTypeSet requested_types,
|
| const size_t commit_batch_size,
|
| sessions::OrderedCommitSet* commit_set)
|
| : trans_(trans),
|
| + requested_types_(requested_types),
|
| requested_commit_batch_size_(commit_batch_size),
|
| commit_set_(commit_set) {
|
| }
|
| @@ -56,15 +58,13 @@ SyncerError GetCommitIdsCommand::ExecuteImpl(SyncSession* session) {
|
| passphrase_missing = cryptographer->has_pending_keys();
|
| };
|
|
|
| - // If we're comitting, then we must be performing a nudge job and must have a
|
| - // session with a nudge tracker.
|
| - DCHECK(session->nudge_tracker());
|
| -
|
| // We filter out all unready entries from the set of unsynced handles. This
|
| - // new set of ready and unsynced items (which excludes throttled items as
|
| - // well) is then what we use to determine what is a candidate for commit.
|
| + // new set of ready and unsynced items is then what we use to determine what
|
| + // is a candidate for commit. The caller of this SyncerCommand is responsible
|
| + // for ensuring that no throttled types are included among the
|
| + // requested_types.
|
| FilterUnreadyEntries(trans_,
|
| - session->nudge_tracker()->GetThrottledTypes(),
|
| + requested_types_,
|
| encrypted_types,
|
| passphrase_missing,
|
| all_unsynced_handles,
|
| @@ -107,7 +107,7 @@ bool IsEntryInConflict(const syncable::Entry& entry) {
|
| // encrypted).
|
| // 3. It's type is currently throttled.
|
| // 4. It's a delete but has not been committed.
|
| -bool IsEntryReadyForCommit(ModelTypeSet throttled_types,
|
| +bool IsEntryReadyForCommit(ModelTypeSet requested_types,
|
| ModelTypeSet encrypted_types,
|
| bool passphrase_missing,
|
| const syncable::Entry& entry) {
|
| @@ -130,8 +130,8 @@ bool IsEntryReadyForCommit(ModelTypeSet throttled_types,
|
| return false;
|
| }
|
|
|
| - // Look at the throttled types.
|
| - if (throttled_types.Has(type))
|
| + // Ignore it if it's not in our set of requested types.
|
| + if (!requested_types.Has(type))
|
| return false;
|
|
|
| if (entry.Get(syncable::IS_DEL) && !entry.Get(syncable::ID).ServerKnows()) {
|
| @@ -164,7 +164,7 @@ bool IsEntryReadyForCommit(ModelTypeSet throttled_types,
|
|
|
| void GetCommitIdsCommand::FilterUnreadyEntries(
|
| syncable::BaseTransaction* trans,
|
| - ModelTypeSet throttled_types,
|
| + ModelTypeSet requested_types,
|
| ModelTypeSet encrypted_types,
|
| bool passphrase_missing,
|
| const syncable::Directory::Metahandles& unsynced_handles,
|
| @@ -172,7 +172,7 @@ void GetCommitIdsCommand::FilterUnreadyEntries(
|
| for (syncable::Directory::Metahandles::const_iterator iter =
|
| unsynced_handles.begin(); iter != unsynced_handles.end(); ++iter) {
|
| syncable::Entry entry(trans, syncable::GET_BY_HANDLE, *iter);
|
| - if (IsEntryReadyForCommit(throttled_types,
|
| + if (IsEntryReadyForCommit(requested_types,
|
| encrypted_types,
|
| passphrase_missing,
|
| entry)) {
|
|
|