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: WontFix
Owner:
Closed: Jan 7
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature


Sign in to add a comment
link

Issue 347272: Give web developers control over scroll blocking behavior

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

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

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.

Comment 4 by rbyers@chromium.org, May 7 2014

Labels: Hotlist-Input-Dev

Comment 5 by rbyers@chromium.org, May 9 2014

Blocking: chromium:260732

Comment 6 by rbyers@chromium.org, May 9 2014

Blocking: -chromium:260732

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

Blocking: chromium:404128

Comment 8 by rbyers@chromium.org, Oct 8 2014

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

Comment 9 by rbyers@chromium.org, Oct 8 2014

Blocking: chromium:410974

Comment 11 by rbyers@chromium.org, Oct 8 2014

Blocking: chromium:421513

Comment 13 by rbyers@chromium.org, Nov 14 2014

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.

Comment 14 by matthewyuan@google.com, Nov 18 2014

Labels: -M-40 M-41 MovedFrom-40
Moving all non essential bugs to the next Milestone.

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

Project Member
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
-----------------------------------------------------------------

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

Project Member
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

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

Project Member
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
-----------------------------------------------------------------

Comment 18 by rbyers@chromium.org, Jan 15 2015

Labels: -M-41 M-42

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

Project Member
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
-----------------------------------------------------------------

Comment 20 by rbyers@chromium.org, Feb 5 2015

Blockedon: chromium:455539

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

Project Member
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

Comment 22 by rbyers@chromium.org, Feb 7 2015

Blocking: chromium:313741

Comment 23 by rbyers@chromium.org, Feb 19 2015

Blockedon: chromium:460203

Comment 24 by amineer@chromium.org, Mar 3 2015

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.

Comment 25 by pennymac@google.com, Apr 14 2015

Labels: -M-43 MovedFrom-43
[AUTO] This issue has already been moved once and is lower than Priority 1,therefore removing mstone.

Comment 26 by rbyers@chromium.org, Apr 27 2015

Blocking: chromium:399765

Comment 27 by rbyers@chromium.org, May 19 2015

Blocking: chromium:489802

Comment 28 by rbyers@chromium.org, Jul 3 2015

Blocking: -chromium:489802

Comment 29 by rbyers@chromium.org, Jul 3 2015

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.

Comment 30 by rbyers@chromium.org, Jul 3 2015

Status: Assigned

Comment 31 by jdduke@chromium.org, Jul 24 2015

Blocking: chromium:508446

Comment 32 by rbyers@chromium.org, Aug 11 2015

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

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

Project Member
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
-----------------------------------------------------------------

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

Project Member
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

Comment 35 by rbyers@chromium.org, Mar 31 2016

Blockedon: 599609

Comment 36 by dtapu...@chromium.org, Jan 26 2017

Q1 2017 Update: Work is still ongoing. This quarter hopefully the main thread responsiveness can help rationalize the touch ack timeout.

Comment 37 by bradfl...@gmail.com, Jun 28 2017

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.

Comment 38 by nzolghadr@chromium.org, Jan 7

Status: WontFix (was: Assigned)
You can probably use animation worklet or scroll-linked animations for your use case to achieve a smoother UI and a sync scrolling behavior in that case. cc'ing majidvp@ as he is one of the owners of that feature.
https://github.com/WICG/animation-worklet
https://wicg.github.io/scroll-animations/

Sign in to add a comment