Commit Graph

206 Commits

Author SHA1 Message Date
Matt Woodrow
8b07064e62 Bug 934860 - Don't paint display items that don't intersect the current invalid rects. r=roc 2013-11-07 08:10:50 +13:00
Matt Woodrow
ee60cbef45 Bug 934860 - Move paint region clipping into DrawThebesLayer. r=roc 2013-11-07 08:10:50 +13:00
Matt Woodrow
fe2ca5848d Bug 934860 - Move some parts of FrameLayerBuilder::DrawThebesLayer into helper functions. r=roc 2013-11-07 08:10:49 +13:00
Matt Woodrow
58bcbf54f3 Bug 934860 - Start and finish transactions with temporary layer managers each time we use them to ensure that these are paired. r=roc 2013-11-07 08:10:49 +13:00
Robert O'Callahan
51222bdd45 Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg 2013-09-02 20:41:57 +12:00
Ehsan Akhgari
45b9b9b617 Bug 906790 - Minimize layout/base #includes; r=roc 2013-08-19 18:55:18 -04:00
Robert O'Callahan
29d310bf8a 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.
2013-03-04 22:56:02 +13:00
Robert O'Callahan
25d81298ca Bug 841192. Part 2: Move FrameLayerBuilder::Clip to DisplayItemClip. r=mattwoodrow 2013-03-04 22:55:59 +13:00
Robert O'Callahan
cc4bab438d 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.
2013-03-22 15:17:29 +13:00
Matt Woodrow
c250a846ec Backout changeset 3ba90f85653a (Bug 805343) for regressing android talos tests 2012-12-14 11:51:00 +13:00
Matt Woodrow
451702b100 Backout changeset e8f5182d94c5 (Bug 805343) for regressing android talos tests 2012-12-14 11:50:57 +13:00
Matt Woodrow
f254b2c49c Bug 820541 - Only call ProcessRemovedDisplayItems once per transaction. r=roc 2012-12-13 09:47:05 +13:00
Robert O'Callahan
7bd14d68c0 Bug 805343. Part 2: Update FrameLayerBuilder::HasVisibleRetainedDataFor to account for occluded display items. r=mattwoodrow 2012-12-10 18:49:17 +13:00
Robert O'Callahan
2fa52f377c 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 2012-12-10 18:47:33 +13:00
Karl Tomlinson
7867b81402 b=786100 consider display item snap when hunting uniform background color r=roc 2012-12-05 15:53:17 +13:00
Robert O'Callahan
2cbe8174e8 Bug 810470. Part 3: Remove code for invalidating background-attachment:fixed content when scrolling. r=mattwoodrow
New invalidation logic takes care of this automatically.
2012-11-09 18:14:14 -05:00
Matt Woodrow
1e39f7b9f3 Bug 798964 - Don't invalidate nsDisplayBackgroundColor if only the image changed. r=roc 2012-11-07 11:04:53 +13:00
Chris Lord
2ebbf1f9ce 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
3091d3a860 Bug 795674 - Handled merged frame changes with minimal invalidations. r=roc 2012-10-16 14:23:07 +13:00
Robert O'Callahan
bc8518c93d 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
9d68494f00 Bug 795674 - Remove mNewDisplayItemData. r=roc 2012-10-12 15:39:46 +13:00
Matt Woodrow
f86de4b1ae Bug 795674 - Add DisplayItemData debugging code. r=roc 2012-10-12 12:38:25 +13:00
Matt Woodrow
9cc8f5a0f5 Bug 795674 - Refactor DisplayItemData storage in FrameLayerBuilder. r=roc 2012-10-12 12:38:24 +13:00
Robert O'Callahan
6f2133d657 Bug 793065. Keep mRootPresContext alive in case something crazy happens. r=mattwoodrow 2012-10-05 16:20:35 +13:00
Isaac Aggrey
990e90e88a Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Robert O'Callahan
55bced36a3 Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow 2012-09-28 23:19:39 +12:00
Matt Woodrow
29f16defb6 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
e3e42d7d6a Bug 539356 - Add HasRetainedDataFor. r=roc 2012-08-29 17:48:45 +12:00
Robert O'Callahan
86f4921a90 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
378d90fa20 Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc 2012-08-29 17:48:43 +12:00
Matt Woodrow
acbe140b19 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
670923b041 Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc 2012-08-29 17:48:15 +12:00
Matt Woodrow
19164d9447 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
db116030ba 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
08eb791425 Bug 539356 - Revert changes made by bug 728983 2012-08-29 17:38:58 +12:00
Ed Morley
ed4fe023b5 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
d098e789f3 Bug 539356 - Fix mActiveScrolledRootOffset to be offset to the reference frame. r=mattwoodrow 2012-09-28 01:07:40 +12:00
Matt Woodrow
e9f6591954 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
d73a4f9aee Bug 539356 - Add HasRetainedDataFor. r=roc 2012-08-29 17:48:45 +12:00
Robert O'Callahan
d80cd2baee 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
ff24e9bcd6 Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc 2012-08-29 17:48:43 +12:00
Matt Woodrow
335c52c344 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
71a64e04d5 Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc 2012-08-29 17:48:15 +12:00
Matt Woodrow
24eaff95c9 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Phil Ringnalda
d5f54836b0 Back out 85d6cbd01d39, 56fc051c1932, a2ad17b87332 (bug 781053) for OS X debug assertions and crashes 2012-09-24 21:23:05 -07:00
Phil Ringnalda
5546d568b8 Back out 8bd13443d0bc (bug 579517) to get a clean backout 2012-09-24 21:21:10 -07:00
Ehsan Akhgari
65c165e3b9 Bug 579517 follow-up: Remove NSPR types that crept in 2012-09-24 17:55:10 -04:00
Matt Woodrow
d36479e7b2 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
1efdc4e5f4 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
77ad033af6 Bug 789396 - Don't overwrite the existing mContainerLayerGeneration value on ThebesLayerItemsEntrys. r=roc 2012-09-12 09:17:26 +12:00