mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
186b239065
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 |
||
---|---|---|
.. | ||
public | ||
src | ||
test | ||
testutil | ||
util |