Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Chrome mobile multitouch zoom saccades #14017

Closed
wants to merge 1 commit into from

Conversation

boulabiar
Copy link

Since a while, Chrome changed the way it handles how touch events are propagated.
https://tech.slashdot.org/story/17/11/08/1135240/how-chrome-broke-the-web
https://developers.google.com/web/updates/2017/01/scrolling-intervention

This created saccades and a drop in FPS when trying to zoom with two fingers on chrome on mobile.
This fix added an option to the event listener in order to propagate the events directly.

Since a while, Chrome changed the way it handles how touch events are propagated.
https://tech.slashdot.org/story/17/11/08/1135240/how-chrome-broke-the-web
https://developers.google.com/web/updates/2017/01/scrolling-intervention

This created saccades and a drop in FPS when trying to zoom with two fingers on chrome on mobile.
This fix added an option to the event listener in order to propagate the events directly.
@Mugen87
Copy link
Collaborator

Mugen87 commented May 7, 2018

I'm confused why this solves the issue for you, see #10373

@boulabiar
Copy link
Author

I am also confused, but it solves my problem.

I'm quoting
"
Turned out, Google wasn’t concerned about your websites at all. It was more concerned about its own product performance, Google Chrome Mobile. That’s why on February 1, 2017, they made all top-level event listeners passive by default. They call it “an intervention”.
" from http://tonsky.me/blog/chrome-intervention/

It seems explained here
"
When you add a touch event with a {passive: true} object as the third parameter in your event handler then you are telling the browser that the touchstart listener will not call preventDefault() and the browser can safely perform the scroll without blocking on the listener. For example:
" from https://developers.google.com/web/updates/2017/01/scrolling-intervention

So if I have understood, chrome made some changes that have broken the old behavior.
And in order to be able to preventDefault() you need to make passive false?

@Mugen87
Copy link
Collaborator

Mugen87 commented May 31, 2018

Closing. A more appropriate fix would be #14013 (comment)

@Mugen87 Mugen87 closed this May 31, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants