Closed Bug 1625934 Opened 4 years ago Closed 4 years ago

Scrolling is not working properly with Touch Simulation activated in RDM mode

Categories

(DevTools :: Responsive Design Mode, defect, P1)

defect

Tracking

(firefox74 unaffected, firefox75 wontfix, firefox76 wontfix, firefox77 verified)

VERIFIED FIXED
Firefox 77
Tracking Status
firefox74 --- unaffected
firefox75 --- wontfix
firefox76 --- wontfix
firefox77 --- verified

People

(Reporter: clara.guerrero, Assigned: mtigley)

References

(Depends on 1 open bug)

Details

Attachments

(4 files, 1 obsolete file)

Attached video scrolling.MOV

[Affected versions]
Beta 75.0b11 (64-bit)
Firefox Nightly 76.0a1 (2020-03-31) (64-bit)

[Affected platforms]
All

[Steps to reproduce]

1- Open youtube
2- Open RDM with touch simulation deactivated
3- Click notification button
4 - Scroll down within the notification window, and within the website window
5- Activate touch simulation
6- Click notification button
7- repeat setp 4

[Expected result]
Srolling should work without issues both with touch simulation on and off

[Actual result]
Scrolling is not working

In our latest version the buttons don't work at all when activating touch simulation , i'm attaching a new video. (Release is working fine both touch simulation on and off, beta and nightly aren't, I adjusted the flags accordingly). Youtube may have changed the page on their end.

Blocks: 1627023
Assignee: nobody → mtigley
Status: NEW → ASSIGNED
Priority: -- → P1
Attachment #9138666 - Attachment description: Bug 1625934 - Ensure that a touch event is dispatched from the touch simulator → Bug 1625934 - Use windowUtils' sendTouchEvent to dispatch touch events.

Console errors I'm getting with the STR above:

TypeError: can't access property "identifier", d is undefined
desktop_polymer_inlined_html_polymer_flags_v2.js:7600:337
TypeError: can't access property "clientX", b is undefined

The un-minified code that is failing is this function: https://github.com/Polymer/polymer/blob/master/lib/utils/gestures.js#L405. From mapping that back to the minified error, it looks like the event we are sending to polymer has no changedTouches property. It seems likely that the new path used in D69891 is assigning this changedTouches property, where the current code does not.

It appears that the comment in our code about touchend events must not send any changedTouches is in opposition to Polymer's expectations that assumes changedTouches exists for all non-touchstart events.

Checking against the spec, our assertion in touch-simulator.js is wrong. The spec says:

The touch point or points that were removed must be included in the changedTouches attribute of the TouchEvent, and must not be included in the touches and targetTouches attributes.

It looks like we misinterpreted this section when we fixed Bug 1250691. I'll try out a narrower version of this patch that doesn't wipe out changedTouches.

Attachment #9139240 - Attachment is obsolete: true
Pushed by mtigley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cc0f32718732
Use windowUtils' sendTouchEvent to dispatch touch events. r=bradwerth
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 77
Regressions: 1629941
Flags: qe-verify+

Hi,
This issue is still occuring in latest Nightly 79.0a1 (2020-06-22)
I'm sharing a new video
Best,
Clara

Hi,
This issue is not reproducible in beta 79.0b8 (64-bit) nor nightly 80.0a1 (2020-07-16) (64-bit)
I'm updating flags accordingly.
Best,
Clara

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: