Closed Bug 1525698 Opened 3 years ago Closed 3 years ago

Make WPT css/CSS2/ui/outline-{,color,style,width}-applies-to-00{5,6}.xht and css/css-ui/outline-013.html pass on windows

Categories

(Core :: Graphics: WebRender, defect, P3)

Other Branch
defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox67 --- wontfix
firefox68 --- fixed

People

(Reporter: kats, Assigned: kats)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

The following WPT reftests all seem to fail on windows with some red outline visible:

! /css/CSS2/ui/outline-applies-to-005.xht
! /css/CSS2/ui/outline-applies-to-006.xht
! /css/CSS2/ui/outline-color-applies-to-005.xht
! /css/CSS2/ui/outline-color-applies-to-006.xht
! /css/CSS2/ui/outline-style-applies-to-005.xht
! /css/CSS2/ui/outline-style-applies-to-006.xht
! /css/CSS2/ui/outline-width-applies-to-005.xht
! /css/CSS2/ui/outline-width-applies-to-006.xht

Also css/css-ui/outline-013.html is another outline-related one.

Summary: Make WPT css/CSS2/ui/outline-{color,style,width}-applies-to-00{5,6}.xht pass on windows → Make WPT css/CSS2/ui/outline-{color,style,width}-applies-to-00{5,6}.xht and css/css-ui/outline-013.html pass on windows
Summary: Make WPT css/CSS2/ui/outline-{color,style,width}-applies-to-00{5,6}.xht and css/css-ui/outline-013.html pass on windows → Make WPT css/CSS2/ui/outline-{,color,style,width}-applies-to-00{5,6}.xht and css/css-ui/outline-013.html pass on windows
Blocks: wr-67
No longer blocks: stage-wr-trains
Priority: P4 → P3

Kats, do you think we need to worry about this for 67?

Flags: needinfo?(kats)

This does look like a legitimate failure, and doesn't look like it would be too hard to fix. CSS outline properties on display:table-column and display:table-column-group are apparently supposed to be ignored but are not. I think it's worth fixing but I suspect we're not going to hit this often in the wild since authors tend not to include CSS outlines on elements that aren't going to render them. Assigning to myself to investigate.

Assignee: nobody → kats
Flags: needinfo?(kats)

Ugh. The way this works with WR off is that we create the nsDisplayOutline, then try to paint it. When we go to create the border renderer, we fail this check and return Nothing, and therefore paint nothing. The reason the check fails is because the dirty rect is different with WR off vs WR on. With WR off, the dirty rect is the same as the inner rect (which incidentally, we get from here after triggering an NS_ERROR). With WR on, the dirty rect is the whole content area and so is not contained inside the inner rect.

Really I think we should skip creating the nsDisplayOutline entirely if the display style of the frame is table-column or table-column-group.

Depends on: 1542837
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a7c00b62990f
Don't generate outlines for table-column or table-column-group elements. r=emilio
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #3)

I suspect we're not going to hit this often in the wild since authors tend not to include CSS outlines on elements that aren't going to render them.

Based on this I don't think this is worth uplifting to 67.

Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/16525 for changes under testing/web-platform/tests
You need to log in before you can comment on or make changes to this bug.