Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9270baa94bfb2d90be27e9a5f17693316144f1b8
https://github.com/WebKit/WebKit/commit/9270baa94bfb2d90be27e9a5f17693316144f1b8
Author: Simon Fraser <[email protected]>
Date: 2026-09-16 (Wed, 16 Sep 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square.html
M Source/WebCore/rendering/BorderShape.cpp
M Source/WebCore/rendering/BorderShape.h
Log Message:
-----------
[corner-shape] Outlines with negative offset look ugly
https://bugs.webkit.org/show_bug.cgi?id=323558
rdar://186820849
Reviewed by Tim Nguyen.
Bevel, notch and square corners are adjusted for insets (e.g. for an outline
with
negative inset) by offsetting the border-box corner at constant thickness
rather than by
scaling their radius (rebuildOffsetCornersFromReference). There were three
issues for a
negative (inset) offset:
The rebuilt corner follows the border-box curve, so it extends past the edges
of the
rect it is being offset relative to. The inner contour already trimmed to that
rect, but
the outer one did not, resulting in uneven thickness of inset outlines on bevel
corners.
When the inset outline becomes empty, we now detect that we should draw nothing.
Fix a rendering issue when the inset is larger than the notch size.
Tests:
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel-ref.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001-ref.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002-ref.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003-ref.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square-ref.html
imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square.html
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-bevel.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch001.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch002.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-notch003.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-outline-negative-offset-square.html:
Added.
* Source/WebCore/rendering/BorderShape.cpp:
(WebCore::BorderShape::outerShapeIsRectangular const):
(WebCore::BorderShape::innerShapeIsRectangular const):
(WebCore::cornerIsRebuiltFromReference):
(WebCore::rebuildOffsetCornersFromReference):
(WebCore::BorderShape::hasNonRoundCornerShape const):
(WebCore::addOuterCornerShapeToPath):
(WebCore::BorderShape::pathForOuterCornerShape const):
(WebCore::isShaped):
* Source/WebCore/rendering/BorderShape.h:
Canonical link: https://commits.webkit.org/321259@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications