Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d45ee7b421a1d3743bb20ebf663dd789fbc2de1a
      
https://github.com/WebKit/WebKit/commit/d45ee7b421a1d3743bb20ebf663dd789fbc2de1a
  Author: Ahmad Saleem <[email protected]>
  Date:   2026-05-08 (Fri, 08 May 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    A 
LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/absolutely-positioned-002-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/absolutely-positioned-002.html
    M Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLToken.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp

  Log Message:
  -----------
  Fix CSS absolute positioning on MathML elements by adding missing 
updateLogicalHeight() calls
https://bugs.webkit.org/show_bug.cgi?id=310444
rdar://173088146

Reviewed by Alan Baradlay.

This patch aligns WebKit with Blink / Chromium.

Most MathML renderers override layoutBlock() without calling 
updateLogicalHeight(),
which is responsible for computing logicalTop/logicalBottom from CSS top/bottom
properties on absolutely positioned elements via 
computeOutOfFlowPositionedLogicalHeight().

This means position:absolute with top/left on any MathML element (mspace, mrow, 
mfrac,
msqrt, msub, munder, mpadded, menclose, mo, mtext, etc.) silently ignores the
top/bottom properties, rendering the element at its default position instead.

Add updateLogicalHeight() to all MathML layoutBlock() overrides that were 
missing it:
RenderMathMLSpace, RenderMathMLRow, RenderMathMLFraction, RenderMathMLRoot,
RenderMathMLUnderOver, RenderMathMLScripts, RenderMathMLMenclose, 
RenderMathMLPadded,
RenderMathMLToken, and RenderMathMLOperator.

RenderMathMLBlock and RenderMathMLMath already had the call.

Test: 
imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/absolutely-positioned-002.html

* LayoutTests/TestExpectations: Progression
* 
LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/absolutely-positioned-002-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/out-of-flow/absolutely-positioned-002.html:
 Added.
* Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp:
(WebCore::RenderMathMLMenclose::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp:
(WebCore::RenderMathMLPadded::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp:
(WebCore::RenderMathMLSpace::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::layoutBlock):
* Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::layoutBlock):

Canonical link: https://commits.webkit.org/312905@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to