Robert O'Callahan
9e0875a296
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
Benjamin Stover
b5ddf84f48
Bug 618975 Pan overflow elements in parent process r=cjones r=tn sr=roc a=blocking-fennec
2011-03-15 16:20:19 -07:00
Chris Jones
53a46fb88c
Bug 637822: Translate invalidated content by the offset at which it was made valid. r=roc a=b
2011-03-11 01:58:29 -06:00
Doug Turner
80caa5bb4e
Backing out 99f6b3acc464 (bug 618975). Bug This caused a reftest crash. a=bustage
2011-03-08 22:02:50 -08:00
Benjamin Stover
f43a11bf76
Bug 618975 Pan overflow elements in parent process r=cjones r=tn sr=roc a=blocking-fennec
2011-03-08 21:28:18 -08:00
Robert O'Callahan
18d20f6b9c
Bug 630835. Make BuildLayer responsible for setting a visible region on the layer, and let FrameLayerBuilder only reduce it. r=tnikkel,a=blocking
...
This avoids problems with FrameLayerBuilder making the visible region bigger than we expected, invalidating CONTENT_OPAQUE flags set on the layer.
In particular, we had been using TransformBounds to compute the new visible region, and for non-axis-aligned transforms this gives us a visible
region which contains areas not actually painted by the layer contents.
2011-02-23 18:38:09 +13:00
Robert O'Callahan
ab2eeff471
Bug 634232. Call WillEndTransaction/DidEndTransaction notifications for FrameLayerBuilder's temporary layer managers. r=tnikkel a=hardblocker
2011-02-20 19:28:00 -08:00
Robert O'Callahan
2aa7f59dac
Bug 622542. Remove unused FrameLayerBuilder::InvalidateAllThebesLayerContents API. r=tnikkel a2.0=blocking
2011-02-10 15:21:07 -08:00
Robert O'Callahan
f38ad41f10
Bug 625672. Part 2: Build temporary layer manager to render inactive layers after we've recomputed visibility. r=tnikkel,a=blocker
2011-02-10 21:58:11 +13:00
Robert O'Callahan
60f7d166c1
Bug 618722. background-attachment:fixed display items rendered via temporary layer managers can't have their scrolling taken care of via the layer system, so make sure we invalidate them when we scroll in their document. r=tnikkel,a=blocker
2011-02-10 21:58:11 +13:00
Timothy Nikkel
a41f095ccd
Bug 628745. Replace rounded rect clips with their non-rounded cousins whenever possible. r=roc a=roc
2011-01-26 12:36:11 -06:00
Robert O'Callahan
ae791798c3
Bug 621601. Part 1: Change empty transaction API to EndEmptyTransaction. r=bas,tnikkel,a=joe
2011-01-19 21:27:54 +13:00
Matt Woodrow
d92ecd6c06
Bug 586683 - Part 4 - Move images into a separate ImageLayer when they are the only item in a ThebesLayer. r=roc a=blocking2.0
2011-01-18 10:47:18 +13:00
Robert O'Callahan
471e9b150b
Bug 625288. Part 2: Report that -moz-win-glass and -moz-win-borderless-glass are uniform with opacity 0, i.e. they don't paint anything. Skip such display items when accumulating the visible region of a layer. r=tnikkel,a=blocking
2011-01-16 23:38:45 +13:00
Robert O'Callahan
af40a3a245
Bug 615794. Part 1.5: Fix drawing of mForcedBackgroundColor to only fill the bounds of the visible region. r=tnikkel a=blocking
...
It's not correct to completely fill the destination context with the
mForcedBackgroundColor. FindOpaqueBackgroundColorFor only checks that
the bounds of the layer's visible region can be filled with the color.
Drawing outside the bounds of the visible region may not necessarily
be ignored (see comments on Layer::SetVisibleRegion).
2011-01-04 23:35:57 +13:00
Robert O'Callahan
98ad3c97da
Bug 615794. Part 1: Be conservative when converting visible regions and opaque regions from appunits to pixels. r=tnikkel a=blocking
2011-01-04 23:35:57 +13:00
Robert O'Callahan
ecd26f3a39
Bug 602757. Part 6: Don't limit complexity of opaque region when adding opaque chrome display items. r=tnikkel,a=blocking
2011-01-03 14:48:09 +13:00
Robert O'Callahan
83db9b61a3
Bug 602757. Part 5: Change HasText to GetComponentAlphaBounds. r=tnikkel,sr=dbaron,a=blocking
2011-01-03 14:48:09 +13:00
Robert O'Callahan
016b416f90
Bug 602757. Part 3: Change IsOpaque to GetOpaqueRegion so we can get useful opaque regions for content that uses border-radius. r=tnikkel,sr=dbaron,a=blocking
2011-01-03 14:48:09 +13:00
Robert O'Callahan
dae4557637
Bug 602757. Part 2: Detect display items over the transparent part of a window, and disable usage of component alpha (i.e., subpixel antialiasing) for those items. r=tnikkel,a=blocking
2011-01-03 14:48:09 +13:00
Robert O'Callahan
a0a9dfa7fb
Bug 612840. Part 4: Invert the meaning of CONTENT_NO_TEXT_OVER_TRANSPARENT and rename it. r=vlad
2010-12-20 14:26:14 +13:00
Robert O'Callahan
b3cad0a59c
Bug 612840. Part 3: Make Layer::CONTENT_NO_TEXT_OVER_TRANSPARENT applicable to all layer types, and set CONTENT_NO_TEXT_OVER_TRANSPARENT on container layers. r=tnikkel,r=vlad
2010-12-20 14:26:14 +13:00
Robert O'Callahan
f9a2a6dabb
Bug 612840. Part 1: Remove CONTENT_NO_TEXT flag since it's not really used. Also remove ShouldRetainTransparentSurface and related code; we'll assume that when text is over opaque pixels in an RGBA surface we can always paint it with subpixel AA --- and make it so in later patches. r=vlad
2010-12-20 14:26:13 +13:00
Bas Schouten
a6362e5b12
Bug 595277 - Part -1: Keep the reference to our LayerManager inside LayerManagerData. r=roc
2010-12-08 03:24:05 +01:00
Oleg Romashin
bb1e7c9eb2
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. part1 r=roc a=apporval2.0
2010-11-24 11:35:21 +02:00
Justin Lebar
46b1747bcf
Backed out changeset a5ec817740f0. a=orange
2010-11-29 09:08:24 -08:00
Oleg Romashin
7f313e106a
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. r=roc a=approval2.0
2010-11-24 11:35:21 +02:00
Dave Townsend
d8db8dff9a
Backing out changeset 8fff1c186b30 from bug 607653 due to reftest failures on OSX. a=bustage
2010-11-24 16:19:41 -08:00
Oleg Romashin
dc4a3a3aa6
Bug 607653 - avoid temporary fbos/textures on transformed layers, when possible. r=roc a=approval2.0
2010-11-24 11:35:21 +02:00
Chris Jones
2f8662485b
Bug 550611: Make nsTArray optionally infallible. sr=bsmedberg a=blocking
2010-11-08 20:48:59 -06:00
Felipe Gomes
ed7e8d4b2d
Bug 601603. Part 5 - Ensure that the layer that holds the window background is never opaque for glass windows. r=roc a=beta8
2010-10-19 15:02:25 -02:00
Matt Woodrow
fbc97ba90b
Bug 594983. Look inside display sublists to determine whether there is text for the layer. r=roc,a=blocking
2010-10-11 13:58:20 +13:00
L. David Baron
a56b7d387c
Bug 597676. If there's no rootPresContext, we should never detect DOM modification. Makes printing paint again. r=dbaron a=blocking2.0:beta7
2010-09-18 11:43:17 -07:00
Robert O'Callahan
0c54073a33
Bug 594774. Detect DOM changes during painting, and abort painting ASAP when that happens. r=dbaron a=blocking
2010-09-17 12:09:08 -07:00
Oleg Romashin
ed2050a371
Merge with mozilla central 2779c55431a4, no conflicts
2010-09-10 22:32:25 -07:00
L. David Baron
9fdb9c1e50
Add a (wrapping) display item that clips its contents to the curvature of a border-radius. (Bug 459144, patch 13) r=roc a2.0=blocking2.0:beta6
2010-09-09 08:21:46 -07:00
Chris Jones
4d6a37c22c
Bug 590294, part 3: Keep ContainerLayer type info around in a few places. r=roc
2010-09-03 15:10:45 -05:00
Robert O'Callahan
7803c60e5c
Bug 579276. Part 5: Set CONTENT_NO_TEXT and CONTENT_NO_TEXT_OVER_TRANSPARENT flags. r=tnikkel
2010-09-02 21:18:40 +12:00
Robert O'Callahan
fb16daf902
Bug 579276. Part 3: Change Set/IsOpaqueContent API to a more generic Get/SetContentFlags API. r=cjones,sr=vlad
2010-09-02 21:18:40 +12:00
Robert O'Callahan
85c055a187
Bug 579276. Part 4: Move nsDisplayItem parameter down to ThebesLayerData::Accumulate. r=tnikkel
2010-09-02 21:18:39 +12:00
Robert O'Callahan
afcdbe8816
Bug 579276. Part 2: If a transparent layer is over a solid background color, hoist that color into the layer to make it opaque. r=tnikkel
2010-09-02 21:18:39 +12:00
Robert O'Callahan
528fee472b
Bug 579276. Part 1: Change layer/layermanager user data API to use keys and values. r=cjones,sr=vlad
2010-09-02 21:18:39 +12:00
Mounir Lamouri
363465b06b
Bug 594109 - FrameLayerBuilder.cpp uses TYPE_MATHML_CHAR_FOREGROUND outside of #ifdef MOZ_MATHML. r=roc a=bustage
2010-09-08 19:44:47 +02:00
Robert O'Callahan
562d67f90b
Backing out bug 579276. a=me
2010-09-02 23:14:25 +12:00
Robert O'Callahan
cca06e5823
Bug 579276. Part 5: Set CONTENT_NO_TEXT and CONTENT_NO_TEXT_OVER_TRANSPARENT flags. r=tnikkel
2010-09-02 21:18:40 +12:00
Robert O'Callahan
510a4ad4d3
Bug 579276. Part 3: Change Set/IsOpaqueContent API to a more generic Get/SetContentFlags API. r=cjones,sr=vlad
2010-09-02 21:18:40 +12:00
Robert O'Callahan
2d68611810
Bug 579276. Part 4: Move nsDisplayItem parameter down to ThebesLayerData::Accumulate. r=tnikkel
2010-09-02 21:18:39 +12:00
Robert O'Callahan
3916956964
Bug 579276. Part 2: If a transparent layer is over a solid background color, hoist that color into the layer to make it opaque. r=tnikkel
2010-09-02 21:18:39 +12:00
Robert O'Callahan
447e2539f3
Bug 579276. Part 1: Change layer/layermanager user data API to use keys and values. r=cjones,sr=vlad
2010-09-02 21:18:39 +12:00
f580a75e9f
Bug 587483 warning: comparison between signed and unsigned integer expressions in FrameLayerBuilder. r=roc,a=roc
2010-09-02 16:46:53 +12:00