Robert O'Callahan
04e9887192
Bug 841192. Part 14: Convert all usage of nsDisplayClip(RoundedRect) to use DisplayListClipState/DisplayItemClip. r=mattwoodrow
...
This patch does several things. Sorry.
In BuildDisplayList implementations, instead of wrapping display items in nsDisplayClip, we
push clip state onto the nsDisplayListBuilder and give the display items an
explicit clip when they're created.
In FrameLayerBuilder, we use the explicit clips we find on display items instead of
computing our own.
We remove nsDisplayClip and everything that depends on it.
We remove ExplodeAnonymousChildLists. With nsDisplayClip gone, and
nsDisplayOptionEventGrabber removed in a previous patch, there are no
anonymous child lists.
nsDisplayItem::TryMerge implementations need to make sure they have the same
clip before being merged.
I ripped out the part of PruneDisplayListForExtraPage that adjusts clip rects.
As far as I can tell, it isn't actually necessary.
--HG--
extra : rebase_source : 6f3988b385d0ac54ab26fad10b12173884441f48
2013-03-04 22:56:02 +13:00
Robert O'Callahan
8d47c65ff4
Bug 841192. Part 2: Move FrameLayerBuilder::Clip to DisplayItemClip. r=mattwoodrow
...
--HG--
extra : rebase_source : 2950e5dd64e217a406ede2dc9f6682b5e0540975
2013-03-04 22:55:59 +13:00
Robert O'Callahan
3a4355687e
Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow
...
We currently set the visible region on most container layers twice: once in
BuildContainerLayerFor, where we don't take clipping from ancestors into
account, and then later ProcessDisplayItems calls RestrictVisibleRegionForLayer
which does take ancestor clipping into account. This causes unnecessary
Mutated()s.
In this patch we partially fix this by forcing transform layers to take
account of their ancestor clipping when they set the visible region in
BuildContainerLayerFor. For those layers we don't need to apply
ancestor clipping in ProcessDisplayItems. This is done in a rather
ugly way, by passing the ancestor clip rect as an extra field of
ContainerParameters. To preserve the optimization that prerendered
elements are treated as fully visible regardless of ancestor clipping,
we have to add a flag to turn that clipping off in BuildContainerLayerFor.
In bug 841192 we will be able to fix this in a much nicer way, because we can
get the ancestor clip directly off the nsDisplayItem passed to
BuildContainerLayerFor. But this approach is needed for the B2G18 branch.
--HG--
extra : rebase_source : 26fbe55db84ab96e1e358b8803b0563f42590836
2013-03-22 15:17:29 +13:00
Matt Woodrow
2839c7fa0b
Backout changeset 3ba90f85653a (Bug 805343) for regressing android talos tests
2012-12-14 11:51:00 +13:00
Matt Woodrow
2b859a49cd
Backout changeset e8f5182d94c5 (Bug 805343) for regressing android talos tests
2012-12-14 11:50:57 +13:00
Matt Woodrow
43871121e3
Bug 820541 - Only call ProcessRemovedDisplayItems once per transaction. r=roc
2012-12-13 09:47:05 +13:00
Robert O'Callahan
f4b678d9cb
Bug 805343. Part 2: Update FrameLayerBuilder::HasVisibleRetainedDataFor to account for occluded display items. r=mattwoodrow
...
--HG--
extra : rebase_source : 293895627ef5f37c508a23fe9e9a5639527aafcc
2012-12-10 18:49:17 +13:00
Robert O'Callahan
5134ebbbe6
Bug 805343. Identify DisplayItemDatas that are completely hidden by other opaque content in their ThebesLayer, and ignore them when we check to see whether there's an image we might need to invalidate. r=mattwoodrow
...
--HG--
extra : rebase_source : 7e68dc33324d8ff26286723bdbaaea18060354ac
2012-12-10 18:47:33 +13:00
Karl Tomlinson
cacd3b0a07
b=786100 consider display item snap when hunting uniform background color r=roc
...
--HG--
extra : transplant_source : P%7CO%27%D3%E6%B6-eX%BF%AAw%EA%D1.%B8j%D9%2C
2012-12-05 15:53:17 +13:00
Robert O'Callahan
ffbcca0d03
Bug 810470. Part 3: Remove code for invalidating background-attachment:fixed content when scrolling. r=mattwoodrow
...
New invalidation logic takes care of this automatically.
--HG--
extra : rebase_source : 0112cfe02dbaaabf04e4010823a3cceeb6549fcd
2012-11-09 18:14:14 -05:00
Matt Woodrow
abb31e1f03
Bug 798964 - Don't invalidate nsDisplayBackgroundColor if only the image changed. r=roc
2012-11-07 11:04:53 +13:00
Chris Lord
d611c596a1
Bug 803826 - Only reset the layer builder pointer in ~ClippedDisplayItem. r=mattwoodrow
...
PaintInactiveLayer was resetting the layer manager's layer builder pointer, but
this was unnecessary as this was also being done on destruction of the
ClippedDisplayItem.
2012-10-23 12:05:14 +01:00
Matt Woodrow
5adc69789e
Bug 795674 - Handled merged frame changes with minimal invalidations. r=roc
2012-10-16 14:23:07 +13:00
Robert O'Callahan ext:(%2C%20Matt%20Woodrow%20%3Cmwoodrow%40mozilla.com%3E)
cd666bb77c
Bug 770001. When a display item has changed, don't bother invalidating areas that have been clipped out. r=mattwoodrow, roc
2012-10-16 14:10:43 +13:00
Matt Woodrow
8760ddc9ae
Bug 795674 - Remove mNewDisplayItemData. r=roc
2012-10-12 15:39:46 +13:00
Matt Woodrow
7a9bd0af9d
Bug 795674 - Add DisplayItemData debugging code. r=roc
2012-10-12 12:38:25 +13:00
Matt Woodrow
8b3fa0303c
Bug 795674 - Refactor DisplayItemData storage in FrameLayerBuilder. r=roc
2012-10-12 12:38:24 +13:00
Robert O'Callahan
1b98127dec
Bug 793065. Keep mRootPresContext alive in case something crazy happens. r=mattwoodrow
2012-10-05 16:20:35 +13:00
Isaac Aggrey
0cc4b12d36
Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan
2012-09-28 01:57:33 -05:00
Robert O'Callahan
cc5f08587e
Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow
2012-09-28 23:19:39 +12:00
Matt Woodrow
5b541f16bf
Bug 781053 - Part 2 - Trigger empty transactions when an animated image in an ImageLayer changes frame. r=roc
2012-09-25 08:31:30 +12:00
Matt Woodrow
8c72ac3baa
Bug 539356 - Add HasRetainedDataFor. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
92dac1e3cd
Bug 770001. When comparing clips, adjust for any change in the ThebesLayer coordinate system. When clips are different, try to accumulate differences intelligently, taking into account that changes in clips outside the bounds of the clipped display item don't matter. r=mattwoodrow
2012-08-29 17:48:44 +12:00
Matt Woodrow
36ede50ee4
Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc
2012-08-29 17:48:43 +12:00
Matt Woodrow
3c98add6f7
Bug 539356 - Part 14 - Handle multiple widget layer managers retaining data for the same frame. r=roc
2012-08-29 17:48:41 +12:00
Matt Woodrow
ddc3006aef
Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc
2012-08-29 17:48:15 +12:00
Matt Woodrow
12901c44ef
Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc
2012-08-29 17:47:18 +12:00
Matt Woodrow
e6baaac399
Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
...
* * *
imported patch move-by-correctly
2012-08-29 17:47:15 +12:00
Matt Woodrow
f64b473bf7
Bug 539356 - Revert changes made by bug 728983
2012-08-29 17:38:58 +12:00
Ed Morley
5a3b322459
Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE
2012-09-27 16:34:46 +01:00
Robert O'Callahan
e2e5bf0685
Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow
2012-09-28 01:07:40 +12:00
Matt Woodrow
2d16b9b765
Bug 781053 - Part 2 - Trigger empty transactions when an animated image in an ImageLayer changes frame. r=roc
2012-09-25 08:31:30 +12:00
Matt Woodrow
ff33f7ce7a
Bug 539356 - Add HasRetainedDataFor. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
1d9db1ed96
Bug 770001. When comparing clips, adjust for any change in the ThebesLayer coordinate system. When clips are different, try to accumulate differences intelligently, taking into account that changes in clips outside the bounds of the clipped display item don't matter. r=mattwoodrow
2012-08-29 17:48:44 +12:00
Matt Woodrow
a15597e119
Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc
2012-08-29 17:48:43 +12:00
Matt Woodrow
e6a09298ad
Bug 539356 - Part 14 - Handle multiple widget layer managers retaining data for the same frame. r=roc
2012-08-29 17:48:41 +12:00
Matt Woodrow
e978622113
Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc
2012-08-29 17:48:15 +12:00
Matt Woodrow
49d4c24594
Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
2012-08-29 17:38:58 +12:00
Phil Ringnalda
16e0947c04
Back out 85d6cbd01d39, 56fc051c1932, a2ad17b87332 (bug 781053) for OS X debug assertions and crashes
...
--HG--
extra : rebase_source : ab24a2f8e9eddcf33ea39344abb7afbf400bf6e0
2012-09-24 21:23:05 -07:00
Phil Ringnalda
59da0af0b1
Back out 8bd13443d0bc (bug 579517) to get a clean backout
...
--HG--
extra : rebase_source : 63c8087f0a6de5adeddb8762ff9e410b2b818e22
2012-09-24 21:21:10 -07:00
Ehsan Akhgari
3eee84e809
Bug 579517 follow-up: Remove NSPR types that crept in
2012-09-24 17:55:10 -04:00
Matt Woodrow
aed7d4ce0a
Bug 781053 - Part 2 - Trigger empty transactions when an animated image in an ImageLayer changes frame. r=roc
2012-09-25 08:31:30 +12:00
Matt Woodrow
8684475c74
Bug 788044 - Make inactive layer subtrees relative to the ContainerLayer, not the reference frame. r=roc
2012-09-17 10:25:33 +12:00
Matt Woodrow
087d06c226
Bug 789396 - Don't overwrite the existing mContainerLayerGeneration value on ThebesLayerItemsEntrys. r=roc
2012-09-12 09:17:26 +12:00
Ehsan Akhgari
c48204a6a9
Bug 579517 follow-up: Remove NSPR types that crept in
...
--HG--
extra : rebase_source : adad9af01d9168a14d87c201c1bd51a3a7a768f5
2012-08-29 10:56:51 -04:00
Chris Lord
306548b14f
Bug 785333 - Make sure layers are only associated with a single frame. r=roc
...
Use Layer user-data to ensure that a Layer doesn't end up being found multiple
times for different frames during construction.
2012-08-29 11:53:34 +01:00
Chris Lord
e7f9cfe919
Bug 785333 - Keep track of merged frames with all display items. r=roc
...
This changes the display-item storage to store layers against the underlying
frame and all merged frames of an item (and similarly, to retrieve them against
all frames of an item).
2012-08-29 11:53:27 +01:00
Gavin Sharp
a9400c350e
Back out bug 785333 (revisions 79345542f853 and a1756976e61d) to fix crasher bug 785626
2012-08-27 16:41:19 -07:00
Chris Lord
161d1ea386
Bug 785333 - Keep track of merged frames with all display items. r=roc
...
This changes the display-item storage to store layers against the underlying
frame and all merged frames of an item (and similarly, to retrieve them against
all frames of an item).
2012-08-24 16:17:22 +01:00
Chris Lord
777670dafd
Bug 781516 - Remove DisplayItemDataEntry.mIsMergedFrame. r=roc
...
This is unnecessary as it just duplicates the functionality of
mIsSharingContainerLayer.
2012-08-24 11:59:37 +01:00