Bug 227445

Summary: Text decoration renders on top of text when it should be below
Product: WebKit Reporter: Andy Bell <hi>
Component: CSSAssignee: Tim Nguyen (:ntim) <ntim>
Status: RESOLVED FIXED    
Severity: Normal CC: changseok, esprehn+autocc, ews-watchlist, glenn, koivisto, kondapallykalyan, megan_gardner, mmaxfield, ntim, pdr, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: Safari 14   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=196841
https://bugs.webkit.org/show_bug.cgi?id=237816
Bug Depends on: 234707    
Bug Blocks:    
Attachments:
Description Flags
Safari 14.1.1
none
Patch
none
Patch
none
Patch
none
Patch none

Description Andy Bell 2021-06-28 05:39:38 PDT
Created attachment 432386 [details]
Safari 14.1.1

Expected behaviour: text decoration renders below the text 
Actual behaviour: text decoration renders above the text
Safari info: 14.1.1 (16611.2.7.1.4)
Condensed demo: https://codepen.io/piccalilli/pen/bf9e2945fd33d6aaddd31336f9184e64
Possible issue: The paint order should be underline before text https://drafts.csswg.org/css-text-decor-4/#painting-order
Comment 1 Radar WebKit Bug Importer 2021-07-05 05:40:31 PDT
<rdar://problem/80174107>
Comment 2 Tim Nguyen (:ntim) 2021-12-12 17:06:24 PST
Created attachment 446953 [details]
Patch
Comment 3 Tim Nguyen (:ntim) 2021-12-12 17:31:30 PST
Created attachment 446954 [details]
Patch
Comment 4 Tim Nguyen (:ntim) 2021-12-12 17:39:08 PST
Created attachment 446955 [details]
Patch
Comment 5 Myles C. Maxfield 2021-12-12 20:14:57 PST
I think this is a dup of https://bugs.webkit.org/show_bug.cgi?id=196194.

I guess I'll reverse-dup...
Comment 6 Myles C. Maxfield 2021-12-12 20:15:12 PST
*** Bug 196194 has been marked as a duplicate of this bug. ***
Comment 7 Sam Sneddon [:gsnedders] 2021-12-13 05:56:50 PST
bug 196841 reverted a previous fix here, due to perf regression
Comment 8 Simon Fraser (smfr) 2021-12-13 08:23:47 PST
Comment on attachment 446955 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446955&action=review

> Source/WebCore/rendering/TextDecorationPainter.cpp:317
> +void TextDecorationPainter::strokeLineThrough(const Color& color, float thickness, const FloatPoint& localOrigin)

This use of "stroke" here is easily confused with "text stroke". Just call it paintLineThrough() and limit use the term "stroke" in the code.
Comment 9 Tim Nguyen (:ntim) 2021-12-13 09:46:13 PST
Created attachment 447018 [details]
Patch
Comment 10 EWS 2021-12-13 10:24:17 PST
Committed r286955 (245180@main): <https://commits.webkit.org/245180@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447018 [details].