Firefox/Features/Instant Sync
From MozillaWiki
Please use "Edit with form" above to edit this page.
Status
Instant Sync | |
Stage | Shipped |
Status | Complete |
Release target | Firefox 7 |
Health | OK |
Status note | Landed in Firefox 7. |
Team
Product manager | Jennifer Arguello |
Directly Responsible Individual | Jennifer Arguello |
Lead engineer | Philip von Weitershausen, Marina Samuel |
Security lead | ` |
Privacy lead | ` |
Localization lead | ` |
Accessibility lead | ` |
QA lead | Tracy Walker |
UX lead | Alex Faaborg |
Product marketing lead | ` |
Operations lead | ` |
Additional members | ` |
Open issues/risks
`
Stage 1: Definition
1. Feature overview
Sync is supposed to be a transparent service running in the background. The user can browse on one device, then switch to another device and seamlessly have his or her data already sync'ed to that device. Today sync is not working in a way which guarantees the perception of instant sync. This creates mistrust in the functionality of Sync and may cause a user to resort to manual syncing, which is not the goal of the Sync service.
This feature is meant to modify the engine specific sync heuristics via much more aggressive syncing of certain data types and smarter sync on return from idle behavior.
Goals
- Improve users' confidence in Sync, specifically on frequency, automatic nature. This can be measured by a decrease in feedback of "unknown error" showing up in either SUMO or the Input channels.
- Reduce users' desire to continuously check if they are in sync.
- JA- Not sure how to measure this one. Thoughts?
2. Users & use cases
- Bookmarks
- 1a. User is browsing on one desktop and saves a bookmark
- 1b. User opens the FF on a mobile device and the new bookmark is in the bookmark list
- 2a. User is browsing on FF mobile and saves a new bookmark.
- 2b. User opens up FF on a desktop or starts using an idle desktop browser. the new bookmark can be found in the bookmark list.
- 3a. User is browsing on one desktop and saves a new bookmark.
- 3b. User goes to another desktop and opens or starts using an idle browser. The new bookmark can be found in the bookmark list.
- Passwords
- 1a. User is browsing on one desktop and logs into a website, where the password is saved.
- 1b. User opens the FF on a mobile device and goes to the same website to login. The password is available for logging in.
- 2a. User is browsing on FF mobile and logs into a website, where the password is saved.
- 2b. User opens up FF on a desktop or starts using an idle desktop browser and goes to the same website to login. The password is available for logging in.
- 3a. User is browsing on one desktop and logs into a website, where the password is saved.
- 3b. User goes to another desktop and opens or starts using an idle browser. Goes to the same website to login. The password is available for logging in.
3. Dependencies
`
4. Requirements
- (must-have) New bookmarks will instantly sync to sync server.
- (must-have) New passwords will instantly sync to sync server
- (must-have) Sync from sync server when a client starts or comes back from being idle.
- (must-have) User experience will remain the same or better (IOW, no increase in error messages than those that come up today)
- (nice-to-have) More informative error messages for the user.
- (???) Do we need to enforce a sync on shutdown of a client?
- it's pretty much impossible to do without impacting shutdown time which is not an option --philikon
Non-goals
`
Stage 2: Design
5. Functional specification
Behaviour:
- we have an idle polling interval O(hours)
- a not-idle (active user) polling interval O(minutes)
- sync on "back", but only if that's past a certain threshold which is also O(minutes)
- the not-idle polling interval is adaptive. it gets shorter if we got changes on the last sync and longer if we didn't
Implementation:
- on "back" observer with threshold (suggested 5 mins)
- sync
- change sync interval to non-idle one
- on "idle" observer with threshold (5 mins)
- change sync interval to idle one
- after sync while non-idle
- decreases sync interval if items were downloaded
- increase sync interval if no items were downloaded
- on score update
- sync once score hasn't changed for X ms (X = 100?)
6. User experience design
`
Stage 3: Planning
7. Implementation plan
`
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
`
Operations review
`
Stage 4: Development
9. Implementation
- Some of Death To Unknown Error: bug 659107 -fixed, verified in services
- bug 600429 - Tune score increments to trigger a sync more quickly - fixed, verified in services
- bug 664792 - Tune sync intervals according to user behavior -fixed, verified
Stage 5: Release
10. Landing criteria
- Does not affect browsing performance in production/beta channel builds for desktop.
- Does not affect browsing performance in production/beta channel builds for mobile.
Feature details
Priority | P1 |
Rank | 999 |
Theme / Goal | ` |
Roadmap | Sync |
Secondary roadmap | ` |
Feature list | Services |
Project | ` |
Engineering team | Services |
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | pass | ` |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | pass | ` |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |