Platform/2009-Q1-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(34 intermediate revisions by 10 users not shown)
Line 9: Line 9:
=== Layout ===
=== Layout ===


* 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).
* Ship 1.9.1 with no regression blockers unfixed and a reasonable subset of the current fuzz-blockers fixed [on track]
** 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.
* Compositor well under way (some preliminary patches landed) [no progress]
** roc's compositor will help, but may not be enough by itself.
** 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).
** Some of the bugs in this area, in no particular order: {{nbug|457384}} (and its close relatives {{nbug|334321}} and {{nbug|253474}}), {{nbug|90268}}, {{nbug|421866}}, {{nbug|78414}}, {{nbug|312920}}/{{nbug|347185}}, {{nbug|452448}}.
*** 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.
* Ship 1.9.1 with no regression blockers unfixed and a reasonable subset of the current fuzz-blockers fixed
*** roc's compositor will help, but may not be enough by itself.
* Compositor well under way (some preliminary patches landed)
*** Some of the bugs in this area, in no particular order: {{nbug|457384}} (and its close relatives {{nbug|334321}} and {{nbug|253474}}), {{nbug|90268}}, {{nbug|421866}}, {{nbug|78414}}, {{nbug|312920}}/{{nbug|347185}}, {{nbug|452448}}.
* One or more major layout architecture projects code-complete (e.g. overflow area refactoring)
* One or more major layout architecture projects code-complete (e.g. overflow area refactoring) [on track; Boris' frame constructor work is going well]
* Core SMIL landed, not yet enabled
* Core SMIL landed, not yet enabled [done]
* Style system support for CSS transitions and SMIL animation of CSS written, if not landed
* Style system support for either CSS transitions or SMIL animation of CSS written, if not landed (both done for 1.9.2) [no progress]
* Some major new CSS features landed (e.g., multiple backgrounds, SVG images)
* Some major new CSS features landed (e.g., multiple backgrounds, SVG images) [on track]
* Interruptible reflow {{nbug|67752}} [on track]
* Keep on pluggin' on the remaining CSS 2.1 missing features (do we have a list?) [no progress, although Boris' work gets us closer to display:run-in; but this goal should probably be removed]


=== Video/Audio ===
=== Video/Audio ===


* Ship the current feature set in 1.9.1 with reasonable stability and performance
* Ship the current feature set in 1.9.1 with reasonable stability and performance [on track]


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


=== Mac OS X ===
=== Mac OS X ===


* Stay on top of Gecko 1.9.1 blockers, be prepared to ship Firefox 3.1 in line with other groups.
* Stay on top of Gecko 1.9.1 blockers, be prepared to ship Firefox 3.1 in line with other groups.
** [COMPLETED] Blockers hovering around 0-1 for a while now.
* Perform basic tests on Mac OS X 10.6. File bugs on any critical issues.
* 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).
* 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, AppleScript, cursors, and much 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).
* Complete specification for plugin event handling which will allow plugins to not eat events they don't handle (bug 78414).
* For 1.9.2, replace use of (deprecated) ATSUI APIs with CoreText when running on 10.5 and later.
** [COMPLETED] Specification is [https://wiki.mozilla.org/Plugins:AdvancedKeyHandling here].
* For 1.9.2, replace use of (deprecated) ATSUI APIs with CoreText when running on 10.5 and later {{nbug|389074}}.
** [COMPLETED] Core Text backend pushed to mozilla-central


=== Content ===
=== Content ===


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


=== JS ===
=== JS ===
 
* ship tracer in Fx3.1 (on track)
* Fix all major correctness bugs in tracing.
*  recursion in the tracer (at risk)
 
* ICC (finally!!!) https://bugzilla.mozilla.org/show_bug.cgi?id=472952 (building 3.2 - mac, know windows benefit) (on track)
* Get to the point where TraceMonkey can trace most of the code in SunSpider and in web apps reported as perf/regression bugs, including treating recursion as a loop.
* ES 3.1 planned, with big progress (at risk)
 
* Analysis of GC shortcomings (at risk)
* Test prototype of parallel compilation of traces.
* Continued performance improvements (on track)
 
* progress on inline/context threaded interpreter (using nanojit?) (step 1 = make jsop cases functions so they can be called reliably and on Windows) (at risk)
* Take one step to enhance GC. E.g., reduce pause times, run CC in parallel, detect memory pressure accurately.
* caching eval, run eval without re-entering the interp, trace eval (done)
* read-only code pages (on track)
* significantly improve OS X valgrind quality using measurements from njn's blog (on track)
* work with intel on backend optimization (at risk)


=== Build System ===
=== Build System ===
* Fix things so we can run tests on prepackaged builds {{bug|421611}}
* Fix things so we can run tests on prepackaged builds {{bug|421611}} (on track)
* Squeeze some more speed out of the Windows build
* Squeeze some more speed out of the Windows build (on track: pymake)


=== Static Analysis ===
=== Static Analysis ===


* Document Treehydra and abstract interpretation (ESP) libraries.
* Document Treehydra and abstract interpretation (ESP) libraries. (at risk: dmandelin and graydon both head-down in tracemonkey)


* Get a type-based call graph for Mozilla in a conveniently usable, documented form. Test it by trying out a simple interprocedural analysis.
* Get a type-based call graph for Mozilla in a conveniently usable, documented form. Test it by trying out a simple interprocedural analysis (?: who was going to do this?)


=== Accessibility ===
=== Accessibility ===


...consulting with a11y team but goals likely to include:
* Code cleanup and bug fixing are top priority.
** [COMPLETED]
*** We made good progress here, but this will be ongoing.
*** Mochitest coverage greatly improved in this quarter.
 
* Near-full WAI-ARIA 1.0 compliance (DHTML accessibility)
** [COMPLETED]
*** We have decent compliance with the WAI-ARIA 1.0 spec. Compliance work will probably extend into Q2+, as specification is only recently in "last call".


* Near-full ARIA 1.0 compliance (DHTML accessibility)
* Lazy instantiation for GNOME/Linux for performance.
** [COMPLETED]
*** This involved mostly community glue work (lining up the right people) as well as backporting some GNOME FF bootstrapping.


* Lazy instantiation for GNOME/Linux (perf issue). GNOME at-spi work is a dependency here so we might not hit this.
* Updating documentation - ARIA User Agent Implementation Guide.
** [COMPLETED]
*** Expectations were met here, but this will be ongoing.
*** Document moved into W3C so will move slowly now.
*** Work will proceed in [http://mindforks.blogspot.com/2009/02/aria-user-agent-implementation-task.html ARIA User Agent Implementation Task Force]


* Updating documentation, in particular user agent aria impl guide (unfortunately now housed at W3C)
(Note: Mac A11y pushed to Q2)

Latest revision as of 18:49, 29 March 2009

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 [on track]
  • Compositor well under way (some preliminary patches landed) [no progress]
    • 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) [on track; Boris' frame constructor work is going well]
  • Core SMIL landed, not yet enabled [done]
  • Style system support for either CSS transitions or SMIL animation of CSS written, if not landed (both done for 1.9.2) [no progress]
  • Some major new CSS features landed (e.g., multiple backgrounds, SVG images) [on track]
  • Interruptible reflow 67752 [on track]
  • Keep on pluggin' on the remaining CSS 2.1 missing features (do we have a list?) [no progress, although Boris' work gets us closer to display:run-in; but this goal should probably be removed]

Video/Audio

  • Ship the current feature set in 1.9.1 with reasonable stability and performance [on track]

GFX

  • 1.9.x
    • [miss] (partial carryover) Plan and initial prototype of 3d-accelerated cairo on at least one platform
    • [miss] (partial carryover) Expose at least 3 graphics or text related features to web developers
      • e.g. OpenType features, gradients through CSS, compositing, etc.
    • [done] Significantly improve Cairo software rendering peformance for complex graphics on both x86 and ARM
    • [miss] Continue to unify text frameworks across platforms; plan for cross-platform Harfbuzz integration
  • 3D
    • [done] Public OpenGL ES for HTML spec
    • [done] Extension available for 3.1 beta (and final, if released)
    • [miss] (needs evang assistance) At least one compelling demo that takes advantage of OpenGL on the web
      • [miss] (stretch, some parts out of our control) Demonstrate 3D capabilities on mobile
  • Testing
    • [miss] 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.
    • [COMPLETED] Blockers hovering around 0-1 for a while now.
  • 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, AppleScript, cursors, and much 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).
    • [COMPLETED] Specification is here.
  • For 1.9.2, replace use of (deprecated) ATSUI APIs with CoreText when running on 10.5 and later 389074.
    • [COMPLETED] Core Text backend pushed to mozilla-central

Content

  • [ON TRACK] Assist with shipping Firefox 3.1. (all)
  • [ON TRACK] Further improved DOM performance (i.e. dromaeo). (peterv)
  • [ON TRACK] Get an off-main thread HTML parser up n' running. (bnewman)
  • [ON TRACK] Actually start working on XBL2. (sicking)
  • [ON TRACK] Finish up the remainder of our Web Workers implementation (excluding shared workers), bugs 466254, 468665. (bent)
  • [ON TRACK] Investigate the feasibility of sharing out of process plugin code with Chromium. (bent, kinetik)
  • Make significant progress on HTML5 parsing. (hsivonen)
  • [ON TRACK] 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)
  • [ON TRACK] Sanitize the interaction between evalInSandbox() and various wrappers. (mrbkap)
  • [ON TRACK] Start speculatively loading images and style sheets, 457809, 457810. (mrbkap)

JS

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

Build System

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

Static Analysis

  • Document Treehydra and abstract interpretation (ESP) libraries. (at risk: dmandelin and graydon both head-down in tracemonkey)
  • Get a type-based call graph for Mozilla in a conveniently usable, documented form. Test it by trying out a simple interprocedural analysis (?: who was going to do this?)

Accessibility

  • Code cleanup and bug fixing are top priority.
    • [COMPLETED]
      • We made good progress here, but this will be ongoing.
      • Mochitest coverage greatly improved in this quarter.
  • Near-full WAI-ARIA 1.0 compliance (DHTML accessibility)
    • [COMPLETED]
      • We have decent compliance with the WAI-ARIA 1.0 spec. Compliance work will probably extend into Q2+, as specification is only recently in "last call".
  • Lazy instantiation for GNOME/Linux for performance.
    • [COMPLETED]
      • This involved mostly community glue work (lining up the right people) as well as backporting some GNOME FF bootstrapping.
  • Updating documentation - ARIA User Agent Implementation Guide.

(Note: Mac A11y pushed to Q2)