gecko-dev/layout/mathml
Frederic Wang c78b6f634e Bug 1789583: Preliminary update of the MathML Operator Dictionary. r=emilio
This is a first step towards aligning our dictionary with MathML Core.
non-BMP Arabic characters are not integrated yet and obsolete entries
are preserved. Here is the details of how the update was
semi-automatically performed:

1. Changed the URL of `unicode.xml` that is used by WPT and MathML Core.
   Also tweaked the `./updateOperatorDictionary.pl` to handle the fact
   that the accent property is no longer part of the MathML Core
   dictionary, so that we still preserve our internal values for now.

2. Called `./updateOperatorDictionary.pl download` to fetch `unicode.xml`
   and generate `dictionary.xml`.

3. Called `./updateOperatorDictionary.pl compare` to generate
   `differences.txt` and `new_dictionary.txt`. The following summary is
   provided by the script:

   - 197 obsolete entries (22 of them are related to stretching)
   - 682 unchanged entries
   - 247 conflicting entries (90 of them are related to stretching)
   - 248 new entries (120 of them are related to stretching)

4. Copied `new_dictionary.txt` into `mathfonts.properties`, keeping
   the obsolete entries at the end and removing the
   U+1EEF0 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
   and U+1EEF1 ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
   (non-BMP entries don't seem to be handled well by the Perl script).

5.  Ran `./updateOperatorDictionary.pl compare` again:

   - 197 obsolete entries (22 of them are related to stretching)
   - 1173 unchanged entries
   - 2 conflicting entries (0 of them are related to stretching)
   - 2 new entries (1 of them are related to stretching)

   The 2 new entries are the non-BMP Arabic characters mentioned
   above. The 2 remaining conflicting entries are U+2215 DIVISION
   SLASH and U+221A SQUARE ROOT which lose their "mirrorable" property
   during conversion via the stylesheet `operatorDictionary.xsl` because
   they don't have any other operator properties. Let's keep them as
   "mirrorable", this notion is not part of the current version of MathML
   Core anyway.

6. Ran `./updateOperatorDictionary.pl check` and got errors
   "operator has a stretchy form, but all forms have not the same
   direction" for operators U+2295, U+2296, U+2297, U+2299. Add
   missing `direction:vertical` to them. After running again, no
   errors are found.

7. Ran WPT tests and found new assertion failure in largeop code saying
   that "Stretching should be in the vertical direction" in
   operator-dictionary-largeop-004.html (for U+2A1D) and
   operator-dictionary-largeop-006.html (for U+2A1E). Also removed
   expectation for new passing tests.

8. Adjusted the script to check that largeop operator have
   direction:vertical and fixed the new errors found by the script
   Verified the WPT largeop tests pass again.

9. Fix another bug that caused the mirrorable property to be duplicated
   in the output (this does not change parsing behavior in
   nsMathMLOperators.cpp though).

10. Ran `./updateOperatorDictionary.pl clean` to remove temporay files.

Differential Revision: https://phabricator.services.mozilla.com/D156654
2022-09-10 13:15:48 +00:00
..
crashtests Bug 1221888: Add crashtest for this bug. (no review, just adding a test for a bug that's been fixed) 2022-08-18 23:30:16 +00:00
tests Bug 1789572: Remove manual test layout/mathml/tests/stretchy-and-large-operators.html. r=emilio 2022-09-07 11:33:37 +00:00
jar.mn
mathfont.properties Bug 1789583: Preliminary update of the MathML Operator Dictionary. r=emilio 2022-09-10 13:15:48 +00:00
mathfontSTIXGeneral.properties
mathfontUnicode.properties
mathml.css Bug 1588733 - Make maction/semantics elements behave as an mrow with the first child. r=emilio 2022-09-06 04:32:15 +00:00
moz.build Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsIMathMLFrame.h
nsMathMLAtoms.h
nsMathMLChar.cpp Bug 1779519 - gfxFontCache expiration tracker operations should be more atomic. r=jfkthame 2022-07-14 19:53:09 +00:00
nsMathMLChar.h
nsMathMLContainerFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLContainerFrame.h Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLFrame.cpp Bug 1779519 - gfxFontCache expiration tracker operations should be more atomic. r=jfkthame 2022-07-14 19:53:09 +00:00
nsMathMLFrame.h
nsMathMLOperators.cpp
nsMathMLOperators.h
nsMathMLParts.h
nsMathMLSelectedFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLSelectedFrame.h
nsMathMLTokenFrame.cpp Bug 1464761 Part 4 - Remove nsReflowStatus::mTruncated bit. r=dholbert 2022-07-27 21:55:18 +00:00
nsMathMLTokenFrame.h
nsMathMLmactionFrame.cpp Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsMathMLmactionFrame.h
nsMathMLmencloseFrame.cpp Bug 1783995 - Remove MathML preference deprecated_menclose_notation_radical. r=emilio 2022-08-15 08:55:50 +00:00
nsMathMLmencloseFrame.h
nsMathMLmfracFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLmfracFrame.h Bug 1784014 - Remove MathML preference mfrac_bevelled_attribute. r=emilio 2022-08-27 07:22:22 +00:00
nsMathMLmmultiscriptsFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLmmultiscriptsFrame.h
nsMathMLmoFrame.cpp Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsMathMLmoFrame.h
nsMathMLmpaddedFrame.cpp Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsMathMLmpaddedFrame.h Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsMathMLmrootFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLmrootFrame.h Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLmrowFrame.cpp
nsMathMLmrowFrame.h
nsMathMLmspaceFrame.cpp Bug 1464761 Part 4 - Remove nsReflowStatus::mTruncated bit. r=dholbert 2022-07-27 21:55:18 +00:00
nsMathMLmspaceFrame.h
nsMathMLmsqrtFrame.cpp
nsMathMLmsqrtFrame.h
nsMathMLmtableFrame.cpp Bug 1772006 - Part 5: Simplify and move the string searching APIs from ns[T]StringObsolete, r=xpcom-reviewers,necko-reviewers,eeejay,dragana,barret 2022-07-30 00:12:48 +00:00
nsMathMLmtableFrame.h
nsMathMLmunderoverFrame.cpp Bug 1583037 - Do not layout MathML as an error message when a layout error occurs. r=emilio 2022-09-06 09:51:52 +00:00
nsMathMLmunderoverFrame.h
nsMathMLsemanticsFrame.cpp Bug 1754295 part 2: Fix non-unified build errors in layout/mathml, and mark it as safe to build in non-unified mode. r=TYLin 2022-02-08 23:29:56 +00:00
nsMathMLsemanticsFrame.h
operatorDictionary.xsl Bug 1789583: Preliminary update of the MathML Operator Dictionary. r=emilio 2022-09-10 13:15:48 +00:00
updateOperatorDictionary.pl Bug 1789583: Preliminary update of the MathML Operator Dictionary. r=emilio 2022-09-10 13:15:48 +00:00