32334, 35229, 92193, 134504, 219717, 235344, 237085, 244018, 245255, 250334, 257660, 264405, 265551, 266140, 269050, 289299, 290311, 292667, 295769, 298472, 299512, 300421, 303546, 303819, 305264, 306529, 314308, 316874, 322920, 323385, 326176, 326188, 326191, 331086, 332881, 334814, 338251, 342922, 346234, 348202, 350993, 351605, 361612, 363061, 397891, 402831, 452559, 458882, 510688, 594637
There are many bugs that occur when Firefox tries to render a large amount of text (e.g. thousands of characters). Common themes are severe slowdowns, system freezes, overlapping text, and invisible text. Some of these issues might impact security -- overlapping or invisible text could lead to spoofing or at least users having less information than they should, and system freezes are considered a security issue even though they're really the fault of the operating system.
There's a workaround for many of these in the Xft font code, but not other font backends. Probably we should just do something in nsTextFrame -- perhaps even just creating a maximum text frame size (say, 512 characters, which is I think what Xft uses) and using next-in-flow linkage for text frames within the same line. While it might be nice to want the Gfx API to be pure, it's probably a lot easier to restrict it and require layout to put things in chunks. We should be careful not to separate grapheme clusters between chunks -- i.e., be careful of both surrogates (representing characters outside of Unicode Plane 0) and combining characters (which are a bit harder).
14 years ago
Depends on: 314308
*** Bug 326229 has been marked as a duplicate of this bug. ***
I'm working on something along the lines of comment #1. But I don't want to change how textframes break, that's rather risky. Instead I'm defining some wrapper functions around the nsIRenderingContext functions that break the text up into chunks of limited size.
Bug 338251 has a patch that fixes most of these issues.
Someone want to retest these bugs on trunk? Most of them should be fixed now.
Product: Core → Core Graveyard
Assignee: general → nobody
Component: GFX → Graphics
Product: Core Graveyard → Core
QA Contact: ian → thebes
I've been going through the tracked bug here and I can't reproduce any of these issues. Closing this tracking bug.
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.