Platform/2012-Q2-Goals: Difference between revisions

 
(86 intermediate revisions by 15 users not shown)
Line 2: Line 2:


=== GFX ===
=== GFX ===
<onlyinclude>
<onlyinclude>
* {{ok|complete and ship OMTC for native fennec}}
* {{ok|complete and ship OMTC for native fennec on android}}
* {{ok|B2G work?}}
* {{done|Azure turned on for content on Windows with Direct2D, on mozilla-central}}
* {{ok|Moving other pieces of work off the main thread}}
* {{risk|Use Skia for canvas drawing on non-accelerated Windows computers}}
* {{ok|Gaming?}}
* {{ok|Off main thread video display}}
* {{ok|Azure resurrection}}
* {{risk|CSS3 font spec implementation}}
* {{ok|Skia}}
** Complete {{bug|651693}}
* {{ok|Double buffer WebGL}}
* Other important Q2 work
* Other important Q2 work
** Imagelib improvements
** B2G work as required
** Moving other pieces of work off the main thread
** BugKill
** BugKill
** Increase number of regular contributors
** Increase number of regular contributors
Line 16: Line 19:


=== Layout ===
=== Layout ===
<onlyinclude>
<onlyinclude>
* {{ok|Ship Mobile Font Inflation project on Fennec Beta & Release}}
* {{done|Ship Mobile Font Inflation project on Fennec Beta & Release}}
* {{ok|Complete Graphite Fonts Project}}
* {{prev|Complete Graphite Fonts Project}}
** Enable by default and release publicly  
** Enable by default and release publicly  
* {{ok|Invalidation via DisplayList Analysis({{bug|539356}})}}
* {{prev|Invalidation via DisplayList Analysis({{bug|539356}})}}
* {{ok|SVG migration to DisplayList (Performance)}}
* {{done|SVG migration to DisplayList (Performance)}}
* {{ok|Implement CSS spec for vertical flexbox}}
* {{prev|Implement CSS spec for vertical flexbox}}
** horizontal flexbox done in Q1
** horizontal flexbox done in early Q2
* {{ok|Add image visibility API ({{bug|689623}})}}
* {{prev|Add image visibility API ({{bug|689623}})}}
* {{ok|Begin CSS Grid Implementation}}
* {{prev|Continue View class removal ({{bug|337801}})}}
* {{ok|Begin CSS Vertical Text Implementation}}
* {{prev|Implement the auto value for the HTML dir attribute ({{bug|548206}})}}
* {{ok|Begin CSS Pagination}}
* {{deferred|Begin CSS Grid Implementation}}
* {{prev|Begin CSS Vertical Text Implementation}}
* {{prev|Begin CSS Pagination}}
**CSS2.1 bugs (need list)
**CSS2.1 features (need list)
* {{prev|CSS 2.1 Test Suite v.2}}
* CSS Spec, Unprefixing & Testing
** {{done|Gradients}}
** {{done|Transforms}}
** {{done|Transitions}}
** {{done|Animations}}
** {{prev|MultiCol }}
** {{prev|Conditional Rules}}
* {{prev|Support for Complex Scripts on Mobile}}
** Example bugs: {{bug|619521}},{{bug|619524}},{{bug|676068}},{{bug|631159}}
</onlyinclude>
</onlyinclude>


=== Video ===
=== Video ===
* {{ok|Get Firefox WebRTC code interoperating with Google's WebRTC code}}
 
* {{ok|Ship Camera API still image support (based on getUserMedia) for Fennec and B2G in time for App Store Launch}}
* {{done|Land Platform Decoder support for B2G in mozilla-central}}
* {{ok|Land Media Plugin API (MPAPI) for Mobile in mozilla-central}}
* {{done|Land the backend (platform) code for the B2G Camera App and for B2G Camera API still image support (both based on getUserMedia, using core MediaStreams infrastructure) in mozilla-central in time for Firefox 15}}
* {{ok|Land OPUS support in mozilla-central}}
* {{done|Land Camera API still image support for Android in mozilla-central for Firefox 15}}
* {{ok|Resolve our non-free codec position on desktop}}
* {{done|Land Opus support (in <audio>, preffed off) in mozilla-central }}
* {{deferred| <del>Land Platform Decoder [formerly referred to as MPAPI] support for Android in mozilla-central</del>  Moved this goal to Q3 to help B2G/basecamp}}
* {{deferred| <del> Resolve our non-free codec position on desktop </del> Pushed this goal to later because this discussion is potentially a massive distraction to critical path people for basecamp/B2G}}


=== DOM ===
=== DOM ===
 
* {{risk|{{nbug|742822}}: Combine IndexedDB/LocalStorage quotas to allow indexeddb to remove prompt.}}
* {{ok|New DOM bindings in place for CanvasContext and CSS2Properties}}
* {{done|New DOM bindings in place for CanvasContext}}
* {{ok|DOM bindings for the native BrowserID API implementation}}
* {{miss|New DOM bindings in place for CSS2Properties}}
* {{ok|HTML5 menu implementation, or something like it}}
** This work is all done, but not in time to get reviews done in time (from the layout team)
* {{ok|Prevent, to a reasonable extent, background tabs from starving the main thread}}
* removed: HTML5 menu implementation, or something like it
* {{ok|Reduce CC pauses significantly when there are cycles to collect}}
** Not a priority for basecamp
* {{ok|Review Shadow DOM and decide what to do with it and the rest of the [http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html Webcomponents proposal].}}
* {{done|DOM bindings for the native BrowserID API implementation}}
* {{ok|Make IndexedDB ready for e10s (for B2G)}}
** In the end we didn't end up needing to do any actual work here due to an API change and our existing navigator extension mechanism being able to do everything the BrowserID team needed
* {{done|Compartment per global}}
* {{done|Reduce CC pauses significantly when there are cycles to collect}}
* {{done|Review Shadow DOM and decide what to do with it and the rest of the [http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html Webcomponents proposal].}}


=== WebAPI ===
=== WebAPI ===


* {{ok|Security model}}
* {{done|Security model}}
* {{ok|Device Storage API}}
** Model design completed, implementation pending in Q3
* {{ok|Idle API}}
* {{done|Device Storage API}}
* {{ok|Unprefix IndexedDB}}
* {{done|Idle API}}
* {{ok|Screen Orientation}}
* {{done|Unprefix IndexedDB}} [{{bug|726378}}]
* {{ok|Appcache (depends on how much help we'll get on IndexedDB)}}
* {{done|Screen Orientation}}
* {{ok|Spec API for WebTelephony conference calls (not implemented)}}
* {{done|Appcache (depends on how much help we'll get on IndexedDB)}}
* {{ok|Support B2G going multiprocess}}
** We did what's needed for B2G and the initial release for WebApps support here. Much more work to do once we work out what the right thing to do is, in many coming quarters...
* {{ok|Proximity/AmbientLight Sensors}}
* {{done|Spec API for WebTelephony conference calls (not implemented)}} [{{bug|768925}}]
* {{ok|B2G WebActivities spec (not implemented) (WebActivities, effectively same as WebIntents)}}
* {{partial|Support B2G going multiprocess}}
* {{ok|String encoding/decoding}}
** We got basic multiprocess for IDB, but still don't have multiprocess blobs working in IDB.
* {{done|Proximity/AmbientLight Sensors}}
* {{done|B2G WebActivities spec (not implemented) (WebActivities, effectively same as WebIntents)}}
* removed: String encoding/decoding
** Not a priority for basecamp


=== JS  ===
=== JS  ===
*{{done|Pref on incremental GC--requires fixing a Tinderbox shutdown leak and tuning.}}
*{{miss|Incremental sweeping.}}
*{{done|Avoid recompilation pauses on GC.}}
*{{miss|Land IonMonkey.}}
*{{done|Finish current round of typed arrays enhancements.}}
*{{done|Redo scope chains to improve perf and IonMonkey integration [{{bug|659577}}]}}
*{{miss|Finish properties/elements split}}
*{{miss|ES6: direct proxies}} [{{bug|703537}}]
*{{done|Fix bugs required for script debugger support (part of K9O).}}


=== Accessibility ===
=== Accessibility ===
* {{ok| Increase performance by 30% for Speech Recognition use cases.}}
* {{miss| Increase performance by 30% for Speech Recognition use cases.}}
* {{ok| Have usable mozbase platform automated tests.}}
* {{done| Have usable mozbase platform automated tests.}}
* {{ok| Get Android a11y into a release channel.}}
* {{done| Get Android a11y into a release channel.}}
* {{ok| Have a working prototype of a B2G screen reader.}}
* {{deferred| Have a working prototype of a B2G screen reader.}}
* {{ok| Have an alpha version of a mobile gesture addon.}}
* {{done| Have an alpha version of a mobile gesture addon.}}
* {{ok| Bring OSX Firefox a11y on par with Win/Linux}}
* {{miss| Bring OSX Firefox a11y on par with Win/Linux}}
* other: canvas bounds work?, UIA?, open a11y alliance, ARIA conformance...
* other: canvas bounds work?, UIA?, open a11y alliance, ARIA conformance...


=== Perf ===
=== Perf ===
* {{miss|{{nbug|736144}}: Async local storage via blocking pageload}}
* {{done|{{nbug|580408}}: Integrate newer jemalloc.}}
* {{miss|{{nbug|563742}}: provide js file api (in workers) for all supported platforms.}}
* {{miss|{{nbug|662397}}: Reorder xul.dll on windows to speed up startup}}
* Important: support incremental decompression on mobile, figure out if we can do 1s startup on android, {{nbug|662444}} continue exit(0) progress
* {{miss|{{nbug|661881}}: Bundle about-telemetry extension to ship with Firefox}}
* {{done|{{nbug|701872}}: Diagnose sources of super-slow Firefox startups}}
* {{done|{{nbug|725821}}: Investigate switching to sqlite FTS to speed up AwesomeBar searches}}
* {{miss|Prevent, to a reasonable extent, background tabs from starving the main thread}}


=== Networking ===
=== Networking ===


* {{ok|{{nbug|723577}}, {{nbug|723582}}, {{nbug|722033}}, {{nbug|722034}}: Resolve listed high priority cache locking/async issues.}}
* {{miss|{{nbug|723577}}, {{nbug|723582}}, {{nbug|722033}}, {{nbug|722034}}: Resolve listed high priority cache locking/async issues.}}
** Nick Hurley and Michal Novotny will lead this effort.
** Nick Hurley and Michal Novotny will lead this effort.
* {{ok|{{nbug|737470}}: Implement and land SPDY v3.}}
* {{done|{{nbug|737470}}: Implement and land SPDY v3.}}
** Patrick McManus will lead this effort.
** Patrick McManus will lead this effort.
* {{ok|{{nbug|735242}} Fix bug in which Firefox can display conflicting network states.}}
* {{done|{{nbug|735242}} Fix bug in which Firefox can display conflicting network states.}}
** Patrick McManus will lead this effort.
** Patrick McManus will lead this effort.
* {{ok|Get [[Necko/Performance/AutomatedTesting|Stone Ridge]] testing up and running. Should be running at least one test daily against multiple NeckoNet profiles and reporting results publicly.}}
** The bug isn't fixed but neither Josh nor Patrick can reproduce any more so there is nothing to do.
* {{done|Get [[Necko/Performance/AutomatedTesting|Stone Ridge]] testing up and running. Should be running at least one test daily against multiple NeckoNet profiles and reporting results publicly.}}
** Nick Hurley will lead this effort.
** Nick Hurley will lead this effort.
* {{ok|Be able to show working demo of HTML5 video consumption via DASH, even if whole specification is not implemented.}}
** The graph server is not public yet but that is outside of our control. As soon as it is done our results will be public.
* {{done|Be able to show working demo of HTML5 video consumption via DASH, even if whole specification is not implemented.}}
** Steve Workman will lead this effort.
** Steve Workman will lead this effort.
* {{ok|Improve WebSockets support.}}
* {{done|Improve WebSockets support.}}
** {{nbug|704447}}: Improve large blob support for WebSockets.
** {{nbug|748766}}: Fix bug in which we have a limit of 196 WebSockets connections.
** {{nbug|713023}}, {{nbug|713026}}: Improve support for Websockets when using HTTP proxy server.
** {{nbug|713023}}, {{nbug|713026}}: Improve support for Websockets when using HTTP proxy server.
** {{nbug|695636}}, {{nbug|711793}}, {{nbug|712191}}: Various other WebSockets fixes.
** {{nbug|695636}}, {{nbug|711793}}, {{nbug|712191}}: Various other WebSockets fixes.
** Jason Duell will lead this effort.
** Jason Duell will lead this effort.
* {{ok|Get automated NSS tests related to Firefox ready for deployment to Mozilla test infrastructure on tier-1 platforms.}}
** Due to changing priorities we swapped out {{bug|704447}} for {{bug|748766}}.
* {{miss|Get automated NSS tests related to Firefox ready for deployment to Mozilla test infrastructure on tier-1 platforms.}}
** Brian Smith will lead this effort.
** Brian Smith will lead this effort.
* {{ok|Resolve all networking security bugs that received a designation of sg:moderate or higher more than six weeks ago. This is a permanent goal for the group.}}
** We were simply unable to prioritize this over other work. Brian ended up helping with a lot of disk cache work (responsiveness goals + security).
* {{miss|Resolve all networking security bugs that received a designation of sg:moderate or higher more than six weeks ago. This is a permanent goal for the group.}}
** Brian Smith will lead this effort.
** Brian Smith will lead this effort.


Line 99: Line 149:


=== Mobile  ===
=== Mobile  ===
* {{done|Ship 1.0 of Mobile Firefox}}
* {{done|competitive panning and zooming}}
* {{done|competitive start up performance}}
* {{done|WebRT:Phase 1 support}}
* {{deferred|Remote debugging support}}
* {{done|Flash support}}
* {{done|Performant WebGL support}}
* {{done|Competitive canvas perf}}
* {{deferred|Enable safe browsing}}
* {{done|Import Bookmarks & History from Android DBs}}
* {{done|Nightly builds for ARMv6}}
* {{done|Proper support for position-fixed}}
* {{deferred|Investigate supporting multiple profiles}}


=== B2G ===
=== B2G ===


=== Research ===
=== Research ===

Latest revision as of 18:15, 27 July 2012

General Goals

GFX

  • [ON TRACK] complete and ship OMTC for native fennec on android
  • [DONE] Azure turned on for content on Windows with Direct2D, on mozilla-central
  • [AT RISK] Use Skia for canvas drawing on non-accelerated Windows computers
  • [ON TRACK] Off main thread video display
  • [AT RISK] CSS3 font spec implementation
  • [ON TRACK] Double buffer WebGL
  • Other important Q2 work
    • B2G work as required
    • Moving other pieces of work off the main thread
    • BugKill
    • Increase number of regular contributors


Layout

  • [DONE] Ship Mobile Font Inflation project on Fennec Beta & Release
  • [CARRY OVER] Complete Graphite Fonts Project
    • Enable by default and release publicly
  • [CARRY OVER] Invalidation via DisplayList Analysis(bug 539356)
  • [DONE] SVG migration to DisplayList (Performance)
  • [CARRY OVER] Implement CSS spec for vertical flexbox
    • horizontal flexbox done in early Q2
  • [CARRY OVER] Add image visibility API (bug 689623)
  • [CARRY OVER] Continue View class removal (bug 337801)
  • [CARRY OVER] Implement the auto value for the HTML dir attribute (bug 548206)
  • [DEFERRED] Begin CSS Grid Implementation
  • [CARRY OVER] Begin CSS Vertical Text Implementation
  • [CARRY OVER] Begin CSS Pagination
    • CSS2.1 bugs (need list)
    • CSS2.1 features (need list)
  • [CARRY OVER] CSS 2.1 Test Suite v.2
  • CSS Spec, Unprefixing & Testing
    • [DONE] Gradients
    • [DONE] Transforms
    • [DONE] Transitions
    • [DONE] Animations
    • [CARRY OVER] MultiCol
    • [CARRY OVER] Conditional Rules
  • [CARRY OVER] Support for Complex Scripts on Mobile


Video

  • [DONE] Land Platform Decoder support for B2G in mozilla-central
  • [DONE] Land the backend (platform) code for the B2G Camera App and for B2G Camera API still image support (both based on getUserMedia, using core MediaStreams infrastructure) in mozilla-central in time for Firefox 15
  • [DONE] Land Camera API still image support for Android in mozilla-central for Firefox 15
  • [DONE] Land Opus support (in <audio>, preffed off) in mozilla-central
  • [DEFERRED] Land Platform Decoder [formerly referred to as MPAPI] support for Android in mozilla-central Moved this goal to Q3 to help B2G/basecamp
  • [DEFERRED] Resolve our non-free codec position on desktop Pushed this goal to later because this discussion is potentially a massive distraction to critical path people for basecamp/B2G

DOM

  • [AT RISK] 742822: Combine IndexedDB/LocalStorage quotas to allow indexeddb to remove prompt.
  • [DONE] New DOM bindings in place for CanvasContext
  • [MISSED] New DOM bindings in place for CSS2Properties
    • This work is all done, but not in time to get reviews done in time (from the layout team)
  • removed: HTML5 menu implementation, or something like it
    • Not a priority for basecamp
  • [DONE] DOM bindings for the native BrowserID API implementation
    • In the end we didn't end up needing to do any actual work here due to an API change and our existing navigator extension mechanism being able to do everything the BrowserID team needed
  • [DONE] Compartment per global
  • [DONE] Reduce CC pauses significantly when there are cycles to collect
  • [DONE] Review Shadow DOM and decide what to do with it and the rest of the Webcomponents proposal.

WebAPI

  • [DONE] Security model
    • Model design completed, implementation pending in Q3
  • [DONE] Device Storage API
  • [DONE] Idle API
  • [DONE] Unprefix IndexedDB [bug 726378]
  • [DONE] Screen Orientation
  • [DONE] Appcache (depends on how much help we'll get on IndexedDB)
    • We did what's needed for B2G and the initial release for WebApps support here. Much more work to do once we work out what the right thing to do is, in many coming quarters...
  • [DONE] Spec API for WebTelephony conference calls (not implemented) [bug 768925]
  • Template:Partial
    • We got basic multiprocess for IDB, but still don't have multiprocess blobs working in IDB.
  • [DONE] Proximity/AmbientLight Sensors
  • [DONE] B2G WebActivities spec (not implemented) (WebActivities, effectively same as WebIntents)
  • removed: String encoding/decoding
    • Not a priority for basecamp

JS

  • [DONE] Pref on incremental GC--requires fixing a Tinderbox shutdown leak and tuning.
  • [MISSED] Incremental sweeping.
  • [DONE] Avoid recompilation pauses on GC.
  • [MISSED] Land IonMonkey.
  • [DONE] Finish current round of typed arrays enhancements.
  • [DONE] Redo scope chains to improve perf and IonMonkey integration [bug 659577]
  • [MISSED] Finish properties/elements split
  • [MISSED] ES6: direct proxies [bug 703537]
  • [DONE] Fix bugs required for script debugger support (part of K9O).

Accessibility

  • [MISSED] Increase performance by 30% for Speech Recognition use cases.
  • [DONE] Have usable mozbase platform automated tests.
  • [DONE] Get Android a11y into a release channel.
  • [DEFERRED] Have a working prototype of a B2G screen reader.
  • [DONE] Have an alpha version of a mobile gesture addon.
  • [MISSED] Bring OSX Firefox a11y on par with Win/Linux
  • other: canvas bounds work?, UIA?, open a11y alliance, ARIA conformance...

Perf

  • [MISSED] 736144: Async local storage via blocking pageload
  • [DONE] 580408: Integrate newer jemalloc.
  • [MISSED] 563742: provide js file api (in workers) for all supported platforms.
  • [MISSED] 662397: Reorder xul.dll on windows to speed up startup
  • Important: support incremental decompression on mobile, figure out if we can do 1s startup on android, 662444 continue exit(0) progress
  • [MISSED] 661881: Bundle about-telemetry extension to ship with Firefox
  • [DONE] 701872: Diagnose sources of super-slow Firefox startups
  • [DONE] 725821: Investigate switching to sqlite FTS to speed up AwesomeBar searches
  • [MISSED] Prevent, to a reasonable extent, background tabs from starving the main thread

Networking

  • [MISSED] 723577, 723582, 722033, 722034: Resolve listed high priority cache locking/async issues.
    • Nick Hurley and Michal Novotny will lead this effort.
  • [DONE] 737470: Implement and land SPDY v3.
    • Patrick McManus will lead this effort.
  • [DONE] 735242 Fix bug in which Firefox can display conflicting network states.
    • Patrick McManus will lead this effort.
    • The bug isn't fixed but neither Josh nor Patrick can reproduce any more so there is nothing to do.
  • [DONE] Get Stone Ridge testing up and running. Should be running at least one test daily against multiple NeckoNet profiles and reporting results publicly.
    • Nick Hurley will lead this effort.
    • The graph server is not public yet but that is outside of our control. As soon as it is done our results will be public.
  • [DONE] Be able to show working demo of HTML5 video consumption via DASH, even if whole specification is not implemented.
    • Steve Workman will lead this effort.
  • [DONE] Improve WebSockets support.
    • 748766: Fix bug in which we have a limit of 196 WebSockets connections.
    • 713023, 713026: Improve support for Websockets when using HTTP proxy server.
    • 695636, 711793, 712191: Various other WebSockets fixes.
    • Jason Duell will lead this effort.
    • Due to changing priorities we swapped out bug 704447 for bug 748766.
  • [MISSED] Get automated NSS tests related to Firefox ready for deployment to Mozilla test infrastructure on tier-1 platforms.
    • Brian Smith will lead this effort.
    • We were simply unable to prioritize this over other work. Brian ended up helping with a lot of disk cache work (responsiveness goals + security).
  • [MISSED] Resolve all networking security bugs that received a designation of sg:moderate or higher more than six weeks ago. This is a permanent goal for the group.
    • Brian Smith will lead this effort.

Plugins

Mobile

  • [DONE] Ship 1.0 of Mobile Firefox
  • [DONE] competitive panning and zooming
  • [DONE] competitive start up performance
  • [DONE] WebRT:Phase 1 support
  • [DEFERRED] Remote debugging support
  • [DONE] Flash support
  • [DONE] Performant WebGL support
  • [DONE] Competitive canvas perf
  • [DEFERRED] Enable safe browsing
  • [DONE] Import Bookmarks & History from Android DBs
  • [DONE] Nightly builds for ARMv6
  • [DONE] Proper support for position-fixed
  • [DEFERRED] Investigate supporting multiple profiles

B2G

Research