Platform/2009-Q2-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Accessibility: Surkov reports all table/grid items are ontrack.)
Line 93: Line 93:


* Properly expose tables/treegrids/grids so that our users can use spreadsheets etc.
* Properly expose tables/treegrids/grids so that our users can use spreadsheets etc.
** Design accessible table implementation (nsIAccessibleTable?)
** '''[ontrack]''' Design accessible table implementation (nsIAccessibleTable?)
** Pure ARIA table/grid support {{bug|386813}}
** '''[ontrack]''' Pure ARIA table/grid support {{bug|386813}}
** Tree and Treegrid harmonization {{bug|367905}}
** '''[ontrack]''' Tree and Treegrid harmonization {{bug|367905}}
** provide suggested specification/BP for aria tables WRT level, size, posinset VS owns (UAI TF item)
** '''[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
* Improve ARIA 1.0 Support as it moves us towards full DHTML accessibility
** '''[ontrack]''' Target > 90% resolution of tracker {{bug|343213}}
** '''[ontrack]''' Target > 90% resolution of tracker {{bug|343213}}

Revision as of 00:36, 13 May 2009

General Goals

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

Layout

  • Improve security with architectural improvements to eliminate or reduce the severity of large classes of known and unknown bugs.
    • 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) [on-track]
  • Improve performance with architectural changes, spot fixing, and code cleanup.
    • 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. [on-track]
  • Perform general code cleanup to enhance the maintainability of our code.
    • Land major SVG cleanup (bug 435356 and others) (jwatt) [on-track]
  • 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)
    • 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"?] [no-progress]
    • Support SMIL Animation of CSS properties (bug 474049) (dholbert) [on-track]
  • Enhance the XUL platform by adding capabilities needed for planned front-end features.
    • Implement SVG images for CSS/HTML (needed for Dynamic Personas) (roc) Note: Improves Web Platform as well. [no-progress]
  • Continue advancing HTML5 video on the web.
    • Implement some significant remaining HTML5 video API features (e.g., 'poster' attribute, cue ranges, 'loop' attribute) (cpearce, doublec, kinetik) [no-progress]

GFX

  • Improve Thebes/Cairo, both in functionality and performance, to fulfill the requirements of layout and other teams. This is some set of:
    • Cairo Correctness/Capabilities
      • EXTEND_NONE/EXTEND_PAD madness
      • Support for advanced gradient effects (border-corner case)
    • Cairo Performance
      • Improved image scaling quality and performance
      • Win32 scanline rasterizer integration
      • Mobile performance improvements
    • Font rendering enhancements
      • Exposing Cairo user fonts for SVG Font usage
      • Improvements in large-family support across platforms
      • Direct harfbuzz integration
  • Prototype hardware acceleration on at least one platform, to demonstrate feasibility and evaluate potential performance gains from hardware accel.
    • Examine cross-process options for accelerated rendering
  • 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

  • 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 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.
  • Be prepared for Mac OS X 10.6. Release is months away.
    • Notify QA of seed releases.
    • Track any major regressions.

Content

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

JS

  • Performance advances
    • trace recursion, event handlers, other forms of looping. High performance execution on these forms of code is needed to remain competitive.
    • improved ARM performance. More efficient JS execution on mobile is possible, and our architecture should really pay off if we improve the generated assembly.
    • 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.
    • improve interpreter performance. Sometimes it just doesn'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.
  • Reduce user perceived pausing under heavy JS computation. This is easy to see in some JS animations, etc.
    • GC scalability
    • Create less garbage (doubles, strings, etc)
  • 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
    • cleaner, safer code -> moving from jschar* buffers to c++ vectors, f.e.

Accessibility

  • 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