summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/mathml
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/mathml')
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1092053.html20
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1140268-1.html18
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1397439-1.html6
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1403465.html24
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1435015.html9
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1555757-1.html16
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1555757-2.html27
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/1701975-1.html20
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/243159-2.xhtml25
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/306902-1.xml14
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/347506-1.xhtml23
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/355993-1.xhtml26
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/364686-1.xhtml11
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/368461-1.xhtml11
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/370884-1.xhtml14
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/382208-1.xhtml7
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/382396-1.xhtml7
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/384649-1.xhtml31
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/385265-1.xhtml13
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/385289-1.xhtml30
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/394150-1.xhtml27
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/395450-1.xhtml28
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/399676-1.xhtml7
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/400445-1.xhtml22
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/400904-1.xhtml20
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/410728-1.xml14
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/411603-1.html7
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/413274-1.xhtml18
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/418007-1.xhtml24
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/467914-1.html3
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/547843-1.xhtml1
-rw-r--r--testing/web-platform/tests/mathml/crashtests/mozilla/700031.xhtml9
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html136
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001-ref.html22
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001.html24
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002-ref.html12
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002.html16
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003-ref.html13
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003.html17
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004-ref.html41
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004.html47
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005-ref.html11
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005.html15
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-1.html64
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-2.html132
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-3.html145
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001-ref.html15
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001.html17
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002-ref.html16
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002.html18
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003-ref.html42
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003.html42
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false-ref.html70
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false.html57
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true-ref.html70
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true.html57
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false-ref.html85
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false.html60
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true-ref.html85
-rw-r--r--testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true.html60
-rw-r--r--testing/web-platform/tests/mathml/relations/html5-tree/tabindex-focus-001.tentative.html34
-rw-r--r--testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-ref.html13
-rw-r--r--testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font.html52
63 files changed, 2003 insertions, 17 deletions
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1092053.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1092053.html
new file mode 100644
index 0000000000..51b5858b6f
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1092053.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Largeop stretching</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <p>
+ <!-- &bigotimes; allows to check for an assertion involving
+ the direction of the largeop pre-stretch -->
+ <math displaystyle="true">
+ <mrow>
+ <mo id="mo4">(</mo>
+ <mo>&bigotimes;</mo>
+ <mo id="mo5">)</mo>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1140268-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1140268-1.html
new file mode 100644
index 0000000000..5e5510ba7f
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1140268-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<script>
+function boom()
+{
+ var e = document.getElementsByTagName("mo")[0];
+ e.setAttribute("style", "position: absolute; top: 0px;");
+ document.documentElement.offsetHeight;
+ e.setAttribute("style", "position: absolute; top: 100px;");
+}
+</script>
+</head>
+<body onload="boom();">
+<math><mo>boom!</mo></math>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1397439-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1397439-1.html
new file mode 100644
index 0000000000..b617f8e0ed
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1397439-1.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<math>
+<mstyle scriptlevel=101>
+<mstyle scriptlevel=-204>
+</math>
+
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1403465.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1403465.html
new file mode 100644
index 0000000000..924392757b
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1403465.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<body>
+ <math class="hidden">
+ <mi>x</mi>
+ <mo>=</mo>
+ </math>
+<script>
+window.onload = function() {
+ let s = document.createElement("style");
+ s.textContent = `
+ body {
+ line-height: 1.42857143;
+ }
+
+ .hidden {
+ display: none;
+ }
+ `;
+ document.body.appendChild(s);
+};
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1435015.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1435015.html
new file mode 100644
index 0000000000..329aaca22f
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1435015.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<style>
+ div { display: contents; }
+</style>
+<math></math>
+<script>
+ let div = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'div');
+ document.querySelector('math').appendChild(div);
+</script>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-1.html
new file mode 100644
index 0000000000..04f2b27a60
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-1.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+ <style>
+ .class_1 {
+ transition-delay: 2129ms;
+ contain: strict;
+ }
+ </style>
+</head>
+<math>
+ <mover>
+ <ms></ms>
+ <mtable class="class_1"></mtable>
+ </mover>
+</math>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-2.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-2.html
new file mode 100644
index 0000000000..eff048784a
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1555757-2.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #testElem {
+ border: 1px solid black;
+ background: yellow;
+ contain: layout size;
+ width: 300px;
+ }
+ </style>
+ <script>
+ function go() {
+ /* trigger an incremental reflow.
+ * Note: elem.style is undefined for MathML elements, so we have
+ * to use setAttribute().
+ */
+ testElem.setAttribute("style", "width:150px");
+ }
+ </script>
+</head>
+<body onload="go()">
+ <math>
+ <mtable id="testElem">Change my size</mtable>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/1701975-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/1701975-1.html
new file mode 100644
index 0000000000..c7d54ca996
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/1701975-1.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #id_0 {
+ font-size: 10000% ! important
+ }
+
+ * {
+ border-top-style: groove;
+ }
+ </style>
+
+</head>
+<math>
+ <semantics style='border-inline: 1000000em outset !important'>
+ <mmultiscripts id='id_0'></mmultiscripts>
+ </semantics>
+</math>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/243159-2.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/243159-2.xhtml
new file mode 100644
index 0000000000..ff0326816d
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/243159-2.xhtml
@@ -0,0 +1,25 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:mathml="http://www.w3.org/1998/Math/MathML">
+ <body onload="run()">
+ <mathml:math id="test" style="display: block">
+ </mathml:math>
+<script>
+ function run() {
+ var t1 = document.createElementNS("http://www.w3.org/1998/Math/MathML",
+ "mtable");
+ var t2 = document.createElementNS("http://www.w3.org/1998/Math/MathML",
+ "mtable");
+ var r1 = document.createElementNS("http://www.w3.org/1998/Math/MathML",
+ "mtr");
+ var r2 = document.createElementNS("http://www.w3.org/1998/Math/MathML",
+ "mtr");
+ var test =
+ document.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML", "math")[0];
+ t1.appendChild(r1);
+ test.appendChild(t1);
+ test.appendChild(t2);
+ t2.appendChild(r2);
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/306902-1.xml b/testing/web-platform/tests/mathml/crashtests/mozilla/306902-1.xml
new file mode 100644
index 0000000000..24e8c068a0
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/306902-1.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0'?>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<body>
+
+<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><msup>
+
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+</msup></math>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/347506-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/347506-1.xhtml
new file mode 100644
index 0000000000..4119389a56
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/347506-1.xhtml
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<body>
+
+<div><math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+
+ <mtable>
+ <mtr>
+ <mtd><mi>x</mi></mtd>
+ <mtd rowspan="4" columnspan="4"><mi>y</mi></mtd>
+ </mtr>
+ <mtr>
+ <mtd rowspan="0" columnspan="0"><mi>z</mi></mtd>
+ <mtd><mi>w</mi></mtd>
+ </mtr>
+ </mtable>
+
+
+</math></div>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/355993-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/355993-1.xhtml
new file mode 100644
index 0000000000..cbbddf013a
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/355993-1.xhtml
@@ -0,0 +1,26 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<style>
+body, body * { position: fixed; }
+</style>
+</head>
+
+<body>
+
+
+<div>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+
+ <mtable>
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/364686-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/364686-1.xhtml
new file mode 100644
index 0000000000..add9238d8f
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/364686-1.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:math="http://www.w3.org/1998/Math/MathML">
+
+<body>
+
+<math:merror>
+ <img/>
+</math:merror>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/368461-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/368461-1.xhtml
new file mode 100644
index 0000000000..d5baccf523
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/368461-1.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+
+<head>
+</head>
+
+<body>
+
+<p><math:msubsup><span>Foo bar baz<td></td></span></math:msubsup></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/370884-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/370884-1.xhtml
new file mode 100644
index 0000000000..3959d4b178
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/370884-1.xhtml
@@ -0,0 +1,14 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+</head>
+
+<body>
+
+<math:mroot>
+ <div>
+ <div style="position: fixed;">Y</div>
+ </div>
+</math:mroot>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/382208-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/382208-1.xhtml
new file mode 100644
index 0000000000..88d2728bfe
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/382208-1.xhtml
@@ -0,0 +1,7 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<body>
+
+<div><math:mfrac><math:mmultiscripts/><math:mi/></math:mfrac></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/382396-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/382396-1.xhtml
new file mode 100644
index 0000000000..89af7ea18d
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/382396-1.xhtml
@@ -0,0 +1,7 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<body>
+
+<p style="text-indent: 0%">a<math:ms/></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/384649-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/384649-1.xhtml
new file mode 100644
index 0000000000..e2ba50cdee
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/384649-1.xhtml
@@ -0,0 +1,31 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<style>
+
+/* use attribute selector instead of the .class shorthand to work around bug 379178 */
+
+*[class="fixed"] { position: fixed; }
+
+math, mtable, mtr { position: inherit; }
+
+</style>
+</head>
+
+<body>
+
+<div class="fixed">
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <mtable>
+ <mtr class="fixed">
+ <mtd><mi>x</mi></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mi>y</mi></mtd>
+ </mtr>
+ </mtable>
+ </math>
+</div>
+
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/385265-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/385265-1.xhtml
new file mode 100644
index 0000000000..7994653ffa
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/385265-1.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+
+<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <mtable>
+ <mtr>
+ <mtd><mi>x</mi></mtd>
+ </mtr>
+ </mtable>
+</math>
+
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/385289-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/385289-1.xhtml
new file mode 100644
index 0000000000..8f0e871aaf
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/385289-1.xhtml
@@ -0,0 +1,30 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+function boom()
+{
+ var mss = document.getElementById("mss");
+
+ var j = document.createTextNode("j");
+ var comb = document.createTextNode("\u0302");
+
+ mss.appendChild(j);
+ mss.appendChild(comb);
+}
+</script>
+</head>
+
+<body onload="boom()">
+
+<div>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <msub id="mss">
+ <mi>v</mi>
+ <mn>1</mn>
+ </msub>
+ </math>
+</div>
+
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/394150-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/394150-1.xhtml
new file mode 100644
index 0000000000..ee54a8dd3b
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/394150-1.xhtml
@@ -0,0 +1,27 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+<script>
+
+function boom()
+{
+ var ms = document.createElementNS("http://www.w3.org/1998/Math/MathML", "ms");
+ var textNode = document.getElementById("emptyset").firstChild;
+ var mrow = document.getElementById("mrow");
+
+ ms.appendChild(textNode); // *move* the text node from one place to another!
+ mrow.appendChild(ms);
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+
+<math xmlns="http://www.w3.org/1998/Math/MathML">
+<merror><emptyset id="emptyset">
+ <mrow id="mrow"></mrow></emptyset></merror>
+</math>
+
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/395450-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/395450-1.xhtml
new file mode 100644
index 0000000000..79510267ba
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/395450-1.xhtml
@@ -0,0 +1,28 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+
+<head>
+<style>
+
+/*
+ This testcase uses [class~="foo"] instead of .foo to work around bug 276267
+ (see bug 379178 comment 78)
+*/
+
+[class~="abs"] { position: absolute; }
+[class~="marg"] { margin: 1em; }
+[class="noheight"] { height: 0; }
+
+</style>
+</head>
+
+<body>
+
+<math:mrow class="noheight">
+ <span class="abs">
+ <math:mroot class="abs marg" />
+ <span class="abs" />
+ </span>
+</math:mrow>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/399676-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/399676-1.xhtml
new file mode 100644
index 0000000000..82b547e5ea
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/399676-1.xhtml
@@ -0,0 +1,7 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+</head>
+<body>
+<math:mtd><span style="float: right;" /></math:mtd>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/400445-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/400445-1.xhtml
new file mode 100644
index 0000000000..9cb71dbbd6
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/400445-1.xhtml
@@ -0,0 +1,22 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+<script>
+
+function boom()
+{
+ var mtd1 = document.getElementById("mtd1");
+ var mtd2 = document.getElementById("mtd2");
+ var newSpan = document.createElementNS("http://www.w3.org/1999/xhtml", "span");
+
+ mtd1.appendChild(newSpan);
+ mtd1.removeAttribute("columnspan");
+ mtd2.setAttribute("columnspan", 0);
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+<math:mtd id="mtd1" columnspan="5" /><math:mtd id="mtd2" />
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/400904-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/400904-1.xhtml
new file mode 100644
index 0000000000..a00f42fd02
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/400904-1.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+ var MATHML_NS = "http://www.w3.org/1998/Math/MathML";
+ var mtd = document.getElementById("mtd");
+ var n = document.createElementNS(MATHML_NS, 'mrow');
+ mtd.appendChild(n);
+ mtd.setAttribute('rowspan', 7);
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+<math:mtd id="mtd"></math:mtd><math:mtr><math:mrow></math:mrow></math:mtr>
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/410728-1.xml b/testing/web-platform/tests/mathml/crashtests/mozilla/410728-1.xml
new file mode 100644
index 0000000000..deaeb8fc55
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/410728-1.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC
+ "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
+ "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
+[
+ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
+]>
+<math display="block" xmlns="&mathml;">
+ <mi>f &#x0332;</mi>
+ <mi>-</mi>
+ <mo>+</mo>
+ <mo> -</mo>
+ <mo>&#x0332;</mo>
+</math>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/411603-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/411603-1.html
new file mode 100644
index 0000000000..596565fbc3
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/411603-1.html
@@ -0,0 +1,7 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
+<head>
+</head>
+<body onload="document.getElementById('ms').setAttribute('scriptminsize', '9em');">
+<math:mstyle id="ms" /><span />
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/413274-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/413274-1.xhtml
new file mode 100644
index 0000000000..19d8fab0fd
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/413274-1.xhtml
@@ -0,0 +1,18 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+</head>
+<body>
+
+<math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="8205" scriptlevel="15">
+ <mroot>
+ <mrow/>
+ <mrow>
+ <span xmlns="http://www.w3.org/1999/xhtml"/>
+ </mrow>
+ </mroot>
+ </mstyle>
+</math>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/418007-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/418007-1.xhtml
new file mode 100644
index 0000000000..f07a693444
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/418007-1.xhtml
@@ -0,0 +1,24 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head></head>
+<body>
+
+<math xmlns="http://www.w3.org/1998/Math/MathML">
+ <ms fontsize="8179em">
+ <span xmlns="http://www.w3.org/1999/xhtml">
+ <span>
+ <td>
+ <mfrac xmlns="http://www.w3.org/1998/Math/MathML">
+ <mfrac>
+ <mrow/>
+ <mrow/>
+ </mfrac>
+ <mrow/>
+ </mfrac>
+ </td>
+ </span>
+ </span>
+ </ms>
+</math>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/467914-1.html b/testing/web-platform/tests/mathml/crashtests/mozilla/467914-1.html
new file mode 100644
index 0000000000..4f518f09df
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/467914-1.html
@@ -0,0 +1,3 @@
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mathml="http://www.w3.org/1998/Math/MathML">
+<mathml:munder style="transform: translate(50px);clip-path: url(#h);"/>
+</window>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/547843-1.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/547843-1.xhtml
new file mode 100644
index 0000000000..0ad086d90c
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/547843-1.xhtml
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><body><math xmlns="http://www.w3.org/1998/Math/MathML" style="display: table;"/><div style="position: fixed;"></div></body></html>
diff --git a/testing/web-platform/tests/mathml/crashtests/mozilla/700031.xhtml b/testing/web-platform/tests/mathml/crashtests/mozilla/700031.xhtml
new file mode 100644
index 0000000000..70f924279e
--- /dev/null
+++ b/testing/web-platform/tests/mathml/crashtests/mozilla/700031.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml"><body>
+
+<div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>
+
+<math xmlns="http://www.w3.org/1998/Math/MathML"><mover>abcdef</mover></math>
+
+</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
+
+</body></html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html
index 2463c40476..0b14ac5334 100644
--- a/testing/web-platform/tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html
@@ -35,11 +35,12 @@
</head>
<body>
<div id="log"></div>
- <!-- Note: mpadded attributes are not tested since MathML3 did not allow to
- set them from mstyle. Also, it is not clear whether munderover's
- accent/accentunder could be applied from mstyle, given that the former
- clashes with mo@accent. Other legacy mstyle attributes not in MathML
- Core or without visual effect are not tested.
+ <!-- Note: In earlier versions of MathML, putting some attributes on the
+ mstyle element was supposed to produce the same rendering as putting them
+ on the all descendants (with some exceptions). In MathML Core, relevant
+ style attributes are implemented as CSS properties and are no longer
+ specific to the mstyle element. The tests below verify that attributes
+ on mstyle that are not mapped to CSS have no effect.
-->
<p class="TestContainer" id="mspace">
<math>
@@ -84,12 +85,12 @@
<mn>3</mn>
</munder>
</mstyle>
- <mstyle accent="false">
- <mover>
- <mn>4</mn>
- <mo>⇀</mo>
- </mover>
- </mstyle>
+ <!-- Note: accent was a shared attribute name for mover and mo, so
+ make mstyle an ancestor of mo but not of mover. -->
+ <mover>
+ <mn>4</mn>
+ <mstyle accent="false"><mo>⇀</mo></mstyle>
+ </mover>
<mstyle stretchy="false" symmetric="false" maxsize="20px">
<mrow>
<mo>|</mo>
@@ -102,6 +103,15 @@
<mn>4</mn>
</mrow>
</mstyle>
+ <mstyle form="prefix">
+ <mrow>
+ <mn>1</mn>
+ <!-- Infix and prefix forms of − do not have the same lspace/rspace
+ values in the operator dictionary -->
+ <mo>−</mo>
+ <mn>2</mn>
+ </mrow>
+ </mstyle>
</math>
<math displaystyle="true">
<mstyle>
@@ -115,12 +125,10 @@
<mn>3</mn>
</munder>
</mstyle>
- <mstyle>
- <mover>
- <mn>4</mn>
- <mo>⇀</mo>
- </mover>
- </mstyle>
+ <mover>
+ <mn>4</mn>
+ <mstyle><mo>⇀</mo></mstyle>
+ </mover>
<mstyle>
<mrow>
<mo>|</mo>
@@ -133,6 +141,13 @@
<mn>4</mn>
</mrow>
</mstyle>
+ <mstyle>
+ <mrow>
+ <mn>1</mn>
+ <mo>−</mo>
+ <mn>2</mn>
+ </mrow>
+ </mstyle>
</math>
</p>
<!-- notation attribute is from MathML3's menclose element -->
@@ -160,5 +175,92 @@
</mstyle>
</math>
</p>
+ <p class="TestContainer" id="mpadded">
+ <math>
+ <mstyle width="100px" height="50px" depth="50px"
+ lspace="10px" voffset="15px">
+ <mpadded style="background: lightblue">
+ <mspace width="10px" height="10px" style="background: black"></mspace>
+ </mpadded>
+ </mstyle>
+ </math>
+ <math>
+ <mstyle>
+ <mpadded style="background: lightblue">
+ <mspace width="10px" height="10px" style="background: black"></mspace>
+ </mpadded>
+ </mstyle>
+ </math>
+ </p>
+ <p class="TestContainer" id="mover">
+ <math>
+ <mstyle accent="true">
+ <mover>
+ <mn>1</mn>
+ <mn>2</mn>
+ </mover>
+ </mstyle>
+ </math>
+ <math>
+ <mstyle>
+ <mover>
+ <mn>1</mn>
+ <mn>2</mn>
+ </mover>
+ </mstyle>
+ </math>
+ </p>
+ <p class="TestContainer" id="munder">
+ <math>
+ <mstyle accentunder="true">
+ <munder>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munder>
+ </mstyle>
+ </math>
+ <math>
+ <mstyle>
+ <munder>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munder>
+ </mstyle>
+ </math>
+ </p>
+ <p class="TestContainer" id="munderover">
+ <math>
+ <mstyle accent="true">
+ <munderover>
+ <mn>1</mn>
+ <mn>2</mn>
+ <mn>3</mn>
+ </munderover>
+ </mstyle>
+ <mstyle accentunder="true">
+ <munderover>
+ <mn>1</mn>
+ <mn>2</mn>
+ <mn>3</mn>
+ </munderover>
+ </mstyle>
+ </math>
+ <math>
+ <mstyle>
+ <munderover>
+ <mn>1</mn>
+ <mn>2</mn>
+ <mn>3</mn>
+ </munderover>
+ </mstyle>
+ <mstyle>
+ <munderover>
+ <mn>1</mn>
+ <mn>2</mn>
+ <mn>3</mn>
+ </munderover>
+ </mstyle>
+ </math>
+ </p>
</body>
</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001-ref.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001-ref.html
new file mode 100644
index 0000000000..7d99e48c92
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>&lt;semantics&gt - mozilla bug 468059 (reference)</title>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+ math, p {
+ font: 25px Ahem;
+ }
+</style>
+<p>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <semantics>
+ <mstyle displaystyle="true">
+ <munderover>
+ <mo movablelimits="true">pXp</mo>
+ <mtext>XpXpXp</mtext>
+ <mtext>XpXpXp</mtext>
+ </munderover>
+ </mstyle>
+ </semantics>
+ </math>
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001.html
new file mode 100644
index 0000000000..63aa9a4da8
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-001.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>&lt;semantics&gt - mozilla bug 468059</title>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=468059">
+<link rel="help" href="https://w3c.github.io/mathml-core/#semantics-and-presentation">
+<link rel="match" href="semantics-001-ref.html">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<meta name="assert" content="MathML inside a semantics element inherits displaystyle.">
+<style>
+ math, p {
+ font: 25px Ahem;
+ }
+</style>
+<p>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <semantics>
+ <munderover>
+ <mo movablelimits="true">pXp</mo>
+ <mtext>XpXpXp</mtext>
+ <mtext>XpXpXp</mtext>
+ </munderover>
+ </semantics>
+ </math>
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002-ref.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002-ref.html
new file mode 100644
index 0000000000..8abdad93de
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>semantics element and legacy rendering rules (reference)</title>
+<meta charset="utf-8"/>
+<p>Empty semantics: <math><mrow></mrow></math></p>
+<p>annotation: <math><mrow><annotation>annotation</annotation></mrow></math></p>
+<p>annotation-xml: <math><mrow><annotation-xml encoding="MathML-Presentation"><mtext>annotation-xml</mtext></annotation-xml></mrow></math></p>
+<p>presentation MathML (no annotations): <math><mrow><mtext>presentation MathML</mtext></mrow></math></p>
+<p>content MathML (no annotations): <math><mrow><csymbol>content MathML</csymbol></mrow></math></p>
+<p>presentation MathML ; annotation: <math><mrow><mtext>presentation MathML</mtext></mrow></math></p>
+<p>presentation MathML ; annotation-xml: <math><mrow><mtext>presentation MathML</mtext></mrow></math></p>
+<p>content MathML ; annotation: <math><mrow><csymbol>content MathML</csymbol></mrow></math></p>
+<p>content MathML ; annotation-xml: <math><mrow><csymbol>content MathML</csymbol></mrow></math></p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002.html
new file mode 100644
index 0000000000..62028fb863
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-002.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<title>semantics element and legacy rendering rules</title>
+<meta charset="utf-8"/>
+<link rel="help" href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics">
+<link rel="help" href="https://w3c.github.io/mathml-core/#semantics-and-presentation">
+<link rel="match" href="semantics-002-ref.html">
+<meta name="assert" content="semantics element rendered as an mrow with only the first child displayed and does not rely on legacy rules to choose another child to display instead.">
+<p>Empty semantics: <math><semantics></semantics></math></p>
+<p>annotation: <math><semantics><annotation>annotation</annotation></semantics></math></p>
+<p>annotation-xml: <math><semantics><annotation-xml encoding="MathML-Presentation"><mtext>annotation-xml</mtext></annotation-xml></semantics></math></p>
+<p>presentation MathML (no annotations): <math><semantics><mtext>presentation MathML</mtext></semantics></math></p>
+<p>content MathML (no annotations): <math><semantics><csymbol>content MathML</csymbol></semantics></math></p>
+<p>presentation MathML ; annotation: <math><semantics><mtext>presentation MathML</mtext><annotation>annotation</annotation></semantics></math></p>
+<p>presentation MathML ; annotation-xml: <math><semantics><mtext>presentation MathML</mtext><annotation-xml encoding="application/mathml-presentation+xml"><mtext>annotation-xml</mtext></annotation-xml></semantics></math></p>
+<p>content MathML ; annotation: <math><semantics><csymbol>content MathML</csymbol><annotation>annotation</annotation></semantics></math></p>
+<p>content MathML ; annotation-xml: <math><semantics><csymbol>content MathML</csymbol><annotation-xml encoding="application/mathml-presentation+xml"><mtext>annotation-xml</mtext></annotation-xml></semantics></math></p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003-ref.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003-ref.html
new file mode 100644
index 0000000000..7b6e21a3eb
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>semantics element and legacy rendering rules (reference)</title>
+<meta charset="utf-8"/>
+<p>annotation 1: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation 2: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation 3: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 1: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 2: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 3: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 4: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 5: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 6: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
+<p>annotation-xml 7: <math><mrow><csymbol>Content MathML</csymbol></mrow></math></p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003.html
new file mode 100644
index 0000000000..83572f4c8c
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-003.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title>semantics element and legacy rendering rules</title>
+<meta charset="utf-8"/>
+<link rel="help" href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics">
+<link rel="help" href="https://w3c.github.io/mathml-core/#semantics-and-presentation">
+<link rel="match" href="semantics-003-ref.html">
+<meta name="assert" content="semantics element rendered as an mrow with only the first child displayed and does not rely on legacy rules to choose another child to display instead.">
+<p>annotation 1: <math><semantics><csymbol>Content MathML</csymbol><annotation>annotation</annotation><annotation>error</annotation><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml></semantics></math></p>
+<p>annotation 2: <math><semantics><csymbol>Content MathML</csymbol><annotation encoding="application/x-tex">\sin x + 5</annotation><annotation>error</annotation><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml></semantics></math></p>
+<p>annotation 3: <math><semantics><csymbol>Content MathML</csymbol><annotation src="external-resource">error</annotation><annotation>annotation</annotation><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml></semantics></math></p>
+<p>annotation-xml 1: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="application/mathml-presentation+xml"><mtext>application/mathml-presentation+xml</mtext></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
+<p>annotation-xml 2: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="MathML-Presentation"><mtext>MathML-Presentation</mtext></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
+<p>annotation-xml 3: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="image/svg+xml"><svg xmlns="http://www.w3.org/2000/svg" height="2em"><text y="1em">image/svg+xml</text></svg></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
+<p>annotation-xml 4: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="SVG1.1"><svg xmlns="http://www.w3.org/2000/svg" height="2em"><text y="1em">SVG1.1</text></svg></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
+<p>annotation-xml 5: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="application/xhtml+xml"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>application/xhtml+xml</title></head><body><p>application/xhtml+xml</p></body></html></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></math></p>
+<p>annotation-xml 6: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="text/html"><html><head><title>text/html</title></head><body><p>text/html</p></body></html></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>error</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
+<p>annotation-xml 7: <math><semantics><csymbol>Content MathML</csymbol><annotation-xml encoding="unknown"><mtext>error</mtext></annotation-xml><annotation-xml encoding="application/mathml-presentation+xml"><mtext>annotation-xml</mtext></annotation-xml><annotation>error</annotation></semantics></math></p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004-ref.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004-ref.html
new file mode 100644
index 0000000000..855d887bbc
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>&lt;semantics&gt - mozilla bug 512418 (reference)</title>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+ math, p {
+ font: 25px Ahem;
+ }
+</style>
+<p>
+ XpXpXp<math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mrow>
+ <mrow>
+ <mo>lcm</mo>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>,</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ <mo>=</mo>
+ <mfrac>
+ <mrow>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>&#x2062;</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ <mrow>
+ <mo>gcd</mo>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>,</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ </mfrac>
+ </mrow>
+ </math>XpXpXp
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004.html
new file mode 100644
index 0000000000..17f0f1ecd0
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-004.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>&lt;semantics&gt - mozilla bug 512418</title>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=512418">
+<link rel="help" href="https://w3c.github.io/mathml-core/#semantics-and-presentation">
+<link rel="match" href="semantics-004-ref.html">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<meta name="assert" content="The semantics element shouldn't add space around it.">
+<style>
+ math, p {
+ font: 25px Ahem;
+ }
+</style>
+<p>
+ XpXpXp<math xmlns="http://www.w3.org/1998/Math/MathML">
+ <semantics>
+ <mrow>
+ <mrow>
+ <mo>lcm</mo>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>,</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ <mo>=</mo>
+ <mfrac>
+ <mrow>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>&#x2062;</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ <mrow>
+ <mo>gcd</mo>
+ <mo>(</mo>
+ <mn>a</mn>
+ <mo>,</mo>
+ <mn>b</mn>
+ <mo>)</mo>
+ </mrow>
+ </mfrac>
+ </mrow>
+ </semantics>
+ </math>XpXpXp
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005-ref.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005-ref.html
new file mode 100644
index 0000000000..cf722603e1
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<title>&lt;semantics&gt - mozilla bug 21479 (reference)</title>
+<meta charset="utf-8"/>
+<p>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mover>
+ <mspace width="300px" height="10px" mathbackground="black"></mspace>
+ <mo>&#xaf;</mo>
+ </mover>
+ </math>
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005.html b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005.html
new file mode 100644
index 0000000000..e4fe611c47
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/mrow/semantics-005.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<title>&lt;semantics&gt - mozilla bug 21479</title>
+<meta charset="utf-8"/>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=21479">
+<link rel="help" href="https://w3c.github.io/mathml-core/#semantics-and-presentation">
+<link rel="match" href="semantics-005-ref.html">
+<meta name="assert" content="The embellished operator made of a single mo inside a semantics element is treated the same as the mo alone.">
+<p>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mover>
+ <mspace width="300px" height="10px" mathbackground="black"></mspace>
+ <semantics><mo>&#xaf;</mo></semantics>
+ </mover>
+ </math>
+</p>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-1.html b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-1.html
new file mode 100644
index 0000000000..9f37cddc39
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-1.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Stretchy/Largeop with default fonts</title>
+ <meta charset="utf-8"/>
+ <link rel="help" href="https://www.w3.org/TR/mathml-core/#layout-of-operators">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1092053">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ function heightOf(aElement) {
+ return document.getElementById(aElement).getBoundingClientRect().height;
+ }
+ promise_test(() => {
+ return new Promise(resolve => {
+ window.addEventListener("load", resolve);
+ }).then(() => {
+ assert_greater_than(heightOf("mo0"), heightOf("mo0a"));
+ assert_greater_than(heightOf("mo1"), heightOf("mo1a"));
+ assert_greater_than(heightOf("mo2"), heightOf("mo2a"));
+ assert_greater_than(heightOf("mo3"), heightOf("mo3a"));
+ });
+ }, "The size of displaystyle largeops is taken into account when stretching fences.");
+ </script>
+ </head>
+ <body>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mo id="mo0">(</mo>
+ <mo>∫</mo>
+ <mo id="mo1">)</mo>
+ <mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mo id="mo0a">(</mo>
+ <mo>∫</mo>
+ <mo id="mo1a">)</mo>
+ <mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mo id="mo2">(</mo>
+ <mo>&Product;</mo>
+ <mo id="mo3">)</mo>
+ <mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mo id="mo2a">(</mo>
+ <mo>&Product;</mo>
+ <mo id="mo3a">)</mo>
+ <mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-2.html b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-2.html
new file mode 100644
index 0000000000..7c43c80acc
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-2.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Stretchy/Largeop with default fonts</title>
+ <meta charset="utf-8"/>
+ <link rel="help" href="https://www.w3.org/TR/mathml-core/#layout-of-operators">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1092053">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ function contentOf(aElement) {
+ return document.getElementById(aElement).textContent;
+ }
+ function heightOf(aElement) {
+ return document.getElementById(aElement).getBoundingClientRect().height;
+ }
+ promise_test(() => {
+ return new Promise(resolve => {
+ window.addEventListener("load", resolve);
+ }).then(() => {
+ const numTests = 10; // zero indexed
+ for (let i = 0; i < numTests; i++) {
+ const operatorName = contentOf(`mo${i}`);
+ assert_greater_than(heightOf(`mo${i}`), heightOf(`moRef${i}`), `size of largeop '${operatorName}'`);
+ }
+ });
+ }, "Test that non-stretchy largeops are bigger in display mode.");
+ </script>
+ </head>
+ <body>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo0">&bigodot;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo1">&bigoplus;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo2">&#x2a03;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo3">&#x2a05;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo4">&#x2a07;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo5">&#x2a08;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo6">&#x2a09;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo7">&#x2a0a;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo8">&#x2afc;</mo>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="mo9">&#x2aff;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef0">&bigodot;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef1">&bigoplus;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef2">&#x2a03;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef3">&#x2a05;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef4">&#x2a07;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef5">&#x2a08;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef6">&#x2a09;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef7">&#x2a0a;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef8">&#x2afc;</mo>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mo id="moRef9">&#x2aff;</mo>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-3.html b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-3.html
new file mode 100644
index 0000000000..d588b9d4e0
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/operators/stretchy-largeop-with-default-font-3.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Stretchy/Largeop with default fonts</title>
+ <meta charset="utf-8"/>
+ <link rel="help" href="https://www.w3.org/TR/mathml-core/#layout-of-operators">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1092053">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ function contentOf(aElement) {
+ return document.getElementById(aElement).textContent;
+ }
+ promise_test(() => {
+ return new Promise(resolve => {
+ window.addEventListener("load", resolve);
+ }).then(() => {
+ const numTests = 10; // zero indexed
+ const epsilon = 2;
+ for (let i = 0; i < numTests; i++) {
+ const operatorName = contentOf(`mo${i}`);
+ const box = document.getElementById(`mo${i}`).getBoundingClientRect();
+ const ref = document.getElementById(`moRef${i}`).getBoundingClientRect();
+ assert_approx_equals(box.width, ref.width, epsilon, `width of largeop '${operatorName}'`);
+ assert_approx_equals(box.height, ref.height, epsilon, `height of largeop '${operatorName}'`);
+ }
+ });
+ }, "Test that non-stretchy largeops do not stretch.");
+ </script>
+ </head>
+ <body>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo0">&bigodot;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo1">&bigoplus;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo2">&#x2a03;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo3">&#x2a05;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo4">&#x2a07;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo5">&#x2a08;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo6">&#x2a09;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo7">&#x2a0a;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo8">&#x2afc;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mrow>
+ <mspace height="3em" />
+ <mo id="mo9">&#x2aff;</mo>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math displaystyle="true">
+ <mo id="moRef0">&bigodot;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef1">&bigoplus;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef2">&#x2a03;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef3">&#x2a05;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef4">&#x2a07;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef5">&#x2a08;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef6">&#x2a09;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef7">&#x2a0a;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef8">&#x2afc;</mo>
+ </math>
+ <math displaystyle="true">
+ <mo id="moRef9">&#x2aff;</mo>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001-ref.html
new file mode 100644
index 0000000000..d814944f53
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mmultiscript with no scripts (reference)</title>
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mtext>base</mtext>
+ <none/>
+ <none/>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001.html
new file mode 100644
index 0000000000..e55a04e128
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-001.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mmultiscript with no scripts</title>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=208309">
+ <link rel="help" href="https://w3c.github.io/mathml-core/#base-with-prescripts-and-postscripts">
+ <link rel="match" href="mmultiscript-001-ref.html">
+ <meta name="assert" content="mmultiscript with no scripts renders the same as if it had two none post-scripts">
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mtext>base</mtext>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002-ref.html
new file mode 100644
index 0000000000..33f12d7cdf
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mmultiscript with mprescripts (reference)</title>
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mtext>base</mtext>
+ <none/>
+ <none/>
+ <mprescripts/>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002.html
new file mode 100644
index 0000000000..c5e426008f
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-002.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mmultiscript with mprescripts</title>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=208309">
+ <link rel="help" href="https://w3c.github.io/mathml-core/#base-with-prescripts-and-postscripts">
+ <link rel="match" href="mmultiscript-002-ref.html">
+ <meta name="assert" content="mmultiscript with no scripts and a mprescripts child renders the same as if it had two none pre-scripts">
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mtext>base</mtext>
+ <mprescripts/>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003-ref.html
new file mode 100644
index 0000000000..daac6b3346
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003-ref.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>alignment of mmultiscript sub/superscripts</title>
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mspace width="50px" height="50px" mathbackground="red"/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ <mspace width="50px" height="10px"/>
+ </mrow>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mprescripts/>
+ <mrow>
+ <mspace width="50px" height="10px"/>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ </mmultiscripts>
+ </math>
+ <br/>
+ <br/>
+ <math>
+ <mmultiscripts>
+ <mspace width="50px" height="50px" mathbackground="red"/>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ <mspace width="50px" height="10px"/>
+ </mrow>
+ <mprescripts/>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mrow>
+ <mspace width="50px" height="10px"/>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003.html
new file mode 100644
index 0000000000..7de3e98b8a
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/mmultiscript-003.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>alignment of mmultiscript sub/superscripts</title>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=928675">
+ <link rel="help" href="https://w3c.github.io/mathml-core/#base-with-prescripts-and-postscripts">
+ <link rel="match" href="mmultiscript-003-ref.html">
+ <meta name="assert" content="In LTR mode, pre-scripts are right-aligned and post-scripts are left-aligned.">
+ </head>
+ <body>
+ <math>
+ <mmultiscripts>
+ <mspace width="50px" height="50px" mathbackground="red"/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mprescripts/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ </mmultiscripts>
+ </math>
+ <br/>
+ <br/>
+ <math>
+ <mmultiscripts>
+ <mspace width="50px" height="50px" mathbackground="red"/>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ <mprescripts/>
+ <mspace width="100px" height="10px" mathbackground="green"/>
+ <mrow>
+ <mspace width="50px" height="10px" mathbackground="blue"/>
+ </mrow>
+ </mmultiscripts>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false-ref.html
new file mode 100644
index 0000000000..db72d0c5e2
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false-ref.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="false")</title>
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="2">mover</th>
+ <th colspan="2">munder</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base</td>
+ <td align="center">Over &gt; Base</td>
+ <td align="center">Under &lt; Base</td>
+ <td align="center">Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <mover>
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <mover>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder>
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munder>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false.html
new file mode 100644
index 0000000000..0d4205410a
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-false.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="false")</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#underscripts-and-overscripts-munder-mover-munderover">
+ <link rel="match" href="munder-mover-align-accent-false-ref.html">
+ <meta name="assert" content="base, underscript and overscript should be horizontally aligned.">
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="2">mover</th>
+ <th colspan="2">munder</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base</td>
+ <td align="center">Over &gt; Base</td>
+ <td align="center">Under &lt; Base</td>
+ <td align="center">Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <mover>
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <mover>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder>
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true-ref.html
new file mode 100644
index 0000000000..da1033563e
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true-ref.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="true")</title>
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="2">mover</th>
+ <th colspan="2">munder</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base</td>
+ <td align="center">Over &gt; Base</td>
+ <td align="center">Under &lt; Base</td>
+ <td align="center">Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <mover accent="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <mover accent="true">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder accentunder="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munder>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder accentunder="true">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true.html
new file mode 100644
index 0000000000..aa70d244f3
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munder-mover-align-accent-true.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="true")</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#underscripts-and-overscripts-munder-mover-munderover">
+ <link rel="match" href="munder-mover-align-accent-true-ref.html">
+ <meta name="assert" content="base, underscript and overscript should be horizontally aligned.">
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="2">mover</th>
+ <th colspan="2">munder</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base</td>
+ <td align="center">Over &gt; Base</td>
+ <td align="center">Under &lt; Base</td>
+ <td align="center">Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <mover accent="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <mover accent="true">
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </mover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder accentunder="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munder accentunder="true">
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munder>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false-ref.html
new file mode 100644
index 0000000000..c339149c25
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false-ref.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="false")</title>
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="6">munderover</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base &lt; Under</td>
+ <td align="center">Over &gt; Base &gt; Under</td>
+ <td align="center">Over = Under &lt; Base</td>
+ <td align="center">Over = Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <munderover accent="false" accentunder="false">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="false" accentunder="false">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="false" accentunder="false">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="false" accentunder="false">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false.html
new file mode 100644
index 0000000000..2c082612a2
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-false.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="false")</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#underscripts-and-overscripts-munder-mover-munderover">
+ <link rel="match" href="munderover-align-accent-false-ref.html">
+ <meta name="assert" content="base, underscript and overscript should be horizontally aligned.">
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="4">munderover</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base &lt; Under</td>
+ <td align="center">Over &gt; Base &gt; Under</td>
+ <td align="center">Over = Under &lt; Base</td>
+ <td align="center">Over = Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <munderover>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover>
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true-ref.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true-ref.html
new file mode 100644
index 0000000000..aababcb17b
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true-ref.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="true")</title>
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="6">munderover</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base &lt; Under</td>
+ <td align="center">Over &gt; Base &gt; Under</td>
+ <td align="center">Over = Under &lt; Base</td>
+ <td align="center">Over = Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mrow>
+ <mspace height="15px" width="25px"/>
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="25px"/>
+ </mrow>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true.html b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true.html
new file mode 100644
index 0000000000..e6578ade52
--- /dev/null
+++ b/testing/web-platform/tests/mathml/presentation-markup/scripts/munderover-align-accent-true.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Horizontal alignment of base with munder/mover scripts (accent="true")</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#underscripts-and-overscripts-munder-mover-munderover">
+ <link rel="match" href="munderover-align-accent-true-ref.html">
+ <meta name="assert" content="base, underscript and overscript should be horizontally aligned.">
+ </head>
+ <body>
+ <table border="1">
+ <tr>
+ <th colspan="4">munderover</th>
+ </tr>
+ <tr>
+ <td align="center">Over &lt; Base &lt; Under</td>
+ <td align="center">Over &gt; Base &gt; Under</td>
+ <td align="center">Over = Under &lt; Base</td>
+ <td align="center">Over = Under &gt; Base</td>
+ </tr>
+ <tr>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mspace height="15px" width="50px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mspace height="15px" width="75px" mathbackground="blue"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ <mspace height="15px" width="25px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ <td align="center">
+ <math>
+ <munderover accent="true" accentunder="true">
+ <mspace height="15px" width="25px" mathbackground="blue"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ <mspace height="15px" width="75px" mathbackground="red"/>
+ </munderover>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/relations/html5-tree/tabindex-focus-001.tentative.html b/testing/web-platform/tests/mathml/relations/html5-tree/tabindex-focus-001.tentative.html
new file mode 100644
index 0000000000..2ea0390eab
--- /dev/null
+++ b/testing/web-platform/tests/mathml/relations/html5-tree/tabindex-focus-001.tentative.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML>
+<title>Invalid tabindex</title>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1128054">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<!-- Test default focusability -->
+<math></math>
+<math href="#" data-focusable=true></math>
+<!-- Test tabindex=0 focusability -->
+<math tabindex="0" data-focusable=true></math>
+<!-- Test tabindex=-1 focusability -->
+<math tabindex="-1" data-focusable=true></math>
+<!-- Test tabindex=invalid focusability -->
+<math tabindex="invalid"></math>
+<math href="#" tabindex="invalid" data-focusable=true></math>
+
+<script>
+ test(() => {
+ for (let element of document.querySelectorAll("math")) {
+ let focusable = element.dataset && element.dataset.focusable;
+ let desc = "<math";
+ for (let attr of ["href", "tabindex"]) {
+ if (element.hasAttribute(attr)) {
+ desc += ` ${attr}=${element.getAttribute(attr)}`;
+ }
+ }
+ desc += ">";
+ element.focus();
+ focusable ? assert_equals(document.activeElement, element, desc + " should be focusable")
+ : assert_not_equals(document.activeElement, element, desc + " should not be focusable");
+ }
+ }, "invalid tabindex attribute does not make the element focusable");
+</script>
diff --git a/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-ref.html b/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-ref.html
new file mode 100644
index 0000000000..5c295152ba
--- /dev/null
+++ b/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <title>mo glyph height with default font (reference)</title>
+ </head>
+ <body>
+ <div id="hider"
+ style="position:absolute; top:0; left:0; background-color:green;
+ height:1em; width:100%; z-index:1; padding-top:5px;
+ padding-bottom:5px;" />
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font.html b/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font.html
new file mode 100644
index 0000000000..262d3b9277
--- /dev/null
+++ b/testing/web-platform/tests/mathml/relations/text-and-math/mo-glyph-height-with-default-font.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <meta charset="UTF-8">
+ <title>mo glyph height with default font</title>
+ <meta name="assert" content="Verify operators with default fonts are not too tall.">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1219068"/>
+ <link rel="match" href="mo-glyph-height-with-default-font-ref.html"/>
+ </head>
+ <body>
+ <math style="position:absolute; top: 0; font-size:1em; z-index: 0;" display="block">
+ <mrow>
+ <mo>|</mo>
+ <mrow>
+ <mi>f</mi>
+ <mrow>
+ <mn>(</mn>
+ <mi>x</mi>
+ <mn>)</mn>
+ </mrow>
+ <mn>−</mn>
+ <mrow>
+ <mi>f</mi>
+ <mrow>
+ <mn>(</mn>
+ <msub>
+ <mi>x</mi>
+ <mn>0</mn>
+ </msub>
+ <mn>)</mn>
+ </mrow>
+ </mrow>
+ </mrow>
+ <mo>|</mo>
+ </mrow>
+ </math>
+ <div id="hider"
+ style="position:absolute; top:0; left:0; background-color:green;
+ height:1em; width:100%; z-index:1; padding-top:5px;
+ padding-bottom:5px; visibility:hidden" />
+ <script>
+ function obscureMathML() {
+ var hider = document.getElementById("hider");
+ hider.style.visibility="visible";
+ // The math should now be completely obscured
+
+ document.documentElement.removeAttribute("class");
+ }
+ window.addEventListener("TestRendered", obscureMathML);
+ </script>
+ </body>
+</html>