Platform/2009-Q2-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(88 intermediate revisions by 14 users not shown)
Line 1: Line 1:
=== General Goals ===
=== General Goals ===


* Ship 1.9.1
'''DO NOT EDIT THIS PAGE.'''
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
 
* Ship Firefox 3.5
* Planning for 1.9.2 completed with clear work items prioritized and resources named.
* Planning for 1.9.2 completed with clear work items prioritized and resources named.
 
* DONE ! - Special Engineering team formed to determine multi-process strategy and begin implementation.
=== XPCOM+XPConnect ===


=== Layout ===
=== Layout ===
 
'''DO NOT EDIT THIS PAGE.'''
* [https://bugzilla.mozilla.org/show_bug.cgi?id=435356 bug 435356] and others - cleanup SVG code to use gfxMatrix/gfxRect etc internally instead of nsIDOMSVG types (code cleanup, performance)
This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.
* Remove SVG's SetMatrixPropagation (code cleanup)
* Improve security with architectural improvements to eliminate or reduce the severity of large classes of known and unknown bugs.
* jwatt to get into the SMIL code (not sure what reasonable goals are yet)
** [on-track] Implement protection against dangling frame pointers and measure its security and performance impact (may or may not enable for release builds, depending on performance) (zwol)  
* Frame GC of some sort (reduces attackable surface of layout)
* Improve performance with architectural changes, spot fixing, and code cleanup.
* Have a reasonable solution to {{bug|453827}}.
** [on-track] Implement hoisting of plugin widgets to the top level and removal of most existing content widgets (roc) Note: this also fixes bugs, cleans up code and paves the way for other improvements such as hardware-accelerated rendering.
* Fix at least 2 user-facing GTK widget issues.
* Perform general code cleanup to enhance the maintainability of our code.
* publish draft of flexible box model spec (dbaron)
** [on-track] Land major SVG cleanup ({{bug|435356}} and others) (jwatt)
* some functioning pieces of backend for web-developer-facing/user-facing memory tools (dbaron; not really Layout)
* Add capabilities to the Web platform and fix major bugs to increase its developer appeal vs non-open platforms (especially where we lag other browsers, so we're not the ones holding the Web back)
* significant progress on CSS Transitions implementation (dbaron)
** [no-progress] Publish draft of flexible box model spec (dbaron)  
* propose draft spec for font feature support in CSS (jdaggett, jfkthame)
** [no-progress] Propose draft spec for font feature support in CSS (jdaggett, jfkthame)
 
** [no-progress] Some functioning pieces of backend for web-developer-facing/user-facing memory tools (dbaron; not really Layout)  
=== Video/Audio ===
** [no-progress] Significant progress on CSS Transitions implementation (dbaron) [roc: can we be more specific, like "working CSS Transitions demo"?]
* Implement video 'poster' attribute.
** Support SMIL Animation of CSS properties ({{bug|474049}}) (dholbert) [on-track]
* Enhance the XUL platform by adding capabilities needed for planned front-end features.
** [no-progress] Implement SVG images for CSS/HTML (needed for Dynamic Personas) (roc) Note: Improves Web Platform as well.
* Continue advancing HTML5 video on the web.
** [no-progress] Implement some significant remaining HTML5 video API features (e.g., 'poster' attribute, cue ranges, 'loop' attribute) (cpearce, doublec, kinetik)


=== GFX  ===
=== GFX  ===
 
'''DO NOT EDIT THIS PAGE.'''
* get Harfbuzz into the tree [https://bugzilla.mozilla.org/show_bug.cgi?id=449292 bug 449292]
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
* handle large font families (>4 styles) on Windows properly [https://bugzilla.mozilla.org/show_bug.cgi?id=454514 bug 454514]
* Improve Thebes/Cairo, both in functionality and performance, to fulfill the requirements of layout and other teams.  This is some set of:
** '''at-risk''' Cairo Correctness/Capabilities
*** '''at-risk''' EXTEND_NONE/EXTEND_PAD madness
*** '''no-progress''' Support for advanced gradient effects (border-corner case)  
**'''on-track'''  Cairo Performance
*** '''on-track''' Improved image scaling quality and performance
*** '''on-track''' Win32 scanline rasterizer integration 
*** '''done/continuous''' Mobile performance improvements 
** '''on-track''' Font rendering enhancements
*** '''on-track''' Exposing Cairo user fonts for SVG Font usage
*** Improvements in large-family support across platforms
*** '''at-risk''' Direct harfbuzz integration
* '''on-track'''  Prototype hardware acceleration on at least one platform, to demonstrate feasibility and evaluate potential performance gains from hardware accel.  
** '''on-track''' Examine cross-process options for accelerated rendering
* '''on-track''' Integrate Canvas 3D (or its successor) into trunk, to allow for faster iteration, closer integration with JS, video, etc., and improved performance through tracing


=== Mac OS X ===
=== Mac OS X ===
 
'''DO NOT EDIT THIS PAGE.'''
* Implement the [https://wiki.mozilla.org/Mac:NPAPI_Event_Models Cocoa NPAPI event model].
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
* Port at least one more major component to 64-bit Mac OS X (e.g. XPCOM, printing, plugins, GFX/fonts).
* [AT RISK] Modernize NPAPI on Mac OS X: use plugin events that match up with modern Cocoa events, simplify plugin development by using modern events/APIs, allow for 64-bit plugins.
* Continue Mac OS X 10.6 seed testing and track any major regressions.
** Implement the [https://wiki.mozilla.org/Mac:NPAPI_Event_Models Cocoa NPAPI event model].
*** Implementation is pretty far along, now waiting on Neil Deakin's focus patch ({{bug|178324}}).
*** At risk because above focus patch still hasn't landed.
* [ON TRACK] Continue 64-bit preparation. 64-bit applications are status quo in Mac OS X 10.6, we should be prepared to offer a 64-bit Mac OS X Gecko 1.9.2 binary if we need to.
** Finish XPCOM port.
** Finish Cocoa NPAPI event model.
*** Made quite a bit of progress on 64-bit this quarter.
* [ON TRACK] Be prepared for Mac OS X 10.6. Release is months away.
** Notify QA of seed releases.
** Track any major regressions.


=== Content ===
=== Content ===
'''DO NOT EDIT THIS PAGE.'''
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
* '''on-track''' Determine the strategy to improve overall stability of the browser by running plugins out of process and implement one or more elements of that strategy.
** '''on-track''' Public discussion to determine strategy.
** '''on-track''' Have a public discussion on how to share graphics contexts between processes.
** '''on-track''' Implement and test an IPC mechanism for out of process plugins.
* '''on-track''' Improve DOM Performance
** '''on-track''' Finish staying on trace while calling into the DOM.
** '''on-track''' Finish slimwrapper work ({{bug|slimwrapper}})
** '''on-track''' Ideally, begin profiling the DOM beyond the JS to C++ bridge.
* '''on-track''' XBL1 has architectural problems and our implementation is unsafe and unmaintainable. We need to begin our XBL2 implementation.
** '''on-track''' Document implementation strategy for XBL2 attachment, detachment, and shadow tree.
** '''on-track''' Implement attachment, detachment, and initial rendering of the shadow tree.
* '''on-track''' Determine strategy to improve responsiveness of the browser on multicore machines.
** '''on-track''' Publicly discuss off main thread HTML parsing approach.
** '''on-track''' Incorporate what we learned from our OMTP prototype into the HTML5 parser.
** '''on-track''' Propose an off main thread network IO implementation
* '''on-track''' Implement HTML5 to move the web forward and make HTML more interoperable.
** '''on-track''' Fix HTML5 implementation so that it passes our functional tests.
** '''on-track''' Land our current HTML5 implementation in mozilla-central pref'd off and begin testing with public consumption.
** '''on-track''' Get feedback on how web compatible HTML5 is, and how developer friendly it is.


=== JS ===
=== JS ===
'''DO NOT EDIT THIS PAGE.'''
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
* Performance advances
**  [on-track] trace recursion, event handlers, other forms of looping. High performance execution on these forms of code is needed to remain competitive.
** [on-track] improved ARM performance. More efficient JS execution on mobile is possible, and our architecture should really pay off if we improve the generated assembly.
** [at-risk] nanojit compilation speed improvements. We sometimes pay a heavier than necessary cost when compiling to native code, turning what should be 4x improvement into a 2x improvement, for example. n't pay to trace, for code that never executes twice. We need to speed up our interpreter by generating a more efficient dispatch loop and making other organizational changes to pieces of SpiderMonkey's architecture that are with us from previous releases.
** [on-track] chrome jit
* Reduce user perceived pausing under heavy JS computation. This is easy to see in some JS animations, etc.
** [at-risk] GC scalability
** [at-risk] Create less garbage (doubles, strings, etc)


=== Build System ===
* [on-track] ES 3.1 major features in testing, including Object.defineProperty et al, strict mode. Need to keep up with IE, etc on standards.
 
* Improve SpiderMonkey maintainability
=== Static Analysis ===
** [on-track] cleaner, safer code -> moving from jschar* buffers to c++ vectors, f.e.
* Have treehydra work with an unpatched GCC: Port Treehydra to the official plugin GCC API, land required GCC changes on a gcc trunk/branch


=== Accessibility ===
=== Accessibility ===
 
'''DO NOT EDIT THIS PAGE.'''
(under construction -- looks like too much for 1 quarter)
This page is now locked down.  We will be tracking the progress of these goals internally and will publish the results once completed.
 
* Properly expose tables/treegrids/grids so that our users can use spreadsheets etc.
* Fix text support of AT APIs
** '''[ontrack]''' Design accessible table implementation (nsIAccessibleTable?)
** Expand tests for nsIAccessibleText and fix bugs as discovered. This will have high impact on the screen reader user experience.
** '''[ontrack]''' Pure ARIA table/grid support {{bug|386813}}
** ATK text offsets bug [http://bugzilla.gnome.org/show_bug.cgi?id=551489 gnome-551489] dependency on GNOME involvement.
** '''[ontrack]''' Tree and Treegrid harmonization {{bug|367905}}
* ARIA 1.0 compliance:
** '''[ontrack]''' provide suggested specification/BP for aria tables WRT level, size, posinset VS owns (UAI TF item)
** Fix fix live region updates that leak through from currently invisible tab panels [https://bugzilla.mozilla.org/show_bug.cgi?id=444644 444644]
* Improve ARIA 1.0 Support as it moves us towards full DHTML accessibility
** Aim for 90% resolution of tracker [https://bugzilla.mozilla.org/show_bug.cgi?id=343213 343213]
** '''[ontrack]''' Target > 90% resolution of tracker {{bug|343213}}
** Seek resolution for mutation RFE [https://bugzilla.mozilla.org/show_bug.cgi?id=467144 467144] directly or through something like [http://www.w3.org/Bugs/Public/show_bug.cgi?id=6653 W3C issue]. Dependency on agreement with other user agent devs.
** '''[ontrack]''' Hidden live region updates {{bug|444644}}
* Accessible Table refactor
** '''[ontrack]''' Assignments in ARIA User Agent Implementation Task Force, [http://www.w3.org/WAI/PF/aria-ua-task-force UAI TF], and PFWG ARIA subteam
** Design accessible table implementation (nsIAccessibleTable?)
** '''[ontrack]''' Seek solution for aria mutations {{bug|467144}} or [http://www.w3.org/Bugs/Public/show_bug.cgi?id=6653 W3C issue]
** [https://bugzilla.mozilla.org/show_bug.cgi?id=386813 386813]
* Tree grid and grid support:
** [https://bugzilla.mozilla.org/show_bug.cgi?id=367905 367905]
** Implement row accessibles for html:tr elements so they're always created, and test with ATs to see what impact it has.
** provide suggested specification for: aria tables: level, size, posinset VS own (and what if on html table elements) [aapi]
* Mac Accessibility Performance
** Caching bug [https://bugzilla.mozilla.org/show_bug.cgi?id=455443 bug 455443]
* ARIA action improvements
** multiple action support (possibly bit flags)
** nsIAccessibleAction?

Latest revision as of 23:54, 27 May 2009

General Goals

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • Ship Firefox 3.5
  • Planning for 1.9.2 completed with clear work items prioritized and resources named.
  • DONE ! - Special Engineering team formed to determine multi-process strategy and begin implementation.

Layout

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • Improve security with architectural improvements to eliminate or reduce the severity of large classes of known and unknown bugs.
    • [on-track] Implement protection against dangling frame pointers and measure its security and performance impact (may or may not enable for release builds, depending on performance) (zwol)
  • Improve performance with architectural changes, spot fixing, and code cleanup.
    • [on-track] Implement hoisting of plugin widgets to the top level and removal of most existing content widgets (roc) Note: this also fixes bugs, cleans up code and paves the way for other improvements such as hardware-accelerated rendering.
  • Perform general code cleanup to enhance the maintainability of our code.
    • [on-track] Land major SVG cleanup (bug 435356 and others) (jwatt)
  • Add capabilities to the Web platform and fix major bugs to increase its developer appeal vs non-open platforms (especially where we lag other browsers, so we're not the ones holding the Web back)
    • [no-progress] Publish draft of flexible box model spec (dbaron)
    • [no-progress] Propose draft spec for font feature support in CSS (jdaggett, jfkthame)
    • [no-progress] Some functioning pieces of backend for web-developer-facing/user-facing memory tools (dbaron; not really Layout)
    • [no-progress] Significant progress on CSS Transitions implementation (dbaron) [roc: can we be more specific, like "working CSS Transitions demo"?]
    • Support SMIL Animation of CSS properties (bug 474049) (dholbert) [on-track]
  • Enhance the XUL platform by adding capabilities needed for planned front-end features.
    • [no-progress] Implement SVG images for CSS/HTML (needed for Dynamic Personas) (roc) Note: Improves Web Platform as well.
  • Continue advancing HTML5 video on the web.
    • [no-progress] Implement some significant remaining HTML5 video API features (e.g., 'poster' attribute, cue ranges, 'loop' attribute) (cpearce, doublec, kinetik)

GFX

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • Improve Thebes/Cairo, both in functionality and performance, to fulfill the requirements of layout and other teams. This is some set of:
    • at-risk Cairo Correctness/Capabilities
      • at-risk EXTEND_NONE/EXTEND_PAD madness
      • no-progress Support for advanced gradient effects (border-corner case)
    • on-track Cairo Performance
      • on-track Improved image scaling quality and performance
      • on-track Win32 scanline rasterizer integration
      • done/continuous Mobile performance improvements
    • on-track Font rendering enhancements
      • on-track Exposing Cairo user fonts for SVG Font usage
      • Improvements in large-family support across platforms
      • at-risk Direct harfbuzz integration
  • on-track Prototype hardware acceleration on at least one platform, to demonstrate feasibility and evaluate potential performance gains from hardware accel.
    • on-track Examine cross-process options for accelerated rendering
  • on-track Integrate Canvas 3D (or its successor) into trunk, to allow for faster iteration, closer integration with JS, video, etc., and improved performance through tracing

Mac OS X

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • [AT RISK] Modernize NPAPI on Mac OS X: use plugin events that match up with modern Cocoa events, simplify plugin development by using modern events/APIs, allow for 64-bit plugins.
    • Implement the Cocoa NPAPI event model.
      • Implementation is pretty far along, now waiting on Neil Deakin's focus patch (bug 178324).
      • At risk because above focus patch still hasn't landed.
  • [ON TRACK] Continue 64-bit preparation. 64-bit applications are status quo in Mac OS X 10.6, we should be prepared to offer a 64-bit Mac OS X Gecko 1.9.2 binary if we need to.
    • Finish XPCOM port.
    • Finish Cocoa NPAPI event model.
      • Made quite a bit of progress on 64-bit this quarter.
  • [ON TRACK] Be prepared for Mac OS X 10.6. Release is months away.
    • Notify QA of seed releases.
    • Track any major regressions.

Content

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • on-track Determine the strategy to improve overall stability of the browser by running plugins out of process and implement one or more elements of that strategy.
    • on-track Public discussion to determine strategy.
    • on-track Have a public discussion on how to share graphics contexts between processes.
    • on-track Implement and test an IPC mechanism for out of process plugins.
  • on-track Improve DOM Performance
    • on-track Finish staying on trace while calling into the DOM.
    • on-track Finish slimwrapper work (bug slimwrapper)
    • on-track Ideally, begin profiling the DOM beyond the JS to C++ bridge.
  • on-track XBL1 has architectural problems and our implementation is unsafe and unmaintainable. We need to begin our XBL2 implementation.
    • on-track Document implementation strategy for XBL2 attachment, detachment, and shadow tree.
    • on-track Implement attachment, detachment, and initial rendering of the shadow tree.
  • on-track Determine strategy to improve responsiveness of the browser on multicore machines.
    • on-track Publicly discuss off main thread HTML parsing approach.
    • on-track Incorporate what we learned from our OMTP prototype into the HTML5 parser.
    • on-track Propose an off main thread network IO implementation
  • on-track Implement HTML5 to move the web forward and make HTML more interoperable.
    • on-track Fix HTML5 implementation so that it passes our functional tests.
    • on-track Land our current HTML5 implementation in mozilla-central pref'd off and begin testing with public consumption.
    • on-track Get feedback on how web compatible HTML5 is, and how developer friendly it is.

JS

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • Performance advances
    • [on-track] trace recursion, event handlers, other forms of looping. High performance execution on these forms of code is needed to remain competitive.
    • [on-track] improved ARM performance. More efficient JS execution on mobile is possible, and our architecture should really pay off if we improve the generated assembly.
    • [at-risk] nanojit compilation speed improvements. We sometimes pay a heavier than necessary cost when compiling to native code, turning what should be 4x improvement into a 2x improvement, for example. n't pay to trace, for code that never executes twice. We need to speed up our interpreter by generating a more efficient dispatch loop and making other organizational changes to pieces of SpiderMonkey's architecture that are with us from previous releases.
    • [on-track] chrome jit
  • Reduce user perceived pausing under heavy JS computation. This is easy to see in some JS animations, etc.
    • [at-risk] GC scalability
    • [at-risk] Create less garbage (doubles, strings, etc)
  • [on-track] ES 3.1 major features in testing, including Object.defineProperty et al, strict mode. Need to keep up with IE, etc on standards.
  • Improve SpiderMonkey maintainability
    • [on-track] cleaner, safer code -> moving from jschar* buffers to c++ vectors, f.e.

Accessibility

DO NOT EDIT THIS PAGE. This page is now locked down. We will be tracking the progress of these goals internally and will publish the results once completed.

  • Properly expose tables/treegrids/grids so that our users can use spreadsheets etc.
    • [ontrack] Design accessible table implementation (nsIAccessibleTable?)
    • [ontrack] Pure ARIA table/grid support bug 386813
    • [ontrack] Tree and Treegrid harmonization bug 367905
    • [ontrack] provide suggested specification/BP for aria tables WRT level, size, posinset VS owns (UAI TF item)
  • Improve ARIA 1.0 Support as it moves us towards full DHTML accessibility
    • [ontrack] Target > 90% resolution of tracker bug 343213
    • [ontrack] Hidden live region updates bug 444644
    • [ontrack] Assignments in ARIA User Agent Implementation Task Force, UAI TF, and PFWG ARIA subteam
    • [ontrack] Seek solution for aria mutations bug 467144 or W3C issue