| Index: chrome/browser/sync/engine/verify_updates_command.cc
|
| diff --git a/chrome/browser/sync/engine/verify_updates_command.cc b/chrome/browser/sync/engine/verify_updates_command.cc
|
| deleted file mode 100644
|
| index 58a3c8ddf3778ee47109a154a0ab940d08795063..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/engine/verify_updates_command.cc
|
| +++ /dev/null
|
| @@ -1,139 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/sync/engine/verify_updates_command.h"
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/location.h"
|
| -#include "chrome/browser/sync/engine/syncer.h"
|
| -#include "chrome/browser/sync/engine/syncer_proto_util.h"
|
| -#include "chrome/browser/sync/engine/syncer_types.h"
|
| -#include "chrome/browser/sync/engine/syncer_util.h"
|
| -#include "chrome/browser/sync/engine/syncproto.h"
|
| -#include "chrome/browser/sync/syncable/syncable.h"
|
| -#include "sync/protocol/bookmark_specifics.pb.h"
|
| -
|
| -namespace browser_sync {
|
| -
|
| -using syncable::WriteTransaction;
|
| -
|
| -using syncable::GET_BY_ID;
|
| -using syncable::SYNCER;
|
| -
|
| -VerifyUpdatesCommand::VerifyUpdatesCommand() {}
|
| -VerifyUpdatesCommand::~VerifyUpdatesCommand() {}
|
| -
|
| -std::set<ModelSafeGroup> VerifyUpdatesCommand::GetGroupsToChange(
|
| - const sessions::SyncSession& session) const {
|
| - std::set<ModelSafeGroup> groups_with_updates;
|
| -
|
| - const GetUpdatesResponse& updates =
|
| - session.status_controller().updates_response().get_updates();
|
| - for (int i = 0; i < updates.entries().size(); i++) {
|
| - groups_with_updates.insert(
|
| - GetGroupForModelType(syncable::GetModelType(updates.entries(i)),
|
| - session.routing_info()));
|
| - }
|
| -
|
| - return groups_with_updates;
|
| -}
|
| -
|
| -SyncerError VerifyUpdatesCommand::ModelChangingExecuteImpl(
|
| - sessions::SyncSession* session) {
|
| - DVLOG(1) << "Beginning Update Verification";
|
| - syncable::Directory* dir = session->context()->directory();
|
| - WriteTransaction trans(FROM_HERE, SYNCER, dir);
|
| - sessions::StatusController* status = session->mutable_status_controller();
|
| - const GetUpdatesResponse& updates = status->updates_response().get_updates();
|
| - int update_count = updates.entries().size();
|
| -
|
| - DVLOG(1) << update_count << " entries to verify";
|
| - for (int i = 0; i < update_count; i++) {
|
| - const SyncEntity& update =
|
| - *reinterpret_cast<const SyncEntity *>(&(updates.entries(i)));
|
| - ModelSafeGroup g = GetGroupForModelType(update.GetModelType(),
|
| - session->routing_info());
|
| - if (g != status->group_restriction())
|
| - continue;
|
| -
|
| - VerifyUpdateResult result = VerifyUpdate(&trans, update,
|
| - session->routing_info());
|
| - status->mutable_update_progress()->AddVerifyResult(result.value, update);
|
| - status->increment_num_updates_downloaded_by(1);
|
| - if (update.deleted())
|
| - status->increment_num_tombstone_updates_downloaded_by(1);
|
| - }
|
| -
|
| - return SYNCER_OK;
|
| -}
|
| -
|
| -namespace {
|
| -// In the event that IDs match, but tags differ AttemptReuniteClient tag
|
| -// will have refused to unify the update.
|
| -// We should not attempt to apply it at all since it violates consistency
|
| -// rules.
|
| -VerifyResult VerifyTagConsistency(const SyncEntity& entry,
|
| - const syncable::MutableEntry& same_id) {
|
| - if (entry.has_client_defined_unique_tag() &&
|
| - entry.client_defined_unique_tag() !=
|
| - same_id.Get(syncable::UNIQUE_CLIENT_TAG)) {
|
| - return VERIFY_FAIL;
|
| - }
|
| - return VERIFY_UNDECIDED;
|
| -}
|
| -} // namespace
|
| -
|
| -VerifyUpdatesCommand::VerifyUpdateResult VerifyUpdatesCommand::VerifyUpdate(
|
| - syncable::WriteTransaction* trans, const SyncEntity& entry,
|
| - const ModelSafeRoutingInfo& routes) {
|
| - syncable::Id id = entry.id();
|
| - VerifyUpdateResult result = {VERIFY_FAIL, GROUP_PASSIVE};
|
| -
|
| - const bool deleted = entry.has_deleted() && entry.deleted();
|
| - const bool is_directory = entry.IsFolder();
|
| - const syncable::ModelType model_type = entry.GetModelType();
|
| -
|
| - if (!id.ServerKnows()) {
|
| - LOG(ERROR) << "Illegal negative id in received updates";
|
| - return result;
|
| - }
|
| - {
|
| - const std::string name = SyncerProtoUtil::NameFromSyncEntity(entry);
|
| - if (name.empty() && !deleted) {
|
| - LOG(ERROR) << "Zero length name in non-deleted update";
|
| - return result;
|
| - }
|
| - }
|
| -
|
| - syncable::MutableEntry same_id(trans, GET_BY_ID, id);
|
| - result.value = SyncerUtil::VerifyNewEntry(entry, &same_id, deleted);
|
| -
|
| - syncable::ModelType placement_type = !deleted ? entry.GetModelType()
|
| - : same_id.good() ? same_id.GetModelType() : syncable::UNSPECIFIED;
|
| - result.placement = GetGroupForModelType(placement_type, routes);
|
| -
|
| - if (VERIFY_UNDECIDED == result.value) {
|
| - result.value = VerifyTagConsistency(entry, same_id);
|
| - }
|
| -
|
| - if (VERIFY_UNDECIDED == result.value) {
|
| - if (deleted)
|
| - result.value = VERIFY_SUCCESS;
|
| - }
|
| -
|
| - // If we have an existing entry, we check here for updates that break
|
| - // consistency rules.
|
| - if (VERIFY_UNDECIDED == result.value) {
|
| - result.value = SyncerUtil::VerifyUpdateConsistency(trans, entry, &same_id,
|
| - deleted, is_directory, model_type);
|
| - }
|
| -
|
| - if (VERIFY_UNDECIDED == result.value)
|
| - result.value = VERIFY_SUCCESS; // No news is good news.
|
| -
|
| - return result; // This might be VERIFY_SUCCESS as well
|
| -}
|
| -
|
| -} // namespace browser_sync
|
|
|