Open Bug 1443482 Opened 6 years ago Updated 8 months ago

"contextmenu" event emitted before "mouseup"

Categories

(Remote Protocol :: Marionette, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: ato, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug, )

Details

As report in https://github.com/mozilla/geckodriver/issues/1201 the
DOM events emitted for Control/Meta + Right + Click sequence are
in the wrong order.  Marionette incorrectly emits the contextmenu
event before the mouseup event.

Expected order: mousemove, mousedown, mouseup, contextmenu
Actual order:   mousemove, mousedown, contextmenu, mouseup
Priority: -- → P2
contextmenu is fired in [1] and mouseup is fired either on the next
pointerUp action or implicitly when the sequence ends.  For this
to work as expected we need to maintain some state in [1] and fire
it after the next pointerUp has been processed.
(In reply to Andreas Tolfsen 「:ato」 from comment #0)
> Expected order: mousemove, mousedown, mouseup, contextmenu
> Actual order:   mousemove, mousedown, contextmenu, mouseup

I don't know what's the correct order of firing the events, and why Chrome/Edge is handling that differently than us. Also MDN doesn't mention it and I cannot find something in the HTML spec.

Olli, can you please help us? Thanks.
Flags: needinfo?(bugs)
(In reply to Henrik Skupin (:whimboo) from comment #2)
> (In reply to Andreas Tolfsen 「:ato」 from comment #0)
> > Expected order: mousemove, mousedown, mouseup, contextmenu
> > Actual order:   mousemove, mousedown, contextmenu, mouseup
> 
> I don't know what's the correct order of firing the events, and why
> Chrome/Edge is handling that differently than us. Also MDN doesn't mention
> it and I cannot find something in the HTML spec.
> 
> Olli, can you please help us? Thanks.

I just wanted to add that there is not only a difference between Chrome/Edge but also between Firefox with Selenium and Firefox without Selenium.
In my opinion the difference betweed Firefox with/without Selenium is more important because Selenium/WebDriver should simulate real user behavior as accurate as possible. The order of the events may make a difference in the behavior of web frameworks.

Regards,
Philip

This is OS dependent.

Flags: needinfo?(bugs)

(In reply to Olli Pettay [:smaug] from comment #4)

This is OS dependent.

Do we have some code or comments in-tree that you could refer to?

Flags: needinfo?(bugs)
Severity: normal → S3
Product: Testing → Remote Protocol

We haven't had the time to work on this bug yet. Lets discuss about it's priority. It doesn't look like a P2.

Priority: P2 → --

Maybe my work on bug 1773393 could fix that. Otherwise this is a P3 as discussed today in the triage meeting.

Depends on: parent-actions
Priority: -- → P3
Summary: contextmenu emitted before mouseup → "contextmenu" event emitted before "mouseup"
You need to log in before you can comment on or make changes to this bug.