Welcome to the developer home of Firefox Sync. For end-user (non-technical) information, please see the official Sync web site.
Firefox Sync is a set of software components and specifications that synchronize data between multiple Mozilla product instances. The software is open source and the specifications are all public. This means that others are free to implement components or run the software on their own.
Products and Services
The Sync family consists of the following products and services:
- Client integrated in the Firefox and Firefox Mobile browsers
- Server component used for cross-client communication
- Firefox Home
- An iOS application (iPhone, iPad) that allows you to view Sync data from these devices
- Server Instance
- A Sync server operated by Mozilla available for use by anybody in the world, free of charge. This is where Firefox sends data by default, unless you specify a different server.
The Specifications of Sync cover:
- HTTP API
- Implemented by the Sync Server. Used by clients to exchange data
- Cryptography Model
- How encryption is used to securely store data in the Sync Server (the Sync Server can't even read important data)
- Data Storage Formats
- How existing clients (like Firefox) format synchronized data
- Client APIs
Shout out in the #sync channel on Mozilla's IRC server (irc.mozilla.org).
Most team members are geographically located in North America and Australia. If you don't hear a response, try asking again in a few hours.
See services-dev for email contact info.
Sync bugs should be reported in the Cloud Services Component of Bugzilla.
Source Code and Development
Source code for all products and services is available and open source. Public contributions and feedback for product direction is encouraged and very welcome.
General development information is available at Getting Started. Production-specific information can be found at the linked product page from the list of products above. There is also a trove of documentation at http://docs.services.mozilla.com/.
Cross Team Projects
- Currently sync uses the 'clients' sync data collection as a list of active devices. This list has no state and difficult to 'delete' an device off list. Most client display a device if it's been active within the last two weeks. This design creates a number of bugs visible to the user.
- All devices, Desktop, Android, iOS register with FxA
- There should be events that removed devices from this list, such as uninstall, reinstall, or devices with the same name conflicts.
- FxA device manager endpoint provides real-time list of active devices to sync clients to display.
- FxA device manager *WIP*
- Github Issue in Waffle board
- Feature Document
- Current Status
- Pending device registration on iOS and fixing issues - bug 1250783 - active WIP
- Pending fixes to settings display
- Pending work to improve the accuracy of the device list controlled by user events.
- Pending management UI of devices.
- Aug 9 - push send tab between desktop
- Next - send tab to fennec with push
- Android must have device registration
- Next2 - sent tab to iOS with push
- iOS must have device registration
If you are coming from Xmarks, see our Xmarks quick reference.