MathML in Chromium

Q3 review of Chromium's MathML upstreaming
07 September 2020

We review the upstreaming progress (september 2020).

Screenshot of MathML formulas in Chromium
Evolution of upstream MathML rendering during 2020

Since the previous update, Igalia has continued MathML collaboration with Google engineers from the Rendering Core Team. Let’s review again the upstreaming status of the 2019 implementation work:

  1. Basic setup
    This step was already done, although we have been working on a few improvements to how token and unknown elements are handled.
  2. Basic Layout
    The <mmultiscripts> (multiple pre and post scripts) and <mpadded> elements (tweaking spacing) have been implemented. The only thing missing here is the basic implementation for MathML tabular elements, which has not started yet, we will consider it again in one or two months, depending on how fast patches for TableNG land.
  3. Operator Dictionary
    We have implemented the low-level API to access the operator dictionary and parse operator attributes (form, boolean properties and spacing). Currently accent and accentunder attributes on underover scripts as well as largeop, stretchy and movablelimits attributes on the underover base are considered. The lspace and rspace attributes are now considered for formula spacing.
  4. Stretchy operators
    This was pending on the previous step and is now unblocked, we plan to start this important feature very soon!
  5. Advanced Style
    As previously said, this is essentially done. We hope to discuss MathML Core related CSS properties this month with the CSSWG. Although this was not in the 2019 plan we also implemented new style for TeX’s “cramped superscript”.

Among things that were not necessarily explicit in the initial roadmap but are still in our TODO list, one can mention MathMLUnknownElement, mixing with SVG or ink metrics (tighter bound for text) or italic correction. Stay tuned for more updates!

More news