Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 11d1bc9dcc96db26818ef4cfba64719d474c4e89
https://github.com/WebKit/WebKit/commit/11d1bc9dcc96db26818ef4cfba64719d474c4e89
Author: Alan Baradlay <[email protected]>
Date: 2026-05-10 (Sun, 10 May 2026)
Changed paths:
M Source/WebCore/rendering/RenderBox.cpp
M Source/WebCore/rendering/RenderBox.h
M Source/WebCore/rendering/RenderFlexibleBox.cpp
M Source/WebCore/rendering/RenderImage.cpp
M Source/WebCore/rendering/RenderImage.h
M Source/WebCore/rendering/RenderReplaced.cpp
M Source/WebCore/rendering/RenderReplaced.h
M Source/WebCore/rendering/RenderWidget.cpp
M Source/WebCore/rendering/RenderWidget.h
M Source/WebCore/rendering/svg/RenderSVGRoot.cpp
M Source/WebCore/rendering/svg/RenderSVGRoot.h
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp
M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h
Log Message:
-----------
Clean up aspect ratio API: move preferredAspectRatio() to RenderBox, rename
FloatSize variant to preferredAspectRatioAsSize()
https://bugs.webkit.org/show_bug.cgi?id=314488
Reviewed by Antti Koivisto.
"Preferred aspect ratio" is a CSS Sizing 4 spec term that applies to all boxes,
not just replaced elements. Previously, the double API (aspectRatioValue) lived
on RenderBox while the FloatSize API (preferredAspectRatio) lived on
RenderReplaced, making it unclear which to call and when.
Now both preferredAspectRatio() (returns optional<double>) and
preferredAspectRatioAsSize() (returns FloatSize) are virtual on RenderBox.
Replaced elements override both to account for intrinsic ratios and the "auto"
keyword in aspect-ratio.
This eliminates the old aspectRatioValue() function and simplifies callers that
were doing preferredAspectRatio().aspectRatioDouble() - they now just call
preferredAspectRatio() directly.
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalMinMaxSizesByAspectRatio const):
(WebCore::RenderBox::computeIntrinsicKeywordLogicalWidths const):
(WebCore::RenderBox::computeSizingKeywordLogicalContentHeightUsingGeneric
const):
(WebCore::RenderBox::preferredAspectRatio const):
(WebCore::RenderBox::preferredAspectRatioAsSize const):
(WebCore::RenderBox::computeMinMaxLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::computeMinMaxLogicalHeightFromAspectRatio const):
(WebCore::RenderBox::aspectRatioValue const): Deleted.
* Source/WebCore/rendering/RenderBox.h:
* Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::isSVGRootWithIntrinsicAspectRatio):
(WebCore::RenderFlexibleBox::preferredAspectRatioForFlexItem const):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::preferredAspectRatioAsSize const):
(WebCore::RenderImage::preferredAspectRatio const): Deleted.
* Source/WebCore/rendering/RenderImage.h:
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicSizesConstrainedByTransferredMinMaxSizes
const):
(WebCore::RenderReplaced::preferredAspectRatio const):
(WebCore::RenderReplaced::preferredAspectRatioAsSize const):
(WebCore::RenderReplaced::computeAspectRatioAdjustedIntrinsicLogicalWidths
const):
(WebCore::RenderReplaced::computeIntrinsicKeywordLogicalWidths const):
* Source/WebCore/rendering/RenderReplaced.h:
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::preferredAspectRatioAsSize const):
(WebCore::RenderWidget::preferredAspectRatio const): Deleted.
* Source/WebCore/rendering/RenderWidget.h:
* Source/WebCore/rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::hasIntrinsicAspectRatio const):
(WebCore::RenderSVGRoot::preferredAspectRatioAsSize const):
(WebCore::RenderSVGRoot::preferredAspectRatio const): Deleted.
* Source/WebCore/rendering/svg/RenderSVGRoot.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::hasIntrinsicAspectRatio const):
(WebCore::LegacyRenderSVGRoot::preferredAspectRatioAsSize const):
(WebCore::LegacyRenderSVGRoot::preferredAspectRatio const): Deleted.
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h:
Canonical link: https://commits.webkit.org/312980@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications