Firefox's upcoming bookmark sync improvements address long-standing issues
Mozilla introduced Sync functionality in Firefox a long time ago. Sync came in the form of the add-on Mozilla Weave first but was integrated into the Firefox web browser later on to provide all users of the browser with sync functionality.
Mozilla changed how Sync works in Firefox with the release of Firefox 29 by switching over to a new account system that allowed authentication using an email address and password opposed to keys that the previous version of Sync required.
While the current version of Sync in Firefox works reliably, for the most part, some data sets proofed to be more error-prone than others in the past.
Firefox users who sync bookmarks may notice a number of issues associated with that.
Firefox bookmark syncing issues
An upcoming update to bookmark syncing in Firefox addresses the following issues that may occur when syncing bookmarks using Firefox Sync:
- Partial downloads -- The current Sync in Firefox applies records to the database one at a time. Interruption, for instance by the dropping of the Internet connection, could lead to issues such as items showing up in the wrong folder or out of order.
- Changes made during sync operations -- Changes that are made during a sync operation won't be included until the next sync run as bookmark syncing pulls changes once on start and not during the run.
- Out-of-order downloads -- Bookmark children may be uploaded or download before parents which may lead to all kinds of issues, for instance that bookmarks get stuck in the "other bookmarks" folder as it is used by Firefox Sync as a temporary storage during the sync process.
- Deduping -- Sync flattens the "local tree into a map of bookmark attributes" and uses it to detect and ignore bookmarks with similar attributes but different IDs. This map is not updated when bookmarks are changed during a sync, and it does not differentiate between local and server records.
Changes to bookmark syncing address the issues listed above. The solution uses a mirror copy that matches the server so that data is not added to the database directly anymore.
Structured application helps mitigate corruption caused by changes made during a sync, partial downloads, and out-of-order downloads. Instead of inserting downloaded bookmarks directly into the database, we store them in a “mirror” that matches the server.
We then walk the local tree and the mirrored remote tree, produces a new merged tree, and update the local tree to match the merged tree. Finally, we stage locally changed records in an outgoing buffer, upload the records, and update the mirror again to reflect what we just uploaded.
You can set the preference services.sync.engine.bookmarks.buffer to true to enable the functionality right now. I suggest you backup your bookmarks regularly if you do as this is still a work in progress at this point in time.
If you experienced issues with bookmark syncing in Firefox, especially issues such as bookmarks syncing not working reliably, bookmarks landing in the wrong folders or out-of-sync issues with bookmarks on different systems, you can expect that things will be better once the update lands.
Now You: Do you use Firefox Sync or your browser's sync solution?