Commit Graph

21878 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
ead89dc956 Backed out changeset 3773718e4870 (bug 1022612) 2014-07-15 10:29:53 +02:00
Carsten "Tomcat" Book
26f47cdbf0 Backed out changeset e6be65e455a2 (bug 1022612) 2014-07-15 10:29:51 +02:00
Carsten "Tomcat" Book
48feebee09 Backed out changeset 5c1f3340c45f (bug 1022612) 2014-07-15 10:29:50 +02:00
Carsten "Tomcat" Book
abd220850c Backed out changeset f12d7d68b685 (bug 1022612) 2014-07-15 10:29:48 +02:00
Carsten "Tomcat" Book
75f0b66945 Backed out changeset cc1776b2606d (bug 1022612) 2014-07-15 10:29:46 +02:00
Carsten "Tomcat" Book
f6a5f99ba1 Backed out changeset 2b29602d9850 (bug 995519) for suspicion of causing Reftest 20 test failure on a CLOSED TREE 2014-07-15 10:21:36 +02:00
Robert O'Callahan
216105530b Bug 1022612. Part 43: Fix up SuppressComponentAlpha to allow component alpha in inactive layers over opaque parts of the chrome window. r=mattwoodrow
--HG--
extra : rebase_source : a15fb640c4fe7917321bcea5cdf2dc5e6087a140
2014-07-15 16:23:37 +12:00
Robert O'Callahan
d3e59dec22 Bug 1022612. Part 42: Add opaque regions of ThebesLayer content to the "exclude glass" region. r=mattwoodrow
--HG--
extra : rebase_source : 2b429e274ec49b5310e69bad65ae9a399dba514a
2014-07-14 12:46:13 +12:00
Robert O'Callahan
16bcaaf5bb Bug 1022612. Part 41: Use itemType instead of calling GetType() again. r=mattwoodrow
--HG--
extra : rebase_source : 9531cbc73f01c49d22b81420c7cb3b206b6c26d4
2014-07-11 13:18:10 +12:00
Robert O'Callahan
dbc191385e Bug 1022612. Part 40: Restrict visible rect of 3D-transformed layers before converting to nsIntRect. r=mattwoodrow
--HG--
extra : rebase_source : 9d147c1adb92c17b19d259eef64557495c790b13
2014-07-11 13:17:47 +12:00
Robert O'Callahan
c6044e490b Bug 1022612. Part 39: Add a little bit of reftest fuzzing. r=mattwoodrow
--HG--
extra : rebase_source : b2941b4954318e0bd93d24d7f2d4e054c0844d8a
2014-07-07 17:46:56 +12:00
Robert O'Callahan
4a5dd5ea1c Bug 1022612. Part 38: Avoid test failure due to antialiased pixel leakage. r=mattwoodrow
--HG--
extra : rebase_source : 00d95d307f79720a7b597cc8ca61b40bfaa85584
2014-07-07 17:46:56 +12:00
Robert O'Callahan
46c2b20d44 Bug 1022612. Part 37: Remove aAllowVisibleRegionExpansion. r=mattwoodrow
This is no longer needed thanks to the readback simplification.

--HG--
extra : rebase_source : 6dad4c34681c478f9d4bf4829723ff9542b9d083
2014-06-23 16:24:51 +12:00
Robert O'Callahan
90a719d327 Bug 1022612. Part 36: Avoid redundant calls to ShouldPrerenderTransformedContent. r=mattwoodrow
--HG--
extra : rebase_source : 127a28cb37dd1953a5eb593ba4b40645c138866f
2014-06-23 16:24:15 +12:00
Robert O'Callahan
a7a227d36d Bug 1022612. Part 35: nsDisplayPluginReadback doesn't need to hack visible regions anymore. r=mattwoodrow
One nice bit of fallout from this bug is that handling plugin background
readback is simplified. We no longer have to fiddle with display item
visibility calculations; only layer occlusion culling has to know about
readback.

--HG--
extra : rebase_source : c735f4cb964d659b6778f5b43fa2e2b4c8f83933
2014-06-23 16:24:14 +12:00
Robert O'Callahan
9de5b60bcb Bug 1022612. Part 34: Skip RecomputeVisibilityForItems in inactive layers. r=mattwoodrow
RecomputeVisibilityForItems for the retained ThebesLayer already recomputes
visibility for all items in that layer, including items nested in other items.

--HG--
extra : rebase_source : df909f3a9d6eabdb3d83a7770d090068ecca2686
2014-06-23 16:24:14 +12:00
Robert O'Callahan
435bb6a055 Bug 1022612. Part 33: Remove InFixedPos code. r=mattwoodrow
This hasn't been used for a while I guess.

--HG--
extra : rebase_source : 8087253453b58dc4ea52a040341ced4638ffd0a7
2014-06-23 16:24:14 +12:00
Robert O'Callahan
fd35d10211 Bug 1022612. Part 32: Remove nsDisplayItem::SetVisibleRegionOnLayer. r=mattwoodrow
It is no longer called because FrameLayerBuilder always sets the visible
regions on layers now.

--HG--
extra : rebase_source : 6157f9e4a6822598242f6fc9c0abaf07258613d6
2014-06-23 16:24:14 +12:00
Robert O'Callahan
797ba98165 Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow
We need this to avoid constructing and painting unncecessarily large
ThebesLayers.

--HG--
extra : rebase_source : 38cbd0b0dd7724cfdb98f3e215bd0f220a687f3c
2014-06-23 16:24:00 +12:00
Robert O'Callahan
07591874be Bug 1022612. Part 30: Expose IsConstructingScrollLayerForScrolledFrame and IsDisplayPortOpaque on nsDisplayScrollLayer. r=mattwoodrow
--HG--
extra : rebase_source : 0eddaa98dae6ba5e5b15b818716bafd1811f16db
2014-06-23 16:23:58 +12:00
Robert O'Callahan
18c5631cae Bug 1022612. Part 29: Expose GetAnimatedGeometryRootForFrame. r=mattwoodrow
--HG--
extra : rebase_source : ece245a6910b1be205adbfb4e684ff1ccc85f635
2014-06-23 16:21:42 +12:00
Robert O'Callahan
2f179c372a Bug 1022612. Part 28: Make nsLayoutUtils::GetScrollableFrameFor return null for non-scrolled-frames. r=mattwoodrow
--HG--
extra : rebase_source : b93ce3cc94029fb6b8de51d5fc945d552a75a937
2014-07-09 10:12:41 +12:00
Robert O'Callahan
a8a94867f0 Bug 1022612. Part 27: Make FrameLayerBuilder responsible for setting all layer visible regions. r=mattwoodrow
Calling Layer::SetVisibleRegion multiple times in a transaction can result in
unnecessary IPC traffic.

This patch removes Intersect(childGfxBounds). This is only needed to
restrict the visible region to something sane for 3D transforms, and this will
be fixed up in a later patch.

--HG--
extra : rebase_source : dc1eaa8079f61648c24ac9502e837ac9f2630730
2014-06-18 15:12:55 +12:00
Robert O'Callahan
59e39bc3ce Bug 1022612. Part 26: nsDisplayList::mVisibleRect is no longer used. r=mattwoodrow
--HG--
extra : rebase_source : c5e3161afc622a1c297e9033593c0e7eac111f7d
2014-06-12 00:09:13 +12:00
Robert O'Callahan
62ab1efdda Bug 1022612. Part 25: We don't need to explicitly worry about displayports anymore when computing occlusion. r=mattwoodrow
--HG--
extra : rebase_source : 22926330830072dd520ab41daa37c451bf35601d
2014-06-09 16:48:02 +12:00
Robert O'Callahan
775fd8f7d9 Bug 1022612. Part 24: Simplify nsDisplayList::ComputeVisibilityForSublist now that FrameLayerBuilder does most of the work. r=mattwoodrow
--HG--
extra : rebase_source : 566019828bc5c021e15bb148accc4262c69232e1
2014-06-09 16:48:02 +12:00
Robert O'Callahan
0fad4d82d8 Bug 1022612. Part 23: Remove nsDisplayItem::IsVaryingRelativeToMovingFrame. r=mattwoodrow
It's obsolete and no-one calls it.

--HG--
extra : rebase_source : c9f65e4a062a4cc641de201c40b7755706a1afca
2014-06-09 16:48:02 +12:00
Robert O'Callahan
48eca50d7e Bug 1022612. Part 22: Add MOZ_COUNT_CTOR to nsDisplayWrapList. r=mattwoodrow
--HG--
extra : rebase_source : 40d1dcc98c182d175cddff8fadf0084ad2f831a9
2014-06-09 16:48:01 +12:00
Robert O'Callahan
f59ff43d93 Bug 1022612. Part 21: Remove DidComputeVisibility checking. r=mattwoodrow
--HG--
extra : rebase_source : dc32021b0ba919d68a93f555cc8430e1d0a741a4
2014-06-09 16:48:01 +12:00
Robert O'Callahan
b2dedc1ddb Bug 1022612. Part 20: Do the business. r=mattwoodrow
--HG--
extra : rebase_source : a87960893a3cdf6661f25091ae9fd28b247a464b
2014-06-09 16:48:01 +12:00
Robert O'Callahan
b27c164603 Bug 1022612. Part 19: Test that merged display item lists merge their contents in the correct z-order. r=mattwoodrow
Prior to this patch, the only tests that caught this were a couple of obscure
cases on B2G. This test tests it on all platforms.

--HG--
extra : rebase_source : 2534f87eec88d5eba40726032e74ce85ac13be64
2014-07-07 17:46:29 +12:00
Robert O'Callahan
21dc27acfc Bug 1022612. Part 18: When ComputeVisibility returns false, RecomputeVisibility should avoid painting the item. r=mattwoodrow
--HG--
extra : rebase_source : b11f832b412b75e9868306908a5e08fe9724a603
2014-06-20 17:24:31 +12:00
Robert O'Callahan
a16232af9d Bug 1022612. Part 17: RecordFrameMetrics should not set layer visible regions. r=mattwoodrow
This is unnecessary. FrameLayerBuilder sets the correct region.

--HG--
extra : rebase_source : b2c3694cfa2af182c8b2006633efa35a50616642
2014-06-11 23:12:14 +12:00
Robert O'Callahan
3c261e5389 Bug 1022612. Part 16: No need to exclude final transparent region from window opaque region. r=mattwoodrow
The removed code should be a no-op as long as the window opaque region is
accurate enough.

--HG--
extra : rebase_source : c48e2ecaa9e7653708681011cd335d377d5bfaba
2014-06-09 16:48:01 +12:00
Robert O'Callahan
e4542f2a87 Bug 1022612. Part 14: Don't compute a final transparent region anymore. r=mattwoodrow
Computing this via FrameLayerBuilder is some work and we don't really have to.

SuppressComponentAlpha will be true in more cases. This will be OK as long as
text in the chrome window is over opaque content in the same ThebesLayer. We
will miss some edge cases such as text in 'opacity' with no opaque background.
This should be OK.

--HG--
extra : rebase_source : dc8bbdd564cc99df1286921e59642648779b9c4a
2014-06-09 16:48:00 +12:00
Robert O'Callahan
958eac2c9b Bug 1022612. Part 13: Set mDidComputeVisibility in ProcessDisplayItems. r=mattwoodrow
--HG--
extra : rebase_source : c1a929e549c437388aa308b3dfda68b923eb0236
2014-07-07 17:46:28 +12:00
Robert O'Callahan
53a92cc8dd Bug 1022612. Part 12: Propagate NeedsTransparentSurface in ProcessDisplayItems. r=mattwoodrow
--HG--
extra : rebase_source : ed15b100438912f12e3c556d2a6a43e8387b2981
2014-06-09 16:48:00 +12:00
Robert O'Callahan
394c554597 Bug 1022612. Part 11: Set opaque flag on nsDisplayList if we find an opaque item that covers the whole list. r=mattwoodrow
This is less general than what nsDisplayItem::ComputeVisibility does. This means
if multiple opaque items together cover the list bounds, but not individually,
we won't mark the list as opaque. I think that should be OK.

--HG--
extra : rebase_source : 43dced732123617f85f360d13861b01d70fddef5
2014-06-09 16:48:00 +12:00
Robert O'Callahan
7ec8598426 Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow
BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.

--HG--
extra : rebase_source : 6a9727998a5ffb01896a4a2bbdd8d30a24c89dcd
2014-06-09 16:48:00 +12:00
Robert O'Callahan
275617c3a2 Bug 1022612. Part 9: nsDisplayScrollInfoLayer destructor does not need to destroy ScrollLayerCount. r=mattwoodrow
Getting the timing of this right without processing display items in reverse
order is hard. But it doesn't matter if this property sticks around anyway.

--HG--
extra : rebase_source : 9c94f2091818bb50b31a584a53c572007cd6d0e6
2014-06-09 16:47:59 +12:00
Robert O'Callahan
74fa42385b Bug 1022612. Part 8: nsDisplayWrapList (but not subclasses) should return true for ShouldFlattenAway. r=mattwoodrow
Also the assertion in TryMerge is going away because we're going to do TryMerge
first in FrameLayerBuilder.

--HG--
extra : rebase_source : d6343f0a7cb26f9848c2d2b8d46bb1787d3ae632
2014-06-09 16:47:59 +12:00
Robert O'Callahan
664f39225d Bug 1022612. Part 6: Set the initial mVisibleRect for each display item to the dirty rect when we create the item. r=mattwoodrow
--HG--
extra : rebase_source : 23fb5aefd5de004ca89037724aff7b34e1a5864e
2014-06-09 16:47:59 +12:00
Robert O'Callahan
1c4afc62d4 Bug 1022612. Part 5: BuildDisplayListForExtraPage needs to pass the correct dirty rect in. r=mattwoodrow
When printing, every page has the same origin. So doing this change naively
would result in the first page having all the display items for every page
added to it, and all but the first page's display items being pruned
away by PruneDisplayListForExtraPage. This would making printing long documents
very slow. We avoid that problem with the new check for
NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO, so the only pages other than the
current page we descend into are the ones with placeholders for abs-pos content
on the current page.

--HG--
extra : rebase_source : 5e07ef9e894ef41d36d4daf4498a14d5163da337
2014-06-09 16:47:58 +12:00
Robert O'Callahan
f0eb2a246f Bug 1022612. Part 4: Track current dirty rect in nsDisplayListBuilder. r=mattwoodrow
We need this to set the initial visible rect during display list construction.
Eventually we'll also be able to get rid of the dirty rect parameter to
nsIFrame::BuildDisplayList.

--HG--
extra : rebase_source : 1ba0444270986dd799a27e4373ca16525f3ced6c
2014-05-20 15:59:14 +12:00
Robert O'Callahan
46963f0a77 Bug 1022612. Part 3: Rename "cached frame" to "current frame" in nsDisplayListBuilder and take advantage of the fact it's always set. r=mattwoodrow
--HG--
extra : rebase_source : 78a1f6886828d88d1a9d4e96d36d86846ebb845f
2014-05-20 15:49:54 +12:00
Robert O'Callahan
18b43e922a Bug 1022612. Part 2: Remove unused nsDisplayWrapList constructor. r=mattwoodrow
--HG--
extra : rebase_source : df4241bf3f2a646b45c8653c0e36f9eea1cf823e
2014-05-20 15:08:20 +12:00
Robert O'Callahan
ca0ac51233 Bug 1022612. Part 1: Always pass a frame to AutoBuildingDisplayList. r=mattwoodrow
--HG--
extra : rebase_source : c76f7af7e65a4e98dc3ee0a8309d0c05e02cf82e
2014-05-20 15:08:18 +12:00
Timothy Nikkel
d3e1ebc989 Bug 995519. Enable overlay scrollbars on root scrollframes in root content documents. r=roc 2014-07-15 00:09:24 -05:00
Matt Woodrow
6d89446227 Bug 1034247 - Avoid propogating scale factors down to ThebesLayers if it would result in them being larger than the max texture size. r=roc 2014-07-09 14:01:54 +12:00
Gabriel Luong
0db3e380b1 Bug 591303 - Part 3: Set line and column number for all rules in nsCSSParser. r=bz 2014-07-14 15:57:54 -07:00