Bug 1576524 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.

Here are (the interesting parts of) a couple of stacktraces showing what is triggering the transforms to be re-set to their old values:

```
#19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...)
    at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35
#20 0x00007ff4b78e9803 in mozilla::layers::CompositorBridgeParent::RecvAdoptChild(mozilla::layers::LayersId const&)::$_5::operator()() const (this=0x7ff4a014ea50)
    at /home/botond/dev/mozilla/central/gfx/layers/ipc/CompositorBridgeParent.cpp:1779
#21 mozilla::detail::RunnableFunction<mozilla::layers::CompositorBridgeParent::RecvAdoptChild(mozilla::layers::LayersId const&)::$_5>::Run() (this=0x7ff4a014ea30)
    at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564
#22 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533
#23 0x00007ff4b7825723 in mozilla::layers::APZUpdater::ProcessPendingTasks (aWindowId=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:130
#24 0x00007ff4b7826a82 in apz_run_updater (aWindowId=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:602
#25 0x00007ff4bb946c69 in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=<optimized out>) at gfx/wr/webrender/src/scene_builder.rs:373
```

```
#19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...)
    at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35
#20 0x00007ff4b7821a8e in mozilla::layers::APZCTreeManager::SendSubtreeTransformsToChromeMainThread (this=<optimized out>, aAncestor=<optimized out>)
    at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:3318
#21 0x00007ff4b783dd9d in mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper> (this=0x7ff4b1d9d800, aRoot=..., aIsFirstPaint=false,
    aOriginatingWrRootId=..., aPaintSequenceNumber=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:607
#22 0x00007ff4b783b1f8 in mozilla::layers::APZCTreeManager::UpdateHitTestingTree (this=0x7ff4b1d9d800, aScrollWrapper=...,
    aOriginatingWrRootId=<error reading variable: access outside bounds of object referenced via synthetic pointer>, aPaintSequenceNumber=<optimized out>, aIsFirstPaint=<optimized out>)
    at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:638
#23 mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28::operator()() (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:220
#24 mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28>::Run() (this=<optimized out>) at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564
#25 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533
#26 0x00007ff4b7824fda in mozilla::layers::APZUpdater::CompleteSceneSwap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:122
#27 0x00007ff4b7826a26 in apz_post_scene_swap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:597
#28 0x00007ff4bb61da16 in _$LT$webrender_bindings..bindings..APZCallbacks$u20$as$u20$webrender..renderer..SceneBuilderHooks$GT$::post_scene_swap::hf24b64877d4d9769 (self=<optimized out>,
    document_ids=0x7ff4a7efd6c8, info=..., sceneswap_time=<optimized out>) at gfx/webrender_bindings/src/bindings.rs:944
#29 0x00007ff4bb947c6e in webrender::scene_builder::SceneBuilder::forward_built_transactions::h77eaf8cb3ef0f13d (self=0x7ff4a7efe4c0, txns=...) at gfx/wr/webrender/src/scene_builder.rs:607
#30 0x00007ff4bb946aec in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=0x2) at gfx/wr/webrender/src/scene_builder.rs:330
```

They're in WebRender specific code, which explains why the issue only occurs with WebRender enabled.
Here is (the interesting part of) a stacktrace showing what is triggering the transforms to be re-set to their old values:

```
#19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...)
    at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35
#20 0x00007ff4b7821a8e in mozilla::layers::APZCTreeManager::SendSubtreeTransformsToChromeMainThread (this=<optimized out>, aAncestor=<optimized out>)
    at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:3318
#21 0x00007ff4b783dd9d in mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper> (this=0x7ff4b1d9d800, aRoot=..., aIsFirstPaint=false,
    aOriginatingWrRootId=..., aPaintSequenceNumber=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:607
#22 0x00007ff4b783b1f8 in mozilla::layers::APZCTreeManager::UpdateHitTestingTree (this=0x7ff4b1d9d800, aScrollWrapper=...,
    aOriginatingWrRootId=<error reading variable: access outside bounds of object referenced via synthetic pointer>, aPaintSequenceNumber=<optimized out>, aIsFirstPaint=<optimized out>)
    at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:638
#23 mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28::operator()() (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:220
#24 mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28>::Run() (this=<optimized out>) at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564
#25 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533
#26 0x00007ff4b7824fda in mozilla::layers::APZUpdater::CompleteSceneSwap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:122
#27 0x00007ff4b7826a26 in apz_post_scene_swap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:597
#28 0x00007ff4bb61da16 in _$LT$webrender_bindings..bindings..APZCallbacks$u20$as$u20$webrender..renderer..SceneBuilderHooks$GT$::post_scene_swap::hf24b64877d4d9769 (self=<optimized out>,
    document_ids=0x7ff4a7efd6c8, info=..., sceneswap_time=<optimized out>) at gfx/webrender_bindings/src/bindings.rs:944
#29 0x00007ff4bb947c6e in webrender::scene_builder::SceneBuilder::forward_built_transactions::h77eaf8cb3ef0f13d (self=0x7ff4a7efe4c0, txns=...) at gfx/wr/webrender/src/scene_builder.rs:607
#30 0x00007ff4bb946aec in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=0x2) at gfx/wr/webrender/src/scene_builder.rs:330
```

It's in WebRender specific code, which explains why the issue only occurs with WebRender enabled.

Back to Bug 1576524 Comment 15