Firefox Sync

Introduction to Sync

Firefox Sync is built in to Firefox for Desktop, for Android, and for iOS. It synchronizes various parts of your browser, such as bookmarks, history, etc, between all of your devices.

It uses Firefox Accounts for account, authentication and key management. All data is encrypted and decrypted on each device - no Sync data is ever transmitted to a server without being encrypted. Mozilla does not hold any keys to your Sync data - it can only be decrypted by someone who is able to log in to your Firefox Account (ie, that knows your Firefox Accounts password and has access to your email for verification)

Sync Documentation

This document serves as an index for all technical documentation related to Sync. It is not designed for use by end-users, but instead for people who wish to understand the details of how Sync is implemented or wish to interact with it.


The always prolific Richard Newman has written a couple of notes about bookmark syncing (first, second) and has a blog where he talks about the various challenges syncing this kind of data.


Documentation for the various servers, including information on how to host your own.


Searchfox has links to the main sync code and the storage layer. There are also some notes in a google document (that we really must move to its own Wiki page)

There's also information available to help debug and diagnose Android sync issues.


There is some in-tree documentation and some extensive comments here and here.


Notes on how to file a good bug for Desktop Sync.

There are some notes on how to run our TPS testing infrastructure.

We have a google doc on how bookmark repair works.

Document Tags and Contributors

Contributors to this page: Markh
Last updated by: Markh,