diff options
36 files changed, 157 insertions, 157 deletions
diff --git a/chrome/browser/sync/glue/bookmark_change_processor.cc b/chrome/browser/sync/glue/bookmark_change_processor.cc index 92324a8..67cce64 100644 --- a/chrome/browser/sync/glue/bookmark_change_processor.cc +++ b/chrome/browser/sync/glue/bookmark_change_processor.cc @@ -551,7 +551,7 @@ void BookmarkChangeProcessor::ApplyChangesFromSyncModel( syncer::ReadNode synced_bookmarks(trans); int64 synced_bookmarks_id = syncer::kInvalidId; - if (synced_bookmarks.InitByTagLookup(kMobileBookmarksTag) == + if (synced_bookmarks.InitByTagLookupForBookmarks(kMobileBookmarksTag) == syncer::BaseNode::INIT_OK) { synced_bookmarks_id = synced_bookmarks.GetId(); } diff --git a/chrome/browser/sync/glue/bookmark_model_associator.cc b/chrome/browser/sync/glue/bookmark_model_associator.cc index ab29bac..ede4307 100644 --- a/chrome/browser/sync/glue/bookmark_model_associator.cc +++ b/chrome/browser/sync/glue/bookmark_model_associator.cc @@ -387,7 +387,8 @@ bool BookmarkModelAssociator::GetSyncIdForTaggedNode(const std::string& tag, int64* sync_id) { syncer::ReadTransaction trans(FROM_HERE, user_share_); syncer::ReadNode sync_node(&trans); - if (sync_node.InitByTagLookup(tag.c_str()) != syncer::BaseNode::INIT_OK) + if (sync_node.InitByTagLookupForBookmarks( + tag.c_str()) != syncer::BaseNode::INIT_OK) return false; *sync_id = sync_node.GetId(); return true; @@ -484,8 +485,7 @@ syncer::SyncError BookmarkModelAssociator::BuildAssociations( syncer::WriteTransaction trans(FROM_HERE, user_share_); syncer::ReadNode bm_root(&trans); - if (bm_root.InitByTagLookup(syncer::ModelTypeToRootTag(syncer::BOOKMARKS)) == - syncer::BaseNode::INIT_OK) { + if (bm_root.InitTypeRoot(syncer::BOOKMARKS) == syncer::BaseNode::INIT_OK) { syncer_merge_result->set_num_items_before_association( bm_root.GetTotalNodeCount()); } diff --git a/chrome/browser/sync/glue/synced_device_tracker.cc b/chrome/browser/sync/glue/synced_device_tracker.cc index fa4770f..bf7fa92 100644 --- a/chrome/browser/sync/glue/synced_device_tracker.cc +++ b/chrome/browser/sync/glue/synced_device_tracker.cc @@ -104,8 +104,7 @@ void SyncedDeviceTracker::GetAllSyncedDeviceInfo( syncer::ReadTransaction trans(FROM_HERE, user_share_); syncer::ReadNode root_node(&trans); - if (root_node.InitByTagLookup( - syncer::ModelTypeToRootTag(syncer::DEVICE_INFO)) != + if (root_node.InitTypeRoot(syncer::DEVICE_INFO) != syncer::BaseNode::INIT_OK) { return; } @@ -182,7 +181,7 @@ void SyncedDeviceTracker::WriteDeviceInfo( } else { syncer::ReadNode type_root(&trans); syncer::BaseNode::InitByLookupResult type_root_lookup_result = - type_root.InitByTagLookup(ModelTypeToRootTag(syncer::DEVICE_INFO)); + type_root.InitTypeRoot(syncer::DEVICE_INFO); DCHECK_EQ(syncer::BaseNode::INIT_OK, type_root_lookup_result); syncer::WriteNode new_node(&trans); diff --git a/chrome/browser/sync/glue/typed_url_change_processor.cc b/chrome/browser/sync/glue/typed_url_change_processor.cc index 75f7930..34c57f7 100644 --- a/chrome/browser/sync/glue/typed_url_change_processor.cc +++ b/chrome/browser/sync/glue/typed_url_change_processor.cc @@ -111,7 +111,7 @@ bool TypedUrlChangeProcessor::CreateOrUpdateSyncNode( } syncer::ReadNode typed_url_root(trans); - if (typed_url_root.InitByTagLookup(kTypedUrlTag) != + 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 " @@ -252,7 +252,7 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel( return; syncer::ReadNode typed_url_root(trans); - if (typed_url_root.InitByTagLookup(kTypedUrlTag) != + if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) != syncer::BaseNode::INIT_OK) { error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, "TypedUrl root node lookup failed."); diff --git a/chrome/browser/sync/glue/typed_url_model_associator.cc b/chrome/browser/sync/glue/typed_url_model_associator.cc index 93d4e1d..8a619ad 100644 --- a/chrome/browser/sync/glue/typed_url_model_associator.cc +++ b/chrome/browser/sync/glue/typed_url_model_associator.cc @@ -37,8 +37,6 @@ static const int kMaxTypedUrlVisits = 100; // RELOAD visits, which will be stripped. static const int kMaxVisitsToFetch = 1000; -const char kTypedUrlTag[] = "google_chrome_typed_urls"; - static bool CheckVisitOrdering(const history::VisitVector& visits) { int64 previous_visit_time = 0; for (history::VisitVector::const_iterator visit = visits.begin(); @@ -228,8 +226,8 @@ syncer::SyncError TypedUrlModelAssociator::DoAssociateModels() { syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode typed_url_root(&trans); - if (typed_url_root.InitByTagLookup(kTypedUrlTag) != - syncer::BaseNode::INIT_OK) { + if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) != + syncer::BaseNode::INIT_OK) { return error_handler_->CreateAndUploadError( FROM_HERE, "Server did not create the top-level typed_url node. We " @@ -466,7 +464,7 @@ bool TypedUrlModelAssociator::DeleteAllNodes( // Just walk through all our child nodes and delete them. syncer::ReadNode typed_url_root(trans); - if (typed_url_root.InitByTagLookup(kTypedUrlTag) != + if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) != syncer::BaseNode::INIT_OK) { LOG(ERROR) << "Could not lookup root node"; return false; @@ -499,7 +497,7 @@ bool TypedUrlModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) { *has_nodes = false; syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode sync_node(&trans); - if (sync_node.InitByTagLookup(kTypedUrlTag) != syncer::BaseNode::INIT_OK) { + if (sync_node.InitTypeRoot(syncer::TYPED_URLS) != syncer::BaseNode::INIT_OK) { LOG(ERROR) << "Server did not create the top-level typed_url node. We " << "might be running against an out-of-date server."; return false; diff --git a/chrome/browser/sync/glue/typed_url_model_associator.h b/chrome/browser/sync/glue/typed_url_model_associator.h index 0c2f7cf..b323254 100644 --- a/chrome/browser/sync/glue/typed_url_model_associator.h +++ b/chrome/browser/sync/glue/typed_url_model_associator.h @@ -37,8 +37,6 @@ class WriteTransaction; namespace browser_sync { -extern const char kTypedUrlTag[]; - // Contains all model association related logic: // * Algorithm to associate typed_url model and sync model. // * Persisting model associations and loading them back. diff --git a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc index 7567f65..adac26c 100644 --- a/chrome/browser/sync/profile_sync_service_autofill_unittest.cc +++ b/chrome/browser/sync/profile_sync_service_autofill_unittest.cc @@ -84,10 +84,11 @@ using browser_sync::AutofillProfileDataTypeController; using browser_sync::DataTypeController; using content::BrowserThread; using syncer::AUTOFILL; +using syncer::AUTOFILL_PROFILE; using syncer::BaseNode; using syncer::syncable::BASE_VERSION; using syncer::syncable::CREATE; -using syncer::syncable::GET_BY_SERVER_TAG; +using syncer::syncable::GET_TYPE_ROOT; using syncer::syncable::MutableEntry; using syncer::syncable::SERVER_SPECIFICS; using syncer::syncable::SPECIFICS; @@ -527,8 +528,7 @@ class ProfileSyncServiceAutofillTest int GetSyncCount(syncer::ModelType type) { syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode node(&trans); - if (node.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != - syncer::BaseNode::INIT_OK) + if (node.InitTypeRoot(type) != syncer::BaseNode::INIT_OK) return 0; return node.GetTotalNodeCount() - 1; } @@ -581,9 +581,7 @@ class ProfileSyncServiceAutofillTest bool AddAutofillSyncNode(const AutofillEntry& entry) { syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode autofill_root(&trans); - if (autofill_root.InitByTagLookup( - syncer::ModelTypeToRootTag(syncer::AUTOFILL)) != - BaseNode::INIT_OK) { + if (autofill_root.InitTypeRoot(syncer::AUTOFILL) != BaseNode::INIT_OK) { return false; } @@ -607,8 +605,7 @@ class ProfileSyncServiceAutofillTest bool AddAutofillSyncNode(const AutofillProfile& profile) { syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode autofill_root(&trans); - if (autofill_root.InitByTagLookup(autofill::kAutofillProfileTag) != - BaseNode::INIT_OK) { + if (autofill_root.InitTypeRoot(AUTOFILL_PROFILE) != BaseNode::INIT_OK) { return false; } syncer::WriteNode node(&trans); @@ -631,9 +628,7 @@ class ProfileSyncServiceAutofillTest std::vector<AutofillProfile>* profiles) { syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode autofill_root(&trans); - if (autofill_root.InitByTagLookup( - syncer::ModelTypeToRootTag(syncer::AUTOFILL)) != - BaseNode::INIT_OK) { + if (autofill_root.InitTypeRoot(syncer::AUTOFILL) != BaseNode::INIT_OK) { return false; } @@ -672,8 +667,7 @@ class ProfileSyncServiceAutofillTest std::vector<AutofillProfile>* profiles) { syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode autofill_root(&trans); - if (autofill_root.InitByTagLookup(autofill::kAutofillProfileTag) != - BaseNode::INIT_OK) { + if (autofill_root.InitTypeRoot(AUTOFILL_PROFILE) != BaseNode::INIT_OK) { return false; } @@ -837,8 +831,7 @@ class FakeServerUpdater : public base::RefCountedThreadSafe<FakeServerUpdater> { // Create actual entry based on autofill protobuf information. // Simulates effects of UpdateLocalDataFromServerData - MutableEntry parent(&trans, GET_BY_SERVER_TAG, - syncer::ModelTypeToRootTag(syncer::AUTOFILL)); + MutableEntry parent(&trans, GET_TYPE_ROOT, syncer::AUTOFILL); MutableEntry item(&trans, CREATE, syncer::AUTOFILL, parent.GetId(), tag); ASSERT_TRUE(item.good()); item.PutSpecifics(entity_specifics); diff --git a/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc b/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc index 6b07ac6..04185677 100644 --- a/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc +++ b/chrome/browser/sync/profile_sync_service_bookmark_unittest.cc @@ -350,7 +350,8 @@ class ProfileSyncServiceBookmarkTest : public testing::Test { // Be sure to call CreatePermanentBookmarkNodes(), otherwise this will fail. syncer::ReadNode bookmark_bar(trans); - EXPECT_EQ(BaseNode::INIT_OK, bookmark_bar.InitByTagLookup("bookmark_bar")); + EXPECT_EQ(BaseNode::INIT_OK, + bookmark_bar.InitByTagLookupForBookmarks("bookmark_bar")); syncer::WriteNode node(trans); EXPECT_TRUE(node.InitBookmarkByCreation(bookmark_bar, NULL)); @@ -406,8 +407,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test { int GetSyncBookmarkCount() { syncer::ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); syncer::ReadNode node(&trans); - if (node.InitByTagLookup(syncer::ModelTypeToRootTag(syncer::BOOKMARKS)) != - syncer::BaseNode::INIT_OK) + if (node.InitTypeRoot(syncer::BOOKMARKS) != syncer::BaseNode::INIT_OK) return 0; return node.GetTotalNodeCount(); } @@ -424,8 +424,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test { uber_root.InitByRootLookup(); syncer::ReadNode root(&trans); - root_exists = (root.InitByTagLookup(syncer::ModelTypeToRootTag(type)) == - BaseNode::INIT_OK); + root_exists = (root.InitTypeRoot(type) == BaseNode::INIT_OK); } if (!root_exists) { @@ -440,8 +439,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test { }; syncer::WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); syncer::ReadNode root(&trans); - EXPECT_EQ(BaseNode::INIT_OK, root.InitByTagLookup( - syncer::ModelTypeToRootTag(type))); + EXPECT_EQ(BaseNode::INIT_OK, root.InitTypeRoot(type)); // Loop through creating permanent nodes as necessary. int64 last_child_id = syncer::kInvalidId; @@ -449,7 +447,7 @@ class ProfileSyncServiceBookmarkTest : public testing::Test { // First check if the node already exists. This is for tests that involve // persistence and set up sync more than once. syncer::ReadNode lookup(&trans); - if (lookup.InitByTagLookup(permanent_tags[i]) == + if (lookup.InitByTagLookupForBookmarks(permanent_tags[i]) == syncer::ReadNode::INIT_OK) { last_child_id = lookup.GetId(); continue; diff --git a/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc b/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc index ba6f271..fce87fc 100644 --- a/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc +++ b/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc @@ -178,7 +178,7 @@ class ProfileSyncServiceTypedUrlTest : public AbstractProfileSyncServiceTest { syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode typed_url_root(&trans); ASSERT_EQ(syncer::BaseNode::INIT_OK, - typed_url_root.InitByTagLookup(browser_sync::kTypedUrlTag)); + typed_url_root.InitTypeRoot(syncer::TYPED_URLS)); syncer::WriteNode node(&trans); std::string tag = url.url().spec(); @@ -267,8 +267,8 @@ class ProfileSyncServiceTypedUrlTest : public AbstractProfileSyncServiceTest { urls->clear(); syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); syncer::ReadNode typed_url_root(&trans); - if (typed_url_root.InitByTagLookup(browser_sync::kTypedUrlTag) != - syncer::BaseNode::INIT_OK) + if (typed_url_root.InitTypeRoot(syncer::TYPED_URLS) != + syncer::BaseNode::INIT_OK) return; int64 child_id = typed_url_root.GetFirstChildId(); diff --git a/chrome/browser/sync/test/integration/enable_disable_test.cc b/chrome/browser/sync/test/integration/enable_disable_test.cc index 8e70c60..0a6edfb 100644 --- a/chrome/browser/sync/test/integration/enable_disable_test.cc +++ b/chrome/browser/sync/test/integration/enable_disable_test.cc @@ -28,8 +28,7 @@ bool DoesTopLevelNodeExist(syncer::UserShare* user_share, syncer::ModelType type) { syncer::ReadTransaction trans(FROM_HERE, user_share); syncer::ReadNode node(&trans); - return node.InitByTagLookup(syncer::ModelTypeToRootTag(type)) == - syncer::BaseNode::INIT_OK; + return node.InitTypeRoot(type) == syncer::BaseNode::INIT_OK; } IN_PROC_BROWSER_TEST_F(EnableDisableSingleClientTest, EnableOneAtATime) { diff --git a/components/sync_driver/generic_change_processor.cc b/components/sync_driver/generic_change_processor.cc index 6341ab2..7d8ef4d 100644 --- a/components/sync_driver/generic_change_processor.cc +++ b/components/sync_driver/generic_change_processor.cc @@ -223,8 +223,7 @@ syncer::SyncError GenericChangeProcessor::GetAllSyncDataReturnError( std::string type_name = syncer::ModelTypeToString(type); syncer::ReadTransaction trans(FROM_HERE, share_handle()); syncer::ReadNode root(&trans); - if (root.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != - syncer::BaseNode::INIT_OK) { + if (root.InitTypeRoot(type) != syncer::BaseNode::INIT_OK) { syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "Server did not create the top-level " + type_name + @@ -276,8 +275,7 @@ bool GenericChangeProcessor::GetDataTypeContext(syncer::ModelType type, int GenericChangeProcessor::GetSyncCountForType(syncer::ModelType type) { syncer::ReadTransaction trans(FROM_HERE, share_handle()); syncer::ReadNode root(&trans); - if (root.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != - syncer::BaseNode::INIT_OK) + if (root.InitTypeRoot(type) != syncer::BaseNode::INIT_OK) return 0; // Subtract one to account for type's root node. @@ -495,8 +493,8 @@ syncer::SyncError GenericChangeProcessor::HandleActionAdd( // etc.). syncer::ReadNode root_node(&trans); const syncer::SyncDataLocal sync_data_local(change.sync_data()); - if (root_node.InitByTagLookup(syncer::ModelTypeToRootTag( - sync_data_local.GetDataType())) != syncer::BaseNode::INIT_OK) { + if (root_node.InitTypeRoot(sync_data_local.GetDataType()) != + syncer::BaseNode::INIT_OK) { syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "Failed to look up root node for type " + type_str, @@ -704,8 +702,7 @@ bool GenericChangeProcessor::SyncModelHasUserCreatedNodes( *has_nodes = false; syncer::ReadTransaction trans(FROM_HERE, share_handle()); syncer::ReadNode type_root_node(&trans); - if (type_root_node.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != - syncer::BaseNode::INIT_OK) { + if (type_root_node.InitTypeRoot(type) != syncer::BaseNode::INIT_OK) { LOG(ERROR) << err_str; return false; } diff --git a/components/sync_driver/generic_change_processor_unittest.cc b/components/sync_driver/generic_change_processor_unittest.cc index 653251b..09af1d4 100644 --- a/components/sync_driver/generic_change_processor_unittest.cc +++ b/components/sync_driver/generic_change_processor_unittest.cc @@ -141,8 +141,7 @@ class SyncGenericChangeProcessorTest : public testing::Test { void BuildChildNodes(int n) { syncer::WriteTransaction trans(FROM_HERE, user_share()); syncer::ReadNode root(&trans); - ASSERT_EQ(syncer::BaseNode::INIT_OK, - root.InitByTagLookup(syncer::ModelTypeToRootTag(kType))); + ASSERT_EQ(syncer::BaseNode::INIT_OK, root.InitTypeRoot(kType)); for (int i = 0; i < n; ++i) { syncer::WriteNode node(&trans); node.InitUniqueByCreation(kType, root, base::StringPrintf("node%05d", i)); diff --git a/sync/engine/apply_control_data_updates.cc b/sync/engine/apply_control_data_updates.cc index e97741e..9b4b837 100644 --- a/sync/engine/apply_control_data_updates.cc +++ b/sync/engine/apply_control_data_updates.cc @@ -17,7 +17,7 @@ namespace syncer { -using syncable::GET_BY_SERVER_TAG; +using syncable::GET_TYPE_ROOT; using syncable::IS_UNAPPLIED_UPDATE; using syncable::IS_UNSYNCED; using syncable::SERVER_SPECIFICS; @@ -39,9 +39,7 @@ void ApplyControlDataUpdates(syncable::Directory* dir) { ModelTypeSet control_types = ControlTypes(); for (ModelTypeSet::Iterator iter = control_types.First(); iter.Good(); iter.Inc()) { - syncable::MutableEntry entry(&trans, - syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(iter.Get())); + syncable::MutableEntry entry(&trans, syncable::GET_TYPE_ROOT, iter.Get()); if (!entry.good()) continue; if (!entry.GetIsUnappliedUpdate()) diff --git a/sync/engine/apply_control_data_updates_unittest.cc b/sync/engine/apply_control_data_updates_unittest.cc index caacfbc..7248d14 100644 --- a/sync/engine/apply_control_data_updates_unittest.cc +++ b/sync/engine/apply_control_data_updates_unittest.cc @@ -188,8 +188,7 @@ TEST_F(ApplyControlDataUpdatesTest, EncryptUnsyncedChanges) { // Simulate another nigori update that doesn't change anything. { syncable::WriteTransaction trans(FROM_HERE, UNITTEST, directory()); - MutableEntry entry(&trans, syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(NIGORI)); + MutableEntry entry(&trans, syncable::GET_TYPE_ROOT, NIGORI); ASSERT_TRUE(entry.good()); entry.PutServerVersion(entry_factory_->GetNextRevision()); entry.PutIsUnappliedUpdate(true); diff --git a/sync/engine/directory_commit_contribution_unittest.cc b/sync/engine/directory_commit_contribution_unittest.cc index 475985c..b342b54 100644 --- a/sync/engine/directory_commit_contribution_unittest.cc +++ b/sync/engine/directory_commit_contribution_unittest.cc @@ -36,10 +36,7 @@ class DirectoryCommitContributionTest : public ::testing::Test { int64 CreateUnsyncedItem(syncable::WriteTransaction* trans, ModelType type, const std::string& tag) { - syncable::Entry parent_entry( - trans, - syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(type)); + syncable::Entry parent_entry(trans, syncable::GET_TYPE_ROOT, type); syncable::MutableEntry entry( trans, syncable::CREATE, @@ -53,10 +50,7 @@ class DirectoryCommitContributionTest : public ::testing::Test { int64 CreateSyncedItem(syncable::WriteTransaction* trans, ModelType type, const std::string& tag) { - syncable::Entry parent_entry( - trans, - syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(type)); + syncable::Entry parent_entry(trans, syncable::GET_TYPE_ROOT, type); syncable::MutableEntry entry( trans, syncable::CREATE, diff --git a/sync/engine/syncer_unittest.cc b/sync/engine/syncer_unittest.cc index b88feb3..98cde3b 100644 --- a/sync/engine/syncer_unittest.cc +++ b/sync/engine/syncer_unittest.cc @@ -86,6 +86,7 @@ using syncable::GET_BY_HANDLE; using syncable::GET_BY_ID; using syncable::GET_BY_CLIENT_TAG; using syncable::GET_BY_SERVER_TAG; +using syncable::GET_TYPE_ROOT; using syncable::UNITTEST; using sessions::MockDebugInfoGetter; diff --git a/sync/internal_api/public/read_node.h b/sync/internal_api/public/read_node.h index 50e7639..e3d37b5 100644 --- a/sync/internal_api/public/read_node.h +++ b/sync/internal_api/public/read_node.h @@ -37,10 +37,17 @@ class SYNC_EXPORT ReadNode : public BaseNode { // never mutable, so root lookup is only possible on a ReadNode. void InitByRootLookup(); - // Each server-created permanent node is tagged with a unique string. - // Look up the node with the particular tag. If it does not exist, - // return false. - InitByLookupResult InitByTagLookup(const std::string& tag); + // Returns the type root node, if it exists. This is usually created by the + // server during first sync. Eventually, we plan to remove support for it + // from the protocol and have the client create the node instead. + InitByLookupResult InitTypeRoot(ModelType type); + + // Returns a server-created and unique-server-tagged item. + // + // This functionality is only useful for bookmarks because only bookmarks + // have server-tagged items. All other server-tagged items are type root + // nodes, which should be looked up with InitTypeRoot(). + InitByLookupResult InitByTagLookupForBookmarks(const std::string& tag); // Implementation of BaseNode's abstract virtual accessors. virtual const syncable::Entry* GetEntry() const OVERRIDE; diff --git a/sync/internal_api/public/write_node.h b/sync/internal_api/public/write_node.h index 5b47bd6..c46e376 100644 --- a/sync/internal_api/public/write_node.h +++ b/sync/internal_api/public/write_node.h @@ -85,10 +85,10 @@ class SYNC_EXPORT WriteNode : public BaseNode { const BaseNode& parent, const std::string& client_tag); - // Each server-created permanent node is tagged with a unique string. - // Look up the node with the particular tag. If it does not exist, - // return false. - InitByLookupResult InitByTagLookup(const std::string& tag); + // Looks up the type's root folder. This is usually created by the sync + // server during initial sync, though we do eventually wish to remove it from + // the protocol and have the client "fake it" instead. + InitByLookupResult InitTypeRoot(ModelType type); // These Set() functions correspond to the Get() functions of BaseNode. void SetIsFolder(bool folder); diff --git a/sync/internal_api/read_node.cc b/sync/internal_api/read_node.cc index ec85af6..c162800 100644 --- a/sync/internal_api/read_node.cc +++ b/sync/internal_api/read_node.cc @@ -77,7 +77,7 @@ const BaseTransaction* ReadNode::GetTransaction() const { return transaction_; } -BaseNode::InitByLookupResult ReadNode::InitByTagLookup( +BaseNode::InitByLookupResult ReadNode::InitByTagLookupForBookmarks( const std::string& tag) { DCHECK(!entry_) << "Init called twice"; if (tag.empty()) @@ -89,8 +89,25 @@ BaseNode::InitByLookupResult ReadNode::InitByTagLookup( if (entry_->GetIsDel()) return INIT_FAILED_ENTRY_IS_DEL; ModelType model_type = GetModelType(); - LOG_IF(WARNING, model_type == UNSPECIFIED || model_type == TOP_LEVEL_FOLDER) - << "SyncAPI InitByTagLookup referencing unusually typed object."; + DCHECK_EQ(model_type, BOOKMARKS) + << "InitByTagLookup deprecated for all types except bookmarks."; + return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY; +} + +BaseNode::InitByLookupResult ReadNode::InitTypeRoot(ModelType type) { + DCHECK(!entry_) << "Init called twice"; + if (!IsRealDataType(type)) + return INIT_FAILED_PRECONDITION; + syncable::BaseTransaction* trans = transaction_->GetWrappedTrans(); + entry_ = new syncable::Entry(trans, syncable::GET_TYPE_ROOT, type); + if (!entry_->good()) + return INIT_FAILED_ENTRY_NOT_GOOD; + if (entry_->GetIsDel()) + return INIT_FAILED_ENTRY_IS_DEL; + ModelType found_model_type = GetModelType(); + LOG_IF(WARNING, found_model_type == UNSPECIFIED || + found_model_type == TOP_LEVEL_FOLDER) + << "SyncAPI InitTypeRoot referencing unusually typed object."; return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY; } diff --git a/sync/internal_api/sync_backup_manager_unittest.cc b/sync/internal_api/sync_backup_manager_unittest.cc index 5de790b..5472c02 100644 --- a/sync/internal_api/sync_backup_manager_unittest.cc +++ b/sync/internal_api/sync_backup_manager_unittest.cc @@ -52,8 +52,7 @@ class SyncBackupManagerTest : public testing::Test { const std::string& client_tag) { WriteTransaction trans(FROM_HERE, user_share); ReadNode type_root(&trans); - EXPECT_EQ(BaseNode::INIT_OK, - type_root.InitByTagLookup(ModelTypeToRootTag(type))); + EXPECT_EQ(BaseNode::INIT_OK, type_root.InitTypeRoot(type)); WriteNode node(&trans); EXPECT_EQ(WriteNode::INIT_SUCCESS, diff --git a/sync/internal_api/sync_encryption_handler_impl.cc b/sync/internal_api/sync_encryption_handler_impl.cc index d3dd33f..3a88f53 100644 --- a/sync/internal_api/sync_encryption_handler_impl.cc +++ b/sync/internal_api/sync_encryption_handler_impl.cc @@ -248,7 +248,7 @@ void SyncEncryptionHandlerImpl::Init() { WriteTransaction trans(FROM_HERE, user_share_); WriteNode node(&trans); - if (node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) + if (node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) return; if (!ApplyNigoriUpdateImpl(node.GetNigoriSpecifics(), trans.GetWrappedTrans())) { @@ -332,7 +332,7 @@ void SyncEncryptionHandlerImpl::SetEncryptionPassphrase( WriteTransaction trans(FROM_HERE, user_share_); KeyParams key_params = {"localhost", "dummy", passphrase}; WriteNode node(&trans); - if (node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) { + if (node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) { NOTREACHED(); return; } @@ -484,7 +484,7 @@ void SyncEncryptionHandlerImpl::SetDecryptionPassphrase( WriteTransaction trans(FROM_HERE, user_share_); KeyParams key_params = {"localhost", "dummy", passphrase}; WriteNode node(&trans); - if (node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) { + if (node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) { NOTREACHED(); return; } @@ -717,7 +717,7 @@ bool SyncEncryptionHandlerImpl::SetKeystoreKeys( // If this is a first time sync, we get the encryption keys before we process // the nigori node. Just return for now, ApplyNigoriUpdate will be invoked // once we have the nigori node. - syncable::Entry entry(trans, syncable::GET_BY_SERVER_TAG, kNigoriTag); + syncable::Entry entry(trans, syncable::GET_TYPE_ROOT, NIGORI); if (!entry.good()) return true; @@ -765,7 +765,7 @@ bool SyncEncryptionHandlerImpl::MigratedToKeystore() { DCHECK(thread_checker_.CalledOnValidThread()); ReadTransaction trans(FROM_HERE, user_share_); ReadNode nigori_node(&trans); - if (nigori_node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) + if (nigori_node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) return false; return IsNigoriMigratedToKeystore(nigori_node.GetNigoriSpecifics()); } @@ -793,8 +793,7 @@ void SyncEncryptionHandlerImpl::ReEncryptEverything( continue; // These types handle encryption differently. ReadNode type_root(trans); - std::string tag = ModelTypeToRootTag(iter.Get()); - if (type_root.InitByTagLookup(tag) != BaseNode::INIT_OK) + if (type_root.InitTypeRoot(iter.Get()) != BaseNode::INIT_OK) continue; // Don't try to reencrypt if the type's data is unavailable. // Iterate through all children of this datatype. @@ -825,9 +824,7 @@ void SyncEncryptionHandlerImpl::ReEncryptEverything( // Passwords are encrypted with their own legacy scheme. Passwords are always // encrypted so we don't need to check GetEncryptedTypes() here. ReadNode passwords_root(trans); - std::string passwords_tag = ModelTypeToRootTag(PASSWORDS); - if (passwords_root.InitByTagLookup(passwords_tag) == - BaseNode::INIT_OK) { + if (passwords_root.InitTypeRoot(PASSWORDS) == BaseNode::INIT_OK) { int64 child_id = passwords_root.GetFirstChildId(); while (child_id != kInvalidId) { WriteNode child(trans); @@ -1012,7 +1009,7 @@ void SyncEncryptionHandlerImpl::WriteEncryptionStateToNigori( DCHECK(thread_checker_.CalledOnValidThread()); WriteNode nigori_node(trans); // This can happen in tests that don't have nigori nodes. - if (nigori_node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) + if (nigori_node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) return; sync_pb::NigoriSpecifics nigori = nigori_node.GetNigoriSpecifics(); diff --git a/sync/internal_api/sync_encryption_handler_impl_unittest.cc b/sync/internal_api/sync_encryption_handler_impl_unittest.cc index 2f09cf9..5aad1b0 100644 --- a/sync/internal_api/sync_encryption_handler_impl_unittest.cc +++ b/sync/internal_api/sync_encryption_handler_impl_unittest.cc @@ -146,7 +146,7 @@ class SyncEncryptionHandlerImplTest : public ::testing::Test { const std::string& passphrase) { ReadTransaction trans(FROM_HERE, user_share()); ReadNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics(); if (migration_time > 0) EXPECT_EQ(migration_time, nigori.keystore_migration_time()); @@ -239,7 +239,7 @@ class SyncEncryptionHandlerImplTest : public ::testing::Test { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori = BuildMigratedNigori( KEYSTORE_PASSPHRASE, migration_time, @@ -272,7 +272,7 @@ class SyncEncryptionHandlerImplTest : public ::testing::Test { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori = BuildMigratedNigori( CUSTOM_PASSPHRASE, migration_time, @@ -309,7 +309,7 @@ class SyncEncryptionHandlerImplTest : public ::testing::Test { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); nigori.set_keybag_is_frozen(passphrase_type == CUSTOM_PASSPHRASE); @@ -587,7 +587,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveOldNigori) { // In addition, the nigori node should match the current encryption state. ReadTransaction trans(FROM_HERE, user_share()); ReadNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics(); EXPECT_TRUE(GetCryptographer()->CanDecryptUsingDefaultKey( our_encrypted_specifics.encrypted())); @@ -730,7 +730,7 @@ TEST_F(SyncEncryptionHandlerImplTest, MigrateOnDecryptImplicitPass) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); Cryptographer other_cryptographer(GetCryptographer()->encryptor()); KeyParams other_key = {"localhost", "dummy", kOtherKey}; other_cryptographer.AddKey(other_key); @@ -787,7 +787,7 @@ TEST_F(SyncEncryptionHandlerImplTest, MigrateOnDecryptCustomPass) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); Cryptographer other_cryptographer(GetCryptographer()->encryptor()); KeyParams other_key = {"localhost", "dummy", kOtherKey}; other_cryptographer.AddKey(other_key); @@ -1035,7 +1035,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveMigratedNigoriKeystorePass) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1115,7 +1115,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveMigratedNigoriFrozenImplicitPass) { OnEncryptedTypesChanged(_, true)); WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.set_keybag_is_frozen(true); nigori.set_passphrase_type( @@ -1195,7 +1195,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveMigratedNigoriCustomPass) { OnEncryptedTypesChanged(_, true)); WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.set_keybag_is_frozen(true); nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE); @@ -1257,7 +1257,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveUnmigratedNigoriAfterMigration) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag()); nigori.set_keybag_is_frozen(true); @@ -1302,7 +1302,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveUnmigratedNigoriAfterMigration) { other_cryptographer.AddKey(old_key); WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); nigori.set_keybag_is_frozen(false); @@ -1336,7 +1336,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveOldMigratedNigori) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag()); nigori.set_keybag_is_frozen(true); @@ -1379,7 +1379,7 @@ TEST_F(SyncEncryptionHandlerImplTest, ReceiveOldMigratedNigori) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; Cryptographer other_cryptographer(GetCryptographer()->encryptor()); other_cryptographer.AddKey(old_key); @@ -1428,7 +1428,7 @@ TEST_F(SyncEncryptionHandlerImplTest, SetKeystoreAfterReceivingMigratedNigori) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1509,7 +1509,7 @@ TEST_F(SyncEncryptionHandlerImplTest, SetCustomPassAfterMigration) { { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1611,7 +1611,7 @@ TEST_F(SyncEncryptionHandlerImplTest, { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1718,7 +1718,7 @@ TEST_F(SyncEncryptionHandlerImplTest, { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1813,7 +1813,7 @@ TEST_F(SyncEncryptionHandlerImplTest, { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; nigori.mutable_keystore_decryptor_token()->CopyFrom( keystore_decryptor_token); @@ -1931,7 +1931,7 @@ TEST_F(SyncEncryptionHandlerImplTest, { WriteTransaction trans(FROM_HERE, user_share()); WriteNode nigori_node(&trans); - ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); + ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK); sync_pb::NigoriSpecifics nigori; Cryptographer other_cryptographer(GetCryptographer()->encryptor()); other_cryptographer.AddKey(old_key); diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc index 35a1caa..a5f2de0 100644 --- a/sync/internal_api/sync_manager_impl.cc +++ b/sync/internal_api/sync_manager_impl.cc @@ -1035,7 +1035,7 @@ const std::string SyncManagerImpl::cache_guid() { bool SyncManagerImpl::ReceivedExperiment(Experiments* experiments) { ReadTransaction trans(FROM_HERE, GetUserShare()); ReadNode nigori_node(&trans); - if (nigori_node.InitByTagLookup(kNigoriTag) != BaseNode::INIT_OK) { + if (nigori_node.InitTypeRoot(NIGORI) != BaseNode::INIT_OK) { DVLOG(1) << "Couldn't find Nigori node."; return false; } diff --git a/sync/internal_api/sync_manager_impl_unittest.cc b/sync/internal_api/sync_manager_impl_unittest.cc index 20b7685..7c0d3d5 100644 --- a/sync/internal_api/sync_manager_impl_unittest.cc +++ b/sync/internal_api/sync_manager_impl_unittest.cc @@ -174,8 +174,7 @@ int64 MakeServerNode(UserShare* share, ModelType model_type, const sync_pb::EntitySpecifics& specifics) { syncable::WriteTransaction trans( FROM_HERE, syncable::UNITTEST, share->directory.get()); - syncable::Entry root_entry(&trans, syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(model_type)); + syncable::Entry root_entry(&trans, syncable::GET_TYPE_ROOT, model_type); EXPECT_TRUE(root_entry.good()); syncable::Id root_id = root_entry.GetId(); syncable::Id node_id = syncable::Id::CreateFromServerId(client_tag); @@ -583,7 +582,7 @@ TEST_F(SyncApiTest, EmptyTags) { node.InitUniqueByCreation(TYPED_URLS, root_node, empty_tag); EXPECT_NE(WriteNode::INIT_SUCCESS, result); EXPECT_EQ(BaseNode::INIT_FAILED_PRECONDITION, - node.InitByTagLookup(empty_tag)); + node.InitByClientTagLookup(TYPED_URLS, empty_tag)); } // Test counting nodes when the type's root node has no children. @@ -1248,7 +1247,7 @@ TEST_F(SyncManagerTest, SetInitialGaiaPass) { { ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); ReadNode node(&trans); - EXPECT_EQ(BaseNode::INIT_OK, node.InitByTagLookup(kNigoriTag)); + EXPECT_EQ(BaseNode::INIT_OK, node.InitTypeRoot(NIGORI)); sync_pb::NigoriSpecifics nigori = node.GetNigoriSpecifics(); Cryptographer* cryptographer = trans.GetCryptographer(); EXPECT_TRUE(cryptographer->is_ready()); @@ -1368,7 +1367,7 @@ TEST_F(SyncManagerTest, SupplyPendingGAIAPass) { KeyParams params = {"localhost", "dummy", "passphrase2"}; other_cryptographer.AddKey(params); WriteNode node(&trans); - EXPECT_EQ(BaseNode::INIT_OK, node.InitByTagLookup(kNigoriTag)); + EXPECT_EQ(BaseNode::INIT_OK, node.InitTypeRoot(NIGORI)); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); cryptographer->SetPendingKeys(nigori.encryption_keybag()); @@ -1416,7 +1415,7 @@ TEST_F(SyncManagerTest, SupplyPendingOldGAIAPass) { KeyParams params = {"localhost", "dummy", "old_gaia"}; other_cryptographer.AddKey(params); WriteNode node(&trans); - EXPECT_EQ(BaseNode::INIT_OK, node.InitByTagLookup(kNigoriTag)); + EXPECT_EQ(BaseNode::INIT_OK, node.InitTypeRoot(NIGORI)); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); node.SetNigoriSpecifics(nigori); @@ -1499,7 +1498,7 @@ TEST_F(SyncManagerTest, SupplyPendingExplicitPass) { KeyParams params = {"localhost", "dummy", "explicit"}; other_cryptographer.AddKey(params); WriteNode node(&trans); - EXPECT_EQ(BaseNode::INIT_OK, node.InitByTagLookup(kNigoriTag)); + EXPECT_EQ(BaseNode::INIT_OK, node.InitTypeRoot(NIGORI)); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); cryptographer->SetPendingKeys(nigori.encryption_keybag()); @@ -1548,7 +1547,7 @@ TEST_F(SyncManagerTest, SupplyPendingGAIAPassUserProvided) { KeyParams params = {"localhost", "dummy", "passphrase"}; other_cryptographer.AddKey(params); WriteNode node(&trans); - EXPECT_EQ(BaseNode::INIT_OK, node.InitByTagLookup(kNigoriTag)); + EXPECT_EQ(BaseNode::INIT_OK, node.InitTypeRoot(NIGORI)); sync_pb::NigoriSpecifics nigori; other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); node.SetNigoriSpecifics(nigori); @@ -1743,8 +1742,7 @@ TEST_F(SyncManagerTest, CreateLocalBookmark) { { WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); ReadNode bookmark_root(&trans); - ASSERT_EQ(BaseNode::INIT_OK, - bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); + ASSERT_EQ(BaseNode::INIT_OK, bookmark_root.InitTypeRoot(BOOKMARKS)); WriteNode node(&trans); ASSERT_TRUE(node.InitBookmarkByCreation(bookmark_root, NULL)); node.SetIsFolder(false); @@ -1757,8 +1755,7 @@ TEST_F(SyncManagerTest, CreateLocalBookmark) { { ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); ReadNode bookmark_root(&trans); - ASSERT_EQ(BaseNode::INIT_OK, - bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); + ASSERT_EQ(BaseNode::INIT_OK, bookmark_root.InitTypeRoot(BOOKMARKS)); int64 child_id = bookmark_root.GetFirstChildId(); ReadNode node(&trans); @@ -2583,8 +2580,9 @@ TEST_F(SyncManagerTest, PurgePartiallySyncedTypes) { // Further ensure that the test harness did not create its root node. { syncable::ReadTransaction trans(FROM_HERE, share->directory.get()); - syncable::Entry autofill_root_node(&trans, syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(AUTOFILL)); + syncable::Entry autofill_root_node(&trans, + syncable::GET_TYPE_ROOT, + AUTOFILL); ASSERT_FALSE(autofill_root_node.good()); } diff --git a/sync/internal_api/sync_rollback_manager_base.cc b/sync/internal_api/sync_rollback_manager_base.cc index e3711bc0..ade0422 100644 --- a/sync/internal_api/sync_rollback_manager_base.cc +++ b/sync/internal_api/sync_rollback_manager_base.cc @@ -278,7 +278,7 @@ bool SyncRollbackManagerBase::InitBackupDB( bool SyncRollbackManagerBase::InitTypeRootNode(ModelType type) { WriteTransaction trans(FROM_HERE, &share_); ReadNode root(&trans); - if (BaseNode::INIT_OK == root.InitByTagLookup(ModelTypeToRootTag(type))) + if (BaseNode::INIT_OK == root.InitTypeRoot(type)) return true; syncable::MutableEntry entry(trans.GetWrappedWriteTrans(), @@ -305,8 +305,8 @@ bool SyncRollbackManagerBase::InitTypeRootNode(ModelType type) { void SyncRollbackManagerBase::InitBookmarkFolder(const std::string& folder) { WriteTransaction trans(FROM_HERE, &share_); syncable::Entry bookmark_root(trans.GetWrappedTrans(), - syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(BOOKMARKS)); + syncable::GET_TYPE_ROOT, + BOOKMARKS); if (!bookmark_root.good()) return; diff --git a/sync/internal_api/sync_rollback_manager_base_unittest.cc b/sync/internal_api/sync_rollback_manager_base_unittest.cc index 5bb1548..79075d2 100644 --- a/sync/internal_api/sync_rollback_manager_base_unittest.cc +++ b/sync/internal_api/sync_rollback_manager_base_unittest.cc @@ -49,20 +49,20 @@ TEST_F(SyncRollbackManagerBaseTest, InitTypeOnConfiguration) { ReadTransaction trans(FROM_HERE, manager_.GetUserShare()); ReadNode pref_root(&trans); EXPECT_EQ(BaseNode::INIT_OK, - pref_root.InitByTagLookup(ModelTypeToRootTag(PREFERENCES))); + pref_root.InitTypeRoot(PREFERENCES)); ReadNode bookmark_root(&trans); EXPECT_EQ(BaseNode::INIT_OK, - bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); + bookmark_root.InitTypeRoot(BOOKMARKS)); ReadNode bookmark_bar(&trans); EXPECT_EQ(BaseNode::INIT_OK, - bookmark_bar.InitByTagLookup("bookmark_bar")); + bookmark_bar.InitByTagLookupForBookmarks("bookmark_bar")); ReadNode bookmark_mobile(&trans); EXPECT_EQ(BaseNode::INIT_OK, - bookmark_mobile.InitByTagLookup("synced_bookmarks")); + bookmark_mobile.InitByTagLookupForBookmarks("synced_bookmarks")); ReadNode bookmark_other(&trans); EXPECT_EQ(BaseNode::INIT_OK, - bookmark_other.InitByTagLookup("other_bookmarks")); + bookmark_other.InitByTagLookupForBookmarks("other_bookmarks")); } } // anonymous namespace diff --git a/sync/internal_api/sync_rollback_manager_unittest.cc b/sync/internal_api/sync_rollback_manager_unittest.cc index 925d635..d66ee06 100644 --- a/sync/internal_api/sync_rollback_manager_unittest.cc +++ b/sync/internal_api/sync_rollback_manager_unittest.cc @@ -91,8 +91,7 @@ class SyncRollbackManagerTest : public testing::Test, const std::string& client_tag) { WriteTransaction trans(FROM_HERE, user_share); ReadNode type_root(&trans); - EXPECT_EQ(BaseNode::INIT_OK, - type_root.InitByTagLookup(ModelTypeToRootTag(type))); + EXPECT_EQ(BaseNode::INIT_OK, type_root.InitTypeRoot(type)); WriteNode node(&trans); EXPECT_EQ(WriteNode::INIT_SUCCESS, diff --git a/sync/internal_api/write_node.cc b/sync/internal_api/write_node.cc index cefd6df..1fbe029 100644 --- a/sync/internal_api/write_node.cc +++ b/sync/internal_api/write_node.cc @@ -310,13 +310,12 @@ BaseNode::InitByLookupResult WriteNode::InitByClientTagLookup( return DecryptIfNecessary() ? INIT_OK : INIT_FAILED_DECRYPT_IF_NECESSARY; } -BaseNode::InitByLookupResult WriteNode::InitByTagLookup( - const std::string& tag) { +BaseNode::InitByLookupResult WriteNode::InitTypeRoot(ModelType type) { DCHECK(!entry_) << "Init called twice"; - if (tag.empty()) + if (!IsRealDataType(type)) return INIT_FAILED_PRECONDITION; entry_ = new syncable::MutableEntry(transaction_->GetWrappedWriteTrans(), - syncable::GET_BY_SERVER_TAG, tag); + syncable::GET_TYPE_ROOT, type); if (!entry_->good()) return INIT_FAILED_ENTRY_NOT_GOOD; if (entry_->GetIsDel()) diff --git a/sync/syncable/directory.cc b/sync/syncable/directory.cc index 39233fe..ad107b1 100644 --- a/sync/syncable/directory.cc +++ b/sync/syncable/directory.cc @@ -952,9 +952,7 @@ bool Directory::InitialSyncEndedForType(ModelType type) { bool Directory::InitialSyncEndedForType( BaseTransaction* trans, ModelType type) { // True iff the type's root node has been received and applied. - syncable::Entry entry(trans, - syncable::GET_BY_SERVER_TAG, - ModelTypeToRootTag(type)); + syncable::Entry entry(trans, syncable::GET_TYPE_ROOT, type); return entry.good() && entry.GetBaseVersion() != CHANGES_VERSION; } diff --git a/sync/syncable/entry.cc b/sync/syncable/entry.cc index 2be2aad..0a4a44f 100644 --- a/sync/syncable/entry.cc +++ b/sync/syncable/entry.cc @@ -28,8 +28,9 @@ Entry::Entry(BaseTransaction* trans, GetByClientTag, const string& tag) kernel_ = trans->directory()->GetEntryByClientTag(tag); } -Entry::Entry(BaseTransaction* trans, GetByServerTag, const string& tag) +Entry::Entry(BaseTransaction* trans, GetTypeRoot, ModelType type) : basetrans_(trans) { + const std::string& tag = ModelTypeToRootTag(type); kernel_ = trans->directory()->GetEntryByServerTag(tag); } @@ -38,6 +39,11 @@ Entry::Entry(BaseTransaction* trans, GetByHandle, int64 metahandle) kernel_ = trans->directory()->GetEntryByHandle(metahandle); } +Entry::Entry(BaseTransaction* trans, GetByServerTag, const string& tag) + : basetrans_(trans) { + kernel_ = trans->directory()->GetEntryByServerTag(tag); +} + Directory* Entry::dir() const { return basetrans_->directory(); } diff --git a/sync/syncable/entry.h b/sync/syncable/entry.h index 47b9c59..619c84b 100644 --- a/sync/syncable/entry.h +++ b/sync/syncable/entry.h @@ -35,9 +35,14 @@ enum GetByClientTag { }; enum GetByServerTag { + // Server tagged items are deprecated for all types but bookmarks. GET_BY_SERVER_TAG }; +enum GetTypeRoot { + GET_TYPE_ROOT +}; + enum GetByHandle { GET_BY_HANDLE }; @@ -48,9 +53,13 @@ class SYNC_EXPORT Entry { // succeeded. Entry(BaseTransaction* trans, GetByHandle, int64 handle); Entry(BaseTransaction* trans, GetById, const Id& id); - Entry(BaseTransaction* trans, GetByServerTag, const std::string& tag); + Entry(BaseTransaction* trans, GetTypeRoot, ModelType type); Entry(BaseTransaction* trans, GetByClientTag, const std::string& tag); + // This lookup function is deprecated. All types except bookmarks can use + // the GetTypeRoot variant instead. + Entry(BaseTransaction* trans, GetByServerTag, const std::string& tag); + bool good() const { return 0 != kernel_; } BaseTransaction* trans() const { return basetrans_; } diff --git a/sync/syncable/model_neutral_mutable_entry.cc b/sync/syncable/model_neutral_mutable_entry.cc index d778aba..2ae5450 100644 --- a/sync/syncable/model_neutral_mutable_entry.cc +++ b/sync/syncable/model_neutral_mutable_entry.cc @@ -60,8 +60,8 @@ ModelNeutralMutableEntry::ModelNeutralMutableEntry( } ModelNeutralMutableEntry::ModelNeutralMutableEntry( - BaseWriteTransaction* trans, GetByServerTag, const string& tag) - : Entry(trans, GET_BY_SERVER_TAG, tag), base_write_transaction_(trans) { + BaseWriteTransaction* trans, GetTypeRoot, ModelType type) + : Entry(trans, GET_TYPE_ROOT, type), base_write_transaction_(trans) { } void ModelNeutralMutableEntry::PutBaseVersion(int64 value) { diff --git a/sync/syncable/model_neutral_mutable_entry.h b/sync/syncable/model_neutral_mutable_entry.h index e2292e7..4010dff 100644 --- a/sync/syncable/model_neutral_mutable_entry.h +++ b/sync/syncable/model_neutral_mutable_entry.h @@ -38,8 +38,8 @@ class SYNC_EXPORT_PRIVATE ModelNeutralMutableEntry : public Entry { const std::string& tag); ModelNeutralMutableEntry( BaseWriteTransaction* trans, - GetByServerTag, - const std::string& tag); + GetTypeRoot, + ModelType type); inline BaseWriteTransaction* base_write_transaction() const { return base_write_transaction_; diff --git a/sync/syncable/mutable_entry.cc b/sync/syncable/mutable_entry.cc index 98af1cc..a506e4f 100644 --- a/sync/syncable/mutable_entry.cc +++ b/sync/syncable/mutable_entry.cc @@ -98,9 +98,8 @@ MutableEntry::MutableEntry(WriteTransaction* trans, GetByClientTag, write_transaction_(trans) { } -MutableEntry::MutableEntry(WriteTransaction* trans, GetByServerTag, - const string& tag) - : ModelNeutralMutableEntry(trans, GET_BY_SERVER_TAG, tag), +MutableEntry::MutableEntry(WriteTransaction* trans, GetTypeRoot, ModelType type) + : ModelNeutralMutableEntry(trans, GET_TYPE_ROOT, type), write_transaction_(trans) { } diff --git a/sync/syncable/mutable_entry.h b/sync/syncable/mutable_entry.h index 9b91113..1709475 100644 --- a/sync/syncable/mutable_entry.h +++ b/sync/syncable/mutable_entry.h @@ -35,7 +35,7 @@ class SYNC_EXPORT_PRIVATE MutableEntry : public ModelNeutralMutableEntry { MutableEntry(WriteTransaction* trans, GetByHandle, int64); MutableEntry(WriteTransaction* trans, GetById, const Id&); MutableEntry(WriteTransaction* trans, GetByClientTag, const std::string& tag); - MutableEntry(WriteTransaction* trans, GetByServerTag, const std::string& tag); + MutableEntry(WriteTransaction* trans, GetTypeRoot, ModelType type); inline WriteTransaction* write_transaction() const { return write_transaction_; diff --git a/sync/syncable/nigori_util.cc b/sync/syncable/nigori_util.cc index 5463140..63dbcac 100644 --- a/sync/syncable/nigori_util.cc +++ b/sync/syncable/nigori_util.cc @@ -100,8 +100,7 @@ bool VerifyDataTypeEncryptionForTest( NOTREACHED(); return true; } - std::string type_tag = ModelTypeToRootTag(type); - Entry type_root(trans, GET_BY_SERVER_TAG, type_tag); + Entry type_root(trans, GET_TYPE_ROOT, type); if (!type_root.good()) { NOTREACHED(); return false; |