Coloring overlapping Arabic glyphs is broken

RESOLVED INACTIVE

Status

()

Core
Layout: Text
RESOLVED INACTIVE
3 years ago
4 days ago

People

(Reporter: Khaled Hosny, Unassigned)

Tracking

({regression})

Trunk
regression
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
Created attachment 8687145 [details]
Current (broken) rendering

See for example:
data:text/html,<div style="font:120px/100px Scheherazade; color:red">%26%23x644;<span style="color:blue">%26%23x627;</div>

The lam (in red) is shown correctly, but the alef (in blue) is clipped. This used to work correctly and I’m not sure when it was broken.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regressionwindow-wanted
From testing mozilla-central builds, this regressed on 2014-09-04, which points to a range:
  https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e58842c764dd&tochange=776fa9cf70cd

Looking at that range, I'd say the culprit is:
  2bea22f534f0  Matt Woodrow — Bug 1059033 - Part 6: Clip text drawing to its bound so we can skip unaffected tiles. r=Bas
Blocks: 1059033
Keywords: regressionwindow-wanted → regression
OS: Linux → All
Hardware: x86_64 → All
Version: 42 Branch → Trunk
I confirmed locally that commenting-out the Clip() call in nsDisplayText::Paint() restores the correct rendering of this example.
If the clip is breaking rendering, then it means that we extents we computed for the text are wrong.

Even without the clip, we'd still get invalidation problems, so we need to fix this by computing the right extents for this font.
(Reporter)

Comment 4

a year ago
Would this be because glyphs are clipped to their advances instead of bounding (ink) box? Hmm this would have affected things like italic f, but it does not seem to be the case:
data:text/html,<div style="font:italic 120px/100px serif; color:red">f<span style="color:blue">n</div>

Would it be something RTL-specific, like in bug 1318539?
(Reporter)

Comment 5

a year ago
Actually, similar clipping happens to italic f when the text is selected, and the Arabic case becomes even worse as now also the right glyph gets clipped.

Comment 6

4 days ago
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Last Resolved: 4 days ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.