Platform/2010-Q2-Goals
From MozillaWiki
< Platform
Contents
General Goals
- [MISSED] [AND KICKING ASS!] Zero reproducible sg:crits.
- [DONE] Ship Lorentz final.
- [DONE] Multiprocess Jetpack Extensions in a milestone.
- [DONE] IndexDB implementation (partial) in an alpha.
- [MISSED] html5 parser on by default in a beta. Note: The beta was 7 days late, hence a miss. I (damons) don't think this should be taken the wrong way. We're just being accurate when marking hits and misses. The complete picture is considered when evaluating how we did for the quarter.
- [MISSED] Out of process plugins for the Mac on by default in beta. Note: Same as above.
- [MISSED] TBD% reduction in empty-xul-window gecko initialization time.
GFX
- Improve interactive performance by shipping, in a developer preview:
- [MISSED] Layers implementations based on OpenGL and OpenGL ES; and
- [MISSED] A layers implementation based on Direct3D 9; and
- [MISSED] Direct2D support, turned on for at least some subset of hardware. (This depends on RelEng - bug 549120!)
- [MISSED] Improve CSS3 font support by implementing Harfbuzz for simple scripts on Tier-1 platforms in a developer preview, and creating a CSS3 font test suite.
- (This is only a miss because we're only going to get Harfbuzz on OS X and Windows, not all Tier-1 platforms. We'll have everything else.)
Layout
- [ON TRACK] Improve responsiveness with hardware compositing. In retrospect, I'm not sure what this means. We have accelerated fullscreen video, but we don't have accelerated browser windows in general because it depends on the following two points. Retained layers does improve scrolling performance and 'smoothness' on many pages where we were slow before.
- [AT RISK] Retained layers on by default in an alpha. Basically done, trying to land it for beta, unclear if it will
- [MISSED] Integrated chrome/content rendering and child widget removal on trunk. Basically done, but probably won't land this quarter as we focus on the previous item
- [AT RISK] New CSS features on trunk, e.g. calc() or text-overflow. -Need a list here. unsure if calc() will make it
Video/Audio
- [DONE] Ship WebM support in an alpha/beta
Content
- [DONE] Improve long term web compatibility and code maintainability by landing the HTML5 parser.
- [DONE] Support e10s Fennec and Firefox by making Necko multi-process.
- [DONE] May 1st: Quantitative performance work plan (n% improvement on Dromaeo test x/y/z, etc) in place, and implementation(s) planned out for the remainder of Q2.
- Plan is as follows:
- [ON TRACK] Close the performance gap between Firefox and Google Chrome on the Zimbra test suite. This will mean that we'll speed up the "Cal_*" and "go to *" tests by 50% compared to 3.6. Zimbra is a big enough web app that we believe that bottlenecks seen there are visible in many other apps as well.
- [DONE] Dromaeo improvments, numbers coming shortly:
- [DONE] Do more fast unwrapping in quickstubs, should make more or less every test faster.
- [MISSED] Stay on trace through more code
- [MISSED] Speed up getAttribute()
- [DONE] Make setting innerHTML faster (depends on HTML5 parser)
- [DONE] Speed up getElementById()
- Plan is as follows:
- [MISSED] Stop polluting the web by disabling remote XUL and XBL.
JS
General Q2 Goals
- [DONE] Continue to improve responsiveness: GC
- [MISSED] ES5 complete
- [MISSED] browser overhead largely eliminated
JSD before May 1
- [DONE] design new JSD approach
JSD after May 1
- [DONE] May 1st: JSD design doc complete, and implementation schedule in place for the remainder of Q2 (and into Q3) https://wiki.mozilla.org/Platform/JSDebugv2
JM before May 1
- [MISSED] Critical JM components in place to assess performance
- [DONE] PIC
- [MISSED] new jsvals (switched from "dual stack layout" -- this took longer than we expected, so missed with good reason)
- [DONE] Minimize loads and stores of temporary values
JM after May 1
- [DONE] May 1st: JM phase 1 complete, quantitative performance goals and plan in place for remainder of q2 (going to call this done, since the plan is in place, even though phase 1 took too long)
- [MISSED] JM shippable conformance and stability, perhaps not yet fast enough
Accessibility
- [MISSED] Drive accessible editing on the web by finalizing our proposal and developing an implementation plan. (Lack of external participation + performance and security work took priority.
- [DONE] Create a talos measure appropriate for our meta a11y perf bug 531850. (Patch is on + we've used the measures locally for perf work.)
Multi-Process
- [ON TRACK] Final release of multi-process plugins on Windows/Linux.
- [ON TRACK] Beta release of multi-process Flash on Mac Snow Leopard, x86 and x86-64.
- [AT RISK] Beta release of multi-process Jetpacks: whatever work is necessary to enable 0.2 features to be multi-process, especially pagemods
- [AT RISK] Beta release of multi-process browsing on Fennec/Maemo Coordination with Mobile team needed.