I've been working on and off for the last couple of weeks on a canvas tag for XUL. The canvas tag is an element designed to allow custom drawing, one of the few main things that XUL doesn't have. It's based on the patch in bug 102285 which creates an image buffer in which one can set the pixels. My version will do that too, but can also be used with a callback to a script to do the drawing.

It works quite nicely. With it, I've created some SVG-like elements entirely in XBL, which resize and flex and so forth properly. Canvases can also be nested.

There's still quite a bit of work to do, but if anyone has ideas on what they'd like to be able to do with a canvas tag, add a comment here.