-
Kartikaya Gupta authored
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
9b664db1