Platform/2009-Q4-Goals

From MozillaWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

General Goals

  • Improve cold startup performance by 30% on windows and mac.
  • Deliver out of process plugins for windows.
  • Deliver SVG Animations.
  • Kill security bugs to under 30 again.
  • Reduce crashes to at least parity with pre-3.5.
  • ARM Support
    • Add testing infrastructure.
    • Implement crash reporting
  • Release Firefox 3.6.

GFX

  • Performance: specifically, responsiveness.
    • Create an automated responsiveness/interactivity benchmark.
    • Improve Gecko/Firefox's score on that benchmark substantially (at least 25%).
    • Support and/or participate in the startup time work being done by the Firefox group.
    • Participate in the Electrolysis project by adding support for windowless plugins on Windows.

Win Integration

  • Address any Win7 compatibility issues that show up

Layout

  • Improve the Web platform by contributing to tests and specifications
    • Publish CSS3 Selectors as CR [fantasai] (done) (backgrounds and borders CR done)
    • Ongoing development of reftest infrastructure for the W3C [fantasai, jwatt] (missed)
  • Improve the Web platform by implementing key features
    • Land Harfbuzz prototype integration in tree (allows for richer typographic control, also lays groundwork for performance improvements) [jfkthame] (mostly done, will miss landing)
    • Implement calc() (Web platform) [dbaron] Probably insufficient dbaron resources due to crashkill etc (missed)
    • Support CSS transitions/SVG animation on nearly all CSS values (browser parity) [dbaron, dholbert] (done)
    • Enable SVG Animation with shippable feature set (near-complete CSS property coverage, near-complete SVG attribute coverage, but not necessarily syncbase timing) (Acid3, browser parity) [dholbert, birtles, jwatt] (pathlist and lengthlist done this quarter, finishing off next quarter)
  • Improve perceived and measured performance
    • CSS scanner performance analysis and improvements (performance) [zwol] (delayed due to security work) (? maybe a patch end of next week)
    • Implement some kind of lazy frame construction [?] (tnikkel)
    • Compositor phase 2 --- paint and animation control (performance, also add JS animation API to the platform) [roc] Delayed in favour of layers work
    • Implement core layers infrastructure to allow for hardware and multithreaded acceleration [roc] (on track)
  • Improve core code architecture to improve stability/performance and reduce cost of future enhancements
    • Simplify frame destruction [fantasai] (waiting for review)
  • General product improvement
    • fix scroll position restoration and maintenance (bugs 43114 / 103279) [dbaron] (crashkill victim, also blocked on scroll refactoring)

Video/Audio

  • Video on ARM - Theora, 15fps on N900 full-screen [at risk due to hardware unavailability]
  • Remove dependency on libfishsound, liboggz, and liboggplay [doublec]
  • Experimental implementation of accelerated full-screen video using cairo-gl [kinetik] Obsolete due to layers plan

Mac OS X

  • Resolve Mac OS X Java situation for Firefox 3.6.
  • Fix any major regressions in 64-bit Mac OS X builds.
  • Complete initial performance analysis of 64-bit Mac OS X builds. Should include comparison with 32-bit builds on 10.6 for major benchmarks.
  • Fix all known regresssions in Cocoa NPAPI, make it ready to ship.

Content

  • Move the web forward by implementing more of HTML5
    • Get our HTML5 history API landed
    • Finish the off main thread parsing work
    • Speculative loading with the HTML5 parser
    • Evaluate what parts, if any, of HTML5 to implement next
    • Rewrite session history to be more like what's specified in HTML5
  • Electrolysis
    • Implement JPW (cross process JS wrappers)
    • Get HTTP GET working over IPC
    • Propose a cross process event handling plan
  • Improve performance
    • Non-blocking cache writes for page load landed
    • Staying on trace through same origin XOWs
    • Remove the XBL1 CSS based binding mechanism for non-displayed DOM nodes
    • Use our (almost) lock-free data structures for our main event queue
    • Optimize DOM child storage for performance
    • Minimize XPConnect wrapper morphing and the number of XPCOM tearoffs we create from JS
    • Improve DOM event handling performance
  • Move the plugin API forward

JS

  • ES5
    • Complete implementation
  • Tracing
    • trace more complex recursion
    • trace switch-statement style emulators
  • Performance
    • continue sunspider improvements (within 20% of Chrome 3 on Windows Vista)
    • improve v8 benchmark performance substantially (at least 2x vs. Oct1 trunk)
    • jsval 64-bit representation
  • jsctypes
    • Spec and implement a JS-facing API for handling pointers, structs, and arrays.

Accessibility

  • Event handling performance implementation (for DHTML)
    • Code reorganization
    • Implementation of throttling and/or delayed computation and/or smarter caching
    • Crashers
  • Fix keyboard support for HTML5 contentEditable
    • Add accessibility support for HTML controls inside of a contentEditable
  • Polish table/grid/treegrid accessibility
    • issues with some existing complex DHTML tables (e.g. dojo)
    • vendor reported issues

Multi-Process

  • Shippable multi-process Flash, windowed and windowless on Windows (and Linux)
  • Complete necko API revisions necessary to support multi-process networking
  • Usable prototype of Fennec running multi-process on Linux
  • Usable prototype of multi-process Flash on Mac OSX 10.6 (has external dependencies)
  • Completed gecko API changes necessary for multi-process session history and link targeting