Platform/2009-Q1-Goals

< Platform
Revision as of 00:40, 18 February 2009 by Josh (talk | contribs) (→‎Mac OS X)

General Goals

  • Ship two major milestones of 1.9.1
  • Finalize key work items for 1.9.2.

XPCOM+XPConnect

Layout

  • Ship 1.9.1 with no regression blockers unfixed and a reasonable subset of the current fuzz-blockers fixed
  • Compositor well under way (some preliminary patches landed)
    • For 1.9.2: Improve handling of complex DHTML pages containing plug-ins (especially Flash); at present Firefox is said to be "worse than IE6" at this (that's a direct quote).
      • Poor behavior in this area makes it harder for web developers to reduce their use of Flash, because they pretty much have to have everything in Flash or everything in DHTML, not a mixture.
      • roc's compositor will help, but may not be enough by itself.
      • Some of the bugs in this area, in no particular order: 457384 (and its close relatives 334321 and 253474), 90268, 421866, 78414, 312920/347185, 452448.
  • One or more major layout architecture projects code-complete (e.g. overflow area refactoring)
  • Core SMIL landed, not yet enabled
  • Style system support for either CSS transitions or SMIL animation of CSS written, if not landed (both done for 1.9.2)
  • Some major new CSS features landed (e.g., multiple backgrounds, SVG images)
  • Interruptible reflow 67752
  • Keep on pluggin' on the remaining CSS 2.1 missing features (do we have a list?)

Video/Audio

  • Ship the current feature set in 1.9.1 with reasonable stability and performance

GFX

  • 1.9.x
    • (partial carryover) Plan and initial prototype of 3d-accelerated cairo on at least one platform
    • (partial carryover) Expose at least 3 graphics or text related features to web developers
      • e.g. OpenType features, gradients through CSS, compositing, etc.
    • Significantly improve Cairo software rendering peformance for complex graphics on both x86 and ARM
    • (?) Continue to unify text frameworks across platforms; plan for cross-platform Harfbuzz integration
  • 3D
    • Public OpenGL ES for HTML spec
    • Extension available for 3.1 beta (and final, if released)
    • (needs evang assistance) At least one compelling demo that takes advantage of OpenGL on the web
      • (stretch, some parts out of our control) Demonstrate 3D capabilities on mobile
  • Testing
    • Ensure adequate performance testing coverage of graphics features provided by Thebes and Gecko

Mac OS X

  • Stay on top of Gecko 1.9.1 blockers, be prepared to ship Firefox 3.1 in line with other groups.
    • On track
  • Perform basic tests on Mac OS X 10.6. File bugs on any critical issues.
    • Completed, QA and Mac OS X developers have been testing on 10.6 and filing bugs.
  • Continue making progress on 64-bit Mac OS X port. Get JS compiling and do the work necessary to port at least one other significant outstanding problem component (e.g. XPCOM I/O, MoreFilesX, printing, AppleScript, plugins, cursors).
    • Completed. JS, MoreFilesX, cursors, and almost all of XPCOM have been finished.
  • Complete specification for plugin event handling which will allow plugins to not eat events they don't handle (bug 78414).
    • On track but not near completion.
  • For 1.9.2, replace use of (deprecated) ATSUI APIs with CoreText when running on 10.5 and later 389074.
    • On track, patch in review.

Content

  • Assist with shipping Firefox 3.1. (all)
  • Further improved DOM performance (i.e. dromaeo). (peterv)
  • Get an off-main thread HTML parser up n' running. (bnewman)
  • Actually start working on XBL2. (sicking)
  • Finish up the remainder of our Web Workers implementation (excluding shared workers), bugs 466254, 468665. (bent)
  • Investigate the feasibility of sharing out of process plugin code with Chromium. (bent, kinetik)
  • Make significant progress on HTML5 parsing. (hsivonen)
  • Figure out how to make it safe for extensions to define arbitrary properties on unsafe objects (i.e. add something like XPCUnsafeJSObjectWrapper), bug 464527. (mrbkap)
  • Sanitize the interaction between evalInSandbox() and various wrappers. (mrbkap)
  • Start speculatively loading images and style sheets, 457809, 457810. (mrbkap)

JS

  • ship tracer in Fx3.1
  • recursion in the tracer (gal dvander)
  • ICC (finally!!!) https://bugzilla.mozilla.org/show_bug.cgi?id=472952 (building 3.2 - mac, know windows benefit)
  • ES 3.1 planned, with big progress (significant meta hooks)
  • Analysis of GC shortcomings (dmandelin)
  • Continued performance improvements (sunspider, v8 bench, real world cases, dromaeo)
  • progress on inline/context threaded interpreter (using nanojit?) (step 1 = make jsop cases functions so they can be called reliably and on Windows)
  • caching eval, run eval without re-entering the interp, trace eval
  • read-only code pages (q1)
  • significantly improve OS X valgrind quality using measurements from njn's blog
  • work with intel on backend optimization

Build System

  • Fix things so we can run tests on prepackaged builds bug 421611
  • Squeeze some more speed out of the Windows build

Static Analysis

  • Document Treehydra and abstract interpretation (ESP) libraries.
  • Get a type-based call graph for Mozilla in a conveniently usable, documented form. Test it by trying out a simple interprocedural analysis.

Accessibility

  • Code cleanup and bug fixing are top priority.
  • Near-full ARIA 1.0 compliance (DHTML accessibility)
  • Lazy instantiation for GNOME/Linux for performance.
    • GNOME at-spi work is a dependency here so we might not hit this.
  • Updating documentation - ARIA User Agent Implementation Guide.

(Note: Mac A11y pushed to Q2)