| Index: chrome/browser/sync/internal_api/read_node.cc
|
| diff --git a/chrome/browser/sync/internal_api/read_node.cc b/chrome/browser/sync/internal_api/read_node.cc
|
| index 73f23899f1f0537e1dfdad49d7940288e56ff3ed..417fff88b96979aac19468d95f89e678c71a807e 100644
|
| --- a/chrome/browser/sync/internal_api/read_node.cc
|
| +++ b/chrome/browser/sync/internal_api/read_node.cc
|
| @@ -34,34 +34,38 @@ void ReadNode::InitByRootLookup() {
|
| DCHECK(false) << "Could not lookup root node for reading.";
|
| }
|
|
|
| -bool ReadNode::InitByIdLookup(int64 id) {
|
| +BaseNode::InitByLookupResult ReadNode::InitByIdLookup(int64 id) {
|
| DCHECK(!entry_) << "Init called twice";
|
| DCHECK_NE(id, kInvalidId);
|
| syncable::BaseTransaction* trans = transaction_->GetWrappedTrans();
|
| entry_ = new syncable::Entry(trans, syncable::GET_BY_HANDLE, id);
|
| if (!entry_->good())
|
| - return false;
|
| + return INIT_FAILED_ENTRY_NOT_GOOD;
|
| if (entry_->Get(syncable::IS_DEL))
|
| - return false;
|
| + return INIT_FAILED_ENTRY_IS_DEL;
|
| syncable::ModelType model_type = GetModelType();
|
| LOG_IF(WARNING, model_type == syncable::UNSPECIFIED ||
|
| model_type == syncable::TOP_LEVEL_FOLDER)
|
| << "SyncAPI InitByIdLookup referencing unusual object.";
|
| - return DecryptIfNecessary();
|
| + return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY;
|
| }
|
|
|
| -bool ReadNode::InitByClientTagLookup(syncable::ModelType model_type,
|
| - const std::string& tag) {
|
| +BaseNode::InitByLookupResult ReadNode::InitByClientTagLookup(
|
| + syncable::ModelType model_type,
|
| + const std::string& tag) {
|
| DCHECK(!entry_) << "Init called twice";
|
| if (tag.empty())
|
| - return false;
|
| + return INIT_FAILED_PRECONDITION;
|
|
|
| const std::string hash = GenerateSyncableHash(model_type, tag);
|
|
|
| entry_ = new syncable::Entry(transaction_->GetWrappedTrans(),
|
| syncable::GET_BY_CLIENT_TAG, hash);
|
| - return (entry_->good() && !entry_->Get(syncable::IS_DEL) &&
|
| - DecryptIfNecessary());
|
| + if (!entry_->good())
|
| + return INIT_FAILED_ENTRY_NOT_GOOD;
|
| + if (entry_->Get(syncable::IS_DEL))
|
| + return INIT_FAILED_ENTRY_IS_DEL;
|
| + return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY;
|
| }
|
|
|
| const syncable::Entry* ReadNode::GetEntry() const {
|
| @@ -72,21 +76,22 @@ const BaseTransaction* ReadNode::GetTransaction() const {
|
| return transaction_;
|
| }
|
|
|
| -bool ReadNode::InitByTagLookup(const std::string& tag) {
|
| +BaseNode::InitByLookupResult ReadNode::InitByTagLookup(
|
| + const std::string& tag) {
|
| DCHECK(!entry_) << "Init called twice";
|
| if (tag.empty())
|
| - return false;
|
| + return INIT_FAILED_PRECONDITION;
|
| syncable::BaseTransaction* trans = transaction_->GetWrappedTrans();
|
| entry_ = new syncable::Entry(trans, syncable::GET_BY_SERVER_TAG, tag);
|
| if (!entry_->good())
|
| - return false;
|
| + return INIT_FAILED_ENTRY_NOT_GOOD;
|
| if (entry_->Get(syncable::IS_DEL))
|
| - return false;
|
| + return INIT_FAILED_ENTRY_IS_DEL;
|
| syncable::ModelType model_type = GetModelType();
|
| LOG_IF(WARNING, model_type == syncable::UNSPECIFIED ||
|
| model_type == syncable::TOP_LEVEL_FOLDER)
|
| << "SyncAPI InitByTagLookup referencing unusually typed object.";
|
| - return DecryptIfNecessary();
|
| + return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY;
|
| }
|
|
|
| } // namespace sync_api
|
|
|