Hi WebKit developers, We are happy to announce that we are done with the MathML refactoring proposed last December [1]. The first phase was a big clean up of the MathML implementation and you can find details in a first blog post [2] but essentially:
* MathML renderer classes now derive from RenderBlock instead of RenderFlexible (except RenderMathMLTable which still derives from RenderTable) so we no longer interfere with the flexbox code. * MathML renderer classes do not create anonymous renderers any more (except RenderMathMLFenced which creates anonymous RenderMathMLOperators) so the render tree essentially matches the DOM tree. * MathML renderer classes now perform simple box layout (again except for RenderMathMLTable and RenderMathMLFenced) and should be much more consistent with the rest of the WebKit code. Many MathML rendering bugs have been fixed as an immediate consequence of this clean up. But it also became much easier to follow OpenType MATH & TeX rules for layout [3] and to implement important MathML features. This has been done in a second phase and you can find details on the MathML improvements in a second blog post [4]. During the development, we also decided to include a third phase: Moving the parsing of MathML attributes into the DOM classes instead of doing it in the renderer classes. This has only been partially achieved but could be addressed in future developments. For those who are interested, it is tracked in [5]. Finally, we tested the rendering on GTK, EFL, OS X and iOS ports and it seems good. The status of the Windows port is unknown. We expanded the test suite with more MathML tests and performed some gardening: * All the tests pass on the GTK bots. * All but the mismatch tests pass on EFL bots (it's not clear whether screenshots are correctly taken). * As discussed in a previous thread, OS X and iOS bots lack pre-installed math fonts [6] and these fonts are not whitelisted by the test runner. Most of the failures were due to tests requiring such math fonts and so these tests are now skipped. * The Windows port also has several unexplained failures but someone should analyze that more carefully. We plan to continue MathML developments in the future including finishing some refactoring (RenderMathMLTable, attribute parsing...) and improving MathML support and rendering quality. Thank you again to all the people who made this contribution possible! Frédéric, for the Igalia's Web Platform Team [1] https://trac.webkit.org/wiki/MathML/Early_2016_Refactoring [2] http://frederic-wang.fr/mathml-refactoring-in-webkit.html [3] http://www.mathml-association.org/MathMLinHTML5/ [4] http://frederic-wang.fr/mathml-improvements-in-webkit.html [5] https://webkit.org/b/156536 [6] https://trac.webkit.org/wiki/MathML/Fonts
signature.asc
Description: OpenPGP digital signature
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev