Robert O'Callahan
7cbe6380ff
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
74c9caea47
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
ec730ddcc9
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
f995da7b0f
Backout changeset 3ba90f85653a (Bug 805343) for regressing android talos tests
2012-12-14 11:51:00 +13:00
Matt Woodrow
5c2d424a58
Backout changeset e8f5182d94c5 (Bug 805343) for regressing android talos tests
2012-12-14 11:50:57 +13:00
Matt Woodrow
1bc8a88aa8
Bug 820541 - Only call ProcessRemovedDisplayItems once per transaction. r=roc
2012-12-13 09:47:05 +13:00
Robert O'Callahan
4f25ab855f
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
7aebe60cc1
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
b14cf687ae
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
14d5cbdb22
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
3cc8cded99
Bug 798964 - Don't invalidate nsDisplayBackgroundColor if only the image changed. r=roc
2012-11-07 11:04:53 +13:00
Chris Lord
18da1f172a
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
efecba6d6c
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)
0c3c65fbc0
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
378eb8c2fa
Bug 795674 - Remove mNewDisplayItemData. r=roc
2012-10-12 15:39:46 +13:00
Matt Woodrow
15482dcc1f
Bug 795674 - Add DisplayItemData debugging code. r=roc
2012-10-12 12:38:25 +13:00
Matt Woodrow
d6769ad8b7
Bug 795674 - Refactor DisplayItemData storage in FrameLayerBuilder. r=roc
2012-10-12 12:38:24 +13:00
Robert O'Callahan
708a9c8217
Bug 793065. Keep mRootPresContext alive in case something crazy happens. r=mattwoodrow
2012-10-05 16:20:35 +13:00
Isaac Aggrey
997db4d142
Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan
2012-09-28 01:57:33 -05:00
Robert O'Callahan
c54bcbb4f7
Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow
2012-09-28 23:19:39 +12:00
Matt Woodrow
3fb0e93449
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
326c678fc2
Bug 539356 - Add HasRetainedDataFor. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
30decdd42c
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
c0c8a1f3bd
Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc
2012-08-29 17:48:43 +12:00
Matt Woodrow
9de7f5c346
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
1f7adc5ccc
Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc
2012-08-29 17:48:15 +12:00
Matt Woodrow
5a14809d04
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
4e75c1edde
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
14d849322c
Bug 539356 - Revert changes made by bug 728983
2012-08-29 17:38:58 +12:00
Ed Morley
c863356300
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
b86263ecdb
Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow
2012-09-28 01:07:40 +12:00
Matt Woodrow
8b36b9562b
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
5686e267b8
Bug 539356 - Add HasRetainedDataFor. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
1460b91df9
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
275fe981a6
Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc
2012-08-29 17:48:43 +12:00
Matt Woodrow
05068168cf
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
0725f91922
Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc
2012-08-29 17:48:15 +12:00
Matt Woodrow
c73c0db2f1
Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
2012-08-29 17:38:58 +12:00
Phil Ringnalda
dd13abdce5
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
a74c209e3e
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
2f19f537bf
Bug 579517 follow-up: Remove NSPR types that crept in
2012-09-24 17:55:10 -04:00
Matt Woodrow
35030f54e2
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
ab9f5929bd
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
631a554b99
Bug 789396 - Don't overwrite the existing mContainerLayerGeneration value on ThebesLayerItemsEntrys. r=roc
2012-09-12 09:17:26 +12:00
Ehsan Akhgari
531525812e
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
0b93911368
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
d322fd5f46
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
f99257a9f5
Back out bug 785333 (revisions 79345542f853 and a1756976e61d) to fix crasher bug 785626
2012-08-27 16:41:19 -07:00
Chris Lord
d844099677
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
f823b5376f
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