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

Unified Diff: chrome/browser/sync/glue/typed_url_change_processor.cc

Issue 436733002: [Sync] Use OnSingleDataTypeUnrecoverableError for all errors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 4 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: chrome/browser/sync/glue/typed_url_change_processor.cc
diff --git a/chrome/browser/sync/glue/typed_url_change_processor.cc b/chrome/browser/sync/glue/typed_url_change_processor.cc
index 0ef8f7d52dd6a851691ca93136c49c2d12be3e8e..ae25e4f8bdba9be5b4c80f4d5920b5820f9a30fc 100644
--- a/chrome/browser/sync/glue/typed_url_change_processor.cc
+++ b/chrome/browser/sync/glue/typed_url_change_processor.cc
@@ -113,9 +113,11 @@ bool TypedUrlChangeProcessor::CreateOrUpdateSyncNode(
syncer::ReadNode typed_url_root(trans);
if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) !=
syncer::BaseNode::INIT_OK) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Server did not create the top-level typed_url node. We "
- "might be running against an out-of-date server.");
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "No top level folder",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
return false;
}
@@ -130,47 +132,24 @@ bool TypedUrlChangeProcessor::CreateOrUpdateSyncNode(
if (result == syncer::BaseNode::INIT_OK) {
model_associator_->WriteToSyncNode(url, visit_vector, &update_node);
} else if (result == syncer::BaseNode::INIT_FAILED_DECRYPT_IF_NECESSARY) {
- // TODO(tim): Investigating bug 121587.
- syncer::Cryptographer* crypto = trans->GetCryptographer();
- syncer::ModelTypeSet encrypted_types(trans->GetEncryptedTypes());
- const sync_pb::EntitySpecifics& specifics =
- update_node.GetEntry()->GetSpecifics();
- CHECK(specifics.has_encrypted());
- const bool can_decrypt = crypto->CanDecrypt(specifics.encrypted());
- const bool agreement = encrypted_types.Has(syncer::TYPED_URLS);
- if (!agreement && !can_decrypt) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Could not InitByIdLookup in CreateOrUpdateSyncNode, "
- " Cryptographer thinks typed urls not encrypted, and CanDecrypt"
- " failed.");
- LOG(ERROR) << "Case 1.";
- } else if (agreement && can_decrypt) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Could not InitByIdLookup on CreateOrUpdateSyncNode, "
- " Cryptographer thinks typed urls are encrypted, and CanDecrypt"
- " succeeded (?!), but DecryptIfNecessary failed.");
- LOG(ERROR) << "Case 2.";
- } else if (agreement) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Could not InitByIdLookup on CreateOrUpdateSyncNode, "
- " Cryptographer thinks typed urls are encrypted, but CanDecrypt"
- " failed.");
- LOG(ERROR) << "Case 3.";
- } else {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Could not InitByIdLookup on CreateOrUpdateSyncNode, "
- " Cryptographer thinks typed urls not encrypted, but CanDecrypt"
- " succeeded (super weird, btw)");
- LOG(ERROR) << "Case 4.";
- }
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed to decrypt.",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
+ return false;
} else {
syncer::WriteNode create_node(trans);
syncer::WriteNode::InitUniqueByCreationResult result =
create_node.InitUniqueByCreation(syncer::TYPED_URLS,
typed_url_root, tag);
if (result != syncer::WriteNode::INIT_SUCCESS) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "Failed to create typed_url sync node.");
+
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed to create sync node",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
return false;
}
@@ -194,8 +173,11 @@ void TypedUrlChangeProcessor::HandleURLsDeleted(
if (details->all_history) {
if (!model_associator_->DeleteAllNodes(&trans)) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- std::string());
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed to delete local nodes.",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
return;
}
} else {
@@ -254,8 +236,11 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel(
syncer::ReadNode typed_url_root(trans);
if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) !=
syncer::BaseNode::INIT_OK) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "TypedUrl root node lookup failed.");
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed to init type root.",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
return;
}
@@ -276,8 +261,11 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel(
syncer::ReadNode sync_node(trans);
if (sync_node.InitByIdLookup(it->id) != syncer::BaseNode::INIT_OK) {
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE,
- "TypedUrl node lookup failed.");
+ syncer::SyncError error(FROM_HERE,
+ syncer::SyncError::DATATYPE_ERROR,
+ "Failed to init sync node.",
+ syncer::TYPED_URLS);
+ error_handler()->OnSingleDataTypeUnrecoverableError(error);
return;
}
« no previous file with comments | « chrome/browser/sync/glue/theme_data_type_controller.cc ('k') | chrome/browser/sync/glue/typed_url_data_type_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698