Platform/2013-Q4-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(55 intermediate revisions by 14 users not shown)
Line 23: Line 23:


=== Layout ===
=== Layout ===
* {{ok|Vertical Text - Basic logical geometry and writing mode API landed}}
* {{ok|HarfBuff text shaping - performance and correctness update}}
* {{ok|HTML5 Form input type (number)}}
* {{ok|CSS Variables landed on mozilla-central}}
* {{ok|Multi-line CSS Flexbox landed and enabled on mozilla-central}}
* {{ok|CSS box:contents landed on mozilla-central (maybe not enabled)}}
* {{ok|CSS overflow prototype}}
* {{ok|CSS SVG Filters}}
* {{ok|Australis Layout Performance work}}
* {{done|have our own CSS parsing and selector matching code in Servo}}


=== Media ===
=== Media ===
# {{ok|MSE Source Buffer Resetting}}
# {{done|Fragmented MP4 Parser}}
# {{done|WebM VP9 Support}}


=== DOM ===
=== DOM ===
* {{ok|Norway worker work ({{bug|916204}}) (dougt / khuey / nikhil)}}
* {{done|Norway worker work ({{bug|916204}}) (dougt / khuey / nikhil)}}
* {{ok|E10s and B2g work related to message manager and event handling (olli)}}
** This ended up being basically no work, but a bunch of discussions to further understand the needs of the gaia team. In the end it resulted in no JS API implemented APIs exposed to workers, but some of those APIs are being exposed by converting their implementations to C++
* {{done|E10s and B2g work related to message manager and event handling (olli) (significant work done, but more stuff may come up)}}
* {{ok|add some helper code to deal with cross-thread cycles, ({{bug|915097}} and others) (olli)}}
* {{ok|add some helper code to deal with cross-thread cycles, ({{bug|915097}} and others) (olli)}}
** Hoping for finishing during the week of December 16th
* {{ok|fix AppShell's favorPerfMode ({{bug|822096}} and others )(olli)}}
* {{ok|fix AppShell's favorPerfMode ({{bug|822096}} and others )(olli)}}
* {{ok|Update document.register to latest spec revision ({{bug|856140}}) (blake / wchen)}}
** This is still on track as of 2013-12-13 despite a somewhat high number of random oranges and test fixes
* {{ok|Implement ShadowRoot event retargeting algorithm ({{bug|887541}}) (blake / wchen)}}
* {{deferred|Update document.register to latest spec revision ({{bug|856140}}) (blake / wchen)}}
* {{ok|ShadowRoot <shadow> element ({{bug|887538}}) (blake / wchen)}}
** The spec for this changed during the quarter to something much more complex, we'll get to this in Q1.
* {{ok|Implement HTML imports ({{bug|877072}}) (blake / wchen)}}
* {{deferred|Implement ShadowRoot event retargeting algorithm ({{bug|887541}}) (blake / wchen)}}
* {{ok| Finalize the patch for per-document,docshell,window event queue  (olli)}}
** The spec has issues and it's unclear when they'll be resolved.  Work that was done here hasn't landed due to spec flux. We'll defer this until the spec stabilizes a bit more.
* {{ok|Update document.register to latest spec revision ({{bug|856140}}) (blake / wchen)}}
* {{done|ShadowRoot <shadow> element ({{bug|887538}}) (blake / wchen)}}
* {{ok|Service Workers (nikhil)}}
** Status as of 2013-12-16: there are some regressions here but they're hard to diagnose; wchen may just land and figure it out afterwards.
* {{ok|Push payload (nikhil)}}
* {{miss|Implement HTML imports ({{bug|877072}}) (blake / wchen)}}
** A bulk of this work got done, but other work got in the way and was of higher priority than this work.
* {{miss|Finalize the patch for per-document,docshell,window event queue  (olli)}}
** More investigation is needed here to know if this is worth doing
* {{done|Service Workers (nikhil)}}
* {{done|Think about Push payload (nikhil)}}
** This ask went away, so we ended up really not doing any work here, but we did deal with this situation.
* {{done|ICC landed but not turned on. ({{bug|850065}}) (mccr8)}}
* {{miss|Deal with all the main bullet items in our Window bindings [https://etherpad.mozilla.org/WebIDL-Window task list]}}
** Large parts of this is done, but we ran into unexpected complications along the way that took more time than expected to get through, so this won't be done for the end of Q4
* {{miss|Ensure that the median age of all DOM sec-critical and sec-high bugs is 3 weeks or less.}}
** We hit some hard ones this quarter, and a bunch of stuff is blocked by larger security work (i.e. slaughterhouse), and didn't get to deal with as much of this as hoped.


=== WebAPI ===
=== WebAPI ===
* {{ok|Land MessagePort for workers ({{bug|911972}}) and main-thread ({{bug|677638}}) on m-c (baku)}}
* {{miss|Land MessagePort for workers ({{bug|911972}}) and main-thread ({{bug|677638}}) on m-c (baku)}}
* {{ok|Pref on DataStore ({{bug|916091}} at a minimum) (baku)}}
** MessagePort preffed on by default on b2g but nowhere else
* {{ok|Base XMLHttpRequest spec on Fetch spec (fix everything in Fetch required for that) (annevk)}}
* {{miss|Pref on DataStore ({{bug|916091}} at a minimum) (baku)}}
* {{ok|Get promises into ES6 spec (help out Domenic where needed) (annevk)}}
** only preffed on for B2G
* {{ok|Finalize zip URL design (annevk)}}
* {{done|Continue work on manifest / "installable apps" (marcosc)}}
* {{ok|Continue work on manifest / "installable apps" (marcosc)}}
** http://w3c.github.io/manifest/
* {{ok|Locale-aware sorting for indexedDB (ehsan doing ICU work bent doing IDB work)}}
** http://w3c-webmob.github.io/installable-webapps/
* {{ok|Finish indexedDB error message improvements (bent, currently in progress)}}
* {{miss|Locale-aware sorting for indexedDB (ehsan doing ICU work, bent doing IDB work)}}
* {{ok|Land low-hanging indexedDB features (bent, currently in progress)}}
** ICU work done
* {{ok|Adjust implementation, review and land sync IDB in workers (janv)}}
** IDB work remaining for early 2014
* {{ok|Get agreement with other browser vendors on temporary/permanent IDB syntax (janv)}}
* {{miss|Finish indexedDB error message improvements (bent, currently in progress)}}
* {{done|Ensure we have someone to implement srcset (marcosc)}}
** need for this is reduced as fewer "random IDB error message" bugs these days
** will still do it, hopefully in Q1 2014
* {{deferred|Adjust implementation, review and land sync IDB in workers (janv)}}
** patches are up for review (\o/!)
** unclear if other vendors will agree on addition to standard
* {{done|Land low-hanging indexedDB features (bent, currently in progress)}}
** getAllKeys {{bug|920633}}
** openKeyCursor {{bug|920800}}
* {{miss|Get agreement with other browser vendors on temporary/permanent IDB syntax (janv)}}
** Jan kicked off discussion.  Jonas threw a wrench into it.  http://lists.w3.org/Archives/Public/public-webapps/2013OctDec/0830.html
* {{done|Enable SharedWorker by default ({{bug|924089}}) (bent)}}
** riding the trains with 29
* {{done|Ensure we have someone to implement <s>srcset</s>src-n (marcosc)}}
** johns is going to implement this
* {{done|Base XMLHttpRequest spec on Fetch spec (fix everything in Fetch required for that) (annevk)}}
* {{done|Get promises into ES6 spec (help out Domenic where needed) (annevk)}}
* {{wishlist|Land (async) IDB in workers ({{bug|701634}}) (baku)}}
** this ate up most of baku and bent's time and will likely land very early in 2014


=== JS  ===
=== JS  ===
* {{risk|{{nbug|619558}} Generational GC}}
* {{ok|{{nbug|837963}} ECMAScript Internationalization API}}


=== Accessibility ===
=== Accessibility ===
==== FFOS ====
==== FFOS ====
* Make core gaia apps/functionality accessible to end users.
* {{miss|Make core gaia apps/functionality accessible to end users.}}
** {{ok|dialer, contacts, sms, browser, marketplace, settings, clock}}
** dialer, contacts, sms, browser, marketplace, settings, clock (settings: done, dialer: close to done, clock: close to done)
** {{ok|stretch: email, calendar}}
** stretch: email, calendar
* {{ok|Create user-facing UI for screenreader settings.}}
** Create user-facing UI for screenreader settings.
* {{ok|Harmonize speech synthesis audio with b2g audio channels}}
* {{miss|Harmonize speech synthesis audio with b2g audio channels}}
* AccessFu improvements
* AccessFu improvements
** {{ok|context actions (swipe up and down)}}
** {{done|context actions (swipe up and down)}} - but more work expected (done for changing slider values, need to do more work for special control navigation)
** {{ok|improved support for mutating content}}
** {{done|improved support for mutating content}} - but more work expected (some patches need to be sent for review, but most is done. worked on obscured state - and shelved it, which is tangentially related)
** {{ok|performance work}}
** {{miss|performance work}}
* {{defer|Accessibility support in appmaker}} - undergoing refactor


==== Core Platform ====
==== Core Platform ====
* {{ok|Stability: to include crashes and new asserts. Tracking {{bug|888531}}.}}
* {{miss|Stability: to include crashes and new asserts. Tracking {{bug|888531}}.}} (good progress but didn't hit target)
* {{ok|Stability: investigate instantiation of a11y for other test suites and make them pass.}}
* {{miss|Stability: investigate instantiation of a11y for other test suites and make them pass.}}
* {{ok|Resolve all actionable sec-moderate or higher a11y bugs within six weeks of their sec-rating.}}
* {{done|Resolve all actionable sec-moderate or higher a11y bugs within six weeks of their sec-rating.}}
* {{ok|Hot AT vendor fixes. Tacking {{bug|923199}}}}
* {{done|Hot AT vendor fixes. Tracking {{bug|923199}}}}
** note there will be expected carry-over into 2014 and some work was blocked.


=== Perf ===
=== Perf ===


=== Networking ===
=== Networking ===
* {{ok|Turn on new HTTP cache in nightly (honza / michal)}}
* {{miss|Turn on new HTTP cache in nightly (honza / michal)}}
* {{ok|HTTP/2: implement draft-06; contribute internet draft for http:// over TLS; test coverage (hurley / mcmanus)}}
** new timeline is to land mid-February (for Firefox 31)
* {{ok|Design docs and go/no go decision on Carpe Net proposal (mcmanus / hurley)}}
* {{done|HTTP/2: implement draft-06; contribute internet draft for http:// over TLS; test coverage (hurley / mcmanus)}}
* {{ok|"lame-network": use TCP keepalive to time out stale connections ({{bug|444328}}), timeout 1/2 open connections (need to file bug) (sworkman)}}
* {{done|Design docs and go/no go decision on Carpe Net proposal (mcmanus / hurley)}}
* {{ok|B2G: Provide way to "set network offline" per app ({{bug|786419}}) (jduell)}}
* {{done|"lame-network": use TCP keepalive to time out stale connections ({{bug|444328}}), timeout 1/2 open connections (need to file bug) (sworkman)}}
* {{ok|Support off-main send/recv from Websockets (for workers) ({{bug|925623}}) (jduell/sworkman)}}
** closed in early January, so I'm counting this :)
* {{ok|make e10s FTP work with HTTP proxies ({{bug|915024}}) (jduell) }}
* {{defer|B2G: Provide way to "set network offline" per app ({{bug|786419}}) (jduell)}}
** punted on this in favor of working on last-minute priority for webRTC: DNS working on child ({{bug|945066}})
* {{miss|Support off-main send/recv from Websockets (for workers) ({{bug|925623}}) (jduell/sworkman)}}
** neither Steve nor jduell found the time to get to this.
* {{risk|make e10s FTP work with HTTP proxies ({{bug|915024}}) (jduell) }}
* {{done|get DNS service working on child ({{bug|945066}})}} (added mid-quarter for B2G/WebRTC support)


=== Mobile  ===
=== Mobile  ===
=== Security ===
=== Security ===
[[SecurityEngineering/2013/Q4Goals|ZOMG!1!! Security Engineering's draft Q4 goals here]]
[[SecurityEngineering/2013/Q4Goals|Security Engineering's Q4 goal details here]].  Summary:
* {{done|Sandboxing: Land chromium-sandbox and make it enableable}}
* {{done|B2G: Get CSP tests enabled on b2g (observer thing)}}
* {{done|Roadmaps: Update privacy/security roadmaps.}}
* {{done|TLS: Land and enable TLS 1.2}}
* {{miss|Mixed Content: Land last critical follow-ups for MCB.}} - close, see link above for details.
* {{miss|CSP: Evaluate C++ rewrite perf gains, implement nonce and hash support.}}
(many sub-goals done, see the link above for more details)

Latest revision as of 21:15, 3 February 2014

Platform

2013 General Goals

  1. Games/Media/Social/Location
  2. Performance
  3. Development velocity/productivity
  4. Firefox OS
  5. Firefox Desktop
  6. Firefox Android
  7. Overall Software Quality

GFX

Goals are work in progress

These are not all going to be prioritized for the quarter, but this is the list from which we are likely to select

  • [ON TRACK] B2G & Fennec performance (animation, pan/zoom, canvas, WebGL)
  • [ON TRACK] APZC on B2G apps
  • [ON TRACK] Metro
  • [ON TRACK] E10S
  • [ON TRACK] Australis TART
  • [ON TRACK] The GFX team will resolve all actionable security bugs within six weeks of their entering our components and receiving sec-high or sec-critical designation. [7] (All trains)

Layout

  • [ON TRACK] Vertical Text - Basic logical geometry and writing mode API landed
  • [ON TRACK] HarfBuff text shaping - performance and correctness update
  • [ON TRACK] HTML5 Form input type (number)
  • [ON TRACK] CSS Variables landed on mozilla-central
  • [ON TRACK] Multi-line CSS Flexbox landed and enabled on mozilla-central
  • [ON TRACK] CSS box:contents landed on mozilla-central (maybe not enabled)
  • [ON TRACK] CSS overflow prototype
  • [ON TRACK] CSS SVG Filters
  • [ON TRACK] Australis Layout Performance work
  • [DONE] have our own CSS parsing and selector matching code in Servo

Media

  1. [ON TRACK] MSE Source Buffer Resetting
  2. [DONE] Fragmented MP4 Parser
  3. [DONE] WebM VP9 Support

DOM

  • [DONE] Norway worker work (bug 916204) (dougt / khuey / nikhil)
    • This ended up being basically no work, but a bunch of discussions to further understand the needs of the gaia team. In the end it resulted in no JS API implemented APIs exposed to workers, but some of those APIs are being exposed by converting their implementations to C++
  • [DONE] E10s and B2g work related to message manager and event handling (olli) (significant work done, but more stuff may come up)
  • [ON TRACK] add some helper code to deal with cross-thread cycles, (bug 915097 and others) (olli)
    • Hoping for finishing during the week of December 16th
  • [ON TRACK] fix AppShell's favorPerfMode (bug 822096 and others )(olli)
    • This is still on track as of 2013-12-13 despite a somewhat high number of random oranges and test fixes
  • [DEFERRED] Update document.register to latest spec revision (bug 856140) (blake / wchen)
    • The spec for this changed during the quarter to something much more complex, we'll get to this in Q1.
  • [DEFERRED] Implement ShadowRoot event retargeting algorithm (bug 887541) (blake / wchen)
    • The spec has issues and it's unclear when they'll be resolved. Work that was done here hasn't landed due to spec flux. We'll defer this until the spec stabilizes a bit more.
  • [DONE] ShadowRoot <shadow> element (bug 887538) (blake / wchen)
    • Status as of 2013-12-16: there are some regressions here but they're hard to diagnose; wchen may just land and figure it out afterwards.
  • [MISSED] Implement HTML imports (bug 877072) (blake / wchen)
    • A bulk of this work got done, but other work got in the way and was of higher priority than this work.
  • [MISSED] Finalize the patch for per-document,docshell,window event queue (olli)
    • More investigation is needed here to know if this is worth doing
  • [DONE] Service Workers (nikhil)
  • [DONE] Think about Push payload (nikhil)
    • This ask went away, so we ended up really not doing any work here, but we did deal with this situation.
  • [DONE] ICC landed but not turned on. (bug 850065) (mccr8)
  • [MISSED] Deal with all the main bullet items in our Window bindings task list
    • Large parts of this is done, but we ran into unexpected complications along the way that took more time than expected to get through, so this won't be done for the end of Q4
  • [MISSED] Ensure that the median age of all DOM sec-critical and sec-high bugs is 3 weeks or less.
    • We hit some hard ones this quarter, and a bunch of stuff is blocked by larger security work (i.e. slaughterhouse), and didn't get to deal with as much of this as hoped.

WebAPI

  • [MISSED] Land MessagePort for workers (bug 911972) and main-thread (bug 677638) on m-c (baku)
    • MessagePort preffed on by default on b2g but nowhere else
  • [MISSED] Pref on DataStore (bug 916091 at a minimum) (baku)
    • only preffed on for B2G
  • [DONE] Continue work on manifest / "installable apps" (marcosc)
  • [MISSED] Locale-aware sorting for indexedDB (ehsan doing ICU work, bent doing IDB work)
    • ICU work done
    • IDB work remaining for early 2014
  • [MISSED] Finish indexedDB error message improvements (bent, currently in progress)
    • need for this is reduced as fewer "random IDB error message" bugs these days
    • will still do it, hopefully in Q1 2014
  • [DEFERRED] Adjust implementation, review and land sync IDB in workers (janv)
    • patches are up for review (\o/!)
    • unclear if other vendors will agree on addition to standard
  • [DONE] Land low-hanging indexedDB features (bent, currently in progress)
  • [MISSED] Get agreement with other browser vendors on temporary/permanent IDB syntax (janv)
  • [DONE] Enable SharedWorker by default (bug 924089) (bent)
    • riding the trains with 29
  • [DONE] Ensure we have someone to implement srcsetsrc-n (marcosc)
    • johns is going to implement this
  • [DONE] Base XMLHttpRequest spec on Fetch spec (fix everything in Fetch required for that) (annevk)
  • [DONE] Get promises into ES6 spec (help out Domenic where needed) (annevk)
  • [WISHLIST] Land (async) IDB in workers (bug 701634) (baku)
    • this ate up most of baku and bent's time and will likely land very early in 2014

JS

  • [AT RISK] 619558 Generational GC
  • [ON TRACK] 837963 ECMAScript Internationalization API

Accessibility

FFOS

  • [MISSED] Make core gaia apps/functionality accessible to end users.
    • dialer, contacts, sms, browser, marketplace, settings, clock (settings: done, dialer: close to done, clock: close to done)
    • stretch: email, calendar
    • Create user-facing UI for screenreader settings.
  • [MISSED] Harmonize speech synthesis audio with b2g audio channels
  • AccessFu improvements
    • [DONE] context actions (swipe up and down) - but more work expected (done for changing slider values, need to do more work for special control navigation)
    • [DONE] improved support for mutating content - but more work expected (some patches need to be sent for review, but most is done. worked on obscured state - and shelved it, which is tangentially related)
    • [MISSED] performance work
  • [DEFER] Accessibility support in appmaker - undergoing refactor

Core Platform

  • [MISSED] Stability: to include crashes and new asserts. Tracking bug 888531. (good progress but didn't hit target)
  • [MISSED] Stability: investigate instantiation of a11y for other test suites and make them pass.
  • [DONE] Resolve all actionable sec-moderate or higher a11y bugs within six weeks of their sec-rating.
  • [DONE] Hot AT vendor fixes. Tracking bug 923199
    • note there will be expected carry-over into 2014 and some work was blocked.

Perf

Networking

  • [MISSED] Turn on new HTTP cache in nightly (honza / michal)
    • new timeline is to land mid-February (for Firefox 31)
  • [DONE] HTTP/2: implement draft-06; contribute internet draft for http:// over TLS; test coverage (hurley / mcmanus)
  • [DONE] Design docs and go/no go decision on Carpe Net proposal (mcmanus / hurley)
  • [DONE] "lame-network": use TCP keepalive to time out stale connections (bug 444328), timeout 1/2 open connections (need to file bug) (sworkman)
    • closed in early January, so I'm counting this :)
  • [DEFER] B2G: Provide way to "set network offline" per app (bug 786419) (jduell)
    • punted on this in favor of working on last-minute priority for webRTC: DNS working on child (bug 945066)
  • [MISSED] Support off-main send/recv from Websockets (for workers) (bug 925623) (jduell/sworkman)
    • neither Steve nor jduell found the time to get to this.
  • [AT RISK] make e10s FTP work with HTTP proxies (bug 915024) (jduell)
  • [DONE] get DNS service working on child (bug 945066) (added mid-quarter for B2G/WebRTC support)

Mobile

Security

Security Engineering's Q4 goal details here. Summary:

  • [DONE] Sandboxing: Land chromium-sandbox and make it enableable
  • [DONE] B2G: Get CSP tests enabled on b2g (observer thing)
  • [DONE] Roadmaps: Update privacy/security roadmaps.
  • [DONE] TLS: Land and enable TLS 1.2
  • [MISSED] Mixed Content: Land last critical follow-ups for MCB. - close, see link above for details.
  • [MISSED] CSP: Evaluate C++ rewrite perf gains, implement nonce and hash support.

(many sub-goals done, see the link above for more details)