Closed Bug 1790756 Opened 2 years ago Closed 2 years ago

Remove "mirrorable" property from the MathML operator dictionary

Categories

(Core :: MathML, task)

task

Tracking

()

RESOLVED FIXED
106 Branch
Tracking Status
firefox106 --- fixed

People

(Reporter: fredw, Assigned: fredw)

References

(Blocks 2 open bugs)

Details

Attachments

(1 file)

Currently it's stored in mathfont.properties, itself generated via updateOperatorDictionary.pl from Unicode's mirrored characters ( https://www.compart.com/en/unicode/mirrored ). We can instead just call mozilla::intl::UnicodeProperties::IsMirrored

Currently, our internal operator dictionary contains a "mirrorable"
property which is used to render stretched or large operators
(such as fences or integrals) in RTL mode, by applying a scale transform.
This is done via the nsMathMLChar class, which is only used for
operators that have a "largeop" or "direction" property in the operator
dictionary [1] [2]. Additionally, this "mirrorable" property was added
with the help of a Perl script, relying on "mirrored" property from
Unicode [3].

This commit removes this property from our internal operator dictionary
and switches to direct retrieval of the Unicode property via
mozilla::intl::UnicodeProperties::IsMirrored. There are four "mirrorable"
characters from our dictionary that are not in [1] (namely
LEFT/RIGHT SINGLE/DOUBLE QUOTATION MARK) but because they don't have
"largeop" or "direction" properties, they don't use nsMathMLChar
anyway. Similarly, they are new characters that are "mirrored" in
Unicode but were not "mirrorable" (LESS-THAN SIGN, LEFT-POINTING DOUBLE
ANGLE QUOTATION MARK, ...) but they won't use nsMathMLChar either.
So there should be no behavior change.

Finally, a few mirrorable characters are tested by existing
layout/reftests/mathml/mirror-op-* tests.

[1] https://searchfox.org/mozilla-central/rev/9769b513e38ee4f5df9d5d1eff55ff7cdc8cbf81/layout/mathml/nsMathMLmoFrame.cpp#58
[2] https://searchfox.org/mozilla-central/rev/9769b513e38ee4f5df9d5d1eff55ff7cdc8cbf81/layout/mathml/nsMathMLmoFrame.cpp#165
[3] https://www.compart.com/en/unicode/mirrored

Attachment #9294598 - Attachment description: WIP: Bug 1790756 - Remove "mirrorable" property from the MathML operator dictionary → Bug 1790756 - Remove "mirrorable" property from the MathML operator dictionary. r=emilio
Blocks: 1790789
Pushed by fred.wang@free.fr:
https://hg.mozilla.org/integration/autoland/rev/44ff348f9ef5
Remove "mirrorable" property from the MathML operator dictionary. r=emilio
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 106 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: