RESOLVED FIXED 210634
REGRESSION (r254790): No longer get smooth scrolling on music.apple.com
https://bugs.webkit.org/show_bug.cgi?id=210634
Summary REGRESSION (r254790): No longer get smooth scrolling on music.apple.com
Simon Fraser (smfr)
Reported 2020-04-16 20:58:20 PDT
1. Go to https://tv.apple.com/us/show/the-morning-show/umc.cmc.25tn3v8ku4b39tr6ccgb8nl6m 2. Click on the ">"button in the episodes shelf No longer get smooth scrolling after r254790.
Attachments
Patch (17.00 KB, patch)
2020-04-20 10:29 PDT, cathiechen
no flags
Patch (16.99 KB, patch)
2020-04-20 22:01 PDT, cathiechen
no flags
Patch (18.27 KB, patch)
2020-04-21 01:52 PDT, cathiechen
no flags
Patch (22.72 KB, patch)
2020-04-21 02:56 PDT, cathiechen
no flags
Patch (22.72 KB, patch)
2020-04-21 03:26 PDT, cathiechen
no flags
Patch (18.96 KB, patch)
2020-04-21 03:55 PDT, cathiechen
no flags
Simon Fraser (smfr)
Comment 1 2020-04-16 20:59:27 PDT
Parsing the new properties needs to be off by default until it actually works.
Simon Fraser (smfr)
Comment 2 2020-04-16 20:59:43 PDT
Or behind an experimental feature at least.
Simon Fraser (smfr)
Comment 3 2020-04-16 21:00:08 PDT
Simon Fraser (smfr)
Comment 4 2020-04-16 21:00:44 PDT
Need to see if the page is using @supports()
cathiechen
Comment 5 2020-04-16 21:19:53 PDT
Sorry, the url is not accessible to me.
Simon Fraser (smfr)
Comment 6 2020-04-16 22:02:36 PDT
Oops, sorry about that. It also reproduces on https://music.apple.com/us/browse, in any of the horizontal scrollers. It's "scroll-behavior: smooth" combined with "scroll-snap: x mandatory"
cathiechen
Comment 7 2020-04-16 22:20:52 PDT
I see... I can reproduce it now. I'll take a look today.
cathiechen
Comment 8 2020-04-17 19:40:28 PDT
The page use `if ("scrollBehavior" in document.documentElement.style)` to indicate the implement of scroll-behavior. It will perform JS animated scroll if not implement. Currently, "scrollBehavior" is available in style whether smoothscrolling enable or not. Only invalidate the css value. Need to find a way to disable the property by settings flag in Source/WebCore/css/CSSProperties.json? I saw the property can disable by "* runtime-flag:"(runtime flag) and "* enable-if:"(compile flag).
Simon Fraser (smfr)
Comment 9 2020-04-18 09:37:09 PDT
I think you should add an Experimental Feature flag for it, and plumb down into CSS parsing.
cathiechen
Comment 10 2020-04-20 10:29:17 PDT
Simon Fraser (smfr)
Comment 11 2020-04-20 11:07:08 PDT
Comment on attachment 396988 [details] Patch Should it just be a RuntimeEnabledFeature instead? That would avoid all this extra work.
Darin Adler
Comment 12 2020-04-20 15:00:56 PDT
Comment on attachment 396988 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396988&action=review Windows build failure seems like a real thing. > Source/WebCore/css/CSSStyleDeclaration.cpp:271 > + auto* settingsPtr = parentElement() ? &(parentElement()->document().settings()) : nullptr; No need for the () around the settings here. > Source/WebCore/css/CSSStyleDeclaration.cpp:294 > + auto* settingsPtr = parentElement() ? &(parentElement()->document().settings()) : nullptr; Ditto. > Source/WebCore/css/CSSStyleDeclaration.cpp:329 > + // TODO: Should take account for flags in settings(). WebKit project uses FIXME, not TODO. > Source/WebCore/css/parser/CSSPropertyParser.cpp:146 > + // TODO: Should take account for flags in settings(). Ditto. > Source/WebCore/inspector/InspectorStyleSheet.cpp:607 > + // TODO: Should take account for flags in settings(). Ditto.
Darin Adler
Comment 13 2020-04-20 15:01:46 PDT
Comment on attachment 396988 [details] Patch Windows *test* failure, I mean.
cathiechen
Comment 14 2020-04-20 21:42:03 PDT
(In reply to Simon Fraser (smfr) from comment #11) > Comment on attachment 396988 [details] > Patch > > Should it just be a RuntimeEnabledFeature instead? That would avoid all this > extra work. Hi Simon, I don't have a strong opinion about this. I'm fine to use RuntimeEnabledFeature instead. Honestly, I feel a bit confused about when to use RuntimeEnabledFeature or Settings. Experimental WebPreference + settings is quite popular now, so scroll-behavior used it. And in that case, it seems necessary to add an option to CSSProperties.json. However, if we decide the CSS properties should use RuntimeEnabledFeature instead, that also seems reasonable to me.
cathiechen
Comment 15 2020-04-20 21:57:42 PDT
Comment on attachment 396988 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396988&action=review Hi Darin, Thanks for the review:) Regarding the Windows test failure, sorry, I don't have Windows work evn. It seems this change is not platform related. If the experimental flag works well, it should be fine... >> Source/WebCore/css/CSSStyleDeclaration.cpp:271 >> + auto* settingsPtr = parentElement() ? &(parentElement()->document().settings()) : nullptr; > > No need for the () around the settings here. Done. >> Source/WebCore/css/CSSStyleDeclaration.cpp:329 >> + // TODO: Should take account for flags in settings(). > > WebKit project uses FIXME, not TODO. Done.
cathiechen
Comment 16 2020-04-20 22:01:41 PDT
cathiechen
Comment 17 2020-04-21 01:52:31 PDT
cathiechen
Comment 18 2020-04-21 02:56:22 PDT
cathiechen
Comment 19 2020-04-21 03:26:34 PDT
cathiechen
Comment 20 2020-04-21 03:55:44 PDT
cathiechen
Comment 21 2020-04-21 07:28:17 PDT
> Regarding the Windows test failure, sorry, I don't have Windows work evn. > It seems this change is not platform related. If the experimental flag works > well, it should be fine... CSSOMViewSmoothScrolling seems not supported on win/DumpRenderTree.cpp. It works well now.
EWS
Comment 22 2020-04-21 20:03:47 PDT
Committed r260491: <https://trac.webkit.org/changeset/260491> All reviewed patches have been landed. Closing bug and clearing flags on attachment 397071 [details].
Truitt Savell
Comment 23 2020-04-22 10:01:02 PDT
It looks like the new test fast/scrolling/scroll-behavior-invalidate-if-disabled.html added in https://trac.webkit.org/changeset/260491/webkit is a flaky failure. History: https://results.webkit.org/?suite=layout-tests&test=fast%2Fscrolling%2Fscroll-behavior-invalidate-if-disabled.html Diff: --- /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/fast/scrolling/scroll-behavior-invalidate-if-disabled-expected.txt +++ /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/fast/scrolling/scroll-behavior-invalidate-if-disabled-actual.txt @@ -1 +1 @@ -Pass test scrollBehavior should be invalidate if CSSOMViewSmoothScrollingEnabled is disabled. +Fail test scrollBehavior should be invalidate if CSSOMViewSmoothScrollingEnabled is disabled.
Jonathan Bedard
Comment 24 2020-04-22 10:13:46 PDT
(In reply to Truitt Savell from comment #23) > It looks like the new test > fast/scrolling/scroll-behavior-invalidate-if-disabled.html > > added in https://trac.webkit.org/changeset/260491/webkit > > is a flaky failure. But only on WebKit 1, for what that's worth: https://results.webkit.org/?suite=layout-tests&test=fast%2Fscrolling%2Fscroll-behavior-invalidate-if-disabled.html&flavor=wk1&flavor=wk2
cathiechen
Comment 25 2020-04-23 09:22:27 PDT
Hmmm, the flaky failure seems related to propertyInfoCache. I'll file a new bug to fix it.
Note You need to log in before you can comment on or make changes to this bug.