Closed Bug 302294 (longlines) Opened 19 years ago Closed 13 years ago

[meta] Bugs in rendering of long text strings (e.g. thousands of characters)

Categories

(Core :: Graphics, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Unassigned)

References

Details

(Keywords: meta)

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).
Whiteboard: [sg:investigate]
Depends on: 292667
Depends on: 303546
Depends on: 303819
Depends on: 303925
Depends on: 305144
Depends on: 305264
Depends on: 306529
No longer depends on: 303925
Depends on: 265551
Depends on: 314308
Depends on: 316874
No longer depends on: 305144
Blocks: 321142
No longer blocks: 321142
Depends on: 322920
Depends on: 323385
Depends on: 326191
Depends on: 326188
Depends on: 326176
*** Bug 326229 has been marked as a duplicate of this bug. ***
Depends on: 331086
Depends on: 334814
Depends on: 338251
Depends on: 338510
Depends on: 295769
No longer depends on: 338510
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.
The patch in bug 338251 has been checked in. Bug 237085 has a patch that fixes some more issues.
Depends on: 342922
Alias: longlines
Depends on: 348202
Depends on: 346234
Depends on: 332881
Depends on: 361612
Depends on: 363061
Someone want to retest these bugs on trunk? Most of them should be fixed now.
Depends on: 452559
Product: Core → Core Graveyard
Depends on: 269050, 510688
Depends on: 350993
Depends on: 458882
Depends on: 266140
Assignee: general → nobody
Component: GFX → Graphics
Product: Core Graveyard → Core
QA Contact: ian → thebes
Whiteboard: [sg:investigate]
Depends on: 594637
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
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.