From 03a6c8d193cc587c58a54c1a2e4808b8dd076394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Fri, 11 Oct 2024 11:42:53 +0200 Subject: [PATCH] Support CSS width/height properties on MathML elements https://bugs.webkit.org/show_bug.cgi?id=281292 Reviewed by NOBODY (OOPS!). This patch implements support for the width/height properties on MathML elements [1]. The general algorithm from the spec is as follows: (1) The outcome of the math layout is a "math content box". (2) The content box sets its size from computed width/height values. If auto, it's the one of the "math content box". This patch ignores percentage values for now [2] [3]. (3) math content box is shifted so that its inline-start and top edges aligns with the ones of the content box. There are exceptions elements like mfrac and munder/mover/munderover which instead horizontally center the math content box within the content box. For baseline adjustment, we follow what other browsers do, see [4]. (4) Padding+border are added around the content box. Note that we ignore the box-sizing property for now [5]. The patch essentially tweaks the various MathML layout algorithms to perform steps (3) and (4) before the calls to adjustPreferredLogicalWidthsForBorderAndPadding() and adjustLayoutForBorderAndPadding(). In particular this might slightly change current behavior for mrow-like layout. More tweaks might be needed would be handled in follow-up patches. [1] https://w3c.github.io/mathml-core/#layout-algorithms [2] https://github.com/w3c/mathml-core/issues/76 [3] https://github.com/w3c/mathml-core/issues/77 [4] https://github.com/w3c/mathml-core/issues/259 [5] https://github.com/w3c/mathml-core/issues/257 [6] https://github.com/web-platform-tests/wpt/pull/48569 * LayoutTests/TestExpectations: width-height-003.html PASS. msqrt case for width-height-003.html still has small diff. * LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt: We pass everything except preferred mo size because of how we handle lspace/rspace, see [6]. * LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-004-expected.txt: Remove new lines in txt expectation. * LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt: Use a platform-independent "everything PASS" expectation. * LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt: Use a platform-independent "everything PASS" expectation. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt: Removed. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt: Removed. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt: Removed. * LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt: Removed. * LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt: Removed. * LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt: Removed. * LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt: Added. Use a platform-independent "everything PASS" expectation. * LayoutTests/mathml/presentation/mspace-prefered-width-expected.html: This was initially added in 136708@main, tweak expectation now that we support width on mspace. * LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt: Update now that we support width/height on MathML elements. * LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt: Ditto. * LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt: Ditto. * Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp: (WebCore::RenderMathMLBlock::sizeAppliedToMathContent): New helper to retrieve the specified CSS width/height, if any. (WebCore::RenderMathMLBlock::applySizeToMathContent): New helper to apply the specified CSS width/height to the math content box and return inline shift for further adjustments. * Source/WebCore/rendering/mathml/RenderMathMLBlock.h: (WebCore::RenderMathMLBlock::isMathContentCentered const): New helper to indicate whether math content should be centered on the inline axis if a different size is specified by the user. * Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLFraction::layoutBlock): Apply specified sizes, adjust children position. (WebCore::RenderMathMLFraction::paint): Comment about fraction bar painting. * Source/WebCore/rendering/mathml/RenderMathMLFraction.h: MathML Core says fraction content is centered. * Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp: (WebCore::RenderMathMLMenclose::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLMenclose::layoutBlock): Apply specified sizes, adjust children position. * Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp: (WebCore::RenderMathMLPadded::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLPadded::layoutBlock): Apply specified sizes, adjust children position. * Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp: (WebCore::RenderMathMLRoot::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLRoot::layoutBlock): Apply specified sizes, adjust children position. * Source/WebCore/rendering/mathml/RenderMathMLRow.cpp: (WebCore::RenderMathMLRow::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLRow::layoutBlock): Apply specified sizes, adjust children position. This also removes previous setLogicalHeight() and updateLogicalHeight() calls. * Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp: (WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLScripts::layoutBlock): Apply specified sizes, adjust children position. * Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp: (WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLSpace::layoutBlock): Apply specified sizes. Minor refactoring to make sure border/padding are handled after. * Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp: (WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Account for specified sizes. (WebCore::RenderMathMLUnderOver::layoutBlock): Apply specified sizes, adjust children position. * Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h: MathML Core says munder/mover/munderover content is centered. --- LayoutTests/TestExpectations | 1 - .../mspace-width-height-001-expected.txt | 8 +- .../css-styling/width-height-001-expected.txt | 152 +++---- .../css-styling/width-height-004-expected.txt | 5 - .../css-styling/width-height-005-expected.txt | 244 +++++++++++ .../css-styling/width-height-006-expected.txt | 156 +++++++ .../mspace-prefered-width-expected.html | 4 +- .../css-styling/display-2-expected.txt | 34 +- .../css-styling/width-height-001-expected.txt | 396 ------------------ .../css-styling/width-height-005-expected.txt | 244 ----------- .../css-styling/width-height-006-expected.txt | 156 ------- .../css-styling/display-2-expected.txt | 34 +- .../css-styling/width-height-005-expected.txt | 244 ----------- .../css-styling/width-height-006-expected.txt | 156 ------- .../css-styling/display-2-expected.txt | 34 +- .../css-styling/width-height-005-expected.txt | 244 ----------- .../css-styling/width-height-006-expected.txt | 156 ------- .../rendering/mathml/RenderMathMLBlock.cpp | 45 ++ .../rendering/mathml/RenderMathMLBlock.h | 16 + .../rendering/mathml/RenderMathMLFraction.cpp | 8 + .../rendering/mathml/RenderMathMLFraction.h | 1 + .../rendering/mathml/RenderMathMLMenclose.cpp | 7 + .../rendering/mathml/RenderMathMLPadded.cpp | 7 + .../rendering/mathml/RenderMathMLRoot.cpp | 7 + .../rendering/mathml/RenderMathMLRow.cpp | 11 +- .../rendering/mathml/RenderMathMLScripts.cpp | 7 + .../rendering/mathml/RenderMathMLSpace.cpp | 12 +- .../mathml/RenderMathMLUnderOver.cpp | 7 + .../rendering/mathml/RenderMathMLUnderOver.h | 1 + 29 files changed, 656 insertions(+), 1741 deletions(-) create mode 100644 LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt create mode 100644 LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt delete mode 100644 LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt delete mode 100644 LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt delete mode 100644 LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt delete mode 100644 LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt delete mode 100644 LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt delete mode 100644 LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt delete mode 100644 LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations index 44781b927e851..9adce56ffac40 100644 --- a/LayoutTests/TestExpectations +++ b/LayoutTests/TestExpectations @@ -1955,7 +1955,6 @@ imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-marg imported/w3c/web-platform-tests/mathml/relations/css-styling/table-width-2.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/mathml/relations/css-styling/table-width-3.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-002.html [ ImageOnlyFailure ] -imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-003.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-form-dynamic-002.html [ ImageOnlyFailure ] # This MathML test should be rewritten. diff --git a/LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt index e268e8f07e898..dae4ef901a9e7 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/mspace-width-height-001-expected.txt @@ -1,6 +1,6 @@ -FAIL width attribute + width property assert_approx_equals: mspace width overridden by inline style expected 200 +/- 1 but got 500 -FAIL height/depth attributes + height property assert_approx_equals: mspace height overridden by inline style expected 200 +/- 1 but got 300 -FAIL height attribute + height property assert_approx_equals: mspace height overridden by inline style expected 200 +/- 1 but got 300 -FAIL depth attribute + height property assert_approx_equals: mspace height overridden by inline style expected 200 +/- 1 but got 300 +PASS width attribute + width property +PASS height/depth attributes + height property +PASS height attribute + height property +PASS depth attribute + height property diff --git a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt index 123b8fce66a31..d8461bcf21cf1 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt @@ -1,28 +1,28 @@ -FAIL width and height properties on maction assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on maction assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on maction (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on maction (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on menclose assert_approx_equals: width expected 500 +/- 1 but got 88.03125 -FAIL inline-size and block-size properties on menclose assert_approx_equals: width expected 600 +/- 1 but got 88.03125 -FAIL width and height properties on menclose (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 88.03125 -FAIL width property on menclose (preferred width) assert_approx_equals: expected 300 +/- 1 but got 88.03125 -FAIL width and height properties on merror assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on merror assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on merror (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on merror (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on mfrac assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mfrac assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mfrac (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mfrac (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 +PASS width and height properties on maction +PASS inline-size and block-size properties on maction +PASS width and height properties on maction (content overflowing) +PASS width property on maction (preferred width) +PASS width and height properties on menclose +PASS inline-size and block-size properties on menclose +PASS width and height properties on menclose (content overflowing) +PASS width property on menclose (preferred width) +PASS width and height properties on merror +PASS inline-size and block-size properties on merror +PASS width and height properties on merror (content overflowing) +PASS width property on merror (preferred width) +PASS width and height properties on mfrac +PASS inline-size and block-size properties on mfrac +PASS width and height properties on mfrac (content overflowing) +PASS width property on mfrac (preferred width) PASS width and height properties on mi PASS inline-size and block-size properties on mi PASS width and height properties on mi (content overflowing) PASS width property on mi (preferred width) -FAIL width and height properties on mmultiscripts assert_approx_equals: width expected 500 +/- 1 but got 132.03125 -FAIL inline-size and block-size properties on mmultiscripts assert_approx_equals: width expected 600 +/- 1 but got 132.03125 -FAIL width and height properties on mmultiscripts (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 132.03125 -FAIL width property on mmultiscripts (preferred width) assert_approx_equals: expected 300 +/- 1 but got 132.03125 +PASS width and height properties on mmultiscripts +PASS inline-size and block-size properties on mmultiscripts +PASS width and height properties on mmultiscripts (content overflowing) +PASS width property on mmultiscripts (preferred width) PASS width and height properties on mn PASS inline-size and block-size properties on mn PASS width and height properties on mn (content overflowing) @@ -31,54 +31,54 @@ PASS width and height properties on mo PASS inline-size and block-size properties on mo PASS width and height properties on mo (content overflowing) FAIL width property on mo (preferred width) assert_approx_equals: expected 300 +/- 1 but got 308.875 -FAIL width and height properties on mover assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mover assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mover (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mover (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on mpadded assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mpadded assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mpadded (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mpadded (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on mphantom assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mphantom assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mphantom (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mphantom (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on mroot assert_approx_equals: width expected 500 +/- 1 but got 128.53125 -FAIL inline-size and block-size properties on mroot assert_approx_equals: width expected 600 +/- 1 but got 128.53125 -FAIL width and height properties on mroot (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 128.53125 -FAIL width property on mroot (preferred width) assert_approx_equals: expected 300 +/- 1 but got 135.21875 -FAIL width and height properties on mrow assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mrow assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mrow (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mrow (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 +PASS width and height properties on mover +PASS inline-size and block-size properties on mover +PASS width and height properties on mover (content overflowing) +PASS width property on mover (preferred width) +PASS width and height properties on mpadded +PASS inline-size and block-size properties on mpadded +PASS width and height properties on mpadded (content overflowing) +PASS width property on mpadded (preferred width) +PASS width and height properties on mphantom +PASS inline-size and block-size properties on mphantom +PASS width and height properties on mphantom (content overflowing) +PASS width property on mphantom (preferred width) +PASS width and height properties on mroot +PASS inline-size and block-size properties on mroot +PASS width and height properties on mroot (content overflowing) +PASS width property on mroot (preferred width) +PASS width and height properties on mrow +PASS inline-size and block-size properties on mrow +PASS width and height properties on mrow (content overflowing) +PASS width property on mrow (preferred width) PASS width and height properties on ms PASS inline-size and block-size properties on ms PASS width and height properties on ms (content overflowing) PASS width property on ms (preferred width) -FAIL width and height properties on mspace assert_approx_equals: width expected 500 +/- 1 but got 0 -FAIL inline-size and block-size properties on mspace assert_approx_equals: width expected 600 +/- 1 but got 0 -FAIL width and height properties on mspace (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 0 -FAIL width property on mspace (preferred width) assert_approx_equals: expected 300 +/- 1 but got 0 -FAIL width and height properties on msqrt assert_approx_equals: width expected 500 +/- 1 but got 89.578125 -FAIL inline-size and block-size properties on msqrt assert_approx_equals: width expected 600 +/- 1 but got 89.578125 -FAIL width and height properties on msqrt (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 89.578125 -FAIL width property on msqrt (preferred width) assert_approx_equals: expected 300 +/- 1 but got 96.265625 -FAIL width and height properties on mstyle assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on mstyle assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on mstyle (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on mstyle (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on msub assert_approx_equals: width expected 500 +/- 1 but got 132.03125 -FAIL inline-size and block-size properties on msub assert_approx_equals: width expected 600 +/- 1 but got 132.03125 -FAIL width and height properties on msub (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 132.03125 -FAIL width property on msub (preferred width) assert_approx_equals: expected 300 +/- 1 but got 132.03125 -FAIL width and height properties on msubsup assert_approx_equals: width expected 500 +/- 1 but got 132.03125 -FAIL inline-size and block-size properties on msubsup assert_approx_equals: width expected 600 +/- 1 but got 132.03125 -FAIL width and height properties on msubsup (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 132.03125 -FAIL width property on msubsup (preferred width) assert_approx_equals: expected 300 +/- 1 but got 132.03125 -FAIL width and height properties on msup assert_approx_equals: width expected 500 +/- 1 but got 132.03125 -FAIL inline-size and block-size properties on msup assert_approx_equals: width expected 600 +/- 1 but got 132.03125 -FAIL width and height properties on msup (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 132.03125 -FAIL width property on msup (preferred width) assert_approx_equals: expected 300 +/- 1 but got 132.03125 +PASS width and height properties on mspace +PASS inline-size and block-size properties on mspace +PASS width and height properties on mspace (content overflowing) +PASS width property on mspace (preferred width) +PASS width and height properties on msqrt +PASS inline-size and block-size properties on msqrt +PASS width and height properties on msqrt (content overflowing) +PASS width property on msqrt (preferred width) +PASS width and height properties on mstyle +PASS inline-size and block-size properties on mstyle +PASS width and height properties on mstyle (content overflowing) +PASS width property on mstyle (preferred width) +PASS width and height properties on msub +PASS inline-size and block-size properties on msub +PASS width and height properties on msub (content overflowing) +PASS width property on msub (preferred width) +PASS width and height properties on msubsup +PASS inline-size and block-size properties on msubsup +PASS width and height properties on msubsup (content overflowing) +PASS width property on msubsup (preferred width) +PASS width and height properties on msup +PASS inline-size and block-size properties on msup +PASS width and height properties on msup (content overflowing) +PASS width property on msup (preferred width) PASS width and height properties on mtable PASS inline-size and block-size properties on mtable PASS width property on mtable (preferred width) @@ -86,18 +86,18 @@ PASS width and height properties on mtext PASS inline-size and block-size properties on mtext PASS width and height properties on mtext (content overflowing) PASS width property on mtext (preferred width) -FAIL width and height properties on munder assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on munder assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on munder (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on munder (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on munderover assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on munderover assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on munderover (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on munderover (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 -FAIL width and height properties on semantics assert_approx_equals: width expected 500 +/- 1 but got 76.875 -FAIL inline-size and block-size properties on semantics assert_approx_equals: width expected 600 +/- 1 but got 76.875 -FAIL width and height properties on semantics (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 76.875 -FAIL width property on semantics (preferred width) assert_approx_equals: expected 300 +/- 1 but got 76.875 +PASS width and height properties on munder +PASS inline-size and block-size properties on munder +PASS width and height properties on munder (content overflowing) +PASS width property on munder (preferred width) +PASS width and height properties on munderover +PASS inline-size and block-size properties on munderover +PASS width and height properties on munderover (content overflowing) +PASS width property on munderover (preferred width) +PASS width and height properties on semantics +PASS inline-size and block-size properties on semantics +PASS width and height properties on semantics (content overflowing) +PASS width property on semantics (preferred width) a a a diff --git a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-004-expected.txt index af1962ce965e1..5e45b1ee93324 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-004-expected.txt +++ b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-004-expected.txt @@ -27,7 +27,6 @@ X XXXXXXXXXXXX XXXXXXXXXXXX - XXXXXXXXXXXX XXXXXXXXXXXX X @@ -38,7 +37,6 @@ X XXXXXXXXXXXX XXXXXXXXXXXX - XXXXXXXXXXXX XXXXXXXXXXXX X @@ -49,7 +47,6 @@ X XXXXXXXXXXXX XXXXXXXXXXXX - XXXXXXXXXXXX XXXXXXXXXXXX X @@ -60,7 +57,6 @@ X XXXXXXXXXXXX XXXXXXXXXXXX - XXXXXXXXXXXX XXXXXXXXXXXX X @@ -74,7 +70,6 @@ X XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX - XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX diff --git a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt new file mode 100644 index 0000000000000..0d2ec974a62ba --- /dev/null +++ b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt @@ -0,0 +1,244 @@ + +PASS mrow +PASS mrow (horizontal overflow) +PASS RTL mrow +PASS RTL mrow (horizontal overflow) +PASS mpadded +PASS mpadded (horizontal overflow) +PASS RTL mpadded +PASS RTL mpadded (horizontal overflow) +PASS msqrt +PASS msqrt (horizontal overflow) +PASS RTL msqrt +PASS RTL msqrt (horizontal overflow) +PASS mroot +PASS mroot (horizontal overflow) +PASS RTL mroot +PASS RTL mroot (horizontal overflow) +PASS msub +PASS msub (horizontal overflow) +PASS RTL msub +PASS RTL msub (horizontal overflow) +PASS msup +PASS msup (horizontal overflow) +PASS RTL msup +PASS RTL msup (horizontal overflow) +PASS msubsup +PASS msubsup (horizontal overflow) +PASS RTL msubsup +PASS RTL msubsup (horizontal overflow) +PASS mmultiscripts +PASS mmultiscripts (horizontal overflow) +PASS RTL mmultiscripts +PASS RTL mmultiscripts (horizontal overflow) +PASS mtext +PASS mtext (horizontal overflow) +PASS RTL mtext +PASS RTL mtext (horizontal overflow) +PASS legacy menclose +PASS legacy menclose (horizontal overflow) +PASS RTL legacy menclose +PASS RTL legacy menclose (horizontal overflow) +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X +X +X + +X +X +X +X +X + +X +X +X +X +X +X +X +X +X +X + +X +X +X +X +X + +X +X +X +X +X +X X X + +X X X + +X X X +X X X + +X X X + +X X X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X + diff --git a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt new file mode 100644 index 0000000000000..a522ff0d18539 --- /dev/null +++ b/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt @@ -0,0 +1,156 @@ + +PASS mrow +PASS mrow (vertical overflow) +PASS mpadded +PASS mpadded (vertical overflow) +PASS msqrt +PASS msqrt (vertical overflow) +PASS mroot +PASS mroot (vertical overflow) +PASS munder +PASS munder (vertical overflow) +PASS mover +PASS mover (vertical overflow) +PASS munderover +PASS munderover (vertical overflow) +PASS msub +PASS msub (vertical overflow) +PASS msup +PASS msup (vertical overflow) +PASS msubsup +PASS msubsup (vertical overflow) +PASS mmultiscripts +PASS mmultiscripts (vertical overflow) +PASS mtext +PASS mtext (vertical overflow) +PASS legacy menclose +PASS legacy menclose (vertical overflow) +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X + +X +X +X + +X +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X +X + +X +X +X + +X +X +X +X +X + +X +X + +X +X +X +X + +X +X + +X +X +X +X +X + +X +X +X + +X +X +X +X +X +X +X +X + +X +X +X +X +X + +X +X +X +X +X +X X X + +X X X + +X X X +X +X +X + +X +X +X + +X +X +X + diff --git a/LayoutTests/mathml/presentation/mspace-prefered-width-expected.html b/LayoutTests/mathml/presentation/mspace-prefered-width-expected.html index 814f339dce709..aec26842c0f5f 100644 --- a/LayoutTests/mathml/presentation/mspace-prefered-width-expected.html +++ b/LayoutTests/mathml/presentation/mspace-prefered-width-expected.html @@ -14,10 +14,10 @@ - + - + diff --git a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt index eba20416b3051..aa738f98c952e 100644 --- a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt +++ b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt @@ -1,19 +1,19 @@ -FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 63 -FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 20 -FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 20 +FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 70 +FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 78 +FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 75 +FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 41 +FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 45 +FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 45 diff --git a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt deleted file mode 100644 index 4b6bc4316f692..0000000000000 --- a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt +++ /dev/null @@ -1,396 +0,0 @@ - -FAIL width and height properties on maction assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on maction assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on maction (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on maction (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on menclose assert_approx_equals: width expected 500 +/- 1 but got 91.15625 -FAIL inline-size and block-size properties on menclose assert_approx_equals: width expected 600 +/- 1 but got 91.15625 -FAIL width and height properties on menclose (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 91.15625 -FAIL width property on menclose (preferred width) assert_approx_equals: expected 300 +/- 1 but got 91.15625 -FAIL width and height properties on merror assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on merror assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on merror (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on merror (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on mfrac assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mfrac assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mfrac (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mfrac (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -PASS width and height properties on mi -PASS inline-size and block-size properties on mi -PASS width and height properties on mi (content overflowing) -PASS width property on mi (preferred width) -FAIL width and height properties on mmultiscripts assert_approx_equals: width expected 500 +/- 1 but got 140.890625 -FAIL inline-size and block-size properties on mmultiscripts assert_approx_equals: width expected 600 +/- 1 but got 140.890625 -FAIL width and height properties on mmultiscripts (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 140.890625 -FAIL width property on mmultiscripts (preferred width) assert_approx_equals: expected 300 +/- 1 but got 140.890625 -PASS width and height properties on mn -PASS inline-size and block-size properties on mn -PASS width and height properties on mn (content overflowing) -PASS width property on mn (preferred width) -PASS width and height properties on mo -PASS inline-size and block-size properties on mo -PASS width and height properties on mo (content overflowing) -FAIL width property on mo (preferred width) assert_approx_equals: expected 300 +/- 1 but got 308.875 -FAIL width and height properties on mover assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mover assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mover (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mover (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on mpadded assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mpadded assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mpadded (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mpadded (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on mphantom assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mphantom assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mphantom (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mphantom (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on mroot assert_approx_equals: width expected 500 +/- 1 but got 138.546875 -FAIL inline-size and block-size properties on mroot assert_approx_equals: width expected 600 +/- 1 but got 138.546875 -FAIL width and height properties on mroot (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 138.546875 -FAIL width property on mroot (preferred width) assert_approx_equals: expected 300 +/- 1 but got 142.546875 -FAIL width and height properties on mrow assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mrow assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mrow (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mrow (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -PASS width and height properties on ms -PASS inline-size and block-size properties on ms -PASS width and height properties on ms (content overflowing) -PASS width property on ms (preferred width) -FAIL width and height properties on mspace assert_approx_equals: width expected 500 +/- 1 but got 0 -FAIL inline-size and block-size properties on mspace assert_approx_equals: width expected 600 +/- 1 but got 0 -FAIL width and height properties on mspace (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 0 -FAIL width property on mspace (preferred width) assert_approx_equals: expected 300 +/- 1 but got 0 -FAIL width and height properties on msqrt assert_approx_equals: width expected 500 +/- 1 but got 93 -FAIL inline-size and block-size properties on msqrt assert_approx_equals: width expected 600 +/- 1 but got 93 -FAIL width and height properties on msqrt (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 93 -FAIL width property on msqrt (preferred width) assert_approx_equals: expected 300 +/- 1 but got 97 -FAIL width and height properties on mstyle assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on mstyle assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on mstyle (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on mstyle (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on msub assert_approx_equals: width expected 500 +/- 1 but got 140.890625 -FAIL inline-size and block-size properties on msub assert_approx_equals: width expected 600 +/- 1 but got 140.890625 -FAIL width and height properties on msub (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 140.890625 -FAIL width property on msub (preferred width) assert_approx_equals: expected 300 +/- 1 but got 140.890625 -FAIL width and height properties on msubsup assert_approx_equals: width expected 500 +/- 1 but got 140.890625 -FAIL inline-size and block-size properties on msubsup assert_approx_equals: width expected 600 +/- 1 but got 140.890625 -FAIL width and height properties on msubsup (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 140.890625 -FAIL width property on msubsup (preferred width) assert_approx_equals: expected 300 +/- 1 but got 140.890625 -FAIL width and height properties on msup assert_approx_equals: width expected 500 +/- 1 but got 140.890625 -FAIL inline-size and block-size properties on msup assert_approx_equals: width expected 600 +/- 1 but got 140.890625 -FAIL width and height properties on msup (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 140.890625 -FAIL width property on msup (preferred width) assert_approx_equals: expected 300 +/- 1 but got 140.890625 -PASS width and height properties on mtable -PASS inline-size and block-size properties on mtable -PASS width property on mtable (preferred width) -PASS width and height properties on mtext -PASS inline-size and block-size properties on mtext -PASS width and height properties on mtext (content overflowing) -PASS width property on mtext (preferred width) -FAIL width and height properties on munder assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on munder assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on munder (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on munder (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on munderover assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on munderover assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on munderover (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on munderover (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -FAIL width and height properties on semantics assert_approx_equals: width expected 500 +/- 1 but got 80 -FAIL inline-size and block-size properties on semantics assert_approx_equals: width expected 600 +/- 1 but got 80 -FAIL width and height properties on semantics (content overflowing) assert_approx_equals: width expected 2 +/- 1 but got 80 -FAIL width property on semantics (preferred width) assert_approx_equals: expected 300 +/- 1 but got 80 -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -aaaaaaaaaa -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -aaaaaaaaaa -aaaaaaaaaa -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -aaaaaaaaaa -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -aaaaaaaaaa -aaaaaaaaaa -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a diff --git a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt deleted file mode 100644 index 44b40b630745a..0000000000000 --- a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt +++ /dev/null @@ -1,244 +0,0 @@ - -FAIL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (horizontal overflow) -PASS RTL mtext -PASS RTL mtext (horizontal overflow) -FAIL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X - diff --git a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt b/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt deleted file mode 100644 index 1ecc5234eae0d..0000000000000 --- a/LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt +++ /dev/null @@ -1,156 +0,0 @@ - -PASS mrow -PASS mrow (vertical overflow) -FAIL mpadded assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mpadded (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (vertical overflow) -FAIL legacy menclose assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X - diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt index eba20416b3051..aa738f98c952e 100644 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt +++ b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt @@ -1,19 +1,19 @@ -FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 63 -FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 20 -FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 20 +FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 70 +FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 78 +FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 75 +FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 41 +FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 45 +FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 45 diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt deleted file mode 100644 index 44b40b630745a..0000000000000 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt +++ /dev/null @@ -1,244 +0,0 @@ - -FAIL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (horizontal overflow) -PASS RTL mtext -PASS RTL mtext (horizontal overflow) -FAIL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X - diff --git a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt b/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt deleted file mode 100644 index 1ecc5234eae0d..0000000000000 --- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt +++ /dev/null @@ -1,156 +0,0 @@ - -PASS mrow -PASS mrow (vertical overflow) -FAIL mpadded assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mpadded (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (vertical overflow) -FAIL legacy menclose assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X - diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt index eba20416b3051..aa738f98c952e 100644 --- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt +++ b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/display-2-expected.txt @@ -1,19 +1,19 @@ -FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 63 -FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 20 -FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 20 -FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 28 -FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 20 -FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 20 -FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 20 -FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 20 -FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 20 +FAIL block display assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with contrained width assert_approx_equals: block size expected 78 +/- 1 but got 70 +FAIL list display inside display block assert_approx_equals: block size expected 194 +/- 1 but got 78 +FAIL inline display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL inline-block display assert_approx_equals: block size expected 29 +/- 1 but got 41 +FAIL table display (math) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL inline-table display (math) assert_approx_equals: block size expected 58 +/- 1 but got 75 +FAIL inline-table display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 95 +FAIL flexbox display (math) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL flexbox display (mrow) assert_approx_equals: block size expected 95 +/- 1 but got 45 +FAIL grid display (math) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL grid display (mrow) assert_approx_equals: block size expected 99 +/- 1 but got 45 +FAIL ruby display (math) assert_approx_equals: block size expected 78 +/- 1 but got 41 +FAIL ruby display (mrow) assert_approx_equals: block size expected 78 +/- 1 but got 45 +FAIL block display with column width (math) assert_approx_equals: block size expected 49 +/- 1 but got 45 +FAIL block display with column width (mrow) assert_approx_equals: block size expected 49 +/- 1 but got 45 diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt deleted file mode 100644 index 44b40b630745a..0000000000000 --- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-005-expected.txt +++ /dev/null @@ -1,244 +0,0 @@ - -FAIL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mrow (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mpadded (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msqrt (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mroot (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msub (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL msubsup (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL mmultiscripts (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (horizontal overflow) -PASS RTL mtext -PASS RTL mtext (horizontal overflow) -FAIL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose assert_greater_than: width is modified expected a number greater than 1 but got 0 -FAIL RTL legacy menclose (horizontal overflow) assert_greater_than: width is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X - diff --git a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt b/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt deleted file mode 100644 index 1ecc5234eae0d..0000000000000 --- a/LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/width-height-006-expected.txt +++ /dev/null @@ -1,156 +0,0 @@ - -PASS mrow -PASS mrow (vertical overflow) -FAIL mpadded assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mpadded (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msqrt (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mroot (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munder (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL munderover (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msub (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL msubsup (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL mmultiscripts (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -PASS mtext -PASS mtext (vertical overflow) -FAIL legacy menclose assert_greater_than: height is modified expected a number greater than 1 but got 0 -FAIL legacy menclose (vertical overflow) assert_greater_than: height is modified expected a number greater than 1 but got 0 -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X - -X -X - -X -X -X -X - -X -X - -X -X -X -X -X - -X -X -X - -X -X -X -X -X -X -X -X - -X -X -X -X -X - -X -X -X -X -X -X X X - -X X X - -X X X -X -X -X - -X -X -X - -X -X -X - diff --git a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp index 9f35f3884c546..b7a00924ddf72 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp @@ -283,6 +283,51 @@ void RenderMathMLBlock::adjustLayoutForBorderAndPadding() shiftInFlowChildren(style().isLeftToRightDirection() ? borderAndPaddingStart() : borderAndPaddingEnd(), borderAndPaddingBefore()); } +RenderMathMLBlock::SizeAppliedToMathContent RenderMathMLBlock::sizeAppliedToMathContent(LayoutPhase phase) +{ + SizeAppliedToMathContent sizes; + // FIXME: Resolve percentages. + // https://github.com/w3c/mathml-core/issues/76 + if (style().logicalWidth().isFixed()) + sizes.logicalWidth = style().logicalWidth().value(); + + // FIXME: Resolve percentages. + // https://github.com/w3c/mathml-core/issues/77 + if (phase == LayoutPhase::Layout && style().logicalHeight().isFixed()) + sizes.logicalHeight = style().logicalHeight().value(); + + return sizes; +} + +LayoutUnit RenderMathMLBlock::applySizeToMathContent(LayoutPhase phase, const SizeAppliedToMathContent& sizes) +{ + if (phase == LayoutPhase::CalculatePreferredLogicalWidth) { + ASSERT(preferredLogicalWidthsDirty()); + if (sizes.logicalWidth) { + m_minPreferredLogicalWidth = *sizes.logicalWidth; + m_maxPreferredLogicalWidth = *sizes.logicalWidth; + } + return LayoutUnit(); + } + + ASSERT(phase == LayoutPhase::Layout); + + LayoutUnit inlineShift; + if (sizes.logicalWidth) { + auto oldWidth = logicalWidth(); + if (isMathContentCentered()) { + inlineShift = (*sizes.logicalWidth - oldWidth) / 2; + } else if (!style().isLeftToRightDirection()) + inlineShift = *sizes.logicalWidth - oldWidth; + setLogicalWidth(*sizes.logicalWidth); + } + + if (sizes.logicalHeight) + setLogicalHeight(*sizes.logicalHeight); + + return inlineShift; +} + } #endif diff --git a/Source/WebCore/rendering/mathml/RenderMathMLBlock.h b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h index df5040fcc8636..4c2e3682cb6d8 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLBlock.h +++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h @@ -81,6 +81,22 @@ class RenderMathMLBlock : public RenderBlock { void adjustPreferredLogicalWidthsForBorderAndPadding(); void adjustLayoutForBorderAndPadding(); + enum class LayoutPhase : uint8_t { + CalculatePreferredLogicalWidth, + Layout, + }; + struct SizeAppliedToMathContent { + std::optional logicalWidth; + std::optional logicalHeight; + }; + // Retrieve the specified (and supported) CSS width/height to apply to math + // content box, if any. + SizeAppliedToMathContent sizeAppliedToMathContent(LayoutPhase); + // Whether math content should be centered on the inline axis if a different size is specified by the user. + virtual bool isMathContentCentered() const { return false; } + // Apply the specified CSS width/height to the math content box and return inline shift for further adjustments. + LayoutUnit applySizeToMathContent(LayoutPhase, const SizeAppliedToMathContent&); + private: bool isRenderMathMLBlock() const final { return true; } ASCIILiteral renderName() const override { return "RenderMathMLBlock"_s; } diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp index 8b1a77eb8f7fe..5a17308bc58af 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp @@ -190,6 +190,9 @@ void RenderMathMLFraction::computePreferredLogicalWidths() LayoutUnit denominatorWidth = denominator().maxPreferredLogicalWidth() + marginIntrinsicLogicalWidthForChild(denominator()); m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = std::max(numeratorWidth, denominatorWidth); + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -267,6 +270,10 @@ void RenderMathMLFraction::layoutBlock(bool relayoutChildren, LayoutUnit) setLogicalHeight(verticalOffset); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); @@ -291,6 +298,7 @@ void RenderMathMLFraction::paint(PaintInfo& info, const LayoutPoint& paintOffset info.context().setStrokeThickness(thickness); info.context().setStrokeStyle(StrokeStyle::SolidStroke); info.context().setStrokeColor(style().visitedDependentColorWithColorFilter(CSSPropertyColor)); + // MathML Core says the fraction bar takes the full width of the content box. info.context().drawLine(adjustedPaintOffset, roundedIntPoint(LayoutPoint(adjustedPaintOffset.x() + logicalWidth() - borderAndPaddingLogicalWidth(), LayoutUnit(adjustedPaintOffset.y())))); } diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFraction.h b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h index 9b9c838984f69..45f5fe30ae6b1 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLFraction.h +++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h @@ -55,6 +55,7 @@ class RenderMathMLFraction final : public RenderMathMLRow { std::optional firstLineBaseline() const final; void paint(PaintInfo&, const LayoutPoint&) final; RenderMathMLOperator* unembellishedOperator() const final; + bool isMathContentCentered() const final { return true; } MathMLFractionElement& element() const { return static_cast(nodeForNonAnonymous()); } diff --git a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp index b67cdb456cccc..3938773bce418 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp @@ -167,6 +167,9 @@ void RenderMathMLMenclose::computePreferredLogicalWidths() preferredWidth += space.left + space.right; m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = preferredWidth; + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -198,6 +201,10 @@ void RenderMathMLMenclose::layoutBlock(bool relayoutChildren, LayoutUnit) m_contentRect = LayoutRect(space.left, space.top, contentWidth, contentAscent + contentDescent); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); m_contentRect.moveBy(LayoutPoint(borderLeft() + paddingLeft(), borderAndPaddingBefore())); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp b/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp index 0452bc9364aa6..c26a249169696 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp @@ -81,6 +81,9 @@ void RenderMathMLPadded::computePreferredLogicalWidths() preferredWidth = mpaddedWidth(preferredWidth); m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = preferredWidth; + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -118,6 +121,10 @@ void RenderMathMLPadded::layoutBlock(bool relayoutChildren, LayoutUnit) setLogicalWidth(width); setLogicalHeight(ascent + descent); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp index 26598116068be..2eb7b47f0990a 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp @@ -181,6 +181,9 @@ void RenderMathMLRoot::computePreferredLogicalWidths() } m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = preferredWidth; + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -272,6 +275,10 @@ void RenderMathMLRoot::layoutBlock(bool relayoutChildren, LayoutUnit) setLogicalHeight(ascent + descent); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp index 9248cb43db007..3a60679f102ae 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp @@ -134,6 +134,9 @@ void RenderMathMLRow::computePreferredLogicalWidths() m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = preferredLogicalWidthOfRowItems(); + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -171,8 +174,6 @@ void RenderMathMLRow::layoutBlock(bool relayoutChildren, LayoutUnit) recomputeLogicalWidth(); computeAndSetBlockDirectionMarginsOfChildren(); - setLogicalHeight(borderAndPaddingLogicalHeight() + scrollbarLogicalHeight()); - LayoutUnit width, ascent, descent; stretchVerticalOperatorsAndLayoutChildren(); getContentBoundingBox(width, ascent, descent); @@ -180,9 +181,11 @@ void RenderMathMLRow::layoutBlock(bool relayoutChildren, LayoutUnit) setLogicalWidth(width); setLogicalHeight(ascent + descent); - adjustLayoutForBorderAndPadding(); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); - updateLogicalHeight(); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp b/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp index 33329fd624a00..928b6192a00b8 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp @@ -233,6 +233,9 @@ void RenderMathMLScripts::computePreferredLogicalWidths() m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth; + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -481,6 +484,10 @@ void RenderMathMLScripts::layoutBlock(bool relayoutChildren, LayoutUnit) } } + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp b/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp index e5a616c0a0de0..56a326a2e8824 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp @@ -51,6 +51,9 @@ void RenderMathMLSpace::computePreferredLogicalWidths() m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = spaceWidth(); + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -89,10 +92,15 @@ void RenderMathMLSpace::layoutBlock(bool relayoutChildren, LayoutUnit) recomputeLogicalWidth(); - setLogicalWidth(spaceWidth() + borderAndPaddingLogicalWidth()); + setLogicalWidth(spaceWidth()); LayoutUnit height, depth; getSpaceHeightAndDepth(height, depth); - setLogicalHeight(height + depth + borderAndPaddingLogicalHeight()); + setLogicalHeight(height + depth); + + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + applySizeToMathContent(LayoutPhase::Layout, sizes); + + adjustLayoutForBorderAndPadding(); updateScrollInfoAfterLayout(); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp index 8f726f3816847..4f23d1bbd8439 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp +++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp @@ -206,6 +206,9 @@ void RenderMathMLUnderOver::computePreferredLogicalWidths() m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = preferredWidth; + auto sizes = sizeAppliedToMathContent(LayoutPhase::CalculatePreferredLogicalWidth); + applySizeToMathContent(LayoutPhase::CalculatePreferredLogicalWidth, sizes); + adjustPreferredLogicalWidthsForBorderAndPadding(); setPreferredLogicalWidthsDirty(false); @@ -372,6 +375,10 @@ void RenderMathMLUnderOver::layoutBlock(bool relayoutChildren, LayoutUnit pageLo setLogicalHeight(verticalOffset); + auto sizes = sizeAppliedToMathContent(LayoutPhase::Layout); + auto shift = applySizeToMathContent(LayoutPhase::Layout, sizes); + shiftInFlowChildren(shift, 0); + adjustLayoutForBorderAndPadding(); layoutPositionedObjects(relayoutChildren); diff --git a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h index 1eed35b6a66d9..17460935a04de 100644 --- a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h +++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h @@ -43,6 +43,7 @@ class RenderMathMLUnderOver final : public RenderMathMLScripts { private: bool isRenderMathMLScripts() const final { return false; } + bool isMathContentCentered() const final { return !shouldMoveLimits(); } ASCIILiteral renderName() const final { return "RenderMathMLUnderOver"_s; } MathMLUnderOverElement& element() const;