New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 26 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature


Sign in to add a comment

Give web developers control over scroll blocking behavior

Project Member Reported by rbyers@chromium.org, Feb 26 2014

Issue description

We've gone through various policies for what exactly scrolling (especially touch scrolling) blocks on.  There seems to be an emerging consensus that we should explore giving web developers (especially frameworks) some direct control over the policy here.

I have the beginnins of one specific proposal 'scroll-delay' here: https://docs.google.com/a/chromium.org/document/d/1aOQRw76C0enLBd0mCG_-IM6bso7DxXwvqTiRWgNdTn8/edit

 

Comment 1 by rbyers@chromium.org, Feb 27 2014

Summary: Give web developers control over scroll blocking behavior (scroll-delay) (was: Give web developers control over scroll blocking behavior)

Comment 2 by rbyers@chromium.org, Feb 27 2014

Cc: le...@chromium.org skyos...@chromium.org abarth@chromium.org tomhud...@chromium.org klo...@chromium.org peter@chromium.org sadrul@chromium.org tdres...@chromium.org
 Issue 329559  has been merged into this issue.

Comment 3 by rbyers@chromium.org, Feb 27 2014

Blockedon: chromium:241964 chromium:294239 chromium:318381
Note that we have experimental code for CSS parsing of 'touch-action-delay' in blink ( issue 329559 ).  As part of this bug we should either remove that or update it to be called scroll-delay instead.
Labels: Hotlist-Input-Dev
Blocking: chromium:260732
Blocking: -chromium:260732

Comment 7 by rbyers@chromium.org, Aug 15 2014

Blocking: chromium:404128
Labels: -Pri-2 Pri-1 M-40
We're now prioritizing a subset of the scroll-delay API for enabling scroll-coupled effects (and ultimately scroll customization - issue 410974)

www-style thread here: http://lists.w3.org/Archives/Public/www-style/2014Oct/0150.html
Blocking: chromium:410974
Blocking: chromium:421513
Status: Started
Summary: Give web developers control over scroll blocking behavior (scroll-blocks-on) (was: Give web developers control over scroll blocking behavior (scroll-delay))
Note we've renamed 'scroll-delay' to 'scroll-blocks-on'.  See the design doc for discussion.
Labels: -M-40 M-41 MovedFrom-40
Moving all non essential bugs to the next Milestone.
Project Member

Comment 15 by bugdroid1@chromium.org, Nov 18 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=185495

------------------------------------------------------------------
r185495 | rbyers@chromium.org | 2014-11-18T04:15:37.150499Z

Changed paths:
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/touch-action-delay-parsing-expected.txt?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/UseCounter.cpp?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/StyleRareNonInheritedData.cpp?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSValueKeywords.in?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/StyleRareNonInheritedData.h?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/CSSPropertyParser.cpp?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt?r1=185495&r2=185494&pathrev=185495
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/scroll-blocks-on-parsing.html?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/CSSPropertyParser.h?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/CSSParserFastPaths.cpp?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSComputedStyleDeclaration.cpp?r1=185495&r2=185494&pathrev=185495
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/touch-action-delay-parsing.html?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSPrimitiveValueMappings.h?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=185495&r2=185494&pathrev=185495
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/scroll-blocks-on-parsing-expected.txt?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/StyleRareInheritedData.cpp?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyleConstants.h?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSProperties.in?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyle.h?r1=185495&r2=185494&pathrev=185495
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/StyleRareInheritedData.h?r1=185495&r2=185494&pathrev=185495

Add CSS parsing support for the scroll-blocks-on property

Replaces the old (not-yet-used) CSS parsing support for
"touch-action-delay" with its successor "scroll-blocks-on."  Still
experimental and not yet wired up to anything.

Design-doc: https://docs.google.com/a/chromium.org/document/d/1aOQRw76C0enLBd0mCG_-IM6bso7DxXwvqTiRWgNdTn8/edit
Intent to implement: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/N3YrsrHus-k

BUG=347272

Review URL: https://codereview.chromium.org/723373006
-----------------------------------------------------------------
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 18 2014

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

commit 526a3009adaf7e2bb108808d4ec2b55cd8de15a6
Author: rbyers <rbyers@chromium.org>
Date: Tue Nov 18 23:38:32 2014

Update MappedCSSProperties histogram for scroll-blocks-on property

Check in the result of update_use_conter_css.py after
https://codereview.chromium.org/444863002

BUG=347272

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

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

[modify] https://chromium.googlesource.com/chromium/src.git/+/526a3009adaf7e2bb108808d4ec2b55cd8de15a6/tools/metrics/histograms/histograms.xml

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 12 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188230

------------------------------------------------------------------
r188230 | rbyers@chromium.org | 2015-01-12T16:06:07.076069Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/layers/layer-compositing-reasons-expected.txt?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe.html?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/elements/styles/styles-new-API-expected.txt?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositingRequirementsUpdater.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositedLayerMapping.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/svg.css?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsLayer.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.idl?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-script-expected.txt?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-document.html?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.cpp?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit.html?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/public/platform/WebScrollBlocksOn.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositingReasonFinder.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSPrimitiveValueMappings.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/resolver/StyleResolver.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg.svg?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-default-expected.txt?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on-expected.txt?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositedLayerMapping.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/CompositingReasons.h?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-script.html?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsLayer.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/public/platform/WebLayer.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsLayerClient.h?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg-expected.txt?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/StyleRareNonInheritedData.h?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe-expected.txt?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/html.css?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositingReasonFinder.cpp?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on.html?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-default.html?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/RenderStyleCSSValueMapping.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBox.h?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-document-expected.txt?r1=188230&r2=188229&pathrev=188230
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit-expected.txt?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyleConstants.h?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSProperties.in?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/CompositingReasons.cpp?r1=188230&r2=188229&pathrev=188230
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/style/RenderStyle.h?r1=188230&r2=188229&pathrev=188230

Initial scroll-blocks-on compositor integration

Causes elements with scroll-blocks-on set to be promoted to a
composited layer and plumbs the value through to WebLayer.

By default (for compatibility) we must block on start-touch
and wheel-event.  In order to allow that to be explicitly disabled
we apply it using a user-agent stylesheet.  We're careful not to
create any additional RenderLayers (and so composited layers)
when only these defaults are present.

Consumed by cc in https://codereview.chromium.org/784463002/

Promotes scroll-blocks-on support to "experimental" status.
Note that a number of things are required before we'd consider
shipping this feature, including a mitigation mechanism for
super-janky pages (scroll block timeout and failure notification).

Intent to implement: https://groups.google.com/a/chromium.org/forum/#!topic/input-dev/N3YrsrHus-k

Test/demo page: http://rbyers.net/scroll-blocks-on.html

BUG=347272

Review URL: https://codereview.chromium.org/784453003
-----------------------------------------------------------------
Labels: -M-41 M-42
Project Member

Comment 19 by bugdroid1@chromium.org, Jan 26 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188962

------------------------------------------------------------------
r188962 | rbyers@chromium.org | 2015-01-26T15:59:23.270592Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/layers/layer-compositing-reasons-expected.txt?r1=188962&r2=188961&pathrev=188962
   M http://src.chromium.org/viewvc/blink/trunk/Source/devtools/front_end/timeline/LayerDetailsView.js?r1=188962&r2=188961&pathrev=188962
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/CompositingReasonFinder.cpp?r1=188962&r2=188961&pathrev=188962

Add scroll-blocks-on support to devtools layers view

Add missing decription of the scroll-blocks-on compositing reason to the
devtools layers view.

Also don't add the compositing reason to the root layer to avoid clutter.
With force-compositing-mode shipped everywhere, this shouldn't effect
whether compositing is actually enabled or not in practice.  However it
should avoid triggering compositing mode unnecessarily in experimental
modes like OOPIF that don't enable it by default.

BUG=347272

Review URL: https://codereview.chromium.org/871923005
-----------------------------------------------------------------
Blockedon: chromium:455539
Project Member

Comment 21 by bugdroid1@chromium.org, Feb 5 2015

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

commit 18779d82a7f4a3ca040f247c8454c16b7cfc235b
Author: rbyers <rbyers@chromium.org>
Date: Thu Feb 05 06:22:06 2015

Add initial CC support for scroll-blocks-on

When 'scroll-blocks-on: scroll-event' is applied anywhere in the scroll ancestor tree where is a scroll event handler, force the scroll to be executed on the main thread.  Note that this is still experimental.  We'll be at least adding a timeout mechanism to this to mitigate the risk of improper usage.

When 'scroll-blocks-on: wheel-event' is NOT applied (it's on by default), ignore the existence of wheel event handlers (allowing scrolling to run freely on impl).

When 'scroll-blocks-on: start-touch' is NOT applied (it's on by default), suppress sending touch events to blink.  Eventually we'll make this smarter - sending async touch events that don't block scroll.

Depends on blink change https://src.chromium.org/viewvc/blink?view=rev&revision=188230

BUG=347272

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

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

[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/blink/web_layer_impl.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/blink/web_layer_impl.h
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/input/input_handler.h
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/layer.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/layer.h
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/layer_impl.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/layer_impl.h
[add] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/scroll_blocks_on.h
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/layers/scrollbar_layer_unittest.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/test/layer_tree_json_parser.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/trees/layer_tree_host_impl.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/trees/layer_tree_host_impl.h
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/trees/layer_tree_host_impl_unittest.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/cc/trees/layer_tree_host_unittest_scroll.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/content/renderer/input/input_handler_proxy.cc
[modify] http://crrev.com/18779d82a7f4a3ca040f247c8454c16b7cfc235b/content/renderer/input/input_handler_proxy_unittest.cc

Blocking: chromium:313741
Blockedon: chromium:460203
Labels: -Pri-1 -M-42 M-43 MovedFrom-42 Pri-2
[AUTO] This issue is Pri-1 but has already been moved once, therefore lowering to Pri-2 and moving to next milesone.
Labels: -M-43 MovedFrom-43
[AUTO] This issue has already been moved once and is lower than Priority 1,therefore removing mstone.
Blocking: chromium:399765
Blocking: chromium:489802
Blocking: -chromium:489802
Blockedon: chromium:489802 chromium:504904
We're going to focus on the opting out of blocking scroll sub-problem first ( issue 489802 ), as well as some new UX for better coping with unresponsive sites (issue 504904).  If we can show that working well (and provide a rational replacement for the touch ACK timeout) then we can look at opting in to synchronous scrolling.
Status: Assigned
Blocking: chromium:508446
Summary: Give web developers control over scroll blocking behavior (was: Give web developers control over scroll blocking behavior (scroll-blocks-on))
Project Member

Comment 33 by bugdroid1@chromium.org, Aug 13 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=200448

------------------------------------------------------------------
r200448 | rbyers@chromium.org | 2015-08-13T02:09:42.113629Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/resolver/StyleResolver.cpp?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-document-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/scroll-blocks-on-parsing-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/style/StyleRareNonInheritedData.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/CompositingReasons.cpp?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-default-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe.html?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsLayer.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/elements/styles-4/styles-new-API-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/svg.css?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsLayerClient.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/CSSPropertyParser.cpp?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-script-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-document.html?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.idl?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/html.css?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/svg/css/getComputedStyle-listing-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/css/scroll-blocks-on-parsing.html?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/LayoutBox.cpp?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-iframe-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit.html?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-default.html?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on.html?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/compositing/CompositingReasonFinder.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/compositing/CompositedDeprecatedPaintLayerMapping.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSPrimitiveValueMappings.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/ComputedStyleCSSValueMapping.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/style/StyleRareNonInheritedData.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg.svg?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-document-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSProperties.in?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-explicit-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/squashing/no-squashing-for-scroll-blocks-on-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-default-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/UseCounter.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/CompositingReasons.h?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-script.html?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSValueKeywords.in?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-svg-expected.txt?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/devtools/front_end/timeline/LayerDetailsView.js?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/parser/CSSPropertyParser.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/compositing/CompositingReasonFinder.cpp?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/layout/compositing/CompositedDeprecatedPaintLayerMapping.cpp?r1=200448&r2=200447&pathrev=200448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-script-expected.txt?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/style/ComputedStyle.h?r1=200448&r2=200447&pathrev=200448
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSComputedStyleDeclaration.cpp?r1=200448&r2=200447&pathrev=200448

Delete blink code for scroll-blocks-on

We've decided that controlling scroll blocking behavior is something
that really needs to be tied to event listeners via a JS API, not
a CSS property.  The platform needs to mediate the composition here
(eg. for two unrelated libraries both adding touch handlers to the
document), and there's no good way to mediate that composition using
CSS.  It's really a property of the event handler and so should be
specified at addEventListener time.

 http://crbug.com/489802  tracks the first step of that design
(EventListenerOptions).  So it's time to remove the scroll-blocks-on
CSS support from blink.  I expect the utlimate compositor integration
for EventListenerOptions mayCancel to be similar, and so for now
I'm leaving the hooks in place in GraphicsLayer.

This change also fixes a regression where iframes could occasionally
not get displayed.  I don't understand how the scroll-blocks-on code
(even when not enabled) was triggering that problem, but since it's
going away I'm not going to investigate further.

BUG=347272,  490358 

Review URL: https://codereview.chromium.org/1287623002
-----------------------------------------------------------------
Project Member

Comment 34 by bugdroid1@chromium.org, Sep 23 2015

Labels: merge-merged-2490
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a51a0a8e38e9e49b95c41043daf56503c95e981e

commit a51a0a8e38e9e49b95c41043daf56503c95e981e
Author: rbyers@chromium.org <rbyers@chromium.org>
Date: Thu Aug 13 02:09:42 2015

Delete blink code for scroll-blocks-on

We've decided that controlling scroll blocking behavior is something
that really needs to be tied to event listeners via a JS API, not
a CSS property.  The platform needs to mediate the composition here
(eg. for two unrelated libraries both adding touch handlers to the
document), and there's no good way to mediate that composition using
CSS.  It's really a property of the event handler and so should be
specified at addEventListener time.

 http://crbug.com/489802  tracks the first step of that design
(EventListenerOptions).  So it's time to remove the scroll-blocks-on
CSS support from blink.  I expect the utlimate compositor integration
for EventListenerOptions mayCancel to be similar, and so for now
I'm leaving the hooks in place in GraphicsLayer.

This change also fixes a regression where iframes could occasionally
not get displayed.  I don't understand how the scroll-blocks-on code
(even when not enabled) was triggering that problem, but since it's
going away I'm not going to investigate further.

BUG=347272,  490358 

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

git-svn-id: svn://svn.chromium.org/blink/trunk@200448 bbb929c8-8fbe-4397-9dbb-9b2b20218538

[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-default-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-default.html
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-document-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-document.html
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-explicit.html
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-iframe.html
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-script-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-script.html
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/layer-creation/scroll-blocks-on-svg.svg
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/compositing/squashing/no-squashing-for-scroll-blocks-on.html
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/fast/css/scroll-blocks-on-parsing-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/fast/css/scroll-blocks-on-parsing.html
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/LayoutTests/inspector/elements/styles-4/styles-new-API-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-default-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-document-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-explicit-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-iframe-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-script-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/layer-creation/scroll-blocks-on-svg-expected.txt
[delete] http://crrev.com/419dc3cd8905bb58c576ea868827ce196c25a053/third_party/WebKit/LayoutTests/platform/android/compositing/squashing/no-squashing-for-scroll-blocks-on-expected.txt
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/LayoutTests/svg/css/getComputedStyle-listing-expected.txt
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/CSSValueKeywords.in
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/html.css
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/css/svg.css
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/dom/Document.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/frame/UseCounter.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/layout/compositing/CompositedDeprecatedPaintLayerMapping.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/layout/compositing/CompositedDeprecatedPaintLayerMapping.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/core/testing/Internals.idl
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/devtools/front_end/timeline/LayerDetailsView.js
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/platform/graphics/CompositingReasons.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/platform/graphics/CompositingReasons.h
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
[modify] http://crrev.com/a51a0a8e38e9e49b95c41043daf56503c95e981e/third_party/WebKit/Source/platform/graphics/GraphicsLayerClient.h

Blockedon: 599609
Q1 2017 Update: Work is still ongoing. This quarter hopefully the main thread responsiveness can help rationalize the touch ack timeout.
Hi folks.  I recognize the need for smooth scrolling on mobile, but not being able to control when you want scrolling to block (or send scroll updates faster) makes it hard to deal with the case when you want to keep two divs' position in sync when one of them scrolls.  My use case is for a table with fixed column(s) and header.  It's nicely lock-step when threaded-scrolling is disabled, but when it's threaded scrolling is enabled the tiny lag is very very noticeable.  Trying to avoid having the user set the chrome flag.

I think this was causing issues for react folks as well for their "ScrollSync" functionality (https://github.com/bvaughn/react-virtualized/issues/369).

btw, using the scrollbars directly seems to work either way, I guess because the mechanism is different.

Sign in to add a comment