gecko-dev/gfx/webrender_bindings
Kartikaya Gupta 9b664db1ff Bug 1465935 - Fix hit-testing for fixed-pos items inside iframes. r=mstange
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
2018-06-07 13:06:33 -04:00
..
src Bug 1418202 - Serialize ProgramBinary to/from blob/disk r=nical 2018-05-31 15:07:34 +09:00
Cargo.toml Bug 1418202 - Serialize ProgramBinary to/from blob/disk r=nical 2018-05-31 15:07:34 +09:00
Moz2DImageRenderer.cpp Bug 1457254 - Don't pass true for aIsDataFont when creating an UnscaledFontMac from AddNativeFontHandle, this is for installed fonts. r=lsalzman 2018-05-03 22:00:53 +01:00
RenderBufferTextureHost.cpp Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
RenderBufferTextureHost.h merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-30 23:52:23 +01:00
RenderCompositor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
RenderCompositor.h Bug 1191971 part 2 - Add capatiblity to enable DComp r=bas 2018-03-29 11:23:31 +09:00
RenderCompositorANGLE.cpp Bug 1451183 - Make EGLLibrary destroyable r=jgilbert 2018-06-04 11:09:29 +09:00
RenderCompositorANGLE.h Bug 1191971 part 2 - Add capatiblity to enable DComp r=bas 2018-03-29 11:23:31 +09:00
RenderCompositorOGL.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
RenderCompositorOGL.h Bug 1436908 - Fix EGLSurface leak at RenderCompositorANGLE r=nical 2018-02-10 07:45:44 +09:00
RenderD3D11TextureHostOGL.cpp Bug 1451183 - Make EGLLibrary destroyable r=jgilbert 2018-06-04 11:09:29 +09:00
RenderD3D11TextureHostOGL.h Bug 1421939 - Fix RenderDXGIYCbCrTextureHostOGL::GetSize() r=nical 2017-11-30 21:30:35 +09:00
RenderMacIOSurfaceTextureHostOGL.cpp Bug 1428272 - Handle ExternalImage lock failure r=nical 2018-01-11 21:20:53 +09:00
RenderMacIOSurfaceTextureHostOGL.h merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-30 23:52:23 +01:00
RenderSharedSurfaceTextureHost.cpp Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
RenderSharedSurfaceTextureHost.h Bug 1435297 part 2: (automated patch) Switch a bunch of C++ files in gfx to use our standard emacs/vim mode lines. r=jrmuizel 2018-02-02 12:07:36 -05:00
RenderTextureHost.cpp
RenderTextureHost.h merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-30 23:52:23 +01:00
RenderTextureHostOGL.cpp
RenderTextureHostOGL.h merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-30 23:52:23 +01:00
RenderThread.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
RenderThread.h Bug 1418202 - Serialize ProgramBinary to/from blob/disk r=nical 2018-05-31 15:07:34 +09:00
RendererOGL.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
RendererOGL.h Bug 1417784 - Use a CompositorBridgeParent* instead of a base class pointer. r=sotaro 2018-05-28 11:29:41 -04:00
WebRenderAPI.cpp Bug 1465935 - Fix hit-testing for fixed-pos items inside iframes. r=mstange 2018-06-07 13:06:33 -04:00
WebRenderAPI.h Bug 1465935 - Fix hit-testing for fixed-pos items inside iframes. r=mstange 2018-06-07 13:06:33 -04:00
WebRenderTypes.cpp Bug 1377187 - Rewrite the clipping code to use the new clipchain API. r=mstange 2018-05-08 09:08:39 -04:00
WebRenderTypes.h Bug 1458870 - Changes necessary to deal with new WebRender nine-patch API from PR 2724. r=jrmuizel 2018-05-08 10:36:23 -04:00
cbindgen.toml Bug 1435094 - wire up GlyphRasterSpace to nsDisplayTransform. r=kats,mstange 2018-05-03 20:38:37 -04:00
moz.build Bug 1191971 part 2 - Add capatiblity to enable DComp r=bas 2018-03-29 11:23:31 +09:00
revision.txt Bug 1466549 - Update webrender to aff9f409f3d6a3518c38c1f7755657f564c1083a. r=Gankro 2018-06-06 07:34:22 -04:00
rustfmt.toml
webrender_ffi.h Bug 1463416 - use new WR subpixel positioning API from WR PR 2738. r=Gankro 2018-05-26 11:09:21 -04:00
webrender_ffi_generated.h Bug 1418202 - Serialize ProgramBinary to/from blob/disk r=nical 2018-05-31 15:07:34 +09:00