gecko-dev/layout/painting
Kartikaya Gupta 45dff4d7bb Bug 1554985 - Prevent the WebRenderUserData on the render root item from getting discarded prematurely. r=jrmuizel
With retained display lists, a content render root might get marked as not
needing a build, in which case the nsDisplayRenderRoot::CreateWRCommands
function does an early exit. In this case, we don't mark the associated
WebRenderUserData as used during the display list build, which causes it to
get deleted at the end of the transaction. The next transaction that
doesn't early-exit will re-create the WebRenderUserData with a new boundary
object. The compositor therefore thinks it's a brand new thing and, if
conditions are right, could end up destroying and re-creating much of the
APZC tree. That in turn can have effects like discarding paint-skipped
scrolling.

This patch ensures we always touch the WebRenderUserData during the display
list build, so we don't discard it. This problem may still affect nested
nsDisplayRenderRoot instances but I don't think we ever cases where those
occur.

Depends on D36386

Differential Revision: https://phabricator.services.mozilla.com/D36387

--HG--
extra : moz-landing-system : lando
2019-07-01 01:23:03 +00:00
..
crashtests Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko 2019-06-11 04:39:17 +00:00
ActiveLayerTracker.cpp Bug 1429299 - Part 1: Unpack StyleMotion and use cbindgen for OffsetPath. r=emilio 2019-05-20 23:42:50 +00:00
ActiveLayerTracker.h
BorderCache.h
BorderConsts.h
DashedCornerFinder.cpp
DashedCornerFinder.h
DisplayItemClip.cpp Bug 1554247 - Fix bracing in layout/painting r=miko 2019-05-29 14:34:34 +00:00
DisplayItemClip.h
DisplayItemClipChain.cpp
DisplayItemClipChain.h
DisplayListChecker.cpp Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright 2019-06-27 16:28:25 +10:00
DisplayListChecker.h
DisplayListClipState.cpp
DisplayListClipState.h
DottedCornerFinder.cpp
DottedCornerFinder.h
FrameLayerBuilder.cpp Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright 2019-06-27 16:28:25 +10:00
FrameLayerBuilder.h Bug 1348503 - Retrieve the FrameLayerBuilder pointer from the LayerManager when we need it. r=tnikkel 2019-06-13 17:02:54 +00:00
LayerState.h Bug 1529698 - Part 1: Make LayerState enum class r=mattwoodrow 2019-05-18 20:11:11 +00:00
MaskLayerImageCache.cpp
MaskLayerImageCache.h
MatrixStack.h
PaintTracker.cpp
PaintTracker.h
RetainedDisplayListBuilder.cpp Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright 2019-06-27 16:28:25 +10:00
RetainedDisplayListBuilder.h Bug 1558482 - Apply visibleRect and scaling when painting. r=mattwoodrow 2019-06-11 07:52:12 -05:00
RetainedDisplayListHelpers.h Bug 1554247 - Fix bracing in layout/painting r=miko 2019-05-29 14:34:34 +00:00
TransformClipNode.h
moz.build
nsCSSRendering.cpp Bug 1440014: Part 1: Implemented rendering for text-decoration-width CSS property r=jfkthame 2019-06-26 21:21:57 +00:00
nsCSSRendering.h Bug 1440014: Part 1: Implemented rendering for text-decoration-width CSS property r=jfkthame 2019-06-26 21:21:57 +00:00
nsCSSRenderingBorders.cpp Bug 1557212 - Use cbindgen for gradients. r=jwatt 2019-06-07 14:13:17 +00:00
nsCSSRenderingBorders.h
nsCSSRenderingGradients.cpp Bug 1557212 - Use cbindgen for gradients. r=jwatt 2019-06-07 14:13:17 +00:00
nsCSSRenderingGradients.h Bug 1557212 - Use cbindgen for gradients. r=jwatt 2019-06-07 14:13:17 +00:00
nsDisplayItemTypes.h Bug 1551986 - Do not create unnecessary items inside opacity: 0 containers r=mattwoodrow 2019-05-16 21:13:49 +00:00
nsDisplayItemTypesList.h Bug 1529698 - Part 4: Add nsDisplayContainer r=mattwoodrow 2019-05-18 20:11:42 +00:00
nsDisplayList.cpp Bug 1554985 - Prevent the WebRenderUserData on the render root item from getting discarded prematurely. r=jrmuizel 2019-07-01 01:23:03 +00:00
nsDisplayList.h Bug 1558937 - Don't allow duplicate items for printing. r=miko 2019-06-24 08:00:41 +00:00
nsDisplayListInvalidation.cpp Bug 1541985 - Merge nsCharClipDisplayItem and nsDisplayText r=mattwoodrow 2019-04-10 01:41:22 +00:00
nsDisplayListInvalidation.h Bug 1541985 - Merge nsCharClipDisplayItem and nsDisplayText r=mattwoodrow 2019-04-10 01:41:22 +00:00
nsImageRenderer.cpp Bug 1559094 - Restore old behavior for background-size: cover + zero-sized background positioning area. r=dholbert 2019-06-23 10:08:16 +00:00
nsImageRenderer.h Bug 1557212 - Use cbindgen for gradients. r=jwatt 2019-06-07 14:13:17 +00:00