Platform/2010-Q3-Goals
From MozillaWiki
< Platform
Contents
General Goals
- [DONE] Javascript performance near or even with Chrome 5 on their benchmarks (within 20% on SS, 30% on V8), with substantial wins on our benchmarks. (Windows, in-browser.)
- [DONE] Hardware acceleration of video and other HTML and SVG content, as well as user interface, on by default for compatible hardware on all Tier-1 desktop and mobile platforms.
- [DONE] Fully support the WebGL 1.0 spec, with support turned on by default in a Firefox 4 beta on platforms that support OpenGL or OpenGL ES.
- [MISSED] security: zero reproducible high/crit > 30 days
- [DONE] Support multi-process Fennec.
- [DONE] Support Jetpacks running in separate processes and never blocking the Fennec UI. NOTE: jetpack team hasn't actually integrated this code yet, but it works in small test environments.
GFX
- [MISSED] Accelerate Firefox's in-content video and other content primitives by shipping, in a Firefox 4 beta, layers acceleration for the full Firefox window, on by default for compatible hardware on all tier-1 platforms:
- [DONE] Windows: based on Direct3D 9 - Note: we did not ship beta 7 in this quarter (was ready at the beginning of September), but marking as hit,
- [DONE] Mac: based on OpenGL - Note: we did not ship beta 7 in this quarter (was ready late September),
- [DROPPED] Linux: based on OpenGL - explicitly dropped because of driver issues,
- [MISSED] Mobile: based on and OpenGL ES - because the work wasn't done.
- [DONE] Accelerate all drawing on Windows Vista and Windows 7, on compatible hardware, by shipping the Direct2D Cairo backend in a Firefox 4 beta.
- [MISSED] Enhance our OpenType font feature support by shipping Harfbuzz on by default in a Firefox 4 beta on all Tier-1 platforms, with text rendering performance equal to or better than Firefox 3.6.
- [DONE] Mac OS,
- [DONE] Windows - Note: we did not ship beta 7 in this quarter (was ready at the beginning of September),
- [MISSED] Linux - Some work is done but it won't be ready by end of quarter.
- [MISSED] Fully support the WebGL 1.0 spec, with support turned on by default in a Firefox 4 beta on platforms that support OpenGL or OpenGL ES.
- [MISSED] Stretch goal: Also support WebGL on Direct3D via ANGLE.
Layout
- [DONE] Land CSS3 calc()
- [DONE] Finish and land CSS Transitions
- [DONE] Land retained layers
- [DONE] Land content/chrome rendering integration (bug 130078)
- [DONE] Land CSS control of lowlevel font features
Video/Audio
- [DONE] Support 'buffered' attribute for all media types
- [ON TRACK] Set up performance test harness to track frame rates and other metrics (WIP; contact Chris Double to check status at end of Q3)
- [ON TRACK] Contribute activity masking to VP8 encoder (WIP; contact Tim Terriberry to check status at end of Q3)
Content
- [MISSED] Produce clear plans for accelerated windowless plugin rending on Windows and Linux (including mobile).
- [DONE] Be prepared to ship OOPP for Mac OS X.
- [MISSED] Eliminate enablePrivilege() ("UniversalXPConnect" etc).
- [MISSED] Close the performance gap between Firefox and Chrome on the "Click Preferences *" tests in the Zimbra performance test harness, 30+% speedup from end of Q2.
- [MISSED] Finish up indexGetter/Setter work for faster list[n] access in JS
- [DONE] Solidify a long term plan for the future of our DOM bindings (i.e. keep hacking on XPConnect or move over to proxies)
Privacy
- [DROPPED] Improve user privacy by reducing the ability of sites to fingerprint individual users, and improve user control and privacy of cookies.
JS
- Performance goals for reference system: Dell Optiplex 760 (Intel Core2 Duo) Windows Vista. Baseline: Chrome 5.0.375.55.
- [ON TRACK] SunSpider: 300-375ms.
- [AT RISK] V8 Score: 3500-5000.
- [DONE] JSNES: 60fps.
Accessibility
- [MISSED] Provide accessibility support for existing and new HTML5 input controls. [some progress, but we won't finish this q]
- [DONE] Reduce the a11y performance hit by at least 50% for tools that require only limited accessibility support. [for all tools]
- [MISSED] Improve/fix life cycle management of our (node and frame based) accessible objects. [only partial improvement]