Thanks for verifying this and for filing Firefox issues. LGTM2
On Tue, Apr 11, 2023 at 10:46 PM David Awogbemila <awogbem...@chromium.org> wrote: > > > On Fri, Apr 7, 2023 at 4:49 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > >> >> >> On Thu, Apr 6, 2023 at 2:39 AM David Awogbemila <awogbem...@chromium.org> >> wrote: >> >>> >>> >>> On Wed, Apr 5, 2023 at 12:11 AM Yoav Weiss <yoavwe...@chromium.org> >>> wrote: >>> >>>> >>>> >>>> On Fri, Mar 31, 2023 at 3:50 PM David Awogbemila < >>>> awogbem...@chromium.org> wrote: >>>> >>>>> Contact emails >>>>> arg...@google.com, awogbem...@google.com >>>>> >>>>> Explainer >>>>> https://github.com/argyleink/scrollend-explainer/blob/main/README.md >>>>> >>>> >>>> The explainer says this shipped in 114. I guess it should say y'all are >>>> expecting to ship at that point :) >>>> >>>> >>>>> >>>>> Specificationhttps://drafts.csswg.org/cssom-view/#scrolling-events >>>>> >>>>> Summary >>>>> >>>>> Scrollend events help developers reliably tell when a scroll has >>>>> completed (including both the scroll itself and any updates to offsets >>>>> from >>>>> the scroll). Knowing when a scroll has completed is useful for various >>>>> reasons, e.g. synchronizing some logic on the snapped section, fetching >>>>> stuff in a list, triggering new animations, etc. This feature greatly >>>>> simplifies the logic for handling end-of-scroll effects, ensuring that >>>>> they >>>>> are consistent across many different input modalities. Currently, >>>>> developers address this need by observing scroll events and building >>>>> ad-hoc >>>>> timeout algorithms. >>>>> >>>>> >>>>> Blink componentBlink>Scroll >>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EScroll> >>>>> >>>>> Search tagsscroll <https://chromestatus.com/features#tags:scroll> >>>>> >>>>> TAG review >>>>> >>>>> TAG review statusNot applicable >>>>> >>>> >>>> Agree this is not needed, as this is following WG agreed-upon behavior, >>>> that has already shipped in one implementation. >>>> >>>> >>>>> >>>>> >>>>> Risks >>>>> >>>>> >>>>> Interoperability and Compatibility >>>>> >>>>> >>>>> >>>>> *Gecko*: Shipped/Shipping ( >>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1797013) >>>>> >>>>> *WebKit*: No signal ( >>>>> https://github.com/WebKit/standards-positions/issues/150) There >>>>> hasn't been an explicit position attached to the position request yet but >>>>> there is a tracking WebKit issue: >>>>> https://bugs.webkit.org/show_bug.cgi?id=201556 >>>>> >>>>> *Web developers*: Positive ( >>>>> https://twitter.com/nghuuphuoc/status/1618806085158051846?s=20) Other >>>>> examples: https://twitter.com/radogado/status/1621479592123826184?s=20 >>>>> https://twitter.com/ebidel/status/1621037204297637891?lang=en >>>>> >>>>> *Other signals*: >>>>> >>>>> WebView application risks >>>>> >>>>> Does this intent deprecate or change behavior of existing APIs, such >>>>> that it has potentially high risk for Android WebView-based applications? >>>>> >>>>> Not potentially high risk. >>>>> >>>>> >>>>> Debuggability >>>>> >>>>> We verified via Protocol Monitor that DevTools supports breaking on >>>>> scrollend listeners, similar to other events. DevTools UI change is needed >>>>> to make this accessible which will be done via crrev.com/c/4376080. >>>>> >>>>> >>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?Yes >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>> ?Yes >>>>> >>>> >>>> >>>> https://wpt.fyi/results/dom/events/scrolling?label=master&label=experimental&aligned >>>> paints an odd picture, where our current experimental implementation passes >>>> some of the tests, but not others, and Firefox seems to be failing some of >>>> them. >>>> Can you elaborate on the end state you're expecting once this ships? >>>> >>> We should have filtered that wpt.fyi link to scrollend tests: >>> https://wpt.fyi/results/dom/events/scrolling?label=master&label=experimental&aligned&q=scrollend >>> We expect the scrollend tests to pass on all the browsers except Safari >>> which doesn't support scrollend yet I believe. >>> I've looked more closely into the failures and filed crbug.com/1430947 >>> explaining the reasons they are failing should have them all fixed soon. >>> They are mostly issues with the way the tests are written. >>> >> >> Do you have a sense of the Firefox failures? Are they all in newer tests >> that were added after they implemented the feature? >> I'm slightly concerned we'd ship this with interoperability issues. >> > I was able to reproduce the firefox failures locally and I observed 2 main > issues: > i) In some tests Firefox just isn't scrolling or isn't firing scrollend > when we expect it to, even though when I manually interacting with the > firefox browser in the same scenarios it does scroll and does fire > scrollend as expected. These seem to have to do with the test > environment/setup. This affects old tests where it's not yet clear why the > outcome is different in tests than via manual interaction. > There is an existing mozilla bug for some of these tests: > https://bugzilla.mozilla.org/show_bug.cgi?id=1655754. I will update the > relevant bugs to see if firefox folks can take a look. There are also newer > bugs for more recent tests: > https://bugzilla.mozilla.org/show_bug.cgi?id=1814530, > https://bugzilla.mozilla.org/show_bug.cgi?id=1826912. I will comment on > these bugs as well. > > ii) Firefox sometimes (i.e. when scrolling via keyboard) fires scrollend > when there is no scroll - in this case, there shouldn't be a scrollend > event, per the second note in the spec ( > https://drafts.csswg.org/cssom-view/#scrolling). With wheel scrolls, > firefox (correctly) does not fire scrollend if there is no scroll. I will > file a mozilla bug for this issue and update here when I've done so. > >> >>>> >>>>> >>>>> >>>>> Flag nameN/A base::Feature is autogenerated from >>>>> runtime_enabled_features.json5 >>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=2920?q=%22name:%20%22ScrollEndEvents%22%22&sq=&ss=chromium%2Fchromium%2Fsrc> >>>>> >>>>> Requires code in //chrome?False >>>>> >>>>> Tracking bug >>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=907601 >>>>> >>>>> Estimated milestones >>>>> M114 >>>>> >>>>> Anticipated spec changes >>>>> >>>>> Open questions about a feature may be a source of future web compat or >>>>> interop issues. Please list open issues (e.g. links to known github issues >>>>> in the project for the feature specification) whose resolution may >>>>> introduce web compat/interop risk (e.g., changing to naming or structure >>>>> of >>>>> the API in a non-backward-compatible way). >>>>> >>>>> >>>>> Link to entry on the Chrome Platform Status >>>>> https://chromestatus.com/feature/5186382643855360 >>>>> >>>>> This intent message was generated by Chrome Platform Status >>>>> <https://chromestatus.com/>. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "blink-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to blink-dev+unsubscr...@chromium.org. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA6pwF7nGNT0bwM8VY3Jj0TAEe9jNptKuwrMN1%3DO8tnqH2t8JQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA6pwF7nGNT0bwM8VY3Jj0TAEe9jNptKuwrMN1%3DO8tnqH2t8JQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfV6V7eLcqcgSZfiNP%3Dm8gA5YKKGDfJKLiz5Y%2B8iFEDggQ%40mail.gmail.com.