Commit Graph

211 Commits

Author SHA1 Message Date
Ehsan Akhgari
70c7297a31 Bug 935778 - Part 0.3: Spray some more MOZ_DECLARE_REFCOUNTED_TYPENAME across the tree 2014-02-20 23:07:24 -05:00
Matt Woodrow
63c5bce3f8 Bug 946952 - Run a 'compressed' paint up to 1 second after skipping the ColorLayer optimization. r=roc 2014-01-30 18:41:17 +13:00
Robert O'Callahan
83b317b15f Bug 945203. Part 8: Add FrameLayerBuilder support for capturing nsDisplayEventRegions data into ThebesLayers. r=mattwoodrow 2013-12-17 01:16:24 +13:00
Robert O'Callahan
61a2d69caf Bug 919144. Part 9: Move FrameLayerBuilder::ContainerParameters to mozilla::ContainerLayerParameters. r=mattwoodrow
This is to avoid having to #include FrameLayerBuilder.h in nsLayoutUtils.h in the next patch.
2013-09-27 18:01:16 +12:00
Robert O'Callahan
a60012977d Bug 919144. Part 1: Rename identifiers from 'active scroll(ed) root' to 'animated geometry root'. r=mattwoodrow
Also sneaks in a couple of other refactorings:
2013-09-26 09:07:26 +12:00
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