| Index: components/sync/driver/generic_change_processor.cc
|
| diff --git a/components/sync/driver/generic_change_processor.cc b/components/sync/driver/generic_change_processor.cc
|
| index f7abe0506bd0ca258640018106c4268b20db0024..a54a6a75d3f333a24ef68999c74851a43a2dda3d 100644
|
| --- a/components/sync/driver/generic_change_processor.cc
|
| +++ b/components/sync/driver/generic_change_processor.cc
|
| @@ -14,13 +14,13 @@
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| +#include "components/sync/api/data_type_error_handler.h"
|
| #include "components/sync/api/sync_change.h"
|
| #include "components/sync/api/sync_error.h"
|
| #include "components/sync/api/syncable_service.h"
|
| #include "components/sync/base/unrecoverable_error_handler.h"
|
| #include "components/sync/core/base_node.h"
|
| #include "components/sync/core/change_record.h"
|
| -#include "components/sync/core/data_type_error_handler.h"
|
| #include "components/sync/core/read_node.h"
|
| #include "components/sync/core/read_transaction.h"
|
| #include "components/sync/core/write_node.h"
|
| @@ -108,13 +108,13 @@ syncer::SyncData BuildRemoteSyncData(
|
|
|
| GenericChangeProcessor::GenericChangeProcessor(
|
| syncer::ModelType type,
|
| - syncer::DataTypeErrorHandler* error_handler,
|
| + std::unique_ptr<syncer::DataTypeErrorHandler> error_handler,
|
| const base::WeakPtr<syncer::SyncableService>& local_service,
|
| const base::WeakPtr<syncer::SyncMergeResult>& merge_result,
|
| syncer::UserShare* user_share,
|
| SyncClient* sync_client,
|
| std::unique_ptr<syncer::AttachmentStoreForSync> attachment_store)
|
| - : ChangeProcessor(error_handler),
|
| + : ChangeProcessor(std::move(error_handler)),
|
| type_(type),
|
| local_service_(local_service),
|
| merge_result_(merge_result),
|
| @@ -186,7 +186,7 @@ void GenericChangeProcessor::ApplyChangesFromSyncModel(
|
| "Failed to look up data for received change with id " +
|
| base::Int64ToString(it->id),
|
| syncer::GetModelTypeFromSpecifics(it->specifics));
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| return;
|
| }
|
| syncer_changes_.push_back(syncer::SyncChange(
|
| @@ -204,14 +204,14 @@ void GenericChangeProcessor::CommitChangesFromSyncModel() {
|
| syncer::ModelType type = syncer_changes_[0].sync_data().GetDataType();
|
| syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
|
| "Local service destroyed.", type);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| return;
|
| }
|
| syncer::SyncError error =
|
| local_service_->ProcessSyncChanges(FROM_HERE, syncer_changes_);
|
| syncer_changes_.clear();
|
| if (error.IsSet())
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| }
|
|
|
| syncer::SyncDataList GenericChangeProcessor::GetAllSyncData(
|
| @@ -312,9 +312,9 @@ int GenericChangeProcessor::GetSyncCount() {
|
| namespace {
|
|
|
| // WARNING: this code is sensitive to compiler optimizations. Be careful
|
| -// modifying any code around an OnSingleDataTypeUnrecoverableError call, else
|
| -// the compiler attempts to merge it with other calls, losing useful information
|
| -// in breakpad uploads.
|
| +// modifying any code around an OnUnrecoverableError call, else the compiler
|
| +// attempts to merge it with other calls, losing useful information in
|
| +// breakpad uploads.
|
| syncer::SyncError LogLookupFailure(
|
| syncer::BaseNode::InitByLookupResult lookup_result,
|
| const tracked_objects::Location& from_here,
|
| @@ -328,21 +328,21 @@ syncer::SyncError LogLookupFailure(
|
| from_here,
|
| error_prefix + "could not find entry matching the lookup criteria.",
|
| type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Delete: Bad entry.";
|
| return error;
|
| }
|
| case syncer::BaseNode::INIT_FAILED_ENTRY_IS_DEL: {
|
| syncer::SyncError error;
|
| error.Reset(from_here, error_prefix + "entry is already deleted.", type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Delete: Deleted entry.";
|
| return error;
|
| }
|
| case syncer::BaseNode::INIT_FAILED_DECRYPT_IF_NECESSARY: {
|
| syncer::SyncError error;
|
| error.Reset(from_here, error_prefix + "unable to decrypt", type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Delete: Undecryptable entry.";
|
| return error;
|
| }
|
| @@ -351,7 +351,7 @@ syncer::SyncError LogLookupFailure(
|
| error.Reset(from_here,
|
| error_prefix + "a precondition was not met for calling init.",
|
| type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Delete: Failed precondition.";
|
| return error;
|
| }
|
| @@ -359,7 +359,7 @@ syncer::SyncError LogLookupFailure(
|
| syncer::SyncError error;
|
| // Should have listed all the possible error cases above.
|
| error.Reset(from_here, error_prefix + "unknown error", type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Delete: Unknown error.";
|
| return error;
|
| }
|
| @@ -380,7 +380,7 @@ syncer::SyncError AttemptDelete(const syncer::SyncChange& change,
|
| " node. Local data, empty tag. " +
|
| change.location().ToString(),
|
| type);
|
| - error_handler->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler->OnUnrecoverableError(error);
|
| NOTREACHED();
|
| return error;
|
| }
|
| @@ -465,7 +465,7 @@ syncer::SyncError GenericChangeProcessor::ProcessSyncChanges(
|
| "Received unset SyncChange in the change processor, " +
|
| change.location().ToString(),
|
| type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| NOTREACHED();
|
| LOG(ERROR) << "Unset sync change.";
|
| return error;
|
| @@ -481,7 +481,7 @@ syncer::SyncError GenericChangeProcessor::ProcessSyncChanges(
|
| "Datatype performs attachment operation without initializing "
|
| "attachment store",
|
| type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| NOTREACHED();
|
| return error;
|
| }
|
| @@ -496,9 +496,9 @@ syncer::SyncError GenericChangeProcessor::ProcessSyncChanges(
|
| }
|
|
|
| // WARNING: this code is sensitive to compiler optimizations. Be careful
|
| -// modifying any code around an OnSingleDataTypeUnrecoverableError call, else
|
| -// the compiler attempts to merge it with other calls, losing useful information
|
| -// in breakpad uploads.
|
| +// modifying any code around an OnUnrecoverableError call, else the compiler
|
| +// attempts to merge it with other calls, losing useful information in
|
| +// breakpad uploads.
|
| syncer::SyncError GenericChangeProcessor::HandleActionAdd(
|
| const syncer::SyncChange& change,
|
| const std::string& type_str,
|
| @@ -518,14 +518,14 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd(
|
| case syncer::WriteNode::INIT_FAILED_EMPTY_TAG: {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "empty tag", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Create: Empty tag.";
|
| return error;
|
| }
|
| case syncer::WriteNode::INIT_FAILED_COULD_NOT_CREATE_ENTRY: {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "failed to create entry", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Create: Could not create entry.";
|
| return error;
|
| }
|
| @@ -533,21 +533,21 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd(
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "failed to set predecessor",
|
| type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Create: Bad predecessor.";
|
| return error;
|
| }
|
| case syncer::WriteNode::INIT_FAILED_DECRYPT_EXISTING_ENTRY: {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "failed to decrypt", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Create: Failed to decrypt.";
|
| return error;
|
| }
|
| default: {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "unknown error", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Create: Unknown error.";
|
| return error;
|
| }
|
| @@ -567,9 +567,9 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd(
|
| return syncer::SyncError();
|
| }
|
| // WARNING: this code is sensitive to compiler optimizations. Be careful
|
| -// modifying any code around an OnSingleDataTypeUnrecoverableError call, else
|
| -// the compiler attempts to merge it with other calls, losing useful information
|
| -// in breakpad uploads.
|
| +// modifying any code around an OnUnrecoverableError call, else the compiler
|
| +// attempts to merge it with other calls, losing useful information in
|
| +// breakpad uploads.
|
| syncer::SyncError GenericChangeProcessor::HandleActionUpdate(
|
| const syncer::SyncChange& change,
|
| const std::string& type_str,
|
| @@ -586,32 +586,32 @@ syncer::SyncError GenericChangeProcessor::HandleActionUpdate(
|
| if (result == syncer::BaseNode::INIT_FAILED_PRECONDITION) {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "empty tag", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Update: Empty tag.";
|
| return error;
|
| } else if (result == syncer::BaseNode::INIT_FAILED_ENTRY_NOT_GOOD) {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "bad entry", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Update: bad entry.";
|
| return error;
|
| } else if (result == syncer::BaseNode::INIT_FAILED_ENTRY_IS_DEL) {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "deleted entry", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Update: deleted entry.";
|
| return error;
|
| } else if (result == syncer::BaseNode::INIT_FAILED_DECRYPT_IF_NECESSARY) {
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "failed to decrypt", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Update: Failed to decrypt.";
|
| return error;
|
| } else {
|
| NOTREACHED();
|
| syncer::SyncError error;
|
| error.Reset(FROM_HERE, error_prefix + "unknown error", type_);
|
| - error_handler()->OnSingleDataTypeUnrecoverableError(error);
|
| + error_handler()->OnUnrecoverableError(error);
|
| LOG(ERROR) << "Update: Unknown error.";
|
| return error;
|
| }
|
|
|