User:MarkFinkle/PushingSVG

From MozillaWiki
Jump to: navigation, search

SVG Patches in the Queue

SVG is a technology that provides some Silverlight / Flash functionality to the Open Web. If Mozilla could push any low risk, positive value patches into Gecko 1.9, it would benefit web developers targeting Firefox 3. A few patches / features that were identified that would help our SVG support.

Browser SVG support chart: http://codedread.com/svg-support.php

Gecko 1.9

  • Filters: Currently our SVG implementation supports all but two filters from the specification - feDisplacementMap (bug 389746) and feImage (bug 390379). We would like to have all filters to make life easier for content developers. This is a new element which didn't involve altering other codepaths, so the risk of it causing problems outside feImage is very minimal. (see http://treebuilder.de/default.asp?file=371288.xml for samples we currently cannot render)
  • SVG layout issue: bug 294086 has a patch that fixes some problems with SVG layout and sizing when using CSS sizing. It also fixes several SVG in XUL problems. There are 12 bugs blocked and the comments indicate that they would be fixed by this patch.

Gecko 1.9.1

  • SVG Fonts: There is a slightly better than proof-of-concept patch for SVG Fonts in bug 119490. If given a green light this might be doable for 1.9, more doable for 1.9.1
  • SVG as IMG: It is becoming common to hear people ask for SVG support as an image format (<img src="some.svg"/>), including CSS images too. It may require some changes to our image APIs. We would ignore scripts during render, throw away the SVG DOM after render and re-render on resize (from Vlad). Opera 9.5 is said to support SVG in HTML IMG and CSS. See bug 231179, bug 276431 and bug 272288
  • SMIL support: Declarative animation is closely tied to SVG. There are JavaScript libraries to simulate SMIL animation at the cost of performance. Bug 216462 has a patch with a fairly complete implementation of SMIL. Opera's SVG implementation supports SMIL. It may be possible to land this in 1.9.1

SVG Projects

  • Core
    • JS SVG DOM builder utilities
    • Enhanced graphs (dynamic and interactive)
      • Look at Flash's and WPF graph libraries
    • Flowcharting
    • Using foreignObject for nice (HTML) text wrapping
  • Animation
    • SMIL in JS
    • Using HTML JS libraries
    • Mozilla SMIL patch
    • Can we make an extension to help to slow parts of JS SMIL
  • 3D SVG
    • Look into existing JS libs
    • Can we make an extension for the matrix math (binary code)