зеркало из https://github.com/mozilla/gecko-dev.git
c78b6f634e
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 |
||
---|---|---|
.. | ||
crashtests | ||
tests | ||
jar.mn | ||
mathfont.properties | ||
mathfontSTIXGeneral.properties | ||
mathfontUnicode.properties | ||
mathml.css | ||
moz.build | ||
nsIMathMLFrame.h | ||
nsMathMLAtoms.h | ||
nsMathMLChar.cpp | ||
nsMathMLChar.h | ||
nsMathMLContainerFrame.cpp | ||
nsMathMLContainerFrame.h | ||
nsMathMLFrame.cpp | ||
nsMathMLFrame.h | ||
nsMathMLOperators.cpp | ||
nsMathMLOperators.h | ||
nsMathMLParts.h | ||
nsMathMLSelectedFrame.cpp | ||
nsMathMLSelectedFrame.h | ||
nsMathMLTokenFrame.cpp | ||
nsMathMLTokenFrame.h | ||
nsMathMLmactionFrame.cpp | ||
nsMathMLmactionFrame.h | ||
nsMathMLmencloseFrame.cpp | ||
nsMathMLmencloseFrame.h | ||
nsMathMLmfracFrame.cpp | ||
nsMathMLmfracFrame.h | ||
nsMathMLmmultiscriptsFrame.cpp | ||
nsMathMLmmultiscriptsFrame.h | ||
nsMathMLmoFrame.cpp | ||
nsMathMLmoFrame.h | ||
nsMathMLmpaddedFrame.cpp | ||
nsMathMLmpaddedFrame.h | ||
nsMathMLmrootFrame.cpp | ||
nsMathMLmrootFrame.h | ||
nsMathMLmrowFrame.cpp | ||
nsMathMLmrowFrame.h | ||
nsMathMLmspaceFrame.cpp | ||
nsMathMLmspaceFrame.h | ||
nsMathMLmsqrtFrame.cpp | ||
nsMathMLmsqrtFrame.h | ||
nsMathMLmtableFrame.cpp | ||
nsMathMLmtableFrame.h | ||
nsMathMLmunderoverFrame.cpp | ||
nsMathMLmunderoverFrame.h | ||
nsMathMLsemanticsFrame.cpp | ||
nsMathMLsemanticsFrame.h | ||
operatorDictionary.xsl | ||
updateOperatorDictionary.pl |