Next, some content-side dumps. For WebRender, a WebRenderLayerScrollData tree: ``` WebRenderLayerScrollData(0x7f564c310008), descendantCount=8, visible=[] WebRenderLayerScrollData(0x7f564c310188), descendantCount=7, visible=[] WebRenderLayerScrollData(0x7f564c310c08), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310a88), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[1268,0,1280,415], scrollbarType=1, scrollbarAnimationId=0x509000000002 WebRenderLayerScrollData(0x7f564c310908), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310788), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[622,0,634,139], scrollbarType=1, scrollbarAnimationId=0x509000000003 WebRenderLayerScrollData(0x7f564c310488), descendantCount=1, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 0 50; ], visible=[] WebRenderLayerScrollData(0x7f564c310608), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=2304)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [overscroll=auto] [1 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310308), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] ``` And for non-WebRender, a layer tree: ``` ClientLayerManager (0x7fca4066e800) --- in content order ClientContainerLayer (0x7fca3d73a800) [visible=[0,0,1280,859]] [opaqueContent] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73b800) [clip=(x=0, y=0, w=0, h=0)] [not visible] ContentClient (0x7fca3d789400) ClientColorLayer (0x7fca3d740800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] } [opaqueContent] [color=dev_rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1280, h=859)] ClientContainerLayer (0x7fca3d73b000) [clip=(x=0, y=0, w=1280, h=859)] [visible=[0,0,1280,859]] [asyncZoomContainer scrollId=2] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73c800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] DispatchToContent=[1268,0,1280,859] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [valid=[0,0,1280,859]] ContentClient (0x7fca3d789640) ClientContainerLayer (0x7fca3d73c000) [clip=(x=1268, y=0, w=12, h=859)] [visible=[1268,0,1280,415]] [vscrollbar=3] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73d800) [transform=[ 1 0; 0 1; 1268 0; ]] [effective-transform=[ 1 0; 0 1; 1268 0; ]] [visible=[0,0,12,415]] { Hit=[0,0,12,415] DispatchToContent=[0,0,12,415] } [valid=[0,0,12,415]] ContentClient (0x7fca3d7897c0) ClientPaintedLayer (0x7fca3d743800) [not visible] { Hit=[0,0,1268,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ContentClient (0x7fca3d794640) ClientContainerLayer (0x7fca3d73d000) [clip=(x=0, y=0, w=1268, h=1718)] [transform=[ 1 0; 0 1; 0 50; ]] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,634,859]] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73f800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,859]] { Hit=[0,0,634,859] DispatchToContent=[622,0,634,859] } [opaqueContent] [valid=[622,0,634,859]] ContentClient (0x7fca3d789a00) ClientContainerLayer (0x7fca440cd800) [clip=(x=622, y=0, w=12, h=859)] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,139]] [vscrollbar=4] [presShellResolution=1] ClientPaintedLayer (0x7fca440d0000) [transform=[ 1 0; 0 1; 622 0; ]] [effective-transform=[ 1 0; 0 1; 622 50; ]] [visible=[0,0,12,139]] { Hit=[0,0,12,139] DispatchToContent=[0,0,12,139] } [valid=[0,0,12,139]] ContentClient (0x7fca3d794700) ClientPaintedLayer (0x7fca440ce800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,622,3200]] { Hit=[0,0,622,5000] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=3200)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [clip=(x=0, y=0, w=622, h=859)] [overscroll=auto] [1 scrollupdates] }] [valid=[0,0,622,3200]] ContentClient (0x7fca3d794880) ClientPaintedLayer (0x7fca3d743000) [not visible] { [Parent 23029: Compositor]: Hit=[0,859,634,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ContentClient (0x7fca3d794a00) ``` In both cases, the parent (v=3) and grandparent (v=2) of the v=4 hit-testing tree node come from a single node in the above trees. That single node has two metrics (v=2 and v=3), and the (0,50) transform is present on that node (as a property of the node, not the metrics). However, when the hit-testing tree is created, with WebRender the transform ends up on the v=2 node whereas with non-WR the transform ends up on the v=3 node.
Bug 1719913 Comment 15 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Next, some content-side dumps. For WebRender, a WebRenderLayerScrollData tree: ``` WebRenderLayerScrollData(0x7f564c310008), descendantCount=8, visible=[] WebRenderLayerScrollData(0x7f564c310188), descendantCount=7, visible=[] WebRenderLayerScrollData(0x7f564c310c08), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310a88), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[1268,0,1280,415], scrollbarType=1, scrollbarAnimationId=0x509000000002 WebRenderLayerScrollData(0x7f564c310908), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310788), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[622,0,634,139], scrollbarType=1, scrollbarAnimationId=0x509000000003 WebRenderLayerScrollData(0x7f564c310488), descendantCount=1, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 0 50; ], visible=[] WebRenderLayerScrollData(0x7f564c310608), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=2304)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [overscroll=auto] [1 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310308), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] ``` And for non-WebRender, a layer tree: ``` ClientLayerManager (0x7fca4066e800) --- in content order ClientContainerLayer (0x7fca3d73a800) [visible=[0,0,1280,859]] [opaqueContent] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73b800) [clip=(x=0, y=0, w=0, h=0)] [not visible] ClientColorLayer (0x7fca3d740800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] } [opaqueContent] [color=dev_rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1280, h=859)] ClientContainerLayer (0x7fca3d73b000) [clip=(x=0, y=0, w=1280, h=859)] [visible=[0,0,1280,859]] [asyncZoomContainer scrollId=2] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73c800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] DispatchToContent=[1268,0,1280,859] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [valid=[0,0,1280,859]] ClientContainerLayer (0x7fca3d73c000) [clip=(x=1268, y=0, w=12, h=859)] [visible=[1268,0,1280,415]] [vscrollbar=3] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73d800) [transform=[ 1 0; 0 1; 1268 0; ]] [effective-transform=[ 1 0; 0 1; 1268 0; ]] [visible=[0,0,12,415]] { Hit=[0,0,12,415] DispatchToContent=[0,0,12,415] } [valid=[0,0,12,415]] ClientPaintedLayer (0x7fca3d743800) [not visible] { Hit=[0,0,1268,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ClientContainerLayer (0x7fca3d73d000) [clip=(x=0, y=0, w=1268, h=1718)] [transform=[ 1 0; 0 1; 0 50; ]] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,634,859]] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73f800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,859]] { Hit=[0,0,634,859] DispatchToContent=[622,0,634,859] } [opaqueContent] [valid=[622,0,634,859]] ClientContainerLayer (0x7fca440cd800) [clip=(x=622, y=0, w=12, h=859)] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,139]] [vscrollbar=4] [presShellResolution=1] ClientPaintedLayer (0x7fca440d0000) [transform=[ 1 0; 0 1; 622 0; ]] [effective-transform=[ 1 0; 0 1; 622 50; ]] [visible=[0,0,12,139]] { Hit=[0,0,12,139] DispatchToContent=[0,0,12,139] } [valid=[0,0,12,139]] ClientPaintedLayer (0x7fca440ce800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,622,3200]] { Hit=[0,0,622,5000] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=3200)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [clip=(x=0, y=0, w=622, h=859)] [overscroll=auto] [1 scrollupdates] }] [valid=[0,0,622,3200]] ClientPaintedLayer (0x7fca3d743000) [not visible] { [Parent 23029: Compositor]: Hit=[0,859,634,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ``` In both cases, the parent (v=3) and grandparent (v=2) of the v=4 hit-testing tree node come from a single node in the above trees. That single node has two metrics (v=2 and v=3), and the (0,50) transform is present on that node (as a property of the node, not the metrics). However, when the hit-testing tree is created, with WebRender the transform ends up on the v=2 node whereas with non-WR the transform ends up on the v=3 node.
Next, some content-side dumps. For WebRender, a WebRenderLayerScrollData tree: ``` WebRenderLayerScrollData(0x7f564c310008), descendantCount=8, visible=[] WebRenderLayerScrollData(0x7f564c310188), descendantCount=7, visible=[] WebRenderLayerScrollData(0x7f564c310c08), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310a88), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[1268,0,1280,415], scrollbarType=1, scrollbarAnimationId=0x509000000002 WebRenderLayerScrollData(0x7f564c310908), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310788), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[622,0,634,139], scrollbarType=1, scrollbarAnimationId=0x509000000003 WebRenderLayerScrollData(0x7f564c310488), descendantCount=1, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 0 50; ], visible=[] WebRenderLayerScrollData(0x7f564c310608), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=2304)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [overscroll=auto] [1 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310308), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] ``` And for non-WebRender, a layer tree: ``` ClientLayerManager (0x7fca4066e800) --- in content order ClientContainerLayer (0x7fca3d73a800) [visible=[0,0,1280,859]] [opaqueContent] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73b800) [clip=(x=0, y=0, w=0, h=0)] [not visible] ClientColorLayer (0x7fca3d740800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] } [opaqueContent] [color=dev_rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1280, h=859)] ClientContainerLayer (0x7fca3d73b000) [clip=(x=0, y=0, w=1280, h=859)] [visible=[0,0,1280,859]] [asyncZoomContainer scrollId=2] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73c800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] DispatchToContent=[1268,0,1280,859] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [valid=[0,0,1280,859]] ClientContainerLayer (0x7fca3d73c000) [clip=(x=1268, y=0, w=12, h=859)] [visible=[1268,0,1280,415]] [vscrollbar=3] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73d800) [transform=[ 1 0; 0 1; 1268 0; ]] [effective-transform=[ 1 0; 0 1; 1268 0; ]] [visible=[0,0,12,415]] { Hit=[0,0,12,415] DispatchToContent=[0,0,12,415] } [valid=[0,0,12,415]] ClientPaintedLayer (0x7fca3d743800) [not visible] { Hit=[0,0,1268,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ClientContainerLayer (0x7fca3d73d000) [clip=(x=0, y=0, w=1268, h=1718)] [transform=[ 1 0; 0 1; 0 50; ]] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,634,859]] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73f800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,859]] { Hit=[0,0,634,859] DispatchToContent=[622,0,634,859] } [opaqueContent] [valid=[622,0,634,859]] ClientContainerLayer (0x7fca440cd800) [clip=(x=622, y=0, w=12, h=859)] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,139]] [vscrollbar=4] [presShellResolution=1] ClientPaintedLayer (0x7fca440d0000) [transform=[ 1 0; 0 1; 622 0; ]] [effective-transform=[ 1 0; 0 1; 622 50; ]] [visible=[0,0,12,139]] { Hit=[0,0,12,139] DispatchToContent=[0,0,12,139] } [valid=[0,0,12,139]] ClientPaintedLayer (0x7fca440ce800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,622,3200]] { Hit=[0,0,622,5000] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=3200)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [clip=(x=0, y=0, w=622, h=859)] [overscroll=auto] [1 scrollupdates] }] [valid=[0,0,622,3200]] ClientPaintedLayer (0x7fca3d743000) [not visible] { Hit=[0,859,634,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ``` In both cases, the parent (v=3) and grandparent (v=2) of the v=4 hit-testing tree node come from a single node in the above trees. That single node has two metrics (v=2 and v=3), and the (0,50) transform is present on that node (as a property of the node, not the metrics). However, when the hit-testing tree is created, with WebRender the transform ends up on the v=2 node whereas with non-WR the transform ends up on the v=3 node.
Next, some content-side dumps. For WebRender, a WebRenderLayerScrollData tree: ``` WebRenderLayerScrollData(0x7f564c310008), descendantCount=8, visible=[] WebRenderLayerScrollData(0x7f564c310188), descendantCount=7, visible=[] WebRenderLayerScrollData(0x7f564c310c08), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310a88), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[1268,0,1280,415], scrollbarType=1, scrollbarAnimationId=0x509000000002 WebRenderLayerScrollData(0x7f564c310908), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310788), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[622,0,634,139], scrollbarType=1, scrollbarAnimationId=0x509000000003 WebRenderLayerScrollData(0x7f564c310488), descendantCount=1, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 0 50; ], visible=[] WebRenderLayerScrollData(0x7f564c310608), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=2304)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [overscroll=auto] [1 scrollupdates] }, visible=[] WebRenderLayerScrollData(0x7f564c310308), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [0 scrollupdates] }, metadata1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[] ``` And for non-WebRender, a layer tree: ``` ClientLayerManager (0x7fca4066e800) --- in content order ClientContainerLayer (0x7fca3d73a800) [visible=[0,0,1280,859]] [opaqueContent] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73b800) [clip=(x=0, y=0, w=0, h=0)] [not visible] ClientColorLayer (0x7fca3d740800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] } [opaqueContent] [color=dev_rgba(255, 255, 255, 1.000000)] [bounds=(x=0, y=0, w=1280, h=859)] ClientContainerLayer (0x7fca3d73b000) [clip=(x=0, y=0, w=1280, h=859)] [visible=[0,0,1280,859]] [asyncZoomContainer scrollId=2] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73c800) [visible=[0,0,1280,859]] { Hit=[0,0,1280,859] DispatchToContent=[1268,0,1280,859] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [valid=[0,0,1280,859]] ClientContainerLayer (0x7fca3d73c000) [clip=(x=1268, y=0, w=12, h=859)] [visible=[1268,0,1280,415]] [vscrollbar=3] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73d800) [transform=[ 1 0; 0 1; 1268 0; ]] [effective-transform=[ 1 0; 0 1; 1268 0; ]] [visible=[0,0,12,415]] { Hit=[0,0,12,415] DispatchToContent=[0,0,12,415] } [valid=[0,0,12,415]] ClientPaintedLayer (0x7fca3d743800) [not visible] { Hit=[0,0,1268,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ClientContainerLayer (0x7fca3d73d000) [clip=(x=0, y=0, w=1268, h=1718)] [transform=[ 1 0; 0 1; 0 50; ]] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,634,859]] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] [presShellResolution=1] ClientPaintedLayer (0x7fca3d73f800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,859]] { Hit=[0,0,634,859] DispatchToContent=[622,0,634,859] } [opaqueContent] [valid=[622,0,634,859]] ClientContainerLayer (0x7fca440cd800) [clip=(x=622, y=0, w=12, h=859)] [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[622,0,634,139]] [vscrollbar=4] [presShellResolution=1] ClientPaintedLayer (0x7fca440d0000) [transform=[ 1 0; 0 1; 622 0; ]] [effective-transform=[ 1 0; 0 1; 622 50; ]] [visible=[0,0,12,139]] { Hit=[0,0,12,139] DispatchToContent=[0,0,12,139] } [valid=[0,0,12,139]] ClientPaintedLayer (0x7fca440ce800) [effective-transform=[ 1 0; 0 1; 0 50; ]] [visible=[0,0,622,3200]] { Hit=[0,0,622,5000] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=622, h=859)] [sr=(x=0, y=0, w=622, h=5000)] [s=(0,0)] [dp=(x=0, y=0, w=622, h=3200)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=622, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 3)] scrollId=4 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=3] [clip=(x=0, y=0, w=622, h=859)] [overscroll=auto] [1 scrollupdates] }] [valid=[0,0,622,3200]] ClientPaintedLayer (0x7fca3d743000) [not visible] { Hit=[0,859,634,1718] } [opaqueContent] [metrics0={ [metrics={ [cb=(x=0, y=0, w=1268, h=859)] [sr=(x=0, y=0, w=1268, h=1718)] [s=(0,0)] [dp=(x=0, y=0, w=1268, h=1718)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1268, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [clip=(x=0, y=0, w=1268, h=859)] [overscroll=auto] [0 scrollupdates] }] [metrics1={ [metrics={ [cb=(x=0, y=0, w=1280, h=859)] [sr=(x=0, y=0, w=1280, h=859)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=859)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 859)] [v=(x=0, y=0, w=1280, h=859)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [clip=(x=0, y=0, w=1280, h=859)] [overscroll=auto] [0 scrollupdates] }] ``` In both cases, the parent (v=3) and grandparent (v=2) of the v=4 hit-testing tree node come from a single node in the above trees. That single node has two metrics (v=2 and v=3), and the (0,50) transform is present on that node (as a property of the node itself, not one of the metrics). However, when the hit-testing tree is created, with WebRender the transform ends up on the v=2 node whereas with non-WR the transform ends up on the v=3 node.