mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
138d2ac0fb
See https://groups.google.com/forum/#!topic/mozilla.dev.platform/70NFnet82cU This commit introduces a new mathml.xlink.disabled option to disable support for XLink attributes on MathML elements together with a use counter and deprecation warning when support is enabled. For now, support is only disabled in Nightly. In the past, we relied on custom MathML deprecation warnings but those are removed here. Corresponding tests for these legacy warning messages are also removed from test_bug553917.html. link-1.xhtml is run with XLink support enabled (since it checks xlink:href) while browser_contentAltClick.js and browser_contentAreaClick.js are updated to instead check MathML links (i.e. href instead of xlink:href). Differential Revision: https://phabricator.services.mozilla.com/D43332 --HG-- extra : moz-landing-system : lando
232 lines
9.5 KiB
HTML
232 lines
9.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=553917
|
|
-->
|
|
<html>
|
|
<head>
|
|
<title>Test for Bug 553917</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script src="/tests/SimpleTest/EventUtils.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
<script type="application/javascript">
|
|
var stringBundleService =
|
|
SpecialPowers.Cc["@mozilla.org/intl/stringbundle;1"]
|
|
.getService(SpecialPowers.Ci.nsIStringBundleService);
|
|
var g_bundl =
|
|
stringBundleService.createBundle("chrome://global/locale/mathml/mathml.properties");
|
|
|
|
const allow_linethickness_names = !SpecialPowers.getBoolPref('mathml.mfrac_linethickness_names.disabled');
|
|
const allow_mathsize_names = !SpecialPowers.getBoolPref('mathml.mathsize_names.disabled');
|
|
const allow_nonzero_unitless_lengths = !SpecialPowers.getBoolPref('mathml.nonzero_unitless_lengths.disabled');
|
|
const allow_mathspace_names = !SpecialPowers.getBoolPref('mathml.mathspace_names.disabled');
|
|
const allow_legacy_numbers = !SpecialPowers.getBoolPref('mathml.legacy_number_syntax.disabled');
|
|
|
|
var g_errorInfo = {
|
|
/*<math><mroot></mroot></math>
|
|
<math><msub></msub></math>
|
|
<math><msup></msup></math>
|
|
<math><mfrac></mfrac></math>
|
|
<math><msubsup></msubsup></math>
|
|
<math><munderover></munderover></math>*/
|
|
ChildCountIncorrect: {
|
|
status : [false, false, false, false, false, false],
|
|
args : [["mroot"], ["msub"], ["msup"], ["mfrac"], ["msubsup"], ["munderover"]] },
|
|
/*<math><mpadded width="BAD!"></mpadded></math>
|
|
<math><mpadded height="BAD!"></mpadded></math>
|
|
<math><mpadded voffset="BAD!"></mpadded></math>*/
|
|
AttributeParsingError: {
|
|
status: [false, false, false],
|
|
args: [["BAD!","width","mpadded"], ["BAD!","height","mpadded"], ["BAD!","voffset","mpadded"]]
|
|
},
|
|
/*<math scriptlevel="BAD!"></math>
|
|
<math scriptsizemultiplier="BAD!"></math>*/
|
|
AttributeParsingErrorNoTag: {
|
|
status: [false, false],
|
|
args: [["BAD!","scriptlevel"], ["BAD!","scriptsizemultiplier"]]
|
|
},
|
|
/* <math><mo rspace="2..0px">+</mo></math>
|
|
<math><mo minsize="1.5notaunit">+</mo></math>
|
|
<math><mspace width="2"/></math>
|
|
<math><mo lspace="BADlspace">+</mo></math>
|
|
<math><mspace height="BADheight"/></math>
|
|
<math><mspace depth="BADdepth"/></math>
|
|
<math><mfrac linethickness="thin"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mfrac linethickness="medium"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mfrac linethickness="thick"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mstyle mathsize="small"></mstyle></math>
|
|
<math><mstyle mathsize="normal"></mstyle></math>
|
|
<math><mstyle mathsize="big"></mstyle></math>
|
|
<math><mspace width="veryverythinmathspace"/></math>
|
|
<math><mspace width="verythinmathspace"/></math>
|
|
<math><mspace width="thinmathspace"/></math>
|
|
<math><mspace width="mediummathspace"/></math>
|
|
<math><mspace width="thickmathspace"/></math>
|
|
<math><mspace width="verythickmathspace"/></math>
|
|
<math><mspace width="veryverythickmathspace"/></math>
|
|
<math><mspace width="12345."/></math>
|
|
<math><mo minsize="17">+</mo></math>
|
|
*/
|
|
LengthParsingError : {
|
|
status: [false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
allow_linethickness_names,
|
|
allow_linethickness_names,
|
|
allow_linethickness_names,
|
|
allow_mathsize_names,
|
|
allow_mathsize_names,
|
|
allow_mathsize_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_mathspace_names,
|
|
allow_legacy_numbers,
|
|
allow_nonzero_unitless_lengths,
|
|
],
|
|
args: [["2..0px"],
|
|
["1.5notaunit"],
|
|
["2"],
|
|
["BADlspace"],
|
|
["BADheight"],
|
|
["BADdepth"],
|
|
["thin"],
|
|
["medium"],
|
|
["thick"],
|
|
["small"],
|
|
["normal"],
|
|
["big"],
|
|
["veryverythinmathspace"],
|
|
["verythinmathspace"],
|
|
["thinmathspace"],
|
|
["mediummathspace"],
|
|
["thickmathspace"],
|
|
["verythickmathspace"],
|
|
["veryverythickmathspace"],
|
|
["12345."],
|
|
["17"]
|
|
]
|
|
},
|
|
/*<math><mmultiscripts></mmultiscripts></math>
|
|
<math><mmultiscripts><mprescripts/><mprescripts/></mmultiscripts></math>
|
|
<math><mmultiscripts><mi>x</mi><mi>y</mi></mmultiscripts></math>*/
|
|
MMultiscriptsErrors: {
|
|
status: [false, false, false],
|
|
args: ["NoBase","DuplicateMprescripts", "SubSupMismatch"]
|
|
},
|
|
/*<math><mo minsize="17">+</mo></math>*/
|
|
UnitlessValuesAreDeprecated : {
|
|
status : [!allow_nonzero_unitless_lengths],
|
|
args : [[]] }};
|
|
|
|
var g_errorTypes = ["ChildCountIncorrect","AttributeParsingError",
|
|
"AttributeParsingErrorNoTag","LengthParsingError", "MMultiscriptsErrors",
|
|
"UnitlessValuesAreDeprecated"];
|
|
|
|
function getErrorMessage(name,idx)
|
|
{
|
|
if (name != "MMultiscriptsErrors") {
|
|
var formatParams = g_errorInfo[name].args[idx];
|
|
if (formatParams.length > 0) {
|
|
return g_bundl.formatStringFromName(name,formatParams);
|
|
}
|
|
return g_bundl.GetStringFromName(name);
|
|
}
|
|
return g_bundl.GetStringFromName(g_errorInfo[name].args[idx]);
|
|
}
|
|
|
|
/** Checks the roll call to see if all expected error messages were present. */
|
|
function processRollCall()
|
|
{
|
|
for (var i=0; i<g_errorTypes.length;i++) {
|
|
for (var j = 0; j < g_errorInfo[g_errorTypes[i]].status.length; j++) {
|
|
ok(g_errorInfo[g_errorTypes[i]].status[j],
|
|
"\"" + getErrorMessage(g_errorTypes[i], j)
|
|
+ "\" was expected to be in the error console.");
|
|
}
|
|
}
|
|
}
|
|
|
|
/** Tests a candidate to see if it is one of the expected messages and updates the
|
|
g_errorInfo structure if it is. */
|
|
function doRollCall(msg)
|
|
{
|
|
for (var i = 0; i < g_errorTypes.length; i++) {
|
|
for (var j = 0; j < g_errorInfo[g_errorTypes[i]].status.length; j++) {
|
|
if (msg == getErrorMessage(g_errorTypes[i], j))
|
|
{
|
|
g_errorInfo[g_errorTypes[i]].status[j] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
SpecialPowers.registerConsoleListener(
|
|
function (msg) {
|
|
if (msg.message == "SENTINEL") {
|
|
processRollCall();
|
|
SimpleTest.finish();
|
|
} else if (msg.isScriptError) {
|
|
doRollCall(msg.errorMessage);
|
|
}
|
|
});
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
</script>
|
|
</head>
|
|
<body onload="SpecialPowers.postConsoleSentinel();">
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=553917">Mozilla Bug 553917</a>
|
|
<!-- ChildCountIncorrect -->
|
|
<math><mroot></mroot></math>
|
|
<math><msub></msub></math>
|
|
<math><msup></msup></math>
|
|
<math><mfrac></mfrac></math>
|
|
<math><msubsup></msubsup></math>
|
|
<math><munderover></munderover></math>
|
|
|
|
<!-- AttributeParsingError -->
|
|
<math><mpadded width="BAD!"></mpadded></math>
|
|
<math><mpadded height="BAD!"></mpadded></math>
|
|
<math><mpadded voffset="BAD!"></mpadded></math>
|
|
|
|
<!-- AttributeParsingErrorNoTag -->
|
|
<math scriptlevel="BAD!"></math>
|
|
<math scriptsizemultiplier="BAD!"></math>
|
|
|
|
<!-- LengthParsingError -->
|
|
<math><mo rspace="2..0px">+</mo></math>
|
|
<math><mo minsize="1.5notaunit">+</mo></math>
|
|
<math><mspace width="2"/></math>
|
|
<math><mo lspace="BADlspace">+</mo></math>
|
|
<math><mspace height="BADheight"/></math>
|
|
<math><mspace depth="BADdepth"/></math>
|
|
<math><mfrac linethickness="thin"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mfrac linethickness="medium"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mfrac linethickness="thick"><mn>1</mn><mn>2</mn></mfrac></math>
|
|
<math><mstyle mathsize="small"></mstyle></math>
|
|
<math><mstyle mathsize="normal"></mstyle></math>
|
|
<math><mstyle mathsize="big"></mstyle></math>
|
|
<math><mspace width="veryverythinmathspace"/></math>
|
|
<math><mspace width="verythinmathspace"/></math>
|
|
<math><mspace width="thinmathspace"/></math>
|
|
<math><mspace width="mediummathspace"/></math>
|
|
<math><mspace width="thickmathspace"/></math>
|
|
<math><mspace width="verythickmathspace"/></math>
|
|
<math><mspace width="veryverythickmathspace"/></math>
|
|
<math><mspace width="12345."/></math>
|
|
|
|
<!-- MMultiscriptsErrors -->
|
|
<math><mmultiscripts></mmultiscripts></math>
|
|
<math><mmultiscripts><mprescripts/><mprescripts/></mmultiscripts></math>
|
|
<math><mmultiscripts><mi>x</mi><mi>y</mi></mmultiscripts></math>
|
|
|
|
<!-- UnitlessValuesAreDeprecated -->
|
|
<math><mo minsize="17">+</mo></math>
|
|
</body>
|
|
</html>
|