Assertion failure: false (Two layers that scroll together have different ancestor transforms), at src/gfx/layers/apz/src/APZCTreeManager.cpp:1343
Categories
(Core :: Panning and Zooming, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr91 | --- | unaffected |
firefox98 | --- | wontfix |
firefox99 | --- | wontfix |
firefox100 | --- | verified |
People
(Reporter: tsmith, Assigned: botond)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: assertion, regression, testcase, Whiteboard: [bugmon:bisected,confirmed])
Attachments
(2 files)
Found while fuzzing 20220131-788ab1920ef8 (--enable-debug --enable-fuzzing)
To reproduce via Grizzly Replay:
$ pip install fuzzfetch grizzly-framework
$ python -m fuzzfetch -d --fuzzing -n firefox
$ python -m grizzly.replay ./firefox/firefox testcase.html
Assertion failure: false (Two layers that scroll together have different ancestor transforms), at src/gfx/layers/apz/src/APZCTreeManager.cpp:1343
#0 0x7fe1a3214f1b in mozilla::layers::APZCTreeManager::PrepareNodeForLayer(mozilla::RecursiveMutexAutoLock const&, mozilla::layers::WebRenderScrollDataWrapper const&, mozilla::layers::FrameMetrics const&, mozilla::layers::LayersId, mozilla::Maybe<mozilla::layers::ZoomConstraints> const&, mozilla::layers::AncestorTransform const&, mozilla::layers::HitTestingTreeNode*, mozilla::layers::HitTestingTreeNode*, mozilla::layers::APZCTreeManager::TreeBuildingState&) src/gfx/layers/apz/src/APZCTreeManager.cpp:1341:9
#1 0x7fe1a3206d6c in operator() src/gfx/layers/apz/src/APZCTreeManager.cpp:490:38
#2 0x7fe1a3206d6c in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:139:3
#3 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#4 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#5 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#6 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#7 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#8 0x7fe1a3207c71 in std::enable_if<(std::is_same_v<decltype(fp0(fp)), void>) && (std::is_same_v<decltype(fp1(fp)), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4>(mozilla::layers::WebRenderScrollDataWrapper, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_3 const&, mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::$_4 const&) src/gfx/layers/TreeTraversal.h:143:5
#9 0x7fe1a3204dcf in mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int) src/gfx/layers/apz/src/APZCTreeManager.cpp:449:5
#10 0x7fe1a3278a52 in operator() src/gfx/layers/apz/src/APZUpdater.cpp:196:25
#11 0x7fe1a3278a52 in mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::LayersId, mozilla::layers::LayersId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:531:5
#12 0x7fe1a3237adf in mozilla::layers::APZUpdater::ProcessQueue() src/gfx/layers/apz/src/APZUpdater.cpp:459:23
#13 0x7fe1a323733a in mozilla::layers::APZUpdater::CompleteSceneSwap(mozilla::wr::WrWindowId const&, mozilla::wr::WrPipelineInfo const&) src/gfx/layers/apz/src/APZUpdater.cpp:121:12
#14 0x7fe1a323a669 in apz_post_scene_swap src/gfx/layers/apz/src/APZUpdater.cpp:527:3
#15 0x7fe1aa44ba66 in _$LT$webrender_bindings..bindings..APZCallbacks$u20$as$u20$webrender..renderer..SceneBuilderHooks$GT$::post_scene_swap::h99b4a35edfd47fac src/gfx/webrender_bindings/src/bindings.rs:1007:13
#16 0x7fe1aa6207e6 in webrender::scene_builder_thread::SceneBuilderThread::forward_built_transactions::hced81e3e9d38f922 src/gfx/wr/webrender/src/scene_builder_thread.rs:719:13
#17 0x7fe1aa6207e6 in webrender::scene_builder_thread::SceneBuilderThread::run::h45b090d72f48c5aa src/gfx/wr/webrender/src/scene_builder_thread.rs:319:21
#18 0x7fe1aa487acc in webrender::renderer::Renderer::new::_$u7b$$u7b$closure$u7d$$u7d$::h469494766b3f2339 src/gfx/wr/webrender/src/renderer/mod.rs:1237:13
#19 0x7fe1aa487acc in std::sys_common::backtrace::__rust_begin_short_backtrace::h63344c73c15b1fb6 /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/sys_common/backtrace.rs:123:18
#20 0x7fe1aa49e90f in std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hf19578ef60059335 /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/thread/mod.rs:484:17
#21 0x7fe1aa49e90f in _$LT$core..panic..unwind_safe..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hdb0819c851d490fe /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/core/src/panic/unwind_safe.rs:271:9
#22 0x7fe1aa49e90f in std::panicking::try::do_call::h63584cd89793bc1f /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/panicking.rs:406:40
#23 0x7fe1aa49e90f in std::panicking::try::hff613628669c8e52 /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/panicking.rs:370:19
#24 0x7fe1aa49e90f in std::panic::catch_unwind::h6e8d64f13444060b /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/panic.rs:133:14
#25 0x7fe1aa49e90f in std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::hc25c5a7224576747 /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/thread/mod.rs:483:30
#26 0x7fe1aa49e90f in core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h9c8fe4302e41b559 /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/core/src/ops/function.rs:227:5
#27 0x7fe1ab34b4c2 in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h3604301cdaaa9dbf /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/alloc/src/boxed.rs:1694:9
#28 0x7fe1ab34b4c2 in _$LT$alloc..boxed..Box$LT$F$C$A$GT$$u20$as$u20$core..ops..function..FnOnce$LT$Args$GT$$GT$::call_once::h4cf736d2de892eff /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/alloc/src/boxed.rs:1694:9
#29 0x7fe1ab34b4c2 in std::sys::unix::thread::Thread::new::thread_start::h71a82d4ee5b02c9b /rustc/02072b482a8b5357f7fb5e5637444ae30e423c40/library/std/src/sys/unix/thread.rs:106:17
#30 0x7fe1b79c6608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477:8
#31 0x7fe1b758e292 in __clone /build/glibc-eX1tMB/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Reporter | ||
Comment 2•3 years ago
•
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #1)
I don't think that's the right stack.
Fixed, thank you.
Reporter | ||
Comment 3•3 years ago
|
||
A Pernosco session is available here: https://pernos.co/debug/XCPtj93FO6rdYJXowh_qtg/index.html
Comment 4•3 years ago
|
||
Bugmon Analysis
Verified bug as reproducible on mozilla-central 20220205014840-e8991d00a1d1.
The bug appears to have been introduced in the following build range:
Start: 3a83a5c25a2ed0b73f616f9def2f1e738a90ce90 (20210819033348)
End: 33fca42928519b723ac6efd93c4ffb69f569e23f (20210819044300)
Pushlog: https://hg.mozilla.org/mozilla-unified/pushloghtml?fromchange=3a83a5c25a2ed0b73f616f9def2f1e738a90ce90&tochange=33fca42928519b723ac6efd93c4ffb69f569e23f
Assignee | ||
Comment 5•3 years ago
|
||
WRScrollData tree:
--- WebRenderScrollData (firstPaint=1) ---
WebRenderLayerScrollData(0x7ff7ae4c1008), descendantCount=8), item=0, visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1198), descendantCount=7), item=0x7ff7ae4b6068, visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1c88), descendantCount=0), item=0x7ff7ae4b51a8, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=887)] [sr=(x=0, y=0, w=1280, h=887)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=887)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 887)] [v=(x=0, y=0, w=1280, h=887)] [z=(ld=1.000 r=1.000 cr=1 z=1 t=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [1 scrollupdates] }, visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1968), descendantCount=1), item=0x7ff7ae4b5ec0, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=887)] [sr=(x=0, y=0, w=1280, h=887)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=887)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 887)] [v=(x=0, y=0, w=1280, h=887)] [z=(ld=1.000 r=1.000 cr=1 z=1 t=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [1 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 8 32; ] (asr=2), visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1af8), descendantCount=0), item=0x7ff7ae4b5820, metadata0={ [metrics={ [cb=(x=0, y=0, w=1252, h=18.0667)] [sr=(x=0, y=0, w=1252, h=26.0667)] [s=(0,0)] [dp=(x=0, y=0, w=1252, h=26.0667)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 887)] [v=(x=0, y=0, w=1252, h=18.0667)] [z=(ld=1.000 r=1.000 cr=1 z=1 t=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [1 scrollupdates] }, visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1328), descendantCount=3), item=0x7ff7ae4b5c70, metadata0={ [metrics={ [cb=(x=0, y=0, w=1280, h=887)] [sr=(x=0, y=0, w=1280, h=887)] [s=(0,0)] [dp=(x=0, y=0, w=1280, h=887)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 887)] [v=(x=0, y=0, w=1280, h=887)] [z=(ld=1.000 r=1.000 cr=1 z=1 t=1 )] [u=(0 1)] scrollId=2 [rcd] }] [color=dev_rgba(255, 255, 255, 1.000000)] [overscroll=auto] [1 scrollupdates] }, ancestorTransform=[ 1 0; 0 1; 8 32; ] (asr=2), visible=[]
WebRenderLayerScrollData(0x7ff7ae4c1648), descendantCount=1), item=0x7ff7ae4b5ec0, ancestorTransform=[ 1 0; 0 1; 8 32; ] (asr=2), visible=[]
WebRenderLayerScrollData(0x7ff7ae4c17d8), descendantCount=0), item=0x7ff7ae4b5b30, metadata0={ [metrics={ [cb=(x=0, y=0, w=1252, h=18.0667)] [sr=(x=0, y=0, w=1252, h=26.0667)] [s=(0,0)] [dp=(x=0, y=0, w=1252, h=26.0667)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(1280 x 887)] [v=(x=0, y=0, w=1252, h=18.0667)] [z=(ld=1.000 r=1.000 cr=1 z=1 t=1 )] [u=(0 2)] scrollId=3 }] [color=dev_rgba(0, 0, 0, 0.000000)] [scrollParent=2] [overscroll=auto] [1 scrollupdates] }, visible=[]
WebRenderLayerScrollData(0x7ff7ae4c14b8), descendantCount=0), item=0x7ff7ae4b5bd0, ancestorTransform=[ 1 0; 0 1; 8 32; ] (asr=2), visible=[]
Both the node 0x7ff7ae4c1328, and its children, have ancestorTransform=[ 1 0; 0 1; 8 32; ]
, but there's only one transform item in the display list, so it's the same transform being incorrectly emitted on multiple nodes in a parent chain.
Assignee | ||
Comment 6•3 years ago
|
||
And here's the display list it's based on:
SolidColor p=0x7ff7ae4b6218 f=0x7ff7ae44a020(Viewport(-1)) key=53 bounds(0,0,76800,53220) componentAlpha(0,0,0,0) clip() asr() clipChain() uniform (opaque 0,0,76800,53220) (rgba 255,255,255,255)
CompositorHitTestInfo p=0x7ff7ae4b5020 f=0x7ff7ae44a1a8(HTMLScroll(html)(-1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr() clipChain() hitTestInfo(0x1) hitTestArea(0,0,76800,53220)
AsyncZoom p=0x7ff7ae4b6068 f=0x7ff7ae44a1a8(HTMLScroll(html)(-1)) key=2 bounds(0,0,76800,53220) componentAlpha(0,0,0,0) clip(0,0,76800,53220) asr() clipChain(0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) (opaque 0,0,76800,53220) (flags 0x0) (scrolltarget 0)
CanvasBackgroundColor p=0x7ff7ae4b51a8 f=0x7ff7ae44a0c8(Canvas(html)(-1)) key=16 bounds(0,0,76800,53220) componentAlpha(0,0,0,0) clip(0,0,76800,53220) asr(<0x7ff7ae44a248>) clipChain(0x7ff7ae4b5248 <0,0,76800,53220> [0x7ff7ae44a248], 0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) uniform (opaque 0,0,76800,53220) (rgba 255,255,255,255)
CompositorHitTestInfo p=0x7ff7ae4b50c0 f=0x7ff7ae44a0c8(Canvas(html)(-1)) key=281 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain(0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) hitTestInfo(0x1) hitTestArea(0,0,76800,53220)
CompositorHitTestInfo p=0x7ff7ae4b5290 f=0x7ff7ae44aae0(Block(html)(-1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,76800,53220) asr(<0x7ff7ae44a248>) clipChain(0x7ff7ae4b5248 <0,0,76800,53220> [0x7ff7ae44a248], 0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) hitTestInfo(0x1) hitTestArea(0,0,76800,4924)
CompositorHitTestInfo p=0x7ff7ae4b5330 f=0x7ff7ae44aba8(Block(body)(1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,76800,53220) asr(<0x7ff7ae44a248>) clipChain(0x7ff7ae4b5248 <0,0,76800,53220> [0x7ff7ae44a248], 0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) hitTestInfo(0x1) hitTestArea(480,1920,75840,1084)
nsDisplayTransform p=0x7ff7ae4b5ec0 f=0x7ff7ae44acc0(Block(h1 id=a)(0) id:a) key=73 bounds(480,1920,0,0) componentAlpha(0,0,0,0) clip(0,0,76800,53220) asr(<0x7ff7ae44a248>) clipChain(0x7ff7ae4b5248 <0,0,76800,53220> [0x7ff7ae44a248], 0x7ff7ae4b5160 <0,0,76800,53220> [root asr]) [ 1 0; 0 1; 8 32; ] prerender(no) childrenBuildingRect(x=0, y=-777, w=75840, h=2341)
CompositorHitTestInfo p=0x7ff7ae4b53d0 f=0x7ff7ae44acc0(Block(h1 id=a)(0) id:a) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() hitTestInfo(0x1) hitTestArea(0,0,75840,1084)
Opacity p=0x7ff7ae4b5d98 f=0x7ff7ae44ad88(HTMLScroll(ol)(1) class:b) key=43 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() (opacity 0, mChildOpacityState: Unknown)
CompositorHitTestInfo p=0x7ff7ae4b5470 f=0x7ff7ae44ad88(HTMLScroll(ol)(1) class:b) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() hitTestInfo(0x1) hitTestArea(0,0,75840,1084)
CompositorHitTestInfo p=0x7ff7ae4b5510 f=0x7ff7ae44b2e8(ScrollbarFrame(scrollbar)(-1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() hitTestInfo(0x509) hitTestArea(75120,0,720,1084)
CompositorHitTestInfo p=0x7ff7ae4b55b0 f=0x7ff7ae44b408(SliderFrame(slider)(-1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() hitTestInfo(0x509) hitTestArea(75120,0,720,1084)
CompositorHitTestInfo p=0x7ff7ae4b5820 f=0x7ff7ae44b6c0(Block(ol)(1) class:b) key=281 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44ae28>, <0x7ff7ae44a248>) clipChain(0x7ff7ae4b58c0 <0,0,75120,1084> [0x7ff7ae44a248]) hitTestInfo(0x1) hitTestArea(0,0,75120,1564)
CompositorHitTestInfo p=0x7ff7ae4b5908 f=0x7ff7ae44b6c0(Block(ol)(1) class:b) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,75120,1564) asr(<0x7ff7ae44ae28>, <0x7ff7ae44a248>) clipChain(0x7ff7ae4b59a8 <0,0,75120,1564> [0x7ff7ae44ae28], 0x7ff7ae4b58c0 <0,0,75120,1084> [0x7ff7ae44a248]) hitTestInfo(0x1) hitTestArea(0,0,75120,1564)
CompositorHitTestInfo p=0x7ff7ae4b59f0 f=0x7ff7ae44b788(Block(li)(1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,75120,1564) asr(<0x7ff7ae44ae28>, <0x7ff7ae44a248>) clipChain(0x7ff7ae4b59a8 <0,0,75120,1564> [0x7ff7ae44ae28], 0x7ff7ae4b58c0 <0,0,75120,1084> [0x7ff7ae44a248]) hitTestInfo(0x1) hitTestArea(2400,0,72720,1084)
CompositorHitTestInfo p=0x7ff7ae4b5a90 f=0x7ff7ae44b850(Block(_moz_generated_content_marker)(-1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,75120,1564) asr(<0x7ff7ae44ae28>, <0x7ff7ae44a248>) clipChain(0x7ff7ae4b59a8 <0,0,75120,1564> [0x7ff7ae44ae28], 0x7ff7ae4b58c0 <0,0,75120,1084> [0x7ff7ae44a248]) hitTestInfo(0x1) hitTestArea(-272,0,2672,787)
Opacity p=0x7ff7ae4b5c70 f=0x7ff7ae44baa8(Inline(label)(1) class:b) key=43 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() (opacity 0, mChildOpacityState: Unknown)
CompositorHitTestInfo p=0x7ff7ae4b5b30 f=0x7ff7ae44baa8(Inline(label)(1) class:b) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip(0,0,75120,1564) asr(<0x7ff7ae44ae28>, <0x7ff7ae44a248>) clipChain(0x7ff7ae4b59a8 <0,0,75120,1564> [0x7ff7ae44ae28], 0x7ff7ae4b58c0 <0,0,75120,1084> [0x7ff7ae44a248]) hitTestInfo(0x1) hitTestArea(0,0,0,0)
CompositorHitTestInfo p=0x7ff7ae4b5bd0 f=0x7ff7ae44bbf0(Block(menu)(1)) key=25 bounds(0,0,0,0) componentAlpha(0,0,0,0) clip() asr(<0x7ff7ae44a248>) clipChain() hitTestInfo(0x1) hitTestArea(2400,0,3545,787)
Assignee | ||
Comment 7•3 years ago
|
||
I'm momentarily at a loss as to what is supposed to prevent a deferred transform from being emitted on multiple nodes in a parent chain in the first place... but I also think that if nothing is preventing that then we would be seeing issues like this much more often, so I feel like I'm missing something.
Comment 8•3 years ago
|
||
Hmm, maybe because if we are creating a WebRenderLayerScrollData at all then either UpdateScrollData returned true, we have a different asr, or we have a new deferred transform item with a different asr. So to have the situation you describe we'd need to keep the same asr, so UpdateScrollData has to return true and keep the same asr?
Comment 9•3 years ago
|
||
The severity field is not set for this bug.
:botond, could you have a look please?
For more information, please visit auto_nag documentation.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 10•3 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #8)
Hmm, maybe because if we are creating a WebRenderLayerScrollData at all then either UpdateScrollData returned true, we have a different asr, or we have a new deferred transform item with a different asr. So to have the situation you describe we'd need to keep the same asr, so UpdateScrollData has to return true and keep the same asr?
I think you're right, and I think that suggests that a fairly straightforward check to prevent deferred transforms from being emitted multiple times in a parent chain would be an appropriate fix here.
Assignee | ||
Comment 11•3 years ago
|
||
Updated•3 years ago
|
Comment 12•3 years ago
|
||
:botond, since this bug contains a bisection range, could you fill (if possible) the regressed_by field?
For more information, please visit auto_nag documentation.
Comment 13•3 years ago
|
||
Set release status flags based on info from the regressing bug 1726450
Comment 14•3 years ago
|
||
Comment 15•3 years ago
|
||
bugherder |
Comment 16•3 years ago
|
||
Bugmon Analysis
Verified bug as fixed on rev mozilla-central 20220316095231-4d80f4e1809a.
Removing bugmon keyword as no further action possible. Please review the bug and re-add the keyword for further analysis.
Updated•3 years ago
|
Updated•2 years ago
|
Description
•