Records the number of and time taken to fetch local or remote contents.
A default signal that can't be aborted.
A default implementation of the merge driver.
Represents an accepted local or remote deletion.
A GUID for an item in a bookmark tree.
An item in a local or remote bookmark tree.
A descendant holds a merged node, merged parent node, position in the merged parent, and level in the merged tree.
A merged bookmark node that indicates which side to prefer, and holds merged child nodes.
The root of a merged tree, from which all merged nodes descend.
A two-way merger that produces a complete merged tree from a complete local tree and a complete remote tree with changes since the last sync.
Records total problem counts for telemetry. An item can have multiple problems, but each problem is only counted once per item.
Records structure change counters for telemetry.
A complete, rooted bookmark tree with tombstones.
Records the time taken to build a local or remote tree, number of items in the tree, and structure problem counts.
Content info for an item in the local or remote tree. This is used to dedupe new local items to remote items that don't exist locally, with different GUIDs and similar content.
Synced item kinds. Each corresponds to a Sync record type.
The merge state indicates which node we should prefer, local or remote, when resolving conflicts.
A merge telemetry event.
The reason for uploading or reuploading a merged descendant.
Synced item validity.
The bookmarks menu GUID.
The mobile bookmarks GUID.
The Places root GUID, used to root all items in a bookmark tree.
The bookmarks toolbar GUID.
The "Other Bookmarks" GUID, used to hold items without a parent.
An abort signal is used to abort merging. Implementations of
A merge driver provides methods to customize merging behavior.
A store is the main interface to Dogear. It implements methods for building local and remote trees from a storage backend, fetching content info for matching items with similar contents, and persisting the merged tree.