New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
spark.adobe.com - Page scroll is slow #89116
Comments
Here is a screen recording Screen.Recording.2021-10-05.at.9.57.54.AM.mp4. |
Thanks for the report, I was able to reproduce the issue. Scrolling is slower on Firefox compared to Chrome. Note: The issue is not reproducible on Chrome. I've recorded a performance profile: https://share.firefox.dev/3iB2Qux Tested with: Moving to Needsdiagnosis for further investigation. |
So, for some reason, that site decided to completely implement their own scrolling. Even the "scrollbar" visible on the side is just a bunch of HTML with a draggable element on it... Their if (b.isSafari ? 'deltaY' in h || (k = Math[k >= 1 ? 'floor' : 'ceil'](k / 3), m = Math[m >= 1 ? 'floor' : 'ceil'](m / 3), n = Math[n >= 1 ? 'floor' : 'ceil'](n / 3)) : b.isFirefox ? 0 === h.deltaMode && (k = Math[k >= 1 ? 'floor' : 'ceil'](k / 2), m = Math[m >= 1 ? 'floor' : 'ceil'](m / 2), n = Math[n >= 1 ? 'floor' : 'ceil'](n / 2)) : b.isChrome || b.isIE || b.isMSEdge || (o = Math.max(Math.abs(n), Math.abs(m)), (!g || o < g) && (g = o, e(h, o) && (g /= 40)), e(h, o) && (k /= 40, m /= 40, n /= 40), k = Math[k >= 1 ? 'floor' : 'ceil'](k / g), m = Math[m >= 1 ? 'floor' : 'ceil'](m / g), n = Math[n >= 1 ? 'floor' : 'ceil'](n / g)), l.settings.normalizeOffset && this.getBoundingClientRect) {
/* ... */
} which expands to something like if (
b.isSafari ? 'deltaY' in h || (
k = Math[k >= 1 ? 'floor' : 'ceil'](k / 3);
m = Math[m >= 1 ? 'floor' : 'ceil'](m / 3);
n = Math[n >= 1 ? 'floor' : 'ceil'](n / 3);
)
: b.isFirefox ? 0 === h.deltaMode && (
k = Math[k >= 1 ? 'floor' : 'ceil'](k / 2);
m = Math[m >= 1 ? 'floor' : 'ceil'](m / 2);
n = Math[n >= 1 ? 'floor' : 'ceil'](n / 2);
)
: b.isChrome || b.isIE || b.isMSEdge || (
o = Math.max(Math.abs(n), Math.abs(m));
(!g || o < g) && (g = o, e(h, o) && (g /= 40));
e(h, o) && (k /= 40, m /= 40, n /= 40);
k = Math[k >= 1 ? 'floor' : 'ceil'](k / g);
m = Math[m >= 1 ? 'floor' : 'ceil'](m / g);
n = Math[n >= 1 ? 'floor' : 'ceil'](n / g);
), l.settings.normalizeOffset && this.getBoundingClientRect
) and that's interesting. They correctly expect that Spoofing as Chrome, and thus running in the same codepath here, makes the scrolling behave the same across Firefox and Chrome. Unfortunately, "spoofing" is not as simple as switching the User Agent here, we'd have to undefine A search on LinkedIn told me that @senocular works on the frontend for Adobe Spark. Hi Trevor! Sorry for the ping, but could you maybe take a look at why scrolling on this page behaves differently in Firefox vs. the other browsers? :) |
I don't work on Page anymore, but I do know that code is quite old and I believe originated with a jquery plugin. But looking at how both browsers handle the wheel event, it looks like it has more to do (from what I'm seeing) with how acceleration is being treated. Using:
On Mac Firefox I'm seeing deltas between 16 and 160 whereas on Chrome I'm seeing between 4 and 380. Firefox ends up being faster per "click" but doesn't ramp up as much as Chrome when you're slapping that wheel wheely hard. |
Hm, interesting. I only have access to a laptop touchpad and an Apple Magic Trackpad at the moment as my mouse is waiting on replacement... And for touchpads (and touchscreens), the behvaior ends up feeling the same if we get into the Chrome codepath. @karlcow didn't you recently look into wheel events and the delta values? Are you aware of any differences in how we transfer acceleration? |
acceleration is set here. And there is code here on computing the acceleration. This line is quite interesting, specifically because of the recent changes. // Don't accelerate the delta values if the event isn't line scrolling.
if (aEvent->mDeltaMode != dom::WheelEvent_Binding::DOM_DELTA_LINE) {
return result;
} Does that mean Firefox does not accelerate if it's ah but the logic of the code predates this. hmm but wait I thought this code was modified by @emilio too. ok @emilio do your modifications have an impact on acceleration? |
This method is for computing scroll amount of default action of wheel events. So it's not related to any information exposed to web apps. It was designed for making faster scroll on Windows, but it's good only for specific environments, so IIRC, it's not used by default. According to @denschub 's investigation, it looks like that Adobe tried to do something for Firefox for macOS with high-precision wheel pointing device such as Magic Trackpad or expensive mouse. If now Adobe refers |
I'm closing this as a WONTFIX. The reasoning for that is explained on Bugzilla, and I'll full-quote here for reference:
|
URL: https://spark.adobe.com/page/0OAACYUYlqxNL/
Browser / Version: Firefox 93.0
Operating System: Mac OS X 10.15
Tested Another Browser: Yes Chrome
Problem type: Something else
Description: Scrolling very slow versus Chrome
Steps to Reproduce:
Scrolling down the page in Firefox is very slow on Adobe Spark. It seems to move down the page at less "clicks" (for a better word) and much less smooth than Chrome.
Browser Configuration
From webcompat.com with ❤️
The text was updated successfully, but these errors were encountered: