-
Notifications
You must be signed in to change notification settings - Fork 20
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
-webkit-perspective: 1
kills performance in CSS column paginated large HTML documents
#117
Comments
|
Furthermore, as with all alterations of the CSS rendering "stacking context", I must make sure this doesn't break |
So as an educated guess, I should be able to remove this considering how old the version of Chrome targeted by this fix is now. But I’d like to double-check just in case. @mickael-menu could you update me on the situation re. Android support? Thx. |
We support down to Chrome 68 on Android, but I think we might raise this if needed. What's the problematic version? |
@mickael-menu So that’s an interesting question and a rabbit hole I’ll have to go down into. The issue is described in CanIUse’s “known issues” for CSS Multicolumn:
But is missing a link/source. So I’ll have to dig deeper. What we can assume is that either the version @ which Daniel started removing the CSS hack is safe, or something else has been forcing Chrome to recalculate the column layout all along and it wasn’t really needed. |
Alright some background, this issue popped up a couple of weeks after chromium switched to LayoutNG – specifically LayoutNGBlockFragmentation. Did my best to find clues in Chromium bug tracker re. multicolum and that’s all I could find at the moment, via this issue in which Thorium is mentioned. But it sounds to me that’s more like coincidence than causation at the moment. Also, as a sidenote:
And it looks like it took them until October 2022 to complete that. I remember Chromium switched to their initial implementation of fragmentation when they removed CSS regions, so I’ll have to confirm whether it was what was used until LayoutNGBlockFragmentation in early 2022. I’ll also check performance issues/regressions after that. In any case, sounds a bit too much to ask to bump from v.68 to v.10x |
Thanks @JayPanoz Probably related ... I filed this bug report some time ago: |
By the way an option could be to add the |
@danielweck Yeah I can’t say this is surprising to me as I saw quite a significant number of regressions after the switch while scanning all the issues. I’ll probably make another pass to collect unfixed issues that may be impactful. @mickael-menu as far as I can tell, the complete switch to LayoutNG for columns happened with LayoutNGTableFragmentation, which was v.106.0.5245.0, according to Chromium Dash |
Thanks, I'll update the Kotlin code if you remove -webkit-perspective! |
Proposed solution: remove from ReadiumCSS and update the Kotlin code, and document the change. |
Some large HTML documents are totally unusable in Thorium, the jank / lag during user interaction is between 500ms and 1 whole second sometimes. Not just when "turning" pages (which is just horizontal scroll), but also just making text selections with the mouse in the current spread. The performance profiler (Chromium, Electron) shows costly layout recalc but mostly paint operations.
After much trial and error, I discovered that
-webkit-perspective: 1;
on the root HTML element is the culprit, and funnily-enough this is marked as "Fix bug for older Chrome" :)readium-css/css/src/modules/ReadiumCSS-pagination.css
Lines 45 to 46 in 5830114
The text was updated successfully, but these errors were encountered: