Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8faa195818613650b9227d51695bd6b48703b7ce
      
https://github.com/WebKit/WebKit/commit/8faa195818613650b9227d51695bd6b48703b7ce
  Author: Simon Fraser <[email protected]>
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-inset-shadow.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004.html
    M Source/WebCore/platform/graphics/BezierUtilities.cpp
    M Source/WebCore/platform/graphics/BezierUtilities.h
    M Source/WebCore/platform/graphics/CornerShapeUtilities.cpp
    M Source/WebCore/platform/graphics/CornerShapeUtilities.h
    M Source/WebCore/rendering/BorderShape.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/BezierUtilitiesTests.cpp

  Log Message:
  -----------
  [corner-shape] Some combinations of corner-shape with thick borders have 
incorrect rendering
https://bugs.webkit.org/show_bug.cgi?id=323565
rdar://186808871

Reviewed by Abrar Rahman Protyasha.

The inside border edge can self-intersect with some combinations of 
border-width and concave
corner shapes; make sure these cases don't result in bad rendering by removing 
inner corners
when necessary, and computing when the entire inner shape disappears.

Tests: Tools/TestWebKitAPI/Tests/WebCore/BezierUtilitiesTests.cpp
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001-ref.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002-ref.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003-ref.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004-ref.html
       
imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004.html

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse001.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse002.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-collapse003.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/inner-corner-intersection004.html:
 Added.
* Source/WebCore/platform/graphics/BezierUtilities.cpp:
(WebCore::numberOfCrossingsWithSegment):
* Source/WebCore/platform/graphics/BezierUtilities.h:
* Source/WebCore/platform/graphics/CornerShapeUtilities.cpp:
(WebCore::borderContourPath):
* Source/WebCore/platform/graphics/CornerShapeUtilities.h:
* Source/WebCore/rendering/BorderShape.cpp:
(WebCore::addAlignedToCurveOffsetContour):
(WebCore::BorderShape::pathForOuterCornerShape const):
(WebCore::addInnerCornerShapeToPath):
(WebCore::BorderShape::pathForInnerCornerShape const):
(WebCore::BorderShape::pathForInnerShape const):
* Tools/TestWebKitAPI/Tests/WebCore/BezierUtilitiesTests.cpp:
(TestWebKitAPI::TEST(BezierUtilities, 
CountsCrossingsOfASegmentThatCutsTheCurve)):
(TestWebKitAPI::TEST(BezierUtilities, 
CountsNoCrossingsForASegmentStoppingShortOfTheCurve)):
(TestWebKitAPI::TEST(BezierUtilities, 
CountsBothCrossingsOfACurveThatDoublesBack)):
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-borders/corner-shape/corner-shape-inset-shadow.html:

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



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

Reply via email to