| Index: trunk/src/chrome/browser/sync/glue/typed_url_change_processor.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/sync/glue/typed_url_change_processor.cc (revision 289354)
|
| +++ trunk/src/chrome/browser/sync/glue/typed_url_change_processor.cc (working copy)
|
| @@ -113,9 +113,11 @@
|
| 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 @@
|
| 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 @@
|
|
|
| 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 @@
|
| 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 @@
|
|
|
| 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;
|
| }
|
|
|
|
|