Platform/2012-Q1-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(60 intermediate revisions by 14 users not shown)
Line 3: Line 3:
=== GFX ===
=== GFX ===
<onlyinclude>
<onlyinclude>
* {{ok|Off Main Thread Compositing}}
* {{ok|Off Main Thread Compositing}} - on by default on Android for OpenGL layers
** {{ok|Async scrolling on mobile}}
** {{ok|Async scrolling on mobile}}
** {{ok|Cross-thread texture sharing for WebGL}}
* {{ok|Azure for content testing & conversion}}
* {{ok|Azure for content testing & conversion}}
** {{ok|Cairo backend for Azure}}
** {{ok|Cairo backend for Azure}} - on by default for canvas
** {{ok|Quartz backend for Azure}}
** {{ok|Quartz backend for Azure}} - on by default for canvas
** {{ok|Skia backend for Azure}} - possible to be turned on by default for canvas
** {{ok|Azure-Direct2D content drawing}} - on by default
* {{ok|Snappy related profiling and fixing}}
* {{ok|Snappy related profiling and fixing}}
* {{ok|Async NPAPI}}
* {{ok|Async NPAPI}} - Bitmap (software only) mode on by default
** {{ok|Stretch goal - Hardware accelerated mode}}
* {{ok|CSS 3 Font Spec Implementation}}
* {{ok|CSS 3 Font Spec Implementation}}
** Complete bug 651693
** Complete {{bug|651693}}
* Other important Q1 work
* Other important Q1 work
** Mobile Java Compositor replacement
** Mobile Java Compositor replacement
** Imagelib improvements
** Imagelib improvements
** Adreno debugging
** Adreno debugging
** Bugkill
** BugKill
**  
** Increase number of regular contributors
** Windows 8 Metro investigation
</onlyinclude>
</onlyinclude>


=== Layout ===
=== Layout ===
<onlyinclude>
<onlyinclude>
* {{ok|Complete Mobile Font Inflation project for Mobile World Congress}}
* {{ok|Complete Mobile Font Inflation project for Fennec Beta}}
** Code already enabled. Remaining [https://bugzilla.mozilla.org/buglist.cgi?list_id=1931659&resolution=---&resolution=DUPLICATE&status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=readability bugs] need fixes before 1/31/2012.
** Code already enabled. Remaining [https://bugzilla.mozilla.org/buglist.cgi?list_id=1931659&resolution=---&resolution=DUPLICATE&status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=readability bugs].
* {{ok|Graphite Font system}}
* {{prev|Graphite Font system}}
** Code is currently in M-C but pref'd off. Q1 remaining work to pref it on.
** Code is currently in M-C but pref'd off. Q1 remaining work to pref it on.
* {{ok|Font cache performance improvements (bug 703100)}}
* {{ok|Invalidation via DisplayList Analysis({{bug|539356}})}}
* {{ok|Complete SVG migration to DisplayList (Performance)}}
* {{done|Refresh driver Invalidation / Asynchronous Painting ({{bug|598482}})}}
* {{done|Font cache performance improvements ({{bug|703100}})}}
* {{prev|Continue SVG migration to DisplayList (Performance)}}
* {{ok|Implement CSS spec for flexbox}}
* {{ok|Implement CSS spec for flexbox}}
* {{ok|Continue View class removal (bug 337801)}}
* {{ok|Add image visibility API ({{bug|689623}})}}
* {{ok|Implement the auto value for the HTML dir attribute (bug 548206)}}
* {{prev|Continue View class removal ({{bug|337801}})}}
* {{ok|Implement the auto value for the HTML dir attribute ({{bug|548206}})}}
</onlyinclude>
</onlyinclude>


=== Video ===
=== Video ===
<onlyinclude>
<onlyinclude>
* {{miss|Integrate libcubeb}}
* {{ok|Land basic MediaStreams support}}
* {{done|Demoable mobile codec}}
* {{miss|direct pushing of video frames to compositor thread for off-main-thread-compositing}}
</onlyinclude>
</onlyinclude>


=== DOM ===
=== DOM ===
<onlyinclude>
<onlyinclude>
* {{ok|HTML5 parser based bookmark import}}
* {{done|HTML5 parser based bookmark import}}
* {{ok|HTML5 parser based HTML to plain text conversion}}
* {{done|HTML5 parser based HTML to plain text conversion}}
* {{ok|Add support for the new mutation observer proposal (to replace DOM Mutation Event support eventually) -- carryover from last quarter}}
* {{done|Add support for the new mutation observer proposal (to replace DOM Mutation Event support eventually)}}
* {{ok|Cut down on cycle collection times -- details tbd}}
* {{miss|One compartment per global}}
* {{ok|DOM bindings, details tbd}}
** 95% done. Still some new issues popping up here, so we were not able to push this across the line this quarter.
* {{done|Eliminate more uncollectable objects from the cycle collector graph}}
* {{done|New DOM bindings codegen infrastructure in place, enabled for XHR}}
</onlyinclude>
</onlyinclude>


=== WebAPI ===
=== WebAPI ===
<onlyinclude>
<onlyinclude>
* {{ok|Camera API!}}
* {{miss|Camera API!}}
* {{ok|SMS landed. Might not have security model in place. Turned on for B2G}}
* {{done|SMS landed. Might not have security model in place. Turned on for B2G}}
* {{ok|Have spec for how capability management in apps will work}}
* {{miss|Have spec for how capability management in apps will work, plus a security model defined.}}
* {{ok|Network API on android and one other platform}}
** Last minute issues crept up here, couldn't get this done in time.
* {{ok|Contacts API spec (spec proposal only, no implementation)}}
* {{done|Network API on android and one other platform}}
* {{ok|BrowserID implemented in Gecko}}
* {{done|Contacts API spec (spec proposal only, no implementation)}}
* {{ok|Note: Tentative! Media reading/storage API}}
* {{miss|BrowserID implemented in Gecko}}
* {{ok|WebApp instalation API}}
** The browserID side of things are still in flux, hopefully finalizing DOM API the week of 3/19, but this whole thing won't be done this quarter.
* {{ok|Have a security model defined.}}
* {{done|Note: Tentative! Media reading/storage API}} - spec is written, no implementation yet
* {{done|WebApp instalation API}}
</onlyinclude>
</onlyinclude>


=== JS  ===
=== JS  ===


*{{ok|Land incremental GC. (Carried over from previous quarter.) }}
*{{done|Land incremental GC.}}
*{{ok|Land JS stack tracing for profilers. (Carried over from previous quarter.) }}
*{{drop|Land JS stack tracing for profilers.}}
*{{ok|Redo scope chains to improve perf and IonMonkey integration [{{bug|659577}}]}}
*{{done|Get IonMonkey running 10 benchmarks as fast as or faster than JM+TI.}}
*{{miss|Redo scope chains to improve perf and IonMonkey integration [{{bug|659577}}]}}
*{{miss|Finish properties/elements split}}
*{{miss|ES6: direct proxies}} [{{bug|703537}}]
*{{done|ES6: maps and sets}}
*{{done|ES6: for-of}}


=== Accessibility ===
=== Accessibility ===
<onlyinclude>
<onlyinclude>
* {{ok| Get Android Firefox uttering things in mozilla-central.}}
* {{miss| Get Android Firefox uttering things in mozilla-central.}}
* {{ok| Make the Mac version a first tier for a11y by bringing it up in par with Windows and Linux.}}
** Good progress.
* {{prev| Improve accessible tree updating [{{bug|690417}}].}}
* {{miss| Make the Mac version a first tier for a11y by bringing it up in par with Windows and Linux [{{bug|733513}}].}}
* {{prev| Canvas accessibility prototype: build accessible subtree.}}
** Good progress.
* {{drop| Improve accessible tree updating [{{bug|690417}}].}}
** Dropped due to new priorities.
* {{done| Canvas accessibility prototype: build accessible subtree.}}
** Completed prototype, refactored, and landed! [{{bug|495912}}].
</onlyinclude>
</onlyinclude>
* Other important work: Priority vendor/user reported bugs, b2g/gaia, community growth, ecosystem support, telemetry, about:memory.


=== Perf ===
=== Perf ===
* {{ok|Bug 662444: exit(0) "immediate" shutdown prototype and a plan to land it}}
* {{ok|{{bug|662444}}: exit(0) "immediate" shutdown prototype and a plan to land it}}
* {{ok|Bug 686805: Incremental decompression for libxul on Android}}
* {{ok|{{bug|686805}}: Incremental decompression for libxul on Android}}
* {{ok|Telemetry support for addons}}
* {{ok|Telemetry support for addons}}
* {{ok|Move 2 sqlite dbs away from main thread}}
* {{ok|Move 2 sqlite dbs away from main thread}}
* {{ok|Assist necko team with new disk cache}}


=== Networking ===
=== Networking ===
<onlyinclude>
<onlyinclude>
* {{ok|Begin DASH implementation ({{bug|702122}}).}}
* {{done|Begin DASH implementation ({{bug|702122}}).}}
** Jason Duell and Steve Workman will lead this.
** Steve Workman will lead this.
* {{ok|Look into major disk/memory cache changes, start implementation for any major improvements we decide on.}}
** Development is well under way.
* {{done|Look into major disk/memory cache changes, start implementation for any major improvements we decide on.}}
** Michal Novotny and Nick Hurley will lead this.
** Michal Novotny and Nick Hurley will lead this.
* {{ok|Make a decision about including libunbound in Necko, and finish design plans if we decide to do it.}}
** We're starting with locking and synchronous API issues. Work has begun, patches are in review.
* {{done|Make a decision about including libunbound in Necko, and finish design plans if we decide to do it.}}
** Steve Workman will lead this.
** Steve Workman will lead this.
* {{ok|Land further pipelining improvements.}}
** Decision: We don't want to work on an libunbound solution in Q1, but we do want to do it. Putting it on the schedule for Q2.
* {{done|Land further pipelining improvements.}}
** Patrick McManus will lead this.
** Patrick McManus will lead this.
* {{ok| Get significant user testing for SPDY. For example - this could mean enabling it by default in a nightly for some period of time.}}
** 90%: Basically done but we don't want to land until Firefox 14 development starts.
* {{done| Get significant user testing for SPDY. For example - this could mean enabling it by default in a nightly for some period of time.}}
** Patrick McManus will lead this.
** Patrick McManus will lead this.
* {{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.}}
* {{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.
** 90% done. We have one remaining unresolved bug at the end of the quarter, {{bug|660749}}.
</onlyinclude>
</onlyinclude>



Latest revision as of 16:53, 25 April 2012

General Goals

GFX

  • [ON TRACK] Off Main Thread Compositing - on by default on Android for OpenGL layers
    • [ON TRACK] Async scrolling on mobile
    • [ON TRACK] Cross-thread texture sharing for WebGL
  • [ON TRACK] Azure for content testing & conversion
    • [ON TRACK] Cairo backend for Azure - on by default for canvas
    • [ON TRACK] Quartz backend for Azure - on by default for canvas
    • [ON TRACK] Skia backend for Azure - possible to be turned on by default for canvas
    • [ON TRACK] Azure-Direct2D content drawing - on by default
  • [ON TRACK] Snappy related profiling and fixing
  • [ON TRACK] Async NPAPI - Bitmap (software only) mode on by default
    • [ON TRACK] Stretch goal - Hardware accelerated mode
  • [ON TRACK] CSS 3 Font Spec Implementation
  • Other important Q1 work
    • Mobile Java Compositor replacement
    • Imagelib improvements
    • Adreno debugging
    • BugKill
    • Increase number of regular contributors
    • Windows 8 Metro investigation


Layout

  • [ON TRACK] Complete Mobile Font Inflation project for Fennec Beta
    • Code already enabled. Remaining bugs.
  • [CARRY OVER] Graphite Font system
    • Code is currently in M-C but pref'd off. Q1 remaining work to pref it on.
  • [ON TRACK] Invalidation via DisplayList Analysis(bug 539356)
  • [DONE] Refresh driver Invalidation / Asynchronous Painting (bug 598482)
  • [DONE] Font cache performance improvements (bug 703100)
  • [CARRY OVER] Continue SVG migration to DisplayList (Performance)
  • [ON TRACK] Implement CSS spec for flexbox
  • [ON TRACK] Add image visibility API (bug 689623)
  • [CARRY OVER] Continue View class removal (bug 337801)
  • [ON TRACK] Implement the auto value for the HTML dir attribute (bug 548206)


Video

  • [MISSED] Integrate libcubeb
  • [ON TRACK] Land basic MediaStreams support
  • [DONE] Demoable mobile codec
  • [MISSED] direct pushing of video frames to compositor thread for off-main-thread-compositing


DOM

  • [DONE] HTML5 parser based bookmark import
  • [DONE] HTML5 parser based HTML to plain text conversion
  • [DONE] Add support for the new mutation observer proposal (to replace DOM Mutation Event support eventually)
  • [MISSED] One compartment per global
    • 95% done. Still some new issues popping up here, so we were not able to push this across the line this quarter.
  • [DONE] Eliminate more uncollectable objects from the cycle collector graph
  • [DONE] New DOM bindings codegen infrastructure in place, enabled for XHR


WebAPI

  • [MISSED] Camera API!
  • [DONE] SMS landed. Might not have security model in place. Turned on for B2G
  • [MISSED] Have spec for how capability management in apps will work, plus a security model defined.
    • Last minute issues crept up here, couldn't get this done in time.
  • [DONE] Network API on android and one other platform
  • [DONE] Contacts API spec (spec proposal only, no implementation)
  • [MISSED] BrowserID implemented in Gecko
    • The browserID side of things are still in flux, hopefully finalizing DOM API the week of 3/19, but this whole thing won't be done this quarter.
  • [DONE] Note: Tentative! Media reading/storage API - spec is written, no implementation yet
  • [DONE] WebApp instalation API


JS

  • [DONE] Land incremental GC.
  • [DROPPED] Land JS stack tracing for profilers.
  • [DONE] Get IonMonkey running 10 benchmarks as fast as or faster than JM+TI.
  • [MISSED] Redo scope chains to improve perf and IonMonkey integration [bug 659577]
  • [MISSED] Finish properties/elements split
  • [MISSED] ES6: direct proxies [bug 703537]
  • [DONE] ES6: maps and sets
  • [DONE] ES6: for-of

Accessibility

  • [MISSED] Get Android Firefox uttering things in mozilla-central.
    • Good progress.
  • [MISSED] Make the Mac version a first tier for a11y by bringing it up in par with Windows and Linux [bug 733513].
    • Good progress.
  • [DROPPED] Improve accessible tree updating [bug 690417].
    • Dropped due to new priorities.
  • [DONE] Canvas accessibility prototype: build accessible subtree.
    • Completed prototype, refactored, and landed! [bug 495912].
  • Other important work: Priority vendor/user reported bugs, b2g/gaia, community growth, ecosystem support, telemetry, about:memory.

Perf

  • [ON TRACK] bug 662444: exit(0) "immediate" shutdown prototype and a plan to land it
  • [ON TRACK] bug 686805: Incremental decompression for libxul on Android
  • [ON TRACK] Telemetry support for addons
  • [ON TRACK] Move 2 sqlite dbs away from main thread
  • [ON TRACK] Assist necko team with new disk cache

Networking

  • [DONE] Begin DASH implementation (bug 702122).
    • Steve Workman will lead this.
    • Development is well under way.
  • [DONE] Look into major disk/memory cache changes, start implementation for any major improvements we decide on.
    • Michal Novotny and Nick Hurley will lead this.
    • We're starting with locking and synchronous API issues. Work has begun, patches are in review.
  • [DONE] Make a decision about including libunbound in Necko, and finish design plans if we decide to do it.
    • Steve Workman will lead this.
    • Decision: We don't want to work on an libunbound solution in Q1, but we do want to do it. Putting it on the schedule for Q2.
  • [DONE] Land further pipelining improvements.
    • Patrick McManus will lead this.
    • 90%: Basically done but we don't want to land until Firefox 14 development starts.
  • [DONE] Get significant user testing for SPDY. For example - this could mean enabling it by default in a nightly for some period of time.
    • Patrick McManus will lead this.
  • [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.
    • 90% done. We have one remaining unresolved bug at the end of the quarter, bug 660749.


Plugins

Mobile

B2G

Research