gecko-dev/gfx/layers/apz
Kartikaya Gupta 186b239065 Bug 1613199 - Fix hit-testing for scrollframes with hoisted scrollinfos. r=botond
In some cases (such as the case from this bug) the display list contains a
"hoisted" scrollinfo display item, which indicates the presence of a scroller
inside an inactive layer subtree (e.g. a div with certain kinds of filters).
The scrollinfo display item is "hoisted" outside the display list subtree so
that it doesn't get flattened away inside the inactive subtree. That display
item then causes the compositor hit-test regions to updated appropriately so
that APZ knows about the scrollframe inside the flattened content. This in turn
allows APZ to request main-thread scrolling for that scrollframe when input
events are directed to it.

With the WebRender codepath, the information represented by the hoisted
scrollinfo display item was being lost instead of being propagated to the
compositor. This was because the mechanism used for information propagation is
different (WebRender commands vs layers EventRegions). This patch ensures that
the scrollinfo display items also generate appropriate WebRender commands so
that the information is not lost, and WR knows about the scrollframe inside
the flattened content.

The patch includes:
- A code movement in nsGfxScrolllFrame.cpp so that necessary information can
  be provided to the nsDisplayScrollInfoLayer constructor
- Updates to nsDisplayScrollInfoLayer members to store the necessary information
- Addition of nsDisplayScrollInfoLayer::CreateWebRenderCommands which propagates
  the information to the WR display list
- A test to exercise the changes.

Differential Revision: https://phabricator.services.mozilla.com/D63869

--HG--
extra : moz-landing-system : lando
2020-02-24 17:26:19 +00:00
..
public Backed out changeset 8665af6e62a6 (bug 1600793) on jcristau's request CLOSED TREE 2020-02-24 15:49:47 +02:00
src Bug 1613199 - Fix hit-testing for scrollframes with hoisted scrollinfos. r=botond 2020-02-24 17:26:19 +00:00
test Bug 1613199 - Fix hit-testing for scrollframes with hoisted scrollinfos. r=botond 2020-02-24 17:26:19 +00:00
testutil Bug 1563139 - Remove StaticPrefs.h. r=glandium 2019-07-26 01:10:23 +00:00
util Bug 1616591 - Migrate APZ logging to use the MOZ_LOG framework. r=botond 2020-02-21 20:00:36 +00:00