Closed Bug 1793832 Opened 1 year ago Closed 11 months ago

Intermittent /webdriver/tests/perform_actions/ | test_touch_pointer_properties_tilt_twist - AssertionError: assert 0 == 21


(Remote Protocol :: Marionette, defect, P5)



(firefox105 disabled, firefox108 fixed)

108 Branch
Tracking Status
firefox105 --- disabled
firefox108 --- fixed


(Reporter: whimboo, Assigned: edgar)


(Blocks 1 open bug)


(Keywords: intermittent-failure, test-disabled, Whiteboard: [webdriver:relnote])

The test is currently marked as failing.

 0:18.01 INFO STDOUT:     def test_touch_pointer_properties_tilt_twist(session, test_actions_pointer_page, touch_chain):
 0:18.01 INFO STDOUT:         # This test only covers the tilt/twist properties which are
 0:18.01 INFO STDOUT:         # more specific to pen-type pointers, but which the spec allows
 0:18.01 INFO STDOUT:         # for generic touch pointers. Seperating this out gives better
 0:18.01 INFO STDOUT:         # coverage of the basic properties in test_touch_pointer_properties
 0:18.01 INFO STDOUT:         pointerArea = session.find.css("#pointerArea", all=False)
 0:18.01 INFO STDOUT:         center = get_inview_center(pointerArea.rect, get_viewport_rect(session))
 0:18.01 INFO STDOUT:         touch_chain.pointer_move(0, 0, origin=pointerArea) \
 0:18.01 INFO STDOUT:             .pointer_down(width=23, height=31, pressure=0.78, tilt_x=21, tilt_y=-8, twist=355) \
 0:18.01 INFO STDOUT:             .pointer_move(10, 10, origin=pointerArea, width=39, height=35, pressure=0.91, tilt_x=-19, tilt_y=62, twist=345) \
 0:18.01 INFO STDOUT:             .pointer_up() \
 0:18.01 INFO STDOUT:             .pointer_move(80, 50, origin=pointerArea) \
 0:18.01 INFO STDOUT:             .perform()
 0:18.01 INFO STDOUT:         events = get_events(session)
 0:18.01 TEST_END: Test OK. Subtests passed 6/7. Unexpected 0
 0:18.01 INFO No more tests
 0:18.01 pid:59720 1664997904161	webdriver::server	DEBUG	-> GET /status
 0:18.02 pid:59720 1664997904161	webdriver::server	DEBUG	<- 200 OK {"value":{"message":"","ready":true}}
 0:18.01 INFO STDOUT:         assert len(events) == 7
 0:18.01 INFO STDOUT:         event_types = [e["type"] for e in events]
 0:18.01 INFO STDOUT:         assert ["pointerover", "pointerenter", "pointerdown", "pointermove",
 0:18.01 INFO STDOUT:                 "pointerup", "pointerout", "pointerleave"] == event_types
 0:18.01 INFO STDOUT:         assert events[2]["type"] == "pointerdown"
 0:18.01 INFO STDOUT: >       assert events[2]["tiltX"] == 21
 0:18.01 INFO STDOUT: E       assert 0 == 21
 0:18.01 INFO STDOUT: E         +0
 0:18.01 INFO STDOUT: E         -21
 0:18.01 INFO STDOUT: center     = {'x': 58.0, 'y': 93.63333129882812}

The tiltX and tiltY values are not set when the event is received by the test page. I had a quick look and as it seems EventUtils doesn't support these properties and others like twist as well? Here an excerpt from the pointer down event that was received:

  'type': 'pointerdown',
  'altKey': False,
  'altitudeAngle': None,
  'azimuthAngle': None,
  'button': 0,
  'buttons': 1,
  'ctrlKey': False,
  'height': 31,
  'metaKey': False,
  'pageX': 58,
  'pageY': 93,
  'pointerType': 'touch',
  'pressure': 0.7799999713897705,
  'shiftKey': False,
  'tangentialPressure': 0,
  'target': 'pointerArea',
  'tiltX': 0,
  'tiltY': 0,
  'twist': 0,
  'width': 23

Masayuki, do you know more about that?

Flags: needinfo?(masayuki)

I'm not familiar with pointer events. Perhaps, Edgar might have some idea.

Flags: needinfo?(masayuki) → needinfo?(echen)

Yes, right now we don't support synthesizing touch event with specified tiltX, tiltY and twist value. It should not hard to support that, we just need to add a way to pass those value.

Flags: needinfo?(echen)

Thanks Edgar, do we already have a bug for that or shall I file a new one?

I am not aware of any existing bug, I filed bug 1795116.

Depends on: 1795116
Closed: 11 months ago
Duplicate of bug: 1795116
Resolution: --- → DUPLICATE

We would like to track this fix including the new feature for various additional properties in our Marionette release notes. As such lets mark it as fixed for 108. Thanks Edgar!

Assignee: nobody → echen
No longer duplicate of bug: 1795116
Whiteboard: [webdriver:relnote]
Target Milestone: --- → 108 Branch
Moving bug to Remote Protocol::Marionette component per bug 1815831.
Component: geckodriver → Marionette
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.