Platform/2009-Q3-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''''DO NOT EDIT THIS PAGE.  FINAL GOALS STATUS IS BEING TRACKED INTERNALLY AND THIS PAGE WILL BE UPDATED ONCE COMPLETED.'''''
=== General Goals ===
=== General Goals ===


Line 31: Line 33:
** Crude implementation of SVG font support
** Crude implementation of SVG font support
* Image decode on demand/draw (bholley)
* Image decode on demand/draw (bholley)
* Win integration work (jimm)
 
** Improvements to parental controls support (blocked content management, extension manager support).
=== Win Integration ===
** Win7 specific
 
*** Taskbar drop lists support for Firefox and Thunderbird.
* Win7 integration
*** Support for tablet pc pen events.
** Taskbar tab previews (robarnold)
*** Touch input improvements (Prototype new gesture events for touch input rather than using mouse event simulations, smarter text selection logic, "big pointer" UI improvements?, implement smarter toggle zoom).
** Taskbar jump lists (jimm)
*** General: make sure new win7 features are covered (including tests!)
** 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 ===
=== Layout ===
* Keep working on CSS WG duties (dbaron, fantasai)
* Keep working on CSS WG duties (dbaron, fantasai) [ok]
* Improve web capabilites.
* Improve web capabilites.
** SVG/SMIL complete enough that we enable it by default (dholbert)  
** SVG/SMIL complete enough that we enable it by default (dholbert) [ok]
** Implement SVG/SMIL bug fixes and features (birtles)
** Implement SVG/SMIL bug fixes and features (birtles) [ok]
** Implement SVG images (roc)
** Implement SVG images (roc) [no progress, lower priority than other stuff; will miss]
** Land CSS Transitions (dbaron)
** Land CSS Transitions (dbaron) [ok]
** Harfbuzz text backend prototype in tree (jfkthame) ''Possible security and performance improvements as well''
** 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''
** 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)  
** 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''
** 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.
* Clean up and simplify code.
** Simplify GTK2 widget code (e.g. remove mozdrawingarea) (karlt)  
** Simplify GTK2 widget code (e.g. remove mozdrawingarea) (karlt) [done]
** Clean up some block layout code (remove float cache, remove float continuations) (fantasai)
** Clean up some block layout code (remove float cache, remove float continuations) (fantasai) [done]
* Improve responsiveness and performance.
* Improve responsiveness and performance.
** CSS rule matching performance improvements (zwol)
** CSS rule matching performance improvements (zwol)
* Improve security.
* Improve security.
** Implement dead-frame exploit mitigation (zwol)
** Implement dead-frame exploit mitigation (zwol) [ok]


=== Video/Audio ===
=== Video/Audio ===


* Rapidly resolve any critical issues uncovered by the Firefox 3.5 release (doublec, kinetik, cpearce)
* 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)
* Improve performance in some significant way (e.g., be able to drop frames without decoding them) (doublec, kinetik, cpearce) [ok]


=== Mac OS X ===
=== Mac OS X ===
Line 73: Line 79:
=== Content ===
=== Content ===
* Continue implementation of HTML5 parser.
* Continue implementation of HTML5 parser.
** Advertise the HTML5 parser's availability to testers to get more feedback.
** [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
** Off main thread HTML5 parsing as a prerequisite for turning HTML5 parsing on by default.
** [ON TRACK] Off main thread HTML5 parsing as a prerequisite for turning HTML5 parsing on by default.
** Propose a long term plan for the generated C++ in the HTML5 parser.
** [ON TRACK] Propose a long term plan for the generated C++ in the HTML5 parser.
* Make significant progress on XBL2.
* Make significant progress on XBL2.
** Attachment, detachment, through all three binding mechanisms.
** [AT RISK] Attachment, detachment, through all three binding mechanisms.
** Initial rendering of the shadow tree.
** [ON TRACK] Initial rendering of the shadow tree.
** Insertion points (<children>).
** [ON TRACK] Insertion points (<children>).
* Improve extension security and ease of development
* Improve extension security and ease of development
** Design and implement an way for JetPack to safely expose APIs to untrusted code.
** [ON TRACK] Design and implement an way for JetPack to safely expose APIs to untrusted code.
** Propose an API to add names to the global namespace from JS extensions.
** [ON TRACK] Propose an API to add names to the global namespace from JS extensions.
* Improve DOM performance.
* Improve DOM performance.
** 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.
** [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.
** Profile DOM performance problems beyond the JS to C++ bridge.
** [ON TRACK] Profile DOM performance problems beyond the JS to C++ bridge.
* Implement a prototype of multi-process networking.
* Implement a prototype of multi-process networking.
** Write a test application with a child process that does plain HTTP over IPC through necko in the main process.
** [ON TRACK] Write a test application with a child process that does plain HTTP over IPC through necko in the main process.


=== JS ===
=== JS ===
* Address VM perf issues
** Decrease object allocation overhead
** Decrease iteration overhead


* vm perf issues
* Tracing
** Increase the number of traced cases (more ops, fewer guards, etc).
** Turn on chrome jit.
** Trace recursion.


* tracing
* ES5 implementation
** improved traced cases
** Implement strict mode
** chrome jit
** Implement Object.defineProperty et al.
** Add its various other bits to the standard library.


* es5
* Decrease GC pausing, and improve GC performance.
** see [[JavaScript:SpiderMonkey:GC_Futures]]


* gc pausing
* Sync with adobe nanojit
** Change to their CodeAlloc


* sync with adobe nanojit
* Breakpad omit-frame-pointer
** Allow building with -fomit-frame-pointer for performance
** rewrite linux breakpad to handle dwarf cfi


=== Accessibility ===
=== Accessibility ===


* Complete (and harmonize) accessible exposure of XUL and content based tables and tree grids. (related tracker: {{bug|491681}})
* [at risk] Complete (and harmonize) accessible exposure of XUL and content based tables and tree grids. (related tracker: {{bug|491681}})
* Improve our text attribute support with respect to the IAccessible2 specification. (related tracker: {{bug|368895}})
* [at risk] Improve our text attribute support with respect to the IAccessible2 specification. (related tracker: {{bug|368895}})
* Update ARIA attribute support in accordance with browser implementation guide updates. (related tracker: {{bug|343213}})
* [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)
** Participate in the ARIA User Agent Implementation Task Force (UAI TF)
* Participate in the improvement of user keyboard interaction with HTML 5 media elements.
* [on track] Participate in the improvement of user keyboard interaction with HTML 5 media elements.
* Investigate improving user experience for heavily updating DHTML applications
* [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}})
** 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)
** performance: look at lowering our churn in response to DOM mutation (tree walking, event firing etc)
Line 117: Line 134:
=== Multi-Process ===
=== Multi-Process ===


* Working Flash plugin in a separate process, on Windows and Linux
* 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
* Multiprocess tab milestones
** Networking
** Networking [ON TRACK... jduell]
** Global history
** Global history [ON TRACK...sdwilsh]
** link targeting and session history navigation
** link targeting and session history navigation [??...bz]
* Write a line-item plan and schedule for the remaining pieces of phase 2
* Write a line-item plan and schedule for the remaining pieces of phase 2 [PENDING...bsmedberg]

Latest revision as of 20:52, 16 September 2009

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]