Gecko:Task List: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(28 intermediate revisions by 6 users not shown)
Line 1: Line 1:
This list is intended for items that we would like to have done in the near term, that are reasonably well specified and well understood, and that could be started quite soon (i.e., don't rely on some major other piece of work to happen first).
This list is intended for items that we would like to have done in the near term, that are reasonably well specified and well understood, and that could be started quite soon (i.e., don't rely on some major other piece of work to happen first).


=== Outstanding "Want To Have" Tasks ===
=== Outstanding "Want To Have" Platform Features ===


* When printing, clone the document and create a new presentation for that, instead of trying to create a new presenation (allows print preview/printing in a new window, letting the user continue to interact with the old document) (Eli?)
* (Re)implement CSS3 page-break and column-break properties [fantasai?]
* Implement CSS3 page-break and column-break properties
* Implement final version of CSS3 columns spec
* Implement CSS3 borders and backgrounds module
* Implement CSS3 writing-mode and related properties
* Implement Web Forms 2
* Implement CSS3 text-overflow
* Implement Web Apps 1.0: drag-and-drop (See {{bug|356295}})
* Implement CSS3 text-justify
* Rework [[CSSFrameConstructor|frame construction]] to be simpler, faster and less fragile
* Implement CSS3 ruby
* XBL2 implementation
* Implement CSS color-correction
* Rework XUL layout to operate more like normal reflow (compute all widths first, then all heights)
* Implement better-than-greedy line breaking in justified mode
* Then merge nsHTMLScrollFrame/nsXULScrollFrame
* Implement CSS3 Advanced Layout and/or Grid
* PresShell / PresContext unification
* Implement CSS 3D transformations
* Work on cairo OpenGL backend (glitz?)
* Implement HTML5 Web Forms
* SVG SMIL support
* Implement CSSOM rangeFromPoint (or whatever it gets called)
* Features comparable to The Venice Project's XUL compositor: caching content subtree rendering in graphics memory
* Implement auto-hyphenation
* Features comparable to The Venice Project's XUL compositor: DOM feature to visually clone another element in the document
* Implement XBL2
* Rework image drawing to decompress-on-draw and make the principal interface be "draw yourself to this Thebes context"
* Eliminate XUL box objects in favour of APIs directly on XUL elements
* Unify widget events and DOM events
* SVG fonts [karlt]
* Implement contentEditable
* SVG images
* [[Gecko:Compositor|Compositor]], widget removal, view removal
* Advanced PDF output (bookmarks, clickable links, form fields)
* Fix online/offline events
* <link rel="offline"> implementation
* Implement rendering of Ogg Theora and possibly other video formats. Ideally with an scriptable API to control animation.


=== Tasks Too Vaguely Specified ===
=== Outstanding "Want To Have" Cleanup ===


Please rescue these by defining them in more detail.
* Clean up editor code
 
** Move some code to JS
* plugins
** remaining C++ code can use Gecko-private interfaces like nsINode/nsIContent instead of DOM interfaces
** Needs an owner.
** Move editor objects to document
** There's some low hanging fruit that's been proposed by the plugin-futures group to implement.
* Unified scrollbar element with a private interface for setting its values so we don't have to use SetAttribute during layout. Also get rid of anonymous content in scrollbars
* layout
* PresShell / PresContext unification
** form controls
** First task in this is making sure they always have the same lifetime.
** further cleanup of nsHTMLReflowState following reflow branch landing
* Help Mailnews/Thunderbird finally get rid of its dependency on xpcom_obsolete as per [[Gecko:Obsolete_API]] and https://bugzilla.mozilla.org/show_bug.cgi?id=38122
* content
* Move XUL <tree> to content using a beforepaint event
** image loading (dbaron's complaints)
* Deal with the frame continuation mess
** range
* Rework XUL layout to operate more like normal reflow (compute all widths first, then all heights)
*** Some easy fixes to just use better interfaces (nsINode rather then nsIDOMNode) and better algorithms.
** Then merge nsHTMLScrollFrame/nsXULScrollFrame
*** Some standards compliance bugs. Fixing is easy, but we have to make sure there are not internal code that depend on current behaviour.
* Replace inline reflow logic so it's not tied to recursive Reflow calls
* imglib
** Ditto for most other reflow logic
** bz's issues
* Factor abs-pos reflow out of nsBlockFrame so any rel-pos frame can be an abs-pos container
* docshell
* [http://weblogs.mozillazine.org/roc/archives/2007/12/our_rectangles.html Fix overflow areas]
** document loading
* Fix invariants for invalidation during reflow, or move to display-list-based invalidation
* selection
* Optional floating-point nscoord
** rename classes (dbaron)
* Rework printing to use the print presentation and a separate document full of XUL "page" elements to render the preview
* Rework selection so all selection state lives entirely in content. At the same time, support an extensible set of selection types.

Latest revision as of 23:47, 12 November 2009

This list is intended for items that we would like to have done in the near term, that are reasonably well specified and well understood, and that could be started quite soon (i.e., don't rely on some major other piece of work to happen first).

Outstanding "Want To Have" Platform Features

  • (Re)implement CSS3 page-break and column-break properties [fantasai?]
  • Implement final version of CSS3 columns spec
  • Implement CSS3 writing-mode and related properties
  • Implement CSS3 text-overflow
  • Implement CSS3 text-justify
  • Implement CSS3 ruby
  • Implement CSS color-correction
  • Implement better-than-greedy line breaking in justified mode
  • Implement CSS3 Advanced Layout and/or Grid
  • Implement CSS 3D transformations
  • Implement HTML5 Web Forms
  • Implement CSSOM rangeFromPoint (or whatever it gets called)
  • Implement auto-hyphenation
  • Implement XBL2
  • Eliminate XUL box objects in favour of APIs directly on XUL elements
  • SVG fonts [karlt]
  • SVG images
  • Advanced PDF output (bookmarks, clickable links, form fields)

Outstanding "Want To Have" Cleanup

  • Clean up editor code
    • Move some code to JS
    • remaining C++ code can use Gecko-private interfaces like nsINode/nsIContent instead of DOM interfaces
    • Move editor objects to document
  • Unified scrollbar element with a private interface for setting its values so we don't have to use SetAttribute during layout. Also get rid of anonymous content in scrollbars
  • PresShell / PresContext unification
    • First task in this is making sure they always have the same lifetime.
  • Help Mailnews/Thunderbird finally get rid of its dependency on xpcom_obsolete as per Gecko:Obsolete_API and https://bugzilla.mozilla.org/show_bug.cgi?id=38122
  • Move XUL <tree> to content using a beforepaint event
  • Deal with the frame continuation mess
  • Rework XUL layout to operate more like normal reflow (compute all widths first, then all heights)
    • Then merge nsHTMLScrollFrame/nsXULScrollFrame
  • Replace inline reflow logic so it's not tied to recursive Reflow calls
    • Ditto for most other reflow logic
  • Factor abs-pos reflow out of nsBlockFrame so any rel-pos frame can be an abs-pos container
  • Fix overflow areas
  • Fix invariants for invalidation during reflow, or move to display-list-based invalidation
  • Optional floating-point nscoord
  • Rework printing to use the print presentation and a separate document full of XUL "page" elements to render the preview
  • Rework selection so all selection state lives entirely in content. At the same time, support an extensible set of selection types.