Reenable pointerevent_setpointercapture_inactive_button_mouse.html
Categories
(Core :: DOM: UI Events & Focus Handling, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox83 | --- | fixed |
People
(Reporter: jgraham, Assigned: edgar)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
After wptrunner changed the following test became unstable and had to be disabled:
pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html
Updated•6 years ago
|
Comment 2•6 years ago
|
||
bugherder |
Comment 3•5 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
Comment 4•5 years ago
|
||
(In reply to Release mgmt bot [:sylvestre / :calixte / :marco for bugbug] from comment #3)
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
No.
Comment 5•5 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
Comment 6•5 years ago
|
||
(In reply to Release mgmt bot [:sylvestre / :calixte / :marco for bugbug] from comment #5)
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
No.
Comment 7•4 years ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
Comment 8•4 years ago
|
||
(In reply to Release mgmt bot [:sylvestre / :calixte / :marco for bugbug] from comment #7)
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
no
Assignee | ||
Comment 9•4 years ago
|
||
Test got InvalidPointerId: Invalid pointer id
exception in https://searchfox.org/mozilla-central/rev/969fc7fa6c3c7fc489f53b7b7f8c902028b5169f/testing/web-platform/tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html#39 because of there is no valid entry in sActivePointersIds
. We add a new entry for mouse while receiving eMouseEnterIntoWidget
, but web driver synthesizes mousemove
event in content process directly, so there is no eMouseEnterIntoWidget
dispatched.
Assignee | ||
Comment 10•4 years ago
|
||
(In reply to Edgar Chen [:edgar] from comment #9)
Test got
InvalidPointerId: Invalid pointer id
exception in https://searchfox.org/mozilla-central/rev/969fc7fa6c3c7fc489f53b7b7f8c902028b5169f/testing/web-platform/tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html#39 because of there is no valid entry insActivePointersIds
. We add a new entry for mouse while receivingeMouseEnterIntoWidget
, but web driver synthesizesmousemove
event in content process directly, so there is noeMouseEnterIntoWidget
dispatched.
Set test.events.async.enabled
to true
would fix this given that the event would go through parent process, but met another issue that tests doesn't receive pointerout
event.
Assignee | ||
Comment 11•4 years ago
|
||
(In reply to Edgar Chen [:edgar] from comment #10)
but met another issue that tests doesn't receive
pointerout
event.
Okay, I think I know what's happening: the second pointerMove is blocked by marionette. The inputState
seems not to be maintained correctly, it use a.id as a key to get input state, however a.id seems an incremental identity for action message, I think we should use input source as the key for pointer message.
Edit: Just check the spec, marionette do follow the spec to implement, it looks like it is because the test creates two actions. So the question is why marionette ignore pointerMove in https://searchfox.org/mozilla-central/rev/0c682c4f01442c3de0fa6cd286e9cadc8276b45f/testing/marionette/action.js#1438-1440.
Assignee | ||
Comment 12•4 years ago
|
||
(In reply to Edgar Chen [:edgar] from comment #11)
the question is why marionette ignore pointerMove in https://searchfox.org/mozilla-central/rev/0c682c4f01442c3de0fa6cd286e9cadc8276b45f/testing/marionette/action.js#1438-1440.
Looks like defined in the spec, see step 7 of https://w3c.github.io/webdriver/#dfn-perform-a-pointer-move. Then the first pointermove action would be ignored if the coordinate is (0,0), like https://searchfox.org/mozilla-central/rev/0c682c4f01442c3de0fa6cd286e9cadc8276b45f/testing/web-platform/tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html#42. But it seems to work on other browsers, https://wpt.fyi/results/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html?label=experimental&label=master&aligned.
Hi Maja, do you have some ideas about this? It could possible that I miss something or misread the spec. Thanks!
Assignee | ||
Updated•4 years ago
|
My understanding of the spec matches yours so maybe this is a spec bug. Have you checked what ChromeDriver does?
To be clear, the test is purposely emitting a "no-op" pointer event, or did I misread?
Assignee | ||
Comment 14•4 years ago
|
||
(In reply to Maja Frydrychowicz :maja_zf (UTC-4) (maja@mozilla.com) from comment #13)
Have you checked what ChromeDriver does?
Nope, but I guess ChromeDriver behaves differently, given that they could pass the test.
To be clear, the test is purposely emitting a "no-op" pointer event, or did I misread?
No, the test tries to move the pointer out of target0 by emitting a pointermove event at (0,0) of the viewport.
Assignee | ||
Comment 15•4 years ago
|
||
(In reply to Maja Frydrychowicz :maja_zf (UTC-4) (maja@mozilla.com) from comment #13)
My understanding of the spec matches yours so maybe this is a spec bug.
Assignee | ||
Comment 16•4 years ago
|
||
Assignee | ||
Comment 17•4 years ago
|
||
Assignee | ||
Comment 18•4 years ago
|
||
(In reply to Edgar Chen [:edgar] from comment #17)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bacc7017fe3bb463391ef495aee3be7c0ae46eb0
Hmm, there seems a crash on Android..
(In reply to Edgar Chen [:edgar] from comment #15)
(In reply to Maja Frydrychowicz :maja_zf (UTC-4) (maja@mozilla.com) from comment #13)
My understanding of the spec matches yours so maybe this is a spec bug.
I took a quick look and it seems the first action specifies input source id 1, moves that to (640,211) and then the second action specifies input source 3 and tries to move from (0,0) to (0,0).
If I understand right, the second action should move input source 1 from (640,211) to (0,0). The input source ids seem to be incremented, so perhaps this is a problem with how the test harness constructs action sequences?
Running ./mach wpt testing/web-platform/tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html --setpref marionette.log.level=trace --setpref marionette.log.truncate=false --setpref test.events.async.enabled=true
<snip>
0:04.37 pid:263823 1600441547362 Marionette DEBUG 2 -> [0,16,"WebDriver:PerformActions",{"actions":[{"type":"none","id":"0","actions":[{"duration":16,"type":"pause"}]},{"type":"pointer","parameters":{"pointerType":"mouse"},"actions":[{"y":0,"x":0,"frame":{"frame":"window"},"type":"pointerMove","origin":{"element-6066-11e4-a52e-4f735466cecf":"04bf744b-3933-4ee9-95f1-417d6f1a50b2","chromeelement-9fc5-4b51-a3c8-01716eedeb04":"04bf744b-3933-4ee9-95f1-417d6f1a50b2"}}],"id":"1"}]}]
0:04.37 pid:263823 1600441547369 Marionette TRACE Getting inputState for 0
0:04.38 pid:263823 1600441547369 Marionette TRACE Input state is (undefined, undefined)
0:04.38 pid:263823 1600441547369 Marionette TRACE Getting inputState for 1
0:04.38 pid:263823 1600441547369 Marionette TRACE Input state is (0, 0)
0:04.38 pid:263823 1600441547369 Marionette TRACE Input state start (0, 0)
0:04.38 pid:263823 1600441547369 Marionette TRACE Input state target (640, 211)
0:04.40 pid:263823 1600441547393 Marionette TRACE Input state after (640, 211)
0:04.40 pid:263823 1600441547395 Marionette DEBUG 2 <- [1,16,null,{"value":null}]
0:04.41 pid:263823 1600441547398 Marionette DEBUG 2 -> [0,17,"WebDriver:ExecuteScript",{"script":"window.postMessage({\"status\": \"success\", \"message\": \"{\\\"result\\\": null}\", \"type\": \"testdriver-complete\"}, '*')","newSandbox":false,"args":[],"filename":"testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executormarionette.py","sandbox":null,"line":87}]
0:04.41 pid:263823 1600441547400 Marionette DEBUG 2 <- [1,17,null,{"value":null}]
0:04.41 pid:263823 1600441547403 Marionette DEBUG 2 -> [0,18,"WebDriver:ExecuteAsyncScript",{"scriptTimeout":null,"newSandbox":false,"args":[],"filename":"testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executormarionette.py","script":"// We have to set the url here to ensure we get the same escaping as in the harness\n// and also to handle the case where the test changes the fragment\nwindow.__wptrunner_url = \"/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html\";\nwindow.__wptrunner_testdriver_callback = arguments[arguments.length - 1];\nwindow.__wptrunner_process_next_event();","sandbox":null,"line":87}]
0:04.42 INFO {'actions': [{u'type': u'none', u'id': u'2', u'actions': [{u'duration': 16, u'type': u'pause'}]}, {u'type': u'pointer', u'actions': [{u'y': 0, u'x': 0, u'type': u'pointerMove', u'origin': u'viewport'}], u'parameters': {u'pointerType': u'mouse'}, u'id': u'3'}]}
0:04.42 pid:263823 1600441547411 Marionette DEBUG 2 <- [1,18,null,{"value":["/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html","action",{"type":"action","action":"action_sequence","actions":[{"type":"none","actions":[{"type":"pause","duration":16}],"id":"2"},{"type":"pointer","actions":[{"type":"pointerMove","x":0,"y":0,"origin":"viewport"}],"parameters":{"pointerType":"mouse"},"id":"3"}]}]}]
0:04.42 pid:263823 1600441547413 Marionette DEBUG 2 -> [0,19,"WebDriver:PerformActions",{"actions":[{"type":"none","id":"2","actions":[{"duration":16,"type":"pause"}]},{"type":"pointer","parameters":{"pointerType":"mouse"},"actions":[{"y":0,"x":0,"type":"pointerMove","origin":"viewport"}],"id":"3"}]}]
0:04.42 pid:263823 1600441547415 Marionette TRACE Getting inputState for 2
0:04.42 pid:263823 1600441547415 Marionette TRACE Input state is (undefined, undefined)
0:04.42 pid:263823 1600441547415 Marionette TRACE Getting inputState for 3
0:04.42 pid:263823 1600441547415 Marionette TRACE Input state is (0, 0)
0:04.42 pid:263823 1600441547415 Marionette TRACE Input state start (0, 0)
0:04.42 pid:263823 1600441547415 Marionette TRACE Input state target (0, 0)
0:04.44 pid:263823 1600441547433 Marionette TRACE Input state after (0, 0)
0:04.45 pid:263823 1600441547439 Marionette DEBUG 2 <- [1,19,null,{"value":null}]
Assignee | ||
Comment 20•4 years ago
|
||
(In reply to Maja Frydrychowicz :maja_zf (UTC-4) (maja@mozilla.com) from comment #19)
If I understand right, the second action should move input source 1 from (640,211) to (0,0). The input source ids seem to be incremented, so perhaps this is a problem with how the test harness constructs action sequences?
What the test does is something like
new test_driver.Actions().pointerMove(640, 211).send();
...
new test_driver.Actions().pointerMove(0, 0).send();
So it seems like the input source ids are incremented because it creates two action sets?
And If we do
new test_driver.Actions().pointerMove(640, 211).pointerMove(0, 0).send();
Then we would use the same source id, I guess.
Updated•4 years ago
|
Comment 21•4 years ago
|
||
Comment 23•4 years ago
|
||
Backed out 5 changesets (bug 1662094, bug 1666201, bug 1520785) for pointerevent related failures.
Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=0ff76cb4b991afecb9befb8dba4c482c60a56487&selectedTaskRun=LEvgV_MtQ0OhouPl1hgUSg.0
Backout link: https://hg.mozilla.org/integration/autoland/rev/ba35799faec2ed9da469c2a7ade75398d9daf688
Failures logs:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=317238179&repo=autoland&lineNumber=2105
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=317251404&repo=autoland&lineNumber=8590
Assignee | ||
Comment 25•4 years ago
|
||
Hmm, I could not reproduce the failure undre test-verify mode locally...
Assignee | ||
Comment 26•4 years ago
|
||
Try push with some debug log, https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=b4be11cf104d013208125fa7012dde587ac84199
Assignee | ||
Comment 27•4 years ago
|
||
Let's disable it on mac && verify
first, file bug 1668959 for tracking.
Comment 28•4 years ago
|
||
Comment 29•4 years ago
|
||
bugherder |
Assignee | ||
Comment 30•4 years ago
|
||
Ah, forgot to remove leave-open.
Assignee | ||
Updated•1 year ago
|
Description
•