Platform/2010-Q1-Goals

< Platform
Revision as of 10:16, 24 March 2010 by Benjamin Smedberg (talk | contribs) (mp)

General Goals

  • [DONE] Ship 3.6.
  • [ON TRACK] Implement security model for JetPack and eliminate platform blockers to the implementation of Jetpack panels.
  • [MISSED] Complete out of process plugins for windows and deliver a beta version of OOPP for mac.
  • 25% Ts improvement on Windows.
  • [MISSED] Kill sg:crits less than equal to 20.
  • [MISSED] Implement Layers to enable more hardware acceleration.
  • Identify and fix key performance and capability issues for developer tools.
  • [DONE] Implement crash reporting for ARM.
  • Implement crash reporting for x86_64 Linux and Mac.
  • [ON TRACK] Enable -fomit-frame-pointer optimization on x86 Linux and Mac.

GFX

  • Performance
    • [MISSED] Implement the Gecko Layers API in software (Thebes) and at least one hardware implementation. Note: We have the software parts but we don't have a hardware implementation, and we need the retained layers implementation first.
      • I think this should count this as 90% done. The software layers API landed, we have D3D and OpenGL prototype hardware implementations, only the retained-layers layout integration is not yet done. [roc]
    • [MISSED] Implement full-screen, accelerated (YUV->RGB) video on top of the Gecko Layers API.
      • This should also count as nearly done. The infrastructure has landed except for the hardware backends, and and we have prototypes for those that work. [roc]
    • [DONE] Implement shared memory tile browsing, using Electrolysis, for Fennec.
    • [DONE] Improve out-of-process plugin performance.
    • [DONE] Continue to support the Electrolysis and startup time projects.
  • Font Feature Improvement
    • [MISSED] Add CSS parser support for additional OpenType-related font-variant properties
      • I guess this won't make it since AFAIK there's no patch yet. [roc]

Layout

  • [DONE] 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.
    • fantasai, bzbarsky and dbaron all did work here. [roc]
  • [MISSED] 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.
    • dbaron was absorbed by the :visited privacy bug. We did improve SVG animation a fair bit, but overall I'd say we didn't hit this. [roc]
  • [MISSED] Improve perceived and measured performance in SVG, bidi, reflow, and CSS.
    • We fixed the big hang loading the HTML5 spec. No progress in SVG or bidi. Might still land lazy frame construction in Q1. [roc]
  • [MISSED] Complete general product improvements like Layers to enable more hardware acceleration. See Gfx for concrete layers work items and status.

Video/Audio

  • [ON TRACK] Complete removing dependencies on unnecessary third-party libraries.
  • [MISSED] Hardware-accelerated video rendering in Gecko on all platforms with suitable graphics hardware (20+fps full-screen on N900). We won't get accelerated full-screen video on N900 mainly because an OpenGL layers backend won't be ready in time to support this. However, we do have 25fps full-screen video working in our test player, with ~50% CPU utilization.

Content

  • [MISSED] 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).
    • [MISSED] WebSockets has r+, but needs another review. Reviews may happen, but testing infrastructure for it is unlikely to be ready
    • [MISSED] HTML 5 parser code is likely to be done, and reviewed, but testing infrastructure is lagging behind and is unlikely to be ready by the end of the quarter.
    • [DONE] File API stuff is done.
  • [MISSED] 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.
    • [DONE] OOPP
    • [MISSED] HTTP across processes
    • [DONE] e10s event handling
  • [ON TRACK] Improve performance by eliminating more cycles between JIT generated code and our DOM code, and by speeding up our DOM implementation as well.
  • [MISSED] 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

  • [DONE] Continue to improve responsiveness: GC
  • Performance
    • [MISSED] reduce performance uniformity issues (slow on some kinds of code)
    • [MISSED] SunSpider / v8 perf improvements, another 30%.
    • [MISSED] jsval 64-bit representation - this allows better perf on win64 and snow leopard.
  • Improve Web Platform with new features:
    • [DONE] byte vectors for gfx and other uses - specialized ways to ship graphics data around.
    • Begin building out tool Support
      • [MISSED] Design JSD replacement
      • [MISSED] profiling support w/ JIT active
      • [MISSED] profiling hooks from JSExecute
      • [MISSED] heap profiling API
  • [DONE] 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

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

Multi-Process

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