Bug 218894

Summary: Support more properties on ::marker
Product: WebKit Reporter: Antoine Quint <graouts>
Component: CSSAssignee: Antoine Quint <graouts>
Status: RESOLVED FIXED    
Severity: Normal CC: changseok, esprehn+autocc, ews-watchlist, glenn, graouts, gyuyoung.kim, koivisto, kondapallykalyan, macpherson, menard, pdr, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=218897
https://bugs.webkit.org/show_bug.cgi?id=218995
Bug Depends on:    
Bug Blocks: 218792    
Attachments:
Description Flags
Patch
none
Patch koivisto: review+

Description Antoine Quint 2020-11-13 02:28:43 PST
Support more properties on ::marker
Comment 1 Antoine Quint 2020-11-13 02:30:40 PST
Created attachment 414020 [details]
Patch
Comment 2 Antti Koivisto 2020-11-13 04:48:25 PST
Comment on attachment 414020 [details]
Patch

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

> Source/WebCore/css/html.css:305
>  ::marker {

You could add a comment here saying that the ::before/::after are handled by computeMarkerStyle.

> Source/WebCore/rendering/RenderListItem.cpp:75
>      RenderStyle parentStyle = RenderStyle::clone(style());
>      auto fontDescription = style().fontDescription();
> -    fontDescription.setVariantNumericSpacing(FontVariantNumericSpacing::TabularNumbers);
> +    if (is<PseudoElement>(element()))
> +        fontDescription.setVariantNumericSpacing(FontVariantNumericSpacing::TabularNumbers);
>      parentStyle.setFontDescription(WTFMove(fontDescription));
>      parentStyle.fontCascade().update(&document().fontSelector());
>      if (auto markerStyle = getCachedPseudoStyle(PseudoId::Marker, &parentStyle))

This seems overly hackish. If I understand correctly this function should have two branches. 

1) The regular one that just does getCachedPseudoStyle(PseudoId::Marker, &style()) and nothing else a
2) A hack branch for is<PseudoElement> case where it initializes all of ::marker UA style (including unicode-bidi and white-space). It doesn't need to call getCachedPseudoStyle since it won't work.
Comment 3 Antoine Quint 2020-11-13 05:22:25 PST
Created attachment 414033 [details]
Patch
Comment 4 Radar WebKit Bug Importer 2020-11-13 05:26:46 PST
<rdar://problem/71368343>
Comment 5 Antoine Quint 2020-11-13 06:32:45 PST
Committed r269774: <https://trac.webkit.org/changeset/269774>