Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: components/sync/driver/generic_change_processor.cc

Issue 2289143003: [Sync] Convert DTCs to be not RefCounted and NonThreadSafe. (Closed)
Patch Set: Rebase. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
« no previous file with comments | « components/sync/driver/generic_change_processor.h ('k') | components/sync/driver/generic_change_processor_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698