Don't copy `.button` and `.buttons` from `(mouse|pointer)(down|up)` to `(mouse|pointer)(over|enter|out|leave)`
Categories
(Core :: DOM: Events, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox120 | --- | fixed |
People
(Reporter: masayuki, Assigned: masayuki)
References
(Blocks 1 open bug)
Details
Attachments
(2 files, 1 obsolete file)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1844723 - Synthesizing `mouseup` during a drag session should end the session r=Edgar!,#dom-core
48 bytes,
text/x-phabricator-request
|
Details | Review |
CreateMouseOrPointerWidgetEvent()
is designed to create mouseenter
, mouseover
, mouseout
, mouseleave
, pointerenter
, pointerover
, pointerout
and pointerleave
from a source event. They are not button state change events, but the source event may be so. Therefore, if the source event has not been dispatched into the DOM yet, copying button
and buttons
is wrong. button
should be 0
(if mouse events) or -1
(if pointer events), and buttons
should be computed with the button
.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
CreateMouseOrPointerWidgetEvent()
is designed to create mouseenter
,
mouseover
, mouseout
, mouseleave
, pointerenter
, pointerover
,
pointerout
and pointerleave
from a source event.
They are not button state change events, but the source event may be so.
According to the WPTs ([1], [2]) and the fact that the other browsers pass the
tests, the button state of pointer events of synthesizing events should be
synchronized with what the web apps notified (i.e., previous state of the
source event) if and only if the input source supports hover state and the
source event which changes a button state has not been dispatched into the DOM
yet.
- https://searchfox.org/mozilla-central/rev/08d53deb2cf587e68d1825082c955e8a1926be73/testing/web-platform/tests/pointerevents/pointerevent_attributes_hoverable_pointers.html#44,51,60,63
- https://searchfox.org/mozilla-central/rev/08d53deb2cf587e68d1825082c955e8a1926be73/testing/web-platform/tests/pointerevents/pointerevent_attributes_nohover_pointers.html#17,45,47,51
Assignee | ||
Comment 2•2 years ago
|
||
The WPT which was added by the previous patch (D187644) fails if it runs
after mousemove_prevent_default_action.tentative.html
because it synthesize
dragstart
with synthesizing multiple mouse events, however, mouseup
does not ends the drag session and the following test starts with the session.
The TestDriver finally runs EventUtils
. Therefore, we can make it manage
the drag session with XPCOM API.
Note that we should synthesize dragover
for mousemove
, and drop
if
the drop is accepted. However, it requires more work, so we should do it
in a separate bug.
Depends on D187644
Assignee | ||
Comment 3•2 years ago
|
||
After applying the previous patch, inert-pseudo-element-hittest.html
starts
failing due to error: Action action_sequence failed
if all tests in the
folder runs (i.e., only running the test passes).
If I comment out the last test of insert-iframe-hittest.html
, it starts
passing again. It seems that the clean up in the test does not work well
and adding the explicit clean up works.
Depends on D188934
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Comment 6•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/361aedbce3f0
https://hg.mozilla.org/mozilla-central/rev/cebcb0ade13f
Description
•