Closed Bug 1878726 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 44402 - [HitTestTransparency] Experimental status

Categories

(Core :: DOM: Events, task, P4)

task

Tracking

()

RESOLVED FIXED
124 Branch
Tracking Status
firefox124 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 44402 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/44402
Details from upstream follow.

Xianzhu Wang <wangxianzhu@chromium.org> wrote:

[HitTestTransparency] Experimental status

The feature uses cc::HitTestOpacity::kTransparent for pointer-events:
none. The flag is first marked on paint chunks, then PendingLayer and
cc::Layer, by merging cc::HitTestOpacity from merged painted results.
The merge algorithm (which is already ready for HitTestOpaqueness)
can handle cases such as pointer-events:none with pointer-events:auto
descendants (which will be merged into cc::HitTestOpaqueness::kMixed).
cc::Layer::HitTestable() is now based on this flag for blink.

For test coverage, this CL also includes changes to make existing
tests pass or fix existing bugs with the feature:

  • LayerTreeHostImpl::BuildHitTestData() now handles a SurfaceLayer
    with pointer-events:none even if it doesn't draw contents, to make
    CrossSiteSubframe/DragAndDropBrowserTest.CrossTabDrag/* pass.
  • Correct hit test transparency for scrolling contents.
  • Correct hit test transparency for frames under pointer-events:none
    container (b/323688987).
  • New tests.

ClusterTelemetry job shows that it can reduce main thread scrolling (hit test or repaint) by 36% (kFailedHitTest by 40%,
kNonFastScrollableRegion by 67%) compared to HitTestOpaqueness only.

Bug: b/40062957, b/323688987
Change-Id: I224c8e5f047ec27bf4c8957ae59643457cc9252e

Reviewed-on: https://chromium-review.googlesource.com/5263065
WPT-Export-Revision: 699f42c86445658e1d439480c3db32ba1c173d9e

Component: web-platform-tests → DOM: Events
Product: Testing → Core

CI Results

Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 6 tests and 1 subtests

Status Summary

Firefox

OK : 6
PASS: 6

Chrome

OK : 6
PASS: 5
FAIL: 1

Safari

OK : 6
PASS: 5
FAIL: 1

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5bcae2277df2 [wpt PR 44402] - [HitTestTransparency] Experimental status, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 124 Branch
You need to log in before you can comment on or make changes to this bug.