gecko/content/canvas
Robert O'Callahan 4ca813ae6e Bug 622072. Part 3: Support empty transactions for canvas layers. r=tnikkel
The basic idea is that whenever a layer transaction updates the window, we clear out the invalidation state for the canvas rendering context,
using a DidTransactionCallback registered on the layer(s) for the canvas, which calls MakeContextClean.

The DidTransactionCallbacks are directed to the user data attached to the Layer, which holds a strong reference to the canvas element. This
ensures that the element lives as long as the layer. Layers are destroyed when the presentation is torn down (including if the frame is destroyed),
so we can't have a leak here. The reference to the canvas element is only strong because the layer might briefly outlive the frame (the layer
won't be destroyed until the next paint of the window).

This patch moves responsibility for calling CanvasLayer::Updated and nsFrame::MarkLayersActive from the canvas context to nsHTMLCanvasElement::InvalidateFrame.
We call Updated on the retained CanvasLayer, if there is one; any other CanvasLayers created for this canvas would only be used once, and have Updated
called on them in BuildLayer when created.
2011-03-28 12:59:47 +13:00
..
crashtests Bug 553938 - add crashtest. a=NPOTB 2010-09-24 11:34:23 -07:00
public Bug 622072. Part 3: Support empty transactions for canvas layers. r=tnikkel 2011-03-28 12:59:47 +13:00
src Bug 622072. Part 3: Support empty transactions for canvas layers. r=tnikkel 2011-03-28 12:59:47 +13:00
test Bug 610212 - canvas.width and canvas.height should be reflected as unsigned int. r=jst 2011-03-25 12:40:55 +01:00
Makefile.in bug 461395 - add support for PARALLEL_DIRS to build system, parallelize content. r=bsmedberg 2008-10-30 13:02:14 -04:00