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

NEW
Unassigned

Status

()

Core
Layout: Text
12 years ago
5 years ago

People

(Reporter: Niro, Unassigned)

Tracking

(Depends on: 1 bug, Blocks: 2 bugs, {regression, rtl, testcase})

Trunk
regression, rtl, testcase
Points:
---
Dependency tree / graph
Bug Flags:
wanted-next +
blocking1.9 -
wanted1.9 -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Reporter)

Description

12 years ago
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
(Reporter)

Comment 1

12 years ago
Created attachment 221445 [details]
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
(Reporter)

Updated

12 years ago
Keywords: testcase

Updated

12 years ago
Depends on: 266122

Updated

11 years ago
Duplicate of this bug: 384811

Updated

11 years ago
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

Comment 4

11 years ago
Created attachment 268755 [details]
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.
(Reporter)

Updated

11 years ago
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?
Yes.

Comment 7

10 years ago
Any progress on this?
Flags: wanted1.9+
Whiteboard: [wanted-1.9]

Updated

10 years ago
Blocks: 412273
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

Comment 9

10 years ago
Is there a chance to fix this one before Firefox 3 released?

Comment 10

10 years ago
(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...

Updated

10 years ago
Blocks: 415597

Updated

10 years ago
No longer blocks: 412273
(Reporter)

Updated

10 years ago
Blocks: 306980

Comment 11

10 years ago
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
Keywords: rtl
Created attachment 316382 [details] [diff] [review]
work in progress

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+

Updated

10 years ago
Blocks: 412273

Updated

10 years ago
Component: Layout: BiDi Hebrew & Arabic → Layout: Text
QA Contact: layout.bidi → layout.fonts-and-text

Updated

9 years ago
No longer blocks: 415597

Updated

9 years ago
Blocks: 285718
Duplicate of this bug: 702398
You need to log in before you can comment on or make changes to this bug.