Skip to content

Commit 38871c6

Browse files
Merge pull request #4710 from brave/sync_fix_obj_id_dup
Sync fix bookmarks object id duplication
2 parents de6c859 + f9ae9b6 commit 38871c6

4 files changed

+49
-0
lines changed

browser/profiles/brave_bookmark_model_loaded_observer.cc

+5
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,10 @@ void BraveBookmarkModelLoadedObserver::BookmarkModelLoaded(
4141
#endif
4242
profile_->GetPrefs()->SetBoolean(kOtherBookmarksMigrated, true);
4343
}
44+
45+
#if BUILDFLAG(ENABLE_BRAVE_SYNC)
46+
BraveProfileSyncServiceImpl::AddNonClonedBookmarkKeys(model);
47+
#endif
48+
4449
BookmarkModelLoadedObserver::BookmarkModelLoaded(model, ids_reassigned);
4550
}

components/brave_sync/brave_profile_sync_service_impl.cc

+11
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,17 @@ void BraveProfileSyncServiceImpl::OnSyncReadyBookmarksModelLoaded() {
523523
}
524524
}
525525

526+
// static
527+
void BraveProfileSyncServiceImpl::AddNonClonedBookmarkKeys(
528+
BookmarkModel* model) {
529+
DCHECK(model);
530+
DCHECK(model->loaded());
531+
model->AddNonClonedKey("object_id");
532+
model->AddNonClonedKey("order");
533+
model->AddNonClonedKey("sync_timestamp");
534+
model->AddNonClonedKey("version");
535+
}
536+
526537
syncer::ModelTypeSet BraveProfileSyncServiceImpl::GetPreferredDataTypes()
527538
const {
528539
// Force DEVICE_INFO type to have nudge cycle each time to fetch

components/brave_sync/brave_profile_sync_service_impl.h

+2
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ class BraveProfileSyncServiceImpl
175175
BraveSyncClient* GetBraveSyncClient() override;
176176
#endif
177177

178+
static void AddNonClonedBookmarkKeys(BookmarkModel* model);
179+
178180
bool IsBraveSyncEnabled() const override;
179181

180182
syncer::ModelTypeSet GetPreferredDataTypes() const override;

components/brave_sync/brave_sync_service_unittest.cc

+31
Original file line numberDiff line numberDiff line change
@@ -1600,3 +1600,34 @@ TEST_F(BraveSyncServiceTest, CheckOtherBookmarkChildRecord) {
16001600
sync_service()->CheckOtherBookmarkChildRecord(record_a1.get());
16011601
EXPECT_EQ(record_a1->GetBookmark().parentFolderObjectId, object_id_iter1);
16021602
}
1603+
1604+
TEST_F(BraveSyncServiceTest, AddNonClonedBookmarkKeys) {
1605+
sync_service()->AddNonClonedBookmarkKeys(model());
1606+
const bookmarks::BookmarkNode* bookmark_a1 =
1607+
model()->AddURL(model()->other_node(), 0, base::ASCIIToUTF16("A1"),
1608+
GURL("https://a1.com"));
1609+
1610+
AsMutable(bookmark_a1)->SetMetaInfo("object_id", "object_id_value");
1611+
AsMutable(bookmark_a1)->SetMetaInfo("order", "order_value");
1612+
AsMutable(bookmark_a1)->SetMetaInfo("sync_timestamp", "sync_timestamp_value");
1613+
AsMutable(bookmark_a1)->SetMetaInfo("version", "version_value");
1614+
1615+
model()->Copy(bookmark_a1, model()->other_node(), 1);
1616+
1617+
const bookmarks::BookmarkNode* bookmark_copy =
1618+
model()->other_node()->children().at(1).get();
1619+
1620+
std::string meta_object_id;
1621+
EXPECT_FALSE(bookmark_copy->GetMetaInfo("object_id", &meta_object_id));
1622+
EXPECT_TRUE(meta_object_id.empty());
1623+
std::string meta_order;
1624+
EXPECT_FALSE(bookmark_copy->GetMetaInfo("order", &meta_order));
1625+
EXPECT_TRUE(meta_order.empty());
1626+
std::string meta_sync_timestamp;
1627+
EXPECT_FALSE(
1628+
bookmark_copy->GetMetaInfo("sync_timestamp", &meta_sync_timestamp));
1629+
EXPECT_TRUE(meta_sync_timestamp.empty());
1630+
std::string meta_version;
1631+
EXPECT_FALSE(bookmark_copy->GetMetaInfo("version", &meta_version));
1632+
EXPECT_TRUE(meta_version.empty());
1633+
}

0 commit comments

Comments
 (0)