Closed Bug 1793267 Opened 2 years ago Closed 3 months ago

New wpt failures in /pointerevents/pointerevent_capture_suppressing_mouse.html

Categories

(Core :: DOM: Events, defect)

defect

Tracking

()

RESOLVED FIXED
131 Branch
Tracking Status
firefox131 --- fixed

People

(Reporter: wpt-sync, Assigned: masayuki)

References

(Blocks 1 open bug)

Details

(Whiteboard: [wpt], [wptsync upstream])

Attachments

(1 file)

Syncing wpt PR 36078 found new untriaged test failures in CI

Tests Affected

New Tests That Don't Pass

CI Results

Gecko CI (Treeherder)
GitHub PR Head

Notes

These updates will be on mozilla-central once bug 1793045 lands.

Note: this bug is for tracking fixing the issues and is not
owned by the wpt sync bot.

This bug is linked to the relevant tests by an annotation in
https://github.com/web-platform-tests/wpt-metadata. These annotations
can be edited using the wpt interop dashboard
https://jgraham.github.io/wptdash/

If this bug is split into multiple bugs, please also update the
annotations, otherwise we are unable to track which wpt issues are
already triaged. Resolving as duplicate or closing this issue should
be cause the bot to automatically update or remove the annotation.

Severity: -- → S3
See Also: → 1910801
Assignee: nobody → masayuki
Status: NEW → ASSIGNED

It seems that it's difficult to fix same bug when pointer is over different document or process from the composed document of capturing element. But it should be rare case and new pointer move on the document adjust the state. So, it's worthwhile to fix this in the simple cases.

When an element starts capturing a pointer, pointer/mouse boundary events are
dispatched by EventStateManager::PreHandleEvent [1]. However, when the
capturing element loses the capture, they are not dispatched.

When the pointer capture is implicitly released, the pointer may be over another
document. Therefore, this patch synthesizes an internal ePointerMove and
eMouseMove on the widget to make PresShell::HandleEvent redirects the event
to proper document under the pointer.

Unfortunately, I add 2 manual tests into WPT. The reason is, a drag operation
across document boundary with test driver does not work even if I specify the
pointer position within the parent document coordinates. This is same both on
Firefox and Chrome. Additionally, writing the new tests as a mochitest won't
work too. If I use synthesized mouse events, I see similar failure.
Additionally, when I use native events, it works, but unstable to run on CI.

  1. https://searchfox.org/mozilla-central/rev/669fac9888b173c02baa4c036e980c0c204dfe02/dom/events/EventStateManager.cpp#1139-1140
Pushed by masayuki@d-toybox.com: https://hg.mozilla.org/integration/autoland/rev/f3d7c6dd48d5 Make `PostEventHandler::CheckPointerCaptureState` synthesize `ePointerMove` and `eMouseMove` if nobody captures the pointer anymore r=smaug
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/47679 for changes under testing/web-platform/tests
Whiteboard: [wpt] → [wpt], [wptsync upstream]
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 131 Branch
Upstream PR merged by moz-wptsync-bot
Regressions: 1913925
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: