Platform/2010-Q1-Goals

From MozillaWiki
Jump to navigation Jump to search

General Goals

  • Ship 3.6.
  • Implement security model for JetPack and eliminate platform blockers to the implementation of Jetpack panels.
  • Complete out of process plugins for windows and deliver a beta version of OOPP for mac.
  • 25% Ts improvement on Windows.
  • Kill sg:crits to <= 20.
  • Implement Layers to enable more hardware acceleration.
  • Identify and fix key performance and capability issues for developer tools.
  • Implement crash reporting for ARM.

GFX

  • Performance
    • Implement the Gecko Layers API in software (Thebes) and at least one hardware implementation.
    • Implement full-screen, accelerated (YUV->RGB) video on top of the Gecko Layers API.
    • Implement shared memory tile browsing, using Electrolysis, for Fennec.
    • Improve out-of-process plugin performance.
    • Continue to support the Electrolysis and startup time projects.
  • Font Feature Improvement
    • Add CSS parser support for additional OpenType-related font-variant properties

Layout

  • Improve the Web platform by contributing to tests and specifications by publishing the CSS2.1 test suite RC and/or identifying advanced layout specs for the future of the web.
  • Improve the Web platform by implementing key features and correctness fixes to enable the use of SVG animation and more CSS3 features (Backgrounds, borders, or calc(), text-overflow, etc.) in the next release.
  • Improve perceived and measured performance in SVG, bidi, reflow, and CSS.
  • Complete general product improvements like Layers to enable more hardware acceleration.

Video/Audio

  • Complete removing dependencies on unnecessary third-party libraries.
  • Hardware-accelerated video rendering in Gecko on all platforms with suitable graphics hardware (20+fps full-screen on N900).

Content

  • Move the web forward by landing WebSockets, enabling the HTML 5 parser by default, and/or finishing more File spec API improvements (i.e., File.url).
  • Ship out of process plugins betas for windows and continue forward progress on full Electrolysis plans by getting basic HTTP working across processes and implementing multi-proc event handling.
  • Improve performance by eliminating more cycles between JIT generated code and our DOM code, and by speeding up out DOM implementation as well.
  • Investigate (and fix as needed) the impact of Firebug on Firefox performance and memory usage
    • Implement back-end functionality for allowing Firebug to hook into document load and unload to eliminate perceived performance problems with the use of Firebug.

JS

  • Continue to improve responsiveness: GC
  • Performance
    • reduce performance uniformity issues (slow on some kinds of code)
    • SunSpider / v8 perf improvements, another 30%.
    • jsval 64-bit representation - this allows better perf on win64 and snow leopard.
  • Improve Web Platform with new features:
    • byte vectors for gfx and other uses - specialized ways to ship graphics data around.
    • Begin building out tool Support
      • Design JSD replacement
      • profiling support w/ JIT active
      • profiling hooks from JSExecute
      • heap profiling API
  • Basic inline threading system. This should be able to run almost all programs with inline threading, be at least a little faster with the tracing jit on, and be no slower with the tracing jit off.

Accessibility

  • Drive web accessibility with HTML5 (+ARIA)
    • address changes to WAI-ARIA specification
    • resolve known WAI-ARIA and HTML5 conflicts
    • participate in canvas accessibility
    • participate in MathML and SVG accessibility
  • Gather information from web content more safely
    • Assist with creation of additional DOM API (reduce frame tree walking)
    • Reorganize event code
  • Drive accessible editing on the web
    • Get agreement on editor keyboard behavior.

Multi-Process

  • Release multiple betas of multi-process plugins (Windows/Linux)
    • stretch goal: release multi-process plugins
  • Release a beta of multi-process Flash (mac)
  • Make Fennec + Multi-Process fully functional (ready to measure and tune performance)
  • Integrate Multi-Process/Thread architecture into JetPack