New issue
Advanced search Search tips

Issue 672921 link

Starred by 19 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task
Launch-Accessibility: NA
Launch-Legal: NA
Launch-M-Target: 63-Stable


Sign in to add a comment

Ship overscroll-behavior to control overscroll behaviors.

Project Member Reported by sunyunjia@chromium.org, Dec 9 2016

Issue description

Change description:
Introduce a non-inherited CSS property scroll-boundary-behavior, that may be specified on each scrollable area. This decides the browser's behavior once a scroller has reached its full extent.

Changes to API surface:
scroll-boundary-behavior: propagate | contain | none

Links:
https://github.com/w3c/csswg-drafts/issues/769

Support in other browsers:
Internet Explorer: Public Support https://discourse.wicg.io/t/generic-scroll-chaining-prevention-mechanism-or-expand-standardize-ms-scroll-chaining/1811/5?u=majidvp
Firefox: No public signal
Safari: No public signal

 
Labels: Hotlist-Input-Dev

Comment 2 by bmau...@fb.com, Feb 3 2017

Labels: DevRel-Facebook
This would be fantastic for FB as it's the main thing blocking us from making the wheel event passive. 

Comment 3 by rbyers@chromium.org, Feb 16 2017

Blocking: 162179

Comment 4 by rbyers@chromium.org, Apr 11 2017

Cc: flackr@chromium.org
Summary: Ship scroll-boundary-behavior to control overscroll behaviors. (was: Implement scroll-boundary-behavior to control overscroll behaviors.)
Since this is an OWP launch bug, putting "ship" in the title instead of "implement".  

CSSWG has resolved to work on this via WICG: https://github.com/w3c/csswg-drafts/issues/769#issuecomment-293111694.  Next step is probably for someone to copy Majid's justification from discourse into an explainer.md and create a new GitHub repo that we move to the WICG org.

Comment 5 by bgir...@fb.com, Apr 19 2017

The repo is now live:
https://github.com/WICG/scroll-boundary-behavior/issues

Please contribution to the discussion. I'll start a spec draft in the repo after a bit more discussion (or lack of) has happened.

Comment 6 by majidvp@google.com, Apr 20 2017

I think the amount of the discussion that has happened in the CSSOM issue and WICG thread is enough for us to start the draft spec. I don't think without the detailed spec we will get any more feedback at this point.

Comment 7 by b56gir...@gmail.com, Apr 20 2017

Thanks, I'll start a draft. I did file a few issues where input would help in writing the draft but I can start now:
https://github.com/WICG/scroll-boundary-behavior/issues

Comment 8 by bgir...@fb.com, Apr 26 2017

Blocking: 701715
Blockedon: 681143
Status: Started (was: Assigned)
Blocking: 369982
Labels: -Pri-3 Pri-2
Blockedon: 465423
Project Member

Comment 15 by bugdroid1@chromium.org, Jul 19 2017

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

commit 55ed8ccd43eadef318b5e7a6bcf2519b078b1213
Author: sunyunjia <sunyunjia@chromium.org>
Date: Wed Jul 19 01:19:11 2017

Implement CSS: scroll-boundary-behavior.

CSS: scroll-boundary-behavior allows developers to specify whether the scroll
should be propagated to its ancestors. This is different from scroll
latching, in the way that when latching is turned on, a gesture will be
limited to a single element, but scroll-boundary-behavior will affect
propagation when the latch is being targeted at the beginning of the gesture.

This patch implements scroll-boundary-behavior: none, by cutting off the
scroll chain when the scrollNode has the property, so the scroll will not be
propagated. After this patch lands, we will implement scroll-boundary-behavior:
contain, which controls overscroll UI affordance such as glow/bounce etc.

BUG= 672921 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2769793002
Cr-Commit-Position: refs/heads/master@{#487702}

[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/blink/web_layer_impl.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/blink/web_layer_impl.h
[add] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/input/scroll_boundary_behavior.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/layers/layer.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/layers/layer.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/trees/scroll_node.cc
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/cc/trees/scroll_node.h
[add] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/LayoutTests/webexposed/css-property-listing-expected.txt
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/CSSValueKeywords.json5
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/frame/UseCounter.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/input/ScrollManager.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/Source/web/AssertMatchingEnums.cpp
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/public/platform/WebLayer.h
[add] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/third_party/WebKit/public/platform/WebScrollBoundaryBehavior.h
[modify] https://crrev.com/55ed8ccd43eadef318b5e7a6bcf2519b078b1213/tools/metrics/histograms/enums.xml

Labels: Launch-M-Target-63-Stable OS-All
Labels: -M-58
Our users hate setting this flag daily, admin console needs to be able to push this. 
Project Member

Comment 19 by bugdroid1@chromium.org, Sep 12 2017

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

commit 56279196a0b5a130d32c3cdb3ef4fc0deac79f2b
Author: Eric Willigers <ericwilligers@chromium.org>
Date: Tue Sep 12 22:58:39 2017

CSS: Serialize both scroll-boundary-behavior words

scroll-boundary-behavior is a shorthand containing
scroll-boundary-behavior-x and scroll-boundary-behavior-y.

If only one value is specified, the second value defaults
to the same value.

Spec:
https://wicg.github.io/scroll-boundary-behavior/#scroll-boundary-behavior-properties

BUG= 672921 

Change-Id: Ib924802ac441f0ddbe9d1f360c7d9d91ff5b80c6
Reviewed-on: https://chromium-review.googlesource.com/662480
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501437}
[add] https://crrev.com/56279196a0b5a130d32c3cdb3ef4fc0deac79f2b/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/getComputedStyle-scrollBoundaryBehavior-serialization.html
[modify] https://crrev.com/56279196a0b5a130d32c3cdb3ef4fc0deac79f2b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/56279196a0b5a130d32c3cdb3ef4fc0deac79f2b/third_party/WebKit/Source/core/css/StylePropertySerializer.cpp

Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
re #18 - Runtime enabled experimental feature flags are not really meant to be used in production. In this case the feature is being planned to be in M63. I am not sure what is your usecase but while you are waiting for that release to hit stable, it may be possible to use alternative workarounds for it.

M63 stable launch is coming soon and this feature is targeted for M63 Stable, please have cross functional bits flipped ASAP. Thank you.
Labels: -Launch-Legal-NotReviewed -Launch-Accessibility-NotReviewed Launch-Accessibility-NA Launch-Legal-NA
Summary: Ship overscroll-behavior to control overscroll behaviors. (was: Ship scroll-boundary-behavior to control overscroll behaviors.)
So is this overscroll-behavior or scroll-boundary-behavior? Is it going to be shipped in M63? 
Yes, this is renamed from scroll-boundary-behavior and is going to be shipped in M63.
Status: Fixed (was: Started)
Blockedon: -465423
Blockedon: 762054
Blockedon: 762023

Sign in to add a comment