Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Issue 2769793002: Implement CSS: scroll-boundary-behavior (Closed)

Created:
3 years, 9 months ago by sunyunjia
Modified:
3 years, 5 months ago
CC:
chromium-reviews, blink-reviews-platform-graphics_chromium.org, dshwang, eae+blinkwatch, apavlov+blink_chromium.org, kinuko+watch, Stephen Chennney, rwlbuis, krit, drott+blinkwatch_chromium.org, blink-reviews-css, szager+layoutwatch_chromium.org, Justin Novosad, dglazkov+blink, Rik, jchaffraix+rendering, blink-reviews, ajuma+watch_chromium.org, blink-reviews-frames_chromium.org, blink-reviews-style_chromium.org, zoltan1, blink-reviews-layout_chromium.org, jbroman, pdr+graphicswatchlist_chromium.org, darktears, cc-bugs_chromium.org, pdr+renderingwatchlist_chromium.org, leviw+renderwatch, fmalita+watch_chromium.org, blink-reviews-api_chromium.org, blink-layers+watch_chromium.org, danakj+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

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} Committed: https://chromium.googlesource.com/chromium/src/+/55ed8ccd43eadef318b5e7a6bcf2519b078b1213

Patch Set 1 #

Patch Set 2 : Merge branch 'master' of https://chromium.googlesource.com/chromium/src into scroll-boundary #

Total comments: 12

Patch Set 3 : Set the scroll boundary behavior on ScrollNode. #

Patch Set 4 : Merge branch 'master' of https://chromium.googlesource.com/chromium/src into scroll-boundary #

Patch Set 5 : Add blink side. #

Patch Set 6 : Share same enum for web and cc and added LayoutTest. #

Patch Set 7 : Rebase.:wq #

Patch Set 8 : Seperate scroll-boundary-behavior on x and y. #

Patch Set 9 : Update WebScrollBoundaryBehavior. #

Total comments: 34

Patch Set 10 : Move impl-thread test to virtual/threaded and implement main-thread test. #

Patch Set 11 : Updated some css test expectations. #

Patch Set 12 : Use only gpuBenchmarking. #

Total comments: 1

Patch Set 13 : Still distribute Scroll chain when scroll begins. #

Patch Set 14 : Merge branch 'master' of https://chromium.googlesource.com/chromium/src into scroll-boundary #

Patch Set 15 : Add a comment #

Patch Set 16 : Disable the test on Mac. #

Patch Set 17 : Use EventSender to test on Mac. #

Patch Set 18 : Use gpuBenchmarking.smoothScrollBy for test. #

Patch Set 19 : rebase #

Patch Set 20 : add runtime flag #

Patch Set 21 : Remove unnecessary css mappings #

Patch Set 22 : 1st layout-test #

Patch Set 23 : Add touch source type to layout-test #

Patch Set 24 : Disable touch on mac #

Total comments: 26

Patch Set 25 : update the tests #

Total comments: 32

Patch Set 26 : Better tests #

Patch Set 27 : update ScrollAnimated() #

Patch Set 28 : Delete the log #

Patch Set 29 : rebase #

Patch Set 30 : Update promises tests and Scroll Manager #

Total comments: 20

Patch Set 31 : Update the layout_test and fix nits in cc #

Patch Set 32 : Rebase #

Total comments: 2

Patch Set 33 : Add documentation #

Unified diffs Side-by-side diffs Delta from patch set Stats (+557 lines, -5 lines) Patch
M cc/blink/web_layer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M cc/blink/web_layer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 chunks +7 lines, -0 lines 0 comments Download
A cc/input/scroll_boundary_behavior.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +46 lines, -0 lines 0 comments Download
M cc/layers/layer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 chunks +8 lines, -0 lines 0 comments Download
M cc/layers/layer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +22 lines, -1 line 0 comments Download
M cc/layers/layer_impl_test_properties.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +2 lines, -0 lines 0 comments Download
M cc/layers/layer_impl_test_properties.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +2 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 chunks +29 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 chunk +114 lines, -0 lines 0 comments Download
M cc/trees/property_tree_builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +10 lines, -0 lines 0 comments Download
M cc/trees/scroll_node.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +3 lines, -0 lines 0 comments Download
M cc/trees/scroll_node.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 chunks +7 lines, -2 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +143 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/webexposed/css-property-listing-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSProperties.json5 View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 chunks +21 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSValueKeywords.json5 View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/StylePropertySerializer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/parser/CSSParserFastPaths.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/UseCounter.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/input/ScrollManager.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 chunks +21 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5 View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/AssertMatchingEnums.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +9 lines, -0 lines 0 comments Download
M third_party/WebKit/public/platform/WebLayer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 2 chunks +7 lines, -0 lines 0 comments Download
A third_party/WebKit/public/platform/WebScrollBoundaryBehavior.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 chunk +31 lines, -0 lines 0 comments Download
M tools/metrics/histograms/enums.xml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 169 (136 generated)
sunyunjia
Hi David, Can you take a look at my first implementation of scroll-boundary-behavior? Thanks!
3 years, 9 months ago (2017-03-22 20:03:25 UTC) #7
bokan
Have a few comments. https://codereview.chromium.org/2769793002/diff/20001/cc/layers/layer_impl.cc File cc/layers/layer_impl.cc (right): https://codereview.chromium.org/2769793002/diff/20001/cc/layers/layer_impl.cc#newcode84 cc/layers/layer_impl.cc:84: scroll_boundary_behavior_(SCROLL_BOUNDARY_BEHAVIOR_PROPAGATE) { How does a ...
3 years, 9 months ago (2017-03-23 13:18:27 UTC) #10
sunyunjia
Hi David, I updated the patch, and please see the comments. Perhaps I should add ...
3 years, 9 months ago (2017-03-23 20:16:55 UTC) #15
bokan
Yup, we'll need REF and test to land this. In addition, have you tried this ...
3 years, 9 months ago (2017-03-23 21:52:19 UTC) #20
sunyunjia
Hi Majid, Here is the patch for scroll-boundary-behavior FYI. I'm still working on the comments.
3 years, 7 months ago (2017-05-03 16:14:44 UTC) #22
sunyunjia
Hi David, I've updated the patch with main thread working and layout tests. PTAL, thanks!
3 years, 7 months ago (2017-05-15 14:00:32 UTC) #29
sunyunjia
Hi David, I've added the part to separate x and y axis. The patch is ...
3 years, 7 months ago (2017-05-18 14:28:54 UTC) #30
bokan
https://codereview.chromium.org/2769793002/diff/220001/cc/blink/web_layer_impl.h File cc/blink/web_layer_impl.h (right): https://codereview.chromium.org/2769793002/diff/220001/cc/blink/web_layer_impl.h#newcode130 cc/blink/web_layer_impl.h:130: void SetScrollBoundaryBehavior(blink::WebScrollBoundaryBehavior) override; pass by const-ref https://codereview.chromium.org/2769793002/diff/220001/cc/input/scroll_boundary_behavior.h File cc/input/scroll_boundary_behavior.h ...
3 years, 7 months ago (2017-05-19 19:35:57 UTC) #32
bokan
In commit message: >This is different from scroll latching, in the way that even when ...
3 years, 7 months ago (2017-05-19 19:39:51 UTC) #33
bokan
Also, please add the BUG= field
3 years, 7 months ago (2017-05-19 19:40:10 UTC) #34
sunyunjia
I moved the compositor thread test to virtual/threaded/, where the tests are run with --enable-threaded-compositing ...
3 years, 7 months ago (2017-05-25 20:07:11 UTC) #39
sunyunjia
Presubmit Warnings says "eventSender is deprecated, please use chrome.gpuBenchmarking.pointerActionSequence instead". Does this apply to our ...
3 years, 7 months ago (2017-05-25 20:31:58 UTC) #40
bokan
On 2017/05/25 20:31:58, sunyunjia wrote: > Presubmit Warnings says "eventSender is deprecated, please use > ...
3 years, 7 months ago (2017-05-26 14:50:06 UTC) #43
sunyunjia
On 2017/05/26 14:50:06, bokan wrote: > On 2017/05/25 20:31:58, sunyunjia wrote: > > Presubmit Warnings ...
3 years, 7 months ago (2017-05-26 15:53:27 UTC) #48
bokan
Typo in commit message: "in the way that wehn latching is turned on": wehn -> ...
3 years, 7 months ago (2017-05-26 16:32:03 UTC) #49
sunyunjia
Hi David, There have been quite a lot of rebases since last review. However, the ...
3 years, 5 months ago (2017-06-29 18:05:26 UTC) #96
bokan
On 2017/06/29 18:05:26, sunyunjia wrote: > Hi David, > > There have been quite a ...
3 years, 5 months ago (2017-06-30 15:44:12 UTC) #104
sunyunjia
David: I've updated the patch according to the comments. As I tested locally, the test ...
3 years, 5 months ago (2017-06-30 18:26:58 UTC) #108
bokan
https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html File third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html (right): https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html#newcode29 third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html:29: // We requestAnimationFrame either for 500 frames or until ...
3 years, 5 months ago (2017-06-30 18:55:36 UTC) #109
ajuma
cc changes look good overall. Would it make sense to write a LayerTreeHostScrollTest (or some ...
3 years, 5 months ago (2017-06-30 20:46:49 UTC) #112
majidvp
[I still need to review the layout tests but here are my comments so far] ...
3 years, 5 months ago (2017-07-05 21:30:03 UTC) #113
majidvp
https://codereview.chromium.org/2769793002/diff/620001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html File third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html (right): https://codereview.chromium.org/2769793002/diff/620001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html#newcode3 third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html:3: <script src="../../resources/testharnessreport.js"></script> nit: blank line https://codereview.chromium.org/2769793002/diff/620001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html#newcode5 third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html:5: <div id='container' ...
3 years, 5 months ago (2017-07-06 19:44:00 UTC) #114
sunyunjia
I've fixed most of the comments. PTAL, thanks! https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html File third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html (right): https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html#newcode29 third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html:29: // ...
3 years, 5 months ago (2017-07-14 02:59:01 UTC) #137
majidvp
The layout test looks much more readable! Thanks for clean up. :) https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html File third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html ...
3 years, 5 months ago (2017-07-14 14:29:44 UTC) #138
ajuma
Thanks for adding the unit test. I just have a couple more nits. https://codereview.chromium.org/2769793002/diff/720001/cc/layers/layer_impl.h File ...
3 years, 5 months ago (2017-07-14 15:04:48 UTC) #139
sunyunjia
PTAL, thanks! https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html File third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html (right): https://codereview.chromium.org/2769793002/diff/600001/third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html#newcode29 third_party/WebKit/LayoutTests/fast/scroll-behavior/scroll-boundary-behavior.html:29: // We requestAnimationFrame either for 500 frames ...
3 years, 5 months ago (2017-07-14 22:07:24 UTC) #146
ajuma
Thanks! cc lgtm
3 years, 5 months ago (2017-07-14 22:20:04 UTC) #147
majidvp
lgtm but please update the description before landing. For examples the descriptions mentions overscroll-action which ...
3 years, 5 months ago (2017-07-17 15:49:30 UTC) #150
sunyunjia
Hi Rick, Could you please do the ownership review under third_party/WebKit/Source/platform/ and third_party/WebKit/public/platform/ ? Thanks!
3 years, 5 months ago (2017-07-17 16:17:47 UTC) #152
Rick Byers
Source/platform and public/platform LGTM with nit about comments. https://codereview.chromium.org/2769793002/diff/760001/third_party/WebKit/public/platform/WebLayer.h File third_party/WebKit/public/platform/WebLayer.h (right): https://codereview.chromium.org/2769793002/diff/760001/third_party/WebKit/public/platform/WebLayer.h#newcode216 third_party/WebKit/public/platform/WebLayer.h:216: virtual ...
3 years, 5 months ago (2017-07-18 18:44:26 UTC) #154
Rick Byers
Source/platform and public/platform LGTM with nit about comments.
3 years, 5 months ago (2017-07-18 18:44:28 UTC) #155
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2769793002/780001
3 years, 5 months ago (2017-07-19 01:07:15 UTC) #166
commit-bot: I haz the power
3 years, 5 months ago (2017-07-19 01:19:34 UTC) #169
Message was sent while issue was closed.
Committed patchset #33 (id:780001) as
https://chromium.googlesource.com/chromium/src/+/55ed8ccd43eadef318b5e7a6bcf2...

Powered by Google App Engine
This is Rietveld 408576698