[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