CloudServices/Sync/FxSync/ClientPriorities: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Firefox Sync client engineering roadmap =
= [STALE] Client Priorities =
 
'''This is supserseded by [[Services/Sync/FxSync/Roadmap|the FxSync Roadmap]].'''


== Feature Reqs from Product ==
== Feature Reqs from Product ==


* {p1|Improve discoverability{
* {{p1|Improve discoverability}}
** basically http://areweprettyyet.com/4/syncPromotion/
** basically http://areweprettyyet.com/4/syncPromotion/
* {p1|Instant Sync (engine specific sync heuristics)}
* {{p1|Instant Sync (engine specific sync heuristics)}}
** "Instant" may be misleading, but essentially this is much more aggressive syncing of certain data types (i.e. bookmarks, passwords) and smarter sync-on-return-from-idle behaviour.
** "Instant" may be misleading, but essentially this is much more aggressive syncing of certain data types (i.e. bookmarks, passwords) and smarter sync-on-return-from-idle behaviour.
* {p1|Deauthorize device from syncing (e.g. lost phone) from Account Portal}
* {{p1|Deauthorize device from syncing (e.g. lost phone) from Account Portal}}
** Needs a spec, hard to revoke access to just a device, since it has all creds.
** Needs a spec, hard to revoke access to just a device, since it has all creds.
** May morph to "remote wipe" trigger that isn't tied to user/pass auth (token-based auth + polling/push?)
** May morph to "remote wipe" trigger that isn't tied to user/pass auth (token-based auth + polling/push?)
* {p1|Improve Sync setup process}
* {{p1|Improve Sync setup process}}
** Waiting on user study, as yet unscoped
** Waiting on user study, as yet unscoped
* (P2) Push to mobile
* {{p2|Push to mobile}}
** UX TBD, but fairly simple to implement (new data type, likely)
** UX TBD, but fairly simple to implement (new data type, likely)
* (P2) Sync add-ons
*** new data type? I'm not so sure... Would rather use push notifications --philikon
* {{p2|Sync add-ons}}
** Add/update/remove automatically across computers
** Add/update/remove automatically across computers
** Does this apply to cross-app syncing, or is this like prefs?
** Does this apply to cross-app syncing, or is this like prefs?
* (P2) Sync favicons
*** Should be like prefs (only sync add-ons between Firefoxes, Fennecs, Thunderbirds, etc.) --philikon
* {{p2|Sync favicons}}
** This is less painful than we think, should be able to sync the moz_favicons table in some reasonable way.
** This is less painful than we think, should be able to sync the moz_favicons table in some reasonable way.
* (P2) Sync web apps
* {{p2|Sync web apps}}
** Waiting on web app evolution
** Waiting on web app evolution
* (P2) Sync localStorage
* {{p2|Sync localStorage}}
** Need to figure out space reqs, this will likely push us into "omg" levels of quota for some users
** Need to figure out space reqs, this will likely push us into "omg" levels of quota for some users
* (P2) Snippet view in about:home
** Also highly non-trivial to do conflict resolution. localStorage is essentially a flat object, afaik no timestamps. Easy to get web app's data into inconsistent state --philikon
* {{p2|Snippet view in about:home}}
** Need more details here.
** Need more details here.


== Platform ==
== Platform-level improvements ==


* (P1) War On Sync
* {{p1|War On Sync}}
** Don't spin the event loop {{bug|600059}}
** Don't spin the event loop {{bug|600059}}
*** Introduce async APIs across SyncEngine, Store, Tracker
*** Introduce async APIs across SyncEngine, Store, Tracker
Line 37: Line 42:
*** bookmarks
*** bookmarks


* (P1) Crossweave 2.0
* {{p2|TPS, formerly known as Crossweave 2.0}}
** lives in services/sync/tests/...
** lives in services/sync/tests/...
** maintained by us, run by tinderboxes
** maintained by us, run by tinderboxes
Line 48: Line 53:
*** run on fennec
*** run on fennec


* (P2) Get rid of 3.5/3.6 compat code
* {{p2|Get rid of 3.5/3.6 compat code}}
** use Services, XPCOMUtils where possible
** use Services, XPCOMUtils where possible
** use NetUtil.BadCertHandler?
** use NetUtil.BadCertHandler?
** implement + use toolkit generic async resource {{bug|581560}}
** implement + use toolkit generic async resource {{bug|581560}}


* (P3) Automatic Profiling
* [P3] Automatic Profiling
** are we JITing everywhere?
** are we JITing everywhere?
** main thread blocking (UI responsiveness)
** main thread blocking (UI responsiveness)
** memory leaks
** memory leaks

Latest revision as of 20:11, 19 November 2013

[STALE] Client Priorities

This is supserseded by the FxSync Roadmap.

Feature Reqs from Product

  • [P1] Improve discoverability
  • [P1] Instant Sync (engine specific sync heuristics)
    • "Instant" may be misleading, but essentially this is much more aggressive syncing of certain data types (i.e. bookmarks, passwords) and smarter sync-on-return-from-idle behaviour.
  • [P1] Deauthorize device from syncing (e.g. lost phone) from Account Portal
    • Needs a spec, hard to revoke access to just a device, since it has all creds.
    • May morph to "remote wipe" trigger that isn't tied to user/pass auth (token-based auth + polling/push?)
  • [P1] Improve Sync setup process
    • Waiting on user study, as yet unscoped
  • [P2] Push to mobile
    • UX TBD, but fairly simple to implement (new data type, likely)
      • new data type? I'm not so sure... Would rather use push notifications --philikon
  • [P2] Sync add-ons
    • Add/update/remove automatically across computers
    • Does this apply to cross-app syncing, or is this like prefs?
      • Should be like prefs (only sync add-ons between Firefoxes, Fennecs, Thunderbirds, etc.) --philikon
  • [P2] Sync favicons
    • This is less painful than we think, should be able to sync the moz_favicons table in some reasonable way.
  • [P2] Sync web apps
    • Waiting on web app evolution
  • [P2] Sync localStorage
    • Need to figure out space reqs, this will likely push us into "omg" levels of quota for some users
    • Also highly non-trivial to do conflict resolution. localStorage is essentially a flat object, afaik no timestamps. Easy to get web app's data into inconsistent state --philikon
  • [P2] Snippet view in about:home
    • Need more details here.

Platform-level improvements

  • [P1] War On Sync
    • Don't spin the event loop bug 600059
    • Avoid synchronous I/O *everywhere*. Needs async bulk APIs in platform:
      • forms
      • passwords
      • bookmarks
  • [P2] TPS, formerly known as Crossweave 2.0
    • lives in services/sync/tests/...
    • maintained by us, run by tinderboxes
    • mochitests? mozmill?
    • JSON test file format (avoid custom format + parser), possibly even JS
    • moar end-to-end tests
      • tests the hell out of bookmark dupe detection
      • test all obscure bookmark types (queries, etc.)
      • need to test errors and edge cases as well
      • run on fennec
  • [P2] Get rid of 3.5/3.6 compat code
    • use Services, XPCOMUtils where possible
    • use NetUtil.BadCertHandler?
    • implement + use toolkit generic async resource bug 581560
  • [P3] Automatic Profiling
    • are we JITing everywhere?
    • main thread blocking (UI responsiveness)
    • memory leaks