Closed Bug 1760615 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 33285 - Update MathML Operator dictionary

Categories

(Core :: MathML, task, P4)

task

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox100 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 33285 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/33285
Details from upstream follow.

Frédéric Wang <fwang@igalia.com> wrote:

Update MathML Operator dictionary

Support for the operator dictionary landed in september 2020 [1] [2].
However, after that initial support more changes were performed on the
specification side by the MathML CG. Now that the dictionary is stable
enough, this CL updates the implementation and tests accordingly.
We take the opportunity that operators.woff is regenerated to fix two
issues: make glyph indices of stretchy parts more stable and ensure
that the font contains glyphs for special combining characters [1].

  • open_type_math_support_test.cc/stretchy_operator_shaper_test.cc:
    Access the glyph indices from their code points in the PUA.

  • mathml_operator_element.cc/mathml_operator_dictionary.h: A new
    "Force Default" is introduced for the two operators having both an
    infix form with the default values and a different form, so they
    don't perform step 4 of [4]. Switch categories K and L.

  • mathml_operator_dictionary.cc: Update operators_2_ascii_chars,
    and compact_dictionary from the spec. Also add special case for
    the "Force Default" category. Switch categories K and L.

  • mathml_operator_dictionary_test.cc: Regenerate content of
    categories and switch categories K and L.

  • character_names.h: Add new names for the operators in the
    "Force Default" category.

  • operator-dictionary.json: Regenerate operator dictionary.

  • operator-dictionary.py/mathfont.py: Store glyphs v0, h0, v1, h1, v2,
    h2, v3, h3 at the beginning of the PUA so they can be accessed by
    code point values. Ensure existence of glyphs for special combining
    characters.

  • misc.py: Use the official repository for unicode.xml rather than the
    obsolete development branch for Unicode 14.

  • operator-dictionary-combining-expected.txt: Removed since the test
    pass now that glyphs are available for combining characters.

Bug: 6606, 1082250, 1057596
Change-Id: I106b1551a910d1292df71b954981e0465ea222c1

Reviewed-on: https://chromium-review.googlesource.com/3419439
WPT-Export-Revision: 1f5bb7a8b56445c80576636486397d558961f442

Component: web-platform-tests → MathML
Product: Testing → Core
Whiteboard: [wptsync downstream] → [wptsync downstream error]
Whiteboard: [wptsync downstream error] → [wptsync downstream]

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 6 tests and 5 subtests

Status Summary

Firefox

OK : 4
PASS: 4
FAIL: 14

Chrome

OK : 4
PASS: 18

Safari

OK : 4
PASS: 12
FAIL: 6

Links

GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

/mathml/presentation-markup/operators/mo-font-relative-lengths-001.html
font-relative minsize refers to the core operator: FAIL
font-relative maxsize refers to the core operator: FAIL
/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html
minsize < 0 is treated as 0: FAIL
maxsize < minsize is treated as maxsize = minsize: FAIL
minsize < maxsize < 0 is treated as maxsize = minsize = 0: FAIL
target size = 0 is treated as Tascent = Tdescent = minsize/2: FAIL
default minsize/maxsize percentages: FAIL
/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001.html
stretchy: FAIL

New Tests That Don't Pass

/mathml/presentation-markup/operators/mo-font-relative-lengths-001.html
font-relative minsize refers to the core operator: FAIL (Chrome: PASS, Safari: PASS)
font-relative maxsize refers to the core operator: FAIL (Chrome: PASS, Safari: PASS)
/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html
minsize < 0 is treated as 0: FAIL (Chrome: PASS, Safari: PASS)
maxsize < minsize is treated as maxsize = minsize: FAIL (Chrome: PASS, Safari: PASS)
minsize < maxsize < 0 is treated as maxsize = minsize = 0: FAIL (Chrome: PASS, Safari: PASS)
target size = 0 is treated as Tascent = Tdescent = minsize/2: FAIL (Chrome: PASS, Safari: PASS)
minsize/maxsize percentages are relative to the target size: FAIL (Chrome: PASS, Safari: FAIL)
default minsize/maxsize percentages: FAIL (Chrome: PASS, Safari: PASS)
/mathml/presentation-markup/operators/mo-stretch-properties-001.html
Stretchy vertical line: FAIL (Chrome: PASS, Safari: FAIL)
/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001.html
minsize: FAIL (Chrome: PASS, Safari: FAIL)
maxsize: FAIL (Chrome: PASS, Safari: FAIL)
largeop: FAIL (Chrome: PASS, Safari: FAIL)
symmetric: FAIL (Chrome: PASS, Safari: FAIL)
stretchy: FAIL (Chrome: PASS, Safari: PASS)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c9c64f72d887
[wpt PR 33285] - Update MathML Operator dictionary, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
You need to log in before you can comment on or make changes to this bug.