зеркало из https://github.com/mozilla/gecko-dev.git
9b664db1ff
Without this patch, the scrollId for display items inside a fixed-pos item end as the ASR of the item. In the case of fixed-pos items that are inside iframes, the ASR is the outer document's root scrollframe. This means that e.g. wheel-scrolling while over a fixed-pos item inside an iframe ends up scrolling the outer document's root scrollframe instead of the iframe's root scrollframe. In the non-WR codepath, there some APZ machinery that walks up in the HitTestingTreeNode tree from the hit result, looking to see if that node has a fixed-pos ancestor, and if so, uses the fixed-pos item's target APZ as the real hit result. This machinery doesn't exist in WR, because we don't use the HitTestingTreeNode tree for hit-testing in APZ. Instead, we need to make sure that the item tag for those display items already has the appropriate scrollid set. This patch accomplishes this by introducing a new RAII class that is pushed into the wr::DisplayListBuilder while we are building display items inside a nsDisplayFixedPosition, and allows the desired scroll id to be set on the hit-testing display items. This behaviour is exercised by test_group_wheelevents, which can now be enabled with this fix. MozReview-Commit-ID: L2erPVzJeql --HG-- extra : rebase_source : 1db630513cb1dc16d4e38649812e81f62c8da99c |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
Moz2DImageRenderer.cpp | ||
RenderBufferTextureHost.cpp | ||
RenderBufferTextureHost.h | ||
RenderCompositor.cpp | ||
RenderCompositor.h | ||
RenderCompositorANGLE.cpp | ||
RenderCompositorANGLE.h | ||
RenderCompositorOGL.cpp | ||
RenderCompositorOGL.h | ||
RenderD3D11TextureHostOGL.cpp | ||
RenderD3D11TextureHostOGL.h | ||
RenderMacIOSurfaceTextureHostOGL.cpp | ||
RenderMacIOSurfaceTextureHostOGL.h | ||
RenderSharedSurfaceTextureHost.cpp | ||
RenderSharedSurfaceTextureHost.h | ||
RenderTextureHost.cpp | ||
RenderTextureHost.h | ||
RenderTextureHostOGL.cpp | ||
RenderTextureHostOGL.h | ||
RenderThread.cpp | ||
RenderThread.h | ||
RendererOGL.cpp | ||
RendererOGL.h | ||
WebRenderAPI.cpp | ||
WebRenderAPI.h | ||
WebRenderTypes.cpp | ||
WebRenderTypes.h | ||
cbindgen.toml | ||
moz.build | ||
revision.txt | ||
rustfmt.toml | ||
webrender_ffi.h | ||
webrender_ffi_generated.h |