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
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?
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.
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?
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.
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...
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
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.