Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e40d6ccd5ea29036171b8b1d74bf2eac13459c03
      
https://github.com/WebKit/WebKit/commit/e40d6ccd5ea29036171b8b1d74bf2eac13459c03
  Author: Alan Baradlay <[email protected]>
  Date:   2026-04-07 (Tue, 07 Apr 2026)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline.html
    M Source/WebCore/rendering/OrderIterator.cpp

  Log Message:
  -----------
  Flex items with different order values cause wrong baseline alignment
https://bugs.webkit.org/show_bug.cgi?id=311536

Reviewed by Antti Koivisto.

When a flex container's baseline is computed and items have different
order values (e.g. order:1, order:2, order:3), the last baseline should
come from the item with the highest order value. To find it,
OrderIterator::reverse() is supposed to iterate order values from highest
to lowest.

The old code tried to reverse a std::set by re-inserting its elements in
reverse - but a set is always sorted, so the "reversal" was a no-op. The
reversed iterator still visited order values low-to-high, picking the
wrong item for the baseline.

The fix: instead of reversing the set, walk it backward. reset() starts
the iterator at the last element, and next() decrements instead of
incrementing when reversed.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-multiple.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-last-baseline.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-order-wrap-reverse-baseline.html:
 Added.
* Source/WebCore/rendering/OrderIterator.cpp:
(WebCore::OrderIterator::next):
(WebCore::OrderIterator::reset):
(WebCore::OrderIterator::reverse):

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



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

Reply via email to