[webkit-dev] Implementing MathML stylistic attributes in WebKit

Frédéric Wang fwang at igalia.com
Tue Sep 3 22:51:01 PDT 2019

On 02/09/2019 22:12, Ryosuke Niwa wrote:
> On Mon, Sep 2, 2019 at 7:11 AM Frédéric Wang <fwang at igalia.com
> <mailto:fwang at igalia.com>> wrote:
>     Currently MathML attributes mathvariant, displaystyle and
>     scriptlevel [1] [2] are implemented in WebKit using custom "style
>     resolution" and "one-glyph rendering" inside the MathML layout
>     code [3] [4] [5]. These features involve text rendering and
>     interaction with CSS font-size, so it is difficult to implement
>     them properly and completely that way. There are known bugs and
>     missing features right now (e.g. mathvariant transform only
>     applies to one-character strings, automatic
>     displaystyle/scriptlevel does not work with fractions, etc)
>     Several years ago, Gecko used to do something similar but that was
>     causing a lot of problems (dynamic update, assertion failures...).
>     At the end, this is now implemented in Gecko more reliably by
>     mapping the attributes to internal CSS properties ; [6] is based
>     on that. When I tried to do something like this in WebKit three
>     years ago, I was only able to rely on proprietary -webkit-*
>     extensions exposed to users [7].
>     So my questions are:
>     (1) What is WebKit's mechanism to implement such stylistic attributes?
> It looks like -internal-text-autosizing-status is such a property.
> This is a property the author can never set and we set it internally
> for implementation purposes.
> ComputedStyleExtractor::valueForPropertyInStyle manually skips it so
> it's never exposed anywhere.
> One subtle thing I didn't check is whether it would affect the CSS
> parser or not (as in whether it would be considered as a valid CSS
> property or not). There might be some subtle effect there.
> -webkit-text-decorations-in-effect is also a CSS property we use
> internally to compute the effective set of text decorations applied to
> text for editing purposes. The author can never set it but it's
> unfortunately exposed via computed style. 
>     (2) Is it possible to implement internal (i.e. not web-exposed to
>     users) CSS properties/values in WebKit?
> It appears possible today using the technique deployed by
> CSSPropertyInternalTextAutosizingStatus.
Thanks for the pointers! I think it is worth trying to (re-)implement
these MathML attributes using internal properties.

Frédéric Wang

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20190904/f7db3ac6/attachment.html>

More information about the webkit-dev mailing list