Please refer to the project page for more details and source code.
The primary interface for end users will be a new tab located in Edit > Personal Data > Sync. The user will register for a new account or log in to an existing one.
After logging in, users will have the ability to:
- choose which items to synchronize
- view synchronization status and errors
- trigger a manual update
- show sync (aka recovery) key
The goal for the API is to make it extensible and adaptable for various storage systems.
The browser will spawn a sync client thread upon startup. The sync client will then poll the sync server every X minutes and update when necessary.
This project will focus on implementing synchronization using Firefox Sync Service for various reasons:
The APIs, data storage, architecture and design is open source. Their sync server binaries is publicly available and usable by anyone, allowing Gnome to set up its own sync.gnome.org if necessary.
Future Features (time permitting)
- Synchronize more user data: favicons, cookies, session state, passwords, form data
- Web interface for accessing bookmarks
- Push synchronization (high difficulty):
- This allows a more seamless integration when using multiple clients at the same time.
- Chromium implements this by maintaining a persistent XMPP connection with Google's chat servers.
- Firefox Sync Servers has plans for push synchronization on roadmap.