Open Bug 337274 Opened 18 years ago Updated 2 years ago

Internal border outlines appear between LTR and RTL text segments when clicking bidi links

Categories

(Core :: Layout: Text and Fonts, defect)

defect

Tracking

()

People

(Reporter: nir123, Unassigned)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Keywords: regression, rtl, testcase)

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060508 Minefield/3.0a1
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060508 Minefield/3.0a1

Outlines appear between LTR and RTL text segments when clicking bidi links. 
For details, see testcase.

Reproducible: Always
Attached file testcase
This happened as a result of the patch for bug 299065. See bug 299065 comment #30.

Robert, is there a bug report for the outline-rect-consolidation code that you're referring to there, so that we can make this bug depend on it?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
OS: Windows XP → All
Hardware: PC → All
Keywords: testcase
Depends on: 266122
Summary: Outlines appear between LTR and RTL text segments when clicking bidi links → Internal border outlines appear between LTR and RTL text segments when clicking bidi links
Attached file Testcase #2
Another testcase with more scenarios covered.

Steps to Reproduce:
1. Load the attached test case.
2. For each of the four links, activate it either using mouse or keyboard. 
Watch the borders rendered improperly for all except the last link.
Actual Results:  
Borders are drawn for the inner span of text.

Expected Results:  
Only one set of border must be drawn for the whole link.
Flags: blocking1.9?
Flags: blocking1.9? → blocking1.9-
Whiteboard: [wanted-1.9]
roc, since the outline-consolidation thing was never written (and presumably won't be done for 1.9), would you consider accepting the GetSkipOutlineSides solution for this release?
Any progress on this?
Flags: wanted1.9+
Whiteboard: [wanted-1.9]
Just a quick follow-up: I tried (back in November) to implement the GetSkipOutlineSides() solution, but abandoned it after I found out that the logic for determining which outlines on what frames should be skipped is way more complicated than I initially realized. I suppose it's still possible with an O(n^2) solution (similar to what I did in bug 412093), but at least back then I didn't think it was worth it.

I might get back to this and give it another shot, but the chances I'll be able to do it in the 1.9 timeframe are not great.
Blocks: 299065
Is there a chance to fix this one before Firefox 3 released?
(In reply to comment #9)
> Is there a chance to fix this one before Firefox 3 released?

I second this.  Without this bug fixed, bidi documents will look bad.  A lot of web pages with RTL content would have this problem when RTL content is mixed with LTR content (example: numbers) and look broken in Firefox 3...
Blocks: fx35-l10n-fa
No longer blocks: Persian-Fx3.5
Blocks: 306980
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
Keywords: rtl
Attached patch work in progressSplinter Review
I had a look at this. This patch includes logic to merge outline display items together so that we can draw the outline for several frames for the same element all at once. There's some code to take the union of the outline rects for frames with (roughly) horizontally adjacent border-boxes, which fixes this bug. Unfortunately this approach breaks down because the area we end up drawing can be partly outside the overflow areas of the frames, which leads to rendering artifacts.

So I think to fix this for real we need to draw a more precise outline that hugs each frame (i.e. we should just fix 266122), which requires fundamental changes to outline drawing that we shouldn't for 1.9.
Thus, taking this off the 1.9 blocker list.
Flags: wanted1.9-
Flags: wanted1.9+
Flags: wanted-next+
Component: Layout: BiDi Hebrew & Arabic → Layout: Text
QA Contact: layout.bidi → layout.fonts-and-text
No longer blocks: fx35-l10n-fa
Blocks: Persian
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: