Platform/2009-Q2-Goals

From MozillaWiki
Jump to: navigation, search

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