| Index: chrome/browser/sync/engine/update_applicator.cc
|
| diff --git a/chrome/browser/sync/engine/update_applicator.cc b/chrome/browser/sync/engine/update_applicator.cc
|
| index 6922c0f12e5540c1a117a7cf96313a784c8b3710..04eca4390567a7275ea9a2e1acd07be58bfbc152 100644
|
| --- a/chrome/browser/sync/engine/update_applicator.cc
|
| +++ b/chrome/browser/sync/engine/update_applicator.cc
|
| @@ -91,10 +91,21 @@ void UpdateApplicator::Advance() {
|
| }
|
|
|
| bool UpdateApplicator::SkipUpdate(const syncable::Entry& entry) {
|
| - ModelSafeGroup g =
|
| - GetGroupForModelType(entry.GetServerModelType(), routing_info_);
|
| + syncable::ModelType type = entry.GetServerModelType();
|
| + ModelSafeGroup g = GetGroupForModelType(type, routing_info_);
|
| + // The extra routing_info count check here is to support GetUpdateses for
|
| + // a subset of the globally enabled types, and not attempt to update items
|
| + // if their type isn't permitted in the current run. These would typically
|
| + // be unapplied items from a previous sync.
|
| if (g != group_filter_)
|
| return true;
|
| + if (g == GROUP_PASSIVE &&
|
| + !routing_info_.count(type) &&
|
| + type != syncable::UNSPECIFIED &&
|
| + type != syncable::TOP_LEVEL_FOLDER) {
|
| + VLOG(1) << "Skipping update application, type not permitted.";
|
| + return true;
|
| + }
|
| return false;
|
| }
|
|
|
|
|