Platform/2009-Q3-Goals

From MozillaWiki
Jump to navigation Jump to search

DO NOT EDIT THIS PAGE. FINAL GOALS STATUS IS BEING TRACKED INTERNALLY AND THIS PAGE WILL BE UPDATED ONCE COMPLETED.

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.
  • 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.
  • 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]