New issue
Advanced search Search tips
Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2015
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

touch-action zoom state shouldn't reset at scrollers

Project Member Reported by rbyers@chromium.org, Sep 8 2015

Issue description

Test page: http://jsbin.com/tipure/

On Edge / IE: double-tapping on the scroller does not zoom, and taps are registered immediately.
In Chrome, double-tapping the scroller does zoom.

This means the simple guidance "use 'touch-action: manipulation' to disable the click delay" isn't actually sufficient.

I believe blink matches the spec, but we should change the spec and blink to match the Edge behavior (will start a thread on public-pointer-events).

In particular, we probably want to keep walking up the tree beyond scrollers to consider just the zoom-related parts of touch-action.  Let's wait to see what exact wording the PEWG agrees on for the spec though.

 
pointer events spec issue: https://github.com/w3c/pointerevents/issues/19

Note that I marked this pri-1 as I believe this property is important for good click-delay avoidance (which is a major problem on the web).

Comment 2 by rbyers@chromium.org, Oct 22 2015

Cc: dtapu...@chromium.org
Owner: rbyers@chromium.org
I can take this.

Comment 3 by rbyers@chromium.org, Oct 22 2015

Status: Started

Comment 4 by rbyers@chromium.org, Oct 28 2015

Labels: -M-47 M-48
Iframe-based test case: http://jsbin.com/kamipuc

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 4 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/41596bf935a7e28617a668f90f53590e357bc50a

commit 41596bf935a7e28617a668f90f53590e357bc50a
Author: rbyers <rbyers@chromium.org>
Date: Fri Dec 04 22:39:16 2015

Don't reset touch-action zoom state at scrollers

This ensures that when a page disables double-tap zoom (eg. via
touch-action: manipulation) and hence the click delay, it stays
disabled even when tapping inside a scroller or iframe.

See https://github.com/w3c/pointerevents/issues/19 for details.

Also removes 'toCoreFrame' declaration which has no implementation
anywhere.  I needed this from my test but discovered the common
pattern was to just invoke the toImplBase method directly.

BUG= 529295 

Review URL: https://codereview.chromium.org/1498923004

Cr-Commit-Position: refs/heads/master@{#363310}

[modify] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/Source/core/input/TouchActionUtil.cpp
[modify] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/Source/web/tests/TouchActionTest.cpp
[add] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/Source/web/tests/data/touch-action-iframe.html
[modify] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/Source/web/tests/data/touch-action-overflow.html
[modify] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/Source/web/tests/data/touch-action-tests.css
[modify] http://crrev.com/41596bf935a7e28617a668f90f53590e357bc50a/third_party/WebKit/public/web/WebFrame.h

Status: Fixed
Labels: -M-48 M-49

Sign in to add a comment