Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 547513aab5a253b71a124a051d6bd9e2313b7c21
https://github.com/WebKit/WebKit/commit/547513aab5a253b71a124a051d6bd9e2313b7c21
Author: Alan Baradlay <[email protected]>
Date: 2026-05-10 (Sun, 10 May 2026)
Changed paths:
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:
-----------
Remove virtual computeIntrinsicSize() from RenderReplaced and consolidate
logic into a static helper
https://bugs.webkit.org/show_bug.cgi?id=314482
Reviewed by Antti Koivisto.
computeIntrinsicSize() was a confusing API. It was virtual on RenderReplaced,
overridden by RenderImage and RenderWidget, but its name didn't clarify when to
call it vs. the similarly-named intrinsicSize() (which returns the cached
m_intrinsicSize). The two returned the same data in different types (FloatSize
vs
LayoutSize), and the only meaningful difference was that the overrides queried
the embedded SVG root for fresh values while the base just read the cache.
Together with computeAspectRatioAdjustedIntrinsicLogicalWidths (removed in a
prior commit) and computeIntrinsicAspectRatio (also removed), this was one of
several similarly-named "compute intrinsic something" functions on
RenderReplaced
whose roles and call ordering were unclear.
In practice, only one caller needed the virtual dispatch:
computeIntrinsicSizesConstrainedByTransferredMinMaxSizes. The SVG root renderers
called their own version internally, and everyone else used intrinsicSize().
The fix replaces all three overrides with a single file-local static helper
(computeIntrinsicSizeForRenderer) that checks embeddedSVGRoot() and handles the
SVG case inline. The SVG roots keep their own private computeIntrinsicSize() for
internal use.
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::computeIntrinsicSize const): Deleted.
* Source/WebCore/rendering/RenderImage.h:
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::isVideoWithDefaultObjectSize):
(WebCore::computeIntrinsicSizeForRenderer):
(WebCore::RenderReplaced::computeIntrinsicSizesConstrainedByTransferredMinMaxSizes
const):
(WebCore::RenderReplaced::computeIntrinsicSize const): Deleted.
* Source/WebCore/rendering/RenderReplaced.h:
(WebCore::RenderReplaced::embeddedSVGRoot const):
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::computeIntrinsicSize const): Deleted.
* Source/WebCore/rendering/RenderWidget.h:
* Source/WebCore/rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeIntrinsicSize const):
* Source/WebCore/rendering/svg/RenderSVGRoot.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::computeIntrinsicSize const):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.h:
Canonical link: https://commits.webkit.org/312979@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications