Platform/2009-Q3-Goals
From MozillaWiki
< Platform
DO NOT EDIT THIS PAGE. FINAL GOALS STATUS IS BEING TRACKED INTERNALLY AND THIS PAGE WILL BE UPDATED ONCE COMPLETED.
Contents
General Goals
- Improve product responsiveness.
- Drive towards process separation.
- Improve web capabilities.
- Support Firefox 3.5.1 by driving, implementing, and fixing web platform features that are required.
GFX
- Research multiprocess graphics issues.
- Support & participate in Mozilla Electrolysis project. (joe)
- Resolve how to accomplish hardware accelerated graphics in a multiprocess, sandboxed world. (joe)
- (maybe) Prototype multiprocess hardware acceleration. (joe)
- Measure and decide how font metrics caches will work in multiprocess (startup time and memory usage) (joe)
- Continue hardware acceleration work.
- Continue work on prototype hardware acceleration to extend it to two platforms total. (joe)
- Above notes for hardware accelerated graphics in multiprocess & sandboxed world.
- Improve Cairo software rendering performance. Possibly includes: (jrmuizel)
- stroke_to_path
- perf improvements for glyph rendering
- image scaling performance improvements
- other things that are slow in cairo that people need sped up (suggestions please!)
- Improve cairo capabilities. (jrmuizel)
- high quality downscaling
- develop a plan to resolve image drawing/EXTEND_PAD mess
- need Source clipping? (would improve efficiency of border-image, see current nsIImage::Extract() hack) (need some numbers...)
- (not-likely) Supersampling to eliminate curve seams? see bug 466572
- Font system enhancements (jdaggett)
- Refine font feature support spec with prototype implementation
- Implement support for unicode-range descriptor
- Crude implementation of SVG font support
- Image decode on demand/draw (bholley)
Win Integration
- Win7 integration
- Taskbar tab previews (robarnold)
- Taskbar jump lists (jimm)
- Taskbar download progress (sid0)
- Touch input support improvements (smarter text selection logic, "big pointer" UI improvements, better toggle zoom, flicks events) (felipe)
- General: make sure win7 integration is complete.
- Windows integration
- Improvements to parental controls UI support (blocked content UI support, extension manager UI support).
Layout
- Keep working on CSS WG duties (dbaron, fantasai) [ok]
- Improve web capabilites.
- SVG/SMIL complete enough that we enable it by default (dholbert) [ok]
- Implement SVG/SMIL bug fixes and features (birtles) [ok]
- Implement SVG images (roc) [no progress, lower priority than other stuff; will miss]
- Land CSS Transitions (dbaron) [ok]
- Harfbuzz text backend prototype in tree (jfkthame) Possible security and performance improvements as well [ok]
- Animation control via compositor, including JS animation API (roc) Performance improvement, front-end assistance [no progress, at risk due to ongoing 1.9.2 blocker fixing, fixing Mac gradient bugs, scrolling optimizations for mobile; will miss]
- An implementation of SVG pointer-events for HTML (jwatt) [ok]
- Get some of our tests into the official SVG test suite in a reftest-like format (jwatt) Good for SVG, should help us do better in comparisons [?]
- Clean up and simplify code.
- Simplify GTK2 widget code (e.g. remove mozdrawingarea) (karlt) [done]
- Clean up some block layout code (remove float cache, remove float continuations) (fantasai) [done]
- Improve responsiveness and performance.
- CSS rule matching performance improvements (zwol)
- Improve security.
- Implement dead-frame exploit mitigation (zwol) [ok]
Video/Audio
- Rapidly resolve any critical issues uncovered by the Firefox 3.5 release (doublec, kinetik, cpearce) [ok, there really haven't been any]
- Improve performance in some significant way (e.g., be able to drop frames without decoding them) (doublec, kinetik, cpearce) [ok]
Mac OS X
- Complete 64-bit Mac OS X port that runs on Mac OS X 10.6, bug 468509.
- Complete NPAPI Cocoa event model implementation, bug 435041.
- Be prepared for Mac OS X 10.6 on all branches.
- Notify QA of seed releases.
- Track any major regressions.
Content
- Continue implementation of HTML5 parser.
- [DONE] Advertise the HTML5 parser's availability to testers to get more feedback. -- http://hsivonen.iki.fi/test-html5-parsing/ and http://blog.whatwg.org/test-html5-parsing
- [ON TRACK] Off main thread HTML5 parsing as a prerequisite for turning HTML5 parsing on by default.
- [ON TRACK] Propose a long term plan for the generated C++ in the HTML5 parser.
- Make significant progress on XBL2.
- [AT RISK] Attachment, detachment, through all three binding mechanisms.
- [ON TRACK] Initial rendering of the shadow tree.
- [ON TRACK] Insertion points (<children>).
- Improve extension security and ease of development
- [ON TRACK] Design and implement an way for JetPack to safely expose APIs to untrusted code.
- [ON TRACK] Propose an API to add names to the global namespace from JS extensions.
- Improve DOM performance.
- [AT RISK] Evaluate the feasibility of proposals such as IndexOf() redesign (per bz's proposal in mozilla.dev.tech.dom) and changing DOM node child list storage from array to linked list or maybe B-tree with backpointers from DOM-nodes to B-tree nodes.
- [ON TRACK] Profile DOM performance problems beyond the JS to C++ bridge.
- Implement a prototype of multi-process networking.
- [ON TRACK] Write a test application with a child process that does plain HTTP over IPC through necko in the main process.
JS
- Address VM perf issues
- Decrease object allocation overhead
- Decrease iteration overhead
- Tracing
- Increase the number of traced cases (more ops, fewer guards, etc).
- Turn on chrome jit.
- Trace recursion.
- ES5 implementation
- Implement strict mode
- Implement Object.defineProperty et al.
- Add its various other bits to the standard library.
- Decrease GC pausing, and improve GC performance.
- Sync with adobe nanojit
- Change to their CodeAlloc
- Breakpad omit-frame-pointer
- Allow building with -fomit-frame-pointer for performance
- rewrite linux breakpad to handle dwarf cfi
Accessibility
- [at risk] Complete (and harmonize) accessible exposure of XUL and content based tables and tree grids. (related tracker: bug 491681)
- [at risk] Improve our text attribute support with respect to the IAccessible2 specification. (related tracker: bug 368895)
- [on track] Update ARIA attribute support in accordance with browser implementation guide updates. (related tracker: bug 343213)
- Participate in the ARIA User Agent Implementation Task Force (UAI TF)
- [on track] Participate in the improvement of user keyboard interaction with HTML 5 media elements.
- [on track] Investigate improving user experience for heavily updating DHTML applications
- analysis of what we currently do with a highly mutating dom. (e.g. bug 500240)
- performance: look at lowering our churn in response to DOM mutation (tree walking, event firing etc)
- stability and correctness: identify how to make our interrogation of content and layout more sensitive ("safe times").
Multi-Process
- Working Flash plugin in a separate process, on Windows and Linux bug 478976
- windows plugins [ON TRACK]
- windowless plugins [AT RISK-need graphics guru]
- Multiprocess tab milestones
- Networking [ON TRACK... jduell]
- Global history [ON TRACK...sdwilsh]
- link targeting and session history navigation [??...bz]
- Write a line-item plan and schedule for the remaining pieces of phase 2 [PENDING...bsmedberg]