Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 90df063ab65a7573a3197f1f05216a410ee43789
https://github.com/WebKit/WebKit/commit/90df063ab65a7573a3197f1f05216a410ee43789
Author: Antti Koivisto <[email protected]>
Date: 2025-02-01 (Sat, 01 Feb 2025)
Changed paths:
M Source/WebCore/animation/TimelineRange.cpp
M Source/WebCore/animation/TimelineRange.h
M Source/WebCore/css/CSSToStyleMap.cpp
M Source/WebCore/css/CSSToStyleMap.h
M Source/WebCore/platform/graphics/TabSize.h
M Source/WebCore/rendering/style/GridTrackSize.h
M Source/WebCore/rendering/style/TextDecorationThickness.h
M Source/WebCore/style/StyleBuilderConverter.h
M Source/WebCore/style/StyleBuilderState.h
Log Message:
-----------
Add Style::BuilderConverter::requiredDowncast<> and use it
https://bugs.webkit.org/show_bug.cgi?id=286804
rdar://143955747
Reviewed by Alan Baradlay.
Add Style::BuilderConverter::requiredDowncast<> and
Style::BuilderConverter::requiredPairDowncast<> and use them to
replace the use of unchecked downcast<> in BuilderConverter and CSSToStyleMap.
These perform dynamicDowncast and on
failure mark the property invalid at computed value time (so it behaves like
value 'unset').
This patch doesn't yet cover CSSValueList cases.
It also
- passes Style::BuilderState as non-const reference in some places which still
used const.
- adds default constructors to some style types so we can return { } on failure.
* Source/WebCore/animation/TimelineRange.cpp:
(WebCore::SingleTimelineRange::range):
* Source/WebCore/animation/TimelineRange.h:
* Source/WebCore/css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::CSSToStyleMap):
(WebCore::CSSToStyleMap::styleImage):
(WebCore::CSSToStyleMap::mapFillImage):
(WebCore::convertToLengthSize):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationTimeline):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapAnimationRangeStart):
(WebCore::CSSToStyleMap::mapAnimationRangeEnd):
(WebCore::CSSToStyleMap::mapNinePieceImage):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageWidth):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageSide):
(WebCore::CSSToStyleMap::styleImage const): Deleted.
(WebCore::CSSToStyleMap::mapFillImage const): Deleted.
(WebCore::CSSToStyleMap::mapFillSize const): Deleted.
(WebCore::CSSToStyleMap::mapFillXPosition const): Deleted.
(WebCore::CSSToStyleMap::mapFillYPosition const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationDelay const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationDuration const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationIterationCount const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationName const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationTimeline const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationTimingFunction const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationRangeStart const): Deleted.
(WebCore::CSSToStyleMap::mapAnimationRangeEnd const): Deleted.
(WebCore::CSSToStyleMap::mapNinePieceImage const): Deleted.
(WebCore::CSSToStyleMap::mapNinePieceImageSlice const): Deleted.
(WebCore::CSSToStyleMap::mapNinePieceImageWidth const): Deleted.
(WebCore::CSSToStyleMap::mapNinePieceImageQuad const): Deleted.
(WebCore::CSSToStyleMap::mapNinePieceImageSide const): Deleted.
* Source/WebCore/css/CSSToStyleMap.h:
* Source/WebCore/platform/graphics/TabSize.h:
* Source/WebCore/rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::GridTrackSize):
* Source/WebCore/rendering/style/TextDecorationThickness.h:
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertStringOrAutoAtom):
(WebCore::Style::BuilderConverter::convertStringOrNoneAtom):
(WebCore::Style::BuilderConverter::requiredDowncast):
(WebCore::Style::BuilderConverter::requiredPairDowncast):
(WebCore::Style::BuilderConverter::convertLength):
(WebCore::Style::BuilderConverter::convertLengthAllowingNumber):
(WebCore::Style::BuilderConverter::convertLengthOrAuto):
(WebCore::Style::BuilderConverter::convertLengthSizing):
(WebCore::Style::BuilderConverter::convertListStyleType):
(WebCore::Style::BuilderConverter::convertLengthMaxSizing):
(WebCore::Style::BuilderConverter::convertTabSize):
(WebCore::Style::BuilderConverter::convertComputedLength):
(WebCore::Style::BuilderConverter::convertLineWidth):
(WebCore::Style::BuilderConverter::convertToRadiusLength):
(WebCore::Style::BuilderConverter::convertRadius):
(WebCore::Style::BuilderConverter::convertPositionComponentX):
(WebCore::Style::BuilderConverter::convertPositionComponentY):
(WebCore::Style::BuilderConverter::convertPositionComponent):
(WebCore::Style::BuilderConverter::convertPosition):
(WebCore::Style::BuilderConverter::convertPositionOrAutoOrNormal):
(WebCore::Style::BuilderConverter::convertPositionOrAuto):
(WebCore::Style::BuilderConverter::convertTextDecorationLine):
(WebCore::Style::BuilderConverter::convertTextTransform):
(WebCore::Style::BuilderConverter::convertNumber):
(WebCore::Style::BuilderConverter::convertNumberOrAuto):
(WebCore::Style::BuilderConverter::convertWebkitHyphenateLimitLines):
(WebCore::Style::BuilderConverter::convertStyleImage):
(WebCore::Style::BuilderConverter::convertImageOrientation):
(WebCore::Style::BuilderConverter::convertTransform):
(WebCore::Style::BuilderConverter::convertTranslate):
(WebCore::Style::BuilderConverter::convertRotate):
(WebCore::Style::BuilderConverter::convertScale):
(WebCore::Style::BuilderConverter::convertColorScheme):
(WebCore::Style::BuilderConverter::convertString):
(WebCore::Style::BuilderConverter::convertStringOrAuto):
(WebCore::Style::BuilderConverter::convertStringOrNone):
(WebCore::Style::BuilderConverter::convertTextEmphasisPosition):
(WebCore::Style::BuilderConverter::convertTextAlign):
(WebCore::Style::BuilderConverter::convertTextAlignLast):
(WebCore::Style::BuilderConverter::convertDPath):
(WebCore::Style::BuilderConverter::convertPathOperation):
(WebCore::Style::BuilderConverter::convertBasicShape):
(WebCore::Style::BuilderConverter::convertResize):
(WebCore::Style::BuilderConverter::convertMarqueeRepetition):
(WebCore::Style::BuilderConverter::convertMarqueeSpeed):
(WebCore::Style::BuilderConverter::convertQuotes):
(WebCore::Style::BuilderConverter::convertTextUnderlinePosition):
(WebCore::Style::BuilderConverter::convertTextUnderlineOffset):
(WebCore::Style::BuilderConverter::convertTextDecorationThickness):
(WebCore::Style::BuilderConverter::convertReflection):
(WebCore::Style::BuilderConverter::convertTextEdge):
(WebCore::Style::BuilderConverter::convertInitialLetter):
(WebCore::Style::BuilderConverter::convertTextStrokeWidth):
(WebCore::Style::BuilderConverter::convertLineBoxContain):
(WebCore::Style::BuilderConverter::convertShapeValue):
(WebCore::Style::BuilderConverter::convertScrollSnapType):
(WebCore::Style::BuilderConverter::convertScrollSnapAlign):
(WebCore::Style::BuilderConverter::convertScrollSnapStop):
(WebCore::Style::BuilderConverter::convertScrollbarColor):
(WebCore::Style::BuilderConverter::convertScrollbarGutter):
(WebCore::Style::BuilderConverter::convertScrollbarWidth):
(WebCore::Style::BuilderConverter::createGridTrackBreadth):
(WebCore::Style::BuilderConverter::createGridTrackSize):
(WebCore::Style::BuilderConverter::createGridTrackList):
(WebCore::Style::BuilderConverter::createGridPosition):
(WebCore::Style::BuilderConverter::createImplicitNamedGridLinesFromGridArea):
(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridTrackSize):
(WebCore::Style::BuilderConverter::convertGridTrackList):
(WebCore::Style::BuilderConverter::convertGridPosition):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):
(WebCore::Style::BuilderConverter::convertContentAlignmentDataList):
(WebCore::Style::BuilderConverter::convertMasonryAutoFlow):
(WebCore::Style::zoomWithTextZoomFactor):
(WebCore::Style::BuilderConverter::cssToLengthConversionDataWithTextZoomFactor):
(WebCore::Style::BuilderConverter::convertTextLengthOrNormal):
(WebCore::Style::BuilderConverter::convertPerspective):
(WebCore::Style::BuilderConverter::convertMarqueeIncrement):
(WebCore::Style::BuilderConverter::convertFilterOperations):
(WebCore::Style::BuilderConverter::convertAppleColorFilterOperations):
(WebCore::Style::BuilderConverter::convertFontStyleFromValue):
(WebCore::Style::BuilderConverter::convertFontWeight):
(WebCore::Style::BuilderConverter::convertFontWidth):
(WebCore::Style::BuilderConverter::convertFontFeatureSettings):
(WebCore::Style::BuilderConverter::convertFontVariationSettings):
(WebCore::Style::BuilderConverter::convertFontSizeAdjust):
(WebCore::Style::BuilderConverter::convertTouchCallout):
(WebCore::Style::BuilderConverter::convertTapHighlightColor):
(WebCore::Style::BuilderConverter::convertTouchAction):
(WebCore::Style::BuilderConverter::convertOverflowScrolling):
(WebCore::Style::BuilderConverter::convertSmoothScrolling):
(WebCore::Style::BuilderConverter::convertSVGLengthValue):
(WebCore::Style::BuilderConverter::convertSVGLengthVector):
(WebCore::Style::BuilderConverter::convertStrokeDashArray):
(WebCore::Style::BuilderConverter::convertPaintOrder):
(WebCore::Style::BuilderConverter::convertOpacity):
(WebCore::Style::BuilderConverter::convertSVGURIReference):
(WebCore::Style::BuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::Style::BuilderConverter::convertContentAlignmentData):
(WebCore::Style::BuilderConverter::convertGlyphOrientation):
(WebCore::Style::BuilderConverter::convertGlyphOrientationOrAuto):
(WebCore::Style::BuilderConverter::convertLineHeight):
(WebCore::Style::BuilderConverter::convertFontPalette):
(WebCore::Style::BuilderConverter::convertSpeakAs):
(WebCore::Style::BuilderConverter::convertHangingPunctuation):
(WebCore::Style::BuilderConverter::convertGapLength):
(WebCore::Style::BuilderConverter::convertOffsetRotate):
(WebCore::Style::BuilderConverter::convertContainerName):
(WebCore::Style::BuilderConverter::convertMarginTrim):
(WebCore::Style::BuilderConverter::convertTextSpacingTrim):
(WebCore::Style::BuilderConverter::convertTextAutospace):
(WebCore::Style::BuilderConverter::convertBlockStepSize):
(WebCore::Style::BuilderConverter::convertContain):
(WebCore::Style::BuilderConverter::convertViewTransitionClass):
(WebCore::Style::BuilderConverter::convertViewTransitionName):
(WebCore::Style::BuilderConverter::convertWillChange):
(WebCore::Style::BuilderConverter::convertScrollTimelineName):
(WebCore::Style::BuilderConverter::convertScrollTimelineAxis):
(WebCore::Style::BuilderConverter::convertViewTimelineInset):
(WebCore::Style::BuilderConverter::convertAnchorName):
(WebCore::Style::BuilderConverter::convertPositionAnchor):
(WebCore::Style::BuilderConverter::convertBlockEllipsis):
(WebCore::Style::BuilderConverter::convertMaxLines):
(WebCore::Style::BuilderConverter::convertLineClamp):
(WebCore::Style::BuilderConverter::convertTimingFunction):
(WebCore::Style::BuilderConverter::convertTimelineScope):
(WebCore::Style::BuilderConverter::convertPositionTryFallbacks):
* Source/WebCore/style/StyleBuilderState.h:
(WebCore::Style::BuilderState::styleMap):
(WebCore::Style::BuilderState::styleMap const): Deleted.
Canonical link: https://commits.webkit.org/289694@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes