[webkit-changes] [WebKit/WebKit] e6902e: Re-implement calc() to more closely align with cur...

Commit Queue noreply at github.com
Wed Aug 21 14:29:02 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6902e0483c51982df75abe81235860eae084e35
      https://github.com/WebKit/WebKit/commit/e6902e0483c51982df75abe81235860eae084e35
  Author: Sam Weinig <sam at webkit.org>
  Date:   2024-08-21 (Wed, 21 Aug 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fast/css/calc-parsing-expected.txt
    M LayoutTests/fast/css/calc-parsing.html
    M LayoutTests/fast/css/object-position/parsing-object-position-expected.txt
    M LayoutTests/fast/css/object-position/parsing-object-position.html
    M LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt
    M LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-mix-function-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-functions/xywh-function-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-size-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/acos-asin-atan-atan2-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-in-media-queries-with-mixed-units-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-nesting-002-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/getComputedStyle-calc-mixed-units-003-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-percentage-serialize-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-function-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-mod-rem-computed-expected.txt
    M Source/WTF/wtf/MathExtras.h
    M Source/WTF/wtf/StdLibExtras.h
    M Source/WTF/wtf/unicode/icu/ICUHelpers.h
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/css/BasicShapeConversion.cpp
    M Source/WebCore/css/CSSCustomPropertyValue.cpp
    M Source/WebCore/css/CSSGradientValue.cpp
    R Source/WebCore/css/CSSHelper.h
    M Source/WebCore/css/CSSPrimitiveValue.cpp
    M Source/WebCore/css/CSSPrimitiveValue.h
    M Source/WebCore/css/CSSPrimitiveValueMappings.h
    M Source/WebCore/css/CSSToStyleMap.cpp
    M Source/WebCore/css/CSSUnits.cpp
    M Source/WebCore/css/CSSUnits.h
    R Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp
    R Source/WebCore/css/calc/CSSCalcCategoryMapping.h
    R Source/WebCore/css/calc/CSSCalcExpressionNode.cpp
    R Source/WebCore/css/calc/CSSCalcExpressionNode.h
    R Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp
    R Source/WebCore/css/calc/CSSCalcExpressionNodeParser.h
    R Source/WebCore/css/calc/CSSCalcInvertNode.cpp
    R Source/WebCore/css/calc/CSSCalcInvertNode.h
    R Source/WebCore/css/calc/CSSCalcNegateNode.cpp
    R Source/WebCore/css/calc/CSSCalcNegateNode.h
    R Source/WebCore/css/calc/CSSCalcOperationNode.cpp
    R Source/WebCore/css/calc/CSSCalcOperationNode.h
    R Source/WebCore/css/calc/CSSCalcPrimitiveValueNode.cpp
    R Source/WebCore/css/calc/CSSCalcPrimitiveValueNode.h
    R Source/WebCore/css/calc/CSSCalcSymbolNode.cpp
    R Source/WebCore/css/calc/CSSCalcSymbolNode.h
    M Source/WebCore/css/calc/CSSCalcSymbolTable.h
    A Source/WebCore/css/calc/CSSCalcTree+CalculationValue.cpp
    A Source/WebCore/css/calc/CSSCalcTree+CalculationValue.h
    A Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp
    A Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.h
    A Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp
    A Source/WebCore/css/calc/CSSCalcTree+Evaluation.h
    A Source/WebCore/css/calc/CSSCalcTree+NumericIdentity.h
    A Source/WebCore/css/calc/CSSCalcTree+Parser.cpp
    A Source/WebCore/css/calc/CSSCalcTree+Parser.h
    A Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp
    A Source/WebCore/css/calc/CSSCalcTree+Serialization.h
    A Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp
    A Source/WebCore/css/calc/CSSCalcTree+Simplification.h
    A Source/WebCore/css/calc/CSSCalcTree+Traversal.h
    A Source/WebCore/css/calc/CSSCalcTree.cpp
    A Source/WebCore/css/calc/CSSCalcTree.h
    A Source/WebCore/css/calc/CSSCalcType.cpp
    A Source/WebCore/css/calc/CSSCalcType.h
    M Source/WebCore/css/calc/CSSCalcValue.cpp
    M Source/WebCore/css/calc/CSSCalcValue.h
    M Source/WebCore/css/parser/CSSCalcParser.cpp
    M Source/WebCore/css/parser/CSSCalcParser.h
    M Source/WebCore/css/parser/CSSPropertyParser.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Angle.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+CSSPrimitiveValueResolver.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+CSSPrimitiveValueResolver.h
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+IntegerDefinitions.h
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Length.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Number.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Percent.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+RawResolver.h
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Resolution.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Time.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.h
    M Source/WebCore/css/typedom/CSSNumericValue.cpp
    M Source/WebCore/css/typedom/CSSNumericValue.h
    M Source/WebCore/css/typedom/CSSStyleValueFactory.cpp
    M Source/WebCore/css/typedom/CSSUnitValue.cpp
    M Source/WebCore/css/typedom/CSSUnitValue.h
    M Source/WebCore/css/typedom/StylePropertyMap.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathClamp.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathClamp.h
    M Source/WebCore/css/typedom/numeric/CSSMathInvert.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathInvert.h
    M Source/WebCore/css/typedom/numeric/CSSMathMax.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathMax.h
    M Source/WebCore/css/typedom/numeric/CSSMathMin.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathMin.h
    M Source/WebCore/css/typedom/numeric/CSSMathNegate.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathNegate.h
    M Source/WebCore/css/typedom/numeric/CSSMathProduct.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathProduct.h
    M Source/WebCore/css/typedom/numeric/CSSMathSum.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathSum.h
    A Source/WebCore/css/typedom/numeric/CSSMathValue.cpp
    M Source/WebCore/css/typedom/numeric/CSSMathValue.h
    M Source/WebCore/css/typedom/transform/CSSScale.cpp
    M Source/WebCore/platform/Length.cpp
    R Source/WebCore/platform/calc/CalcExpressionBlendLength.cpp
    R Source/WebCore/platform/calc/CalcExpressionBlendLength.h
    R Source/WebCore/platform/calc/CalcExpressionInversion.cpp
    R Source/WebCore/platform/calc/CalcExpressionInversion.h
    R Source/WebCore/platform/calc/CalcExpressionLength.cpp
    R Source/WebCore/platform/calc/CalcExpressionLength.h
    R Source/WebCore/platform/calc/CalcExpressionNegation.cpp
    R Source/WebCore/platform/calc/CalcExpressionNegation.h
    R Source/WebCore/platform/calc/CalcExpressionNode.cpp
    R Source/WebCore/platform/calc/CalcExpressionNode.h
    R Source/WebCore/platform/calc/CalcExpressionNumber.cpp
    R Source/WebCore/platform/calc/CalcExpressionNumber.h
    R Source/WebCore/platform/calc/CalcExpressionOperation.cpp
    R Source/WebCore/platform/calc/CalcExpressionOperation.h
    R Source/WebCore/platform/calc/CalcOperator.cpp
    R Source/WebCore/platform/calc/CalcOperator.h
    M Source/WebCore/platform/calc/CalculationCategory.cpp
    M Source/WebCore/platform/calc/CalculationCategory.h
    A Source/WebCore/platform/calc/CalculationExecutor.h
    A Source/WebCore/platform/calc/CalculationOperator.cpp
    A Source/WebCore/platform/calc/CalculationOperator.h
    A Source/WebCore/platform/calc/CalculationTree+Copy.cpp
    A Source/WebCore/platform/calc/CalculationTree+Copy.h
    A Source/WebCore/platform/calc/CalculationTree+Evaluation.cpp
    A Source/WebCore/platform/calc/CalculationTree+Evaluation.h
    A Source/WebCore/platform/calc/CalculationTree+Traversal.h
    A Source/WebCore/platform/calc/CalculationTree.cpp
    A Source/WebCore/platform/calc/CalculationTree.h
    M Source/WebCore/platform/calc/CalculationValue.cpp
    M Source/WebCore/platform/calc/CalculationValue.h
    M Source/WebCore/platform/graphics/cg/GradientRendererCG.cpp
    M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
    M Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
    M Source/WebCore/style/StyleBuilderConverter.h
    M Source/WebCore/style/StyleBuilderCustom.h
    M Source/WebCore/style/StyleResolveForFontRaw.cpp
    M Source/WebCore/svg/SVGLengthContext.cpp
    M Source/WebCore/svg/SVGSVGElement.cpp
    M Tools/TestWebKitAPI/CMakeLists.txt
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    R Tools/TestWebKitAPI/Tests/WebCore/CalculationValue.cpp

  Log Message:
  -----------
  Re-implement calc() to more closely align with current spec
https://bugs.webkit.org/show_bug.cgi?id=278244

Reviewed by Antti Koivisto.

Re-implements CSS calc() to more closely align with current spec.

Structurally, the two main components replaced are platform level
`CalcExpressionNode` tree, replaced by `Calculation::Tree`, and the
CSS level `CSSCalcExpressionNode` tree, replaced by `CSSCalc::Tree`.

The new implementations remove the use of inheritance / virtual
dispatch to implement the hierarchies, instead using std::variant
based model, as well as the use of reference counting, instead
any allocated is done via UniqueRef. There was practically no
sharing in the old code path, so the reference counting was not
being utilized.

By removing the vtable and allowing for leaf nodes to be completely
inline we can save quite a bit of memory (though I don't think it
is likely that calc() is where memory is being used). For a simple
calc() like:

    calc(10% + 5em)

The old code would use:

    CSSCalcValue = 8 (CSSValue) + 8 (pointer to CSSCalcOperationNode [sum]) + 1 (range) + 7 (padding) = 40
    CSSCalcOperationNode [sum] = 32 (CSSCalcExpressionNode) + 8 (operator) + 16 (children vector) + 1 (range) + 1 (is root) + 6 (padding) = 64
    CSSCalcPrimitiveValueNode [%] = 32 (we can consider CSSPrimitiveValue to be free due to value pool)
    CSSCalcPrimitiveValueNode [em] = 32 (we can consider CSSPrimitiveValue to be free due to value pool)

    Total = 168 bytes (+ malloc overhead of four allocations)

where as the new implementation uses:

    CSSCalcValue = 8 (CSSValue) + 32 (CSSCalc::Tree) = 40
    Sum (pointed to by Tree) = 16 (children vector) + 48 (vector buffer with two Child nodes) = 64 bytes
    Percent (aka 10%) = free (inline in vector buffer)
    Dimension (aka 5em) = free (inline in vector buffer)

    Total = 104 bytes (+ malloc overhead of two allocations)

There is also plenty left to optimize if the want arises. Potential
profitable optimizations to try are:

   - Reducing the size of the Child std::variant from 24 bytes down
     to 16 bytes by either:
         a) replacing the use of std::variant with a custom type that
            allows packing the metadata of the leaf nodes with the tag.
         b) removing the need for for leaf node metadata by exploding
            it into individual structs (e.g. instead of one type called
            CanonicalDimension with a dimension value, 6 types called
            CanonicalDimensionLength, CanonicalDimensionAngle, ...).
   - Use an arena to allocate the non-leaf nodes and use 16bit offsets
     rather than pointers (we can constrain how many nodes are in calc()
     quite a bit).
   - Use a concise encoding for tree (RPN perhaps) and remove the need
     for pointers or offsets entirely.

To make working with the trees more ergonomic, each operator node has
been made "tuple-like", meaning it can be destructured as well as used
by functions like WTF::apply(). The allows writing generic traversals
and constructions of operators, greatly reducing the amount of duplicate
code needed.

There are still a few failing calc() tests. The are mainly caused by
callers that don't pass conversion data when evaluating calc. They
will be resolved in followup changes.

* LayoutTests/TestExpectations:
    Un-skip a test that was asserting in the old calc() code but no longer does.
* LayoutTests/fast/css/calc-parsing-expected.txt:
* LayoutTests/fast/css/calc-parsing.html:
* LayoutTests/fast/css/object-position/parsing-object-position-expected.txt:
* LayoutTests/fast/css/object-position/parsing-object-position.html:
* LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt:
* LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-mix-function-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-functions/xywh-function-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-size-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/font-weight-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/acos-asin-atan-atan2-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-in-media-queries-with-mixed-units-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-nesting-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/getComputedStyle-calc-mixed-units-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-percentage-serialize-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-function-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-values/round-mod-rem-computed-expected.txt:
    Test changes.

* Source/WTF/wtf/StdLibExtras.h:
(WTF::apply_impl):
(WTF::apply):
    Adds WTF implementation of std::apply that works with tuple-like objects.

* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    Add new files.

* Source/WebCore/css/BasicShapeConversion.cpp:
* Source/WebCore/css/CSSCustomPropertyValue.cpp:
* Source/WebCore/css/CSSGradientValue.cpp:
* Source/WebCore/css/CSSHelper.h: Removed.
* Source/WebCore/css/CSSPrimitiveValue.cpp:
* Source/WebCore/css/CSSPrimitiveValue.h:
* Source/WebCore/css/CSSPrimitiveValueMappings.h:
* Source/WebCore/css/CSSToStyleMap.cpp:
* Source/WebCore/css/CSSUnits.cpp:
* Source/WebCore/css/CSSUnits.h:
* Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcExpressionNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcExpressionNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcExpressionNodeParser.h: Removed.
* Source/WebCore/css/calc/CSSCalcInvertNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcInvertNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcNegateNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcNegateNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcOperationNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcOperationNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcPrimitiveValueNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcPrimitiveValueNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcSymbolNode.cpp: Removed.
* Source/WebCore/css/calc/CSSCalcSymbolNode.h: Removed.
* Source/WebCore/css/calc/CSSCalcSymbolTable.h:
* Source/WebCore/css/calc/CSSCalcTree+CalculationValue.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+CalculationValue.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+ComputedStyleDependencies.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+Evaluation.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+Evaluation.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+NumericIdentity.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+Parser.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+Parser.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+Serialization.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+Serialization.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+Simplification.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree+Simplification.h: Added.
* Source/WebCore/css/calc/CSSCalcTree+Traversal.h: Added.
* Source/WebCore/css/calc/CSSCalcTree.cpp: Added.
* Source/WebCore/css/calc/CSSCalcTree.h: Added.
* Source/WebCore/css/calc/CSSCalcType.cpp: Added.
* Source/WebCore/css/calc/CSSCalcType.h: Added.
* Source/WebCore/css/calc/CSSCalcValue.cpp:
* Source/WebCore/css/calc/CSSCalcValue.h:
* Source/WebCore/css/parser/CSSCalcParser.cpp:
* Source/WebCore/css/parser/CSSCalcParser.h:
* Source/WebCore/css/parser/CSSPropertyParser.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Angle.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+CSSPrimitiveValueResolver.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+CSSPrimitiveValueResolver.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+IntegerDefinitions.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Length.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Number.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Percent.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+RawResolver.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Resolution.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+Time.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.h:
* Source/WebCore/css/typedom/CSSNumericValue.cpp:
* Source/WebCore/css/typedom/CSSNumericValue.h:
* Source/WebCore/css/typedom/CSSStyleValueFactory.cpp:
* Source/WebCore/css/typedom/CSSUnitValue.cpp:
* Source/WebCore/css/typedom/CSSUnitValue.h:
* Source/WebCore/css/typedom/StylePropertyMap.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathClamp.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathClamp.h:
* Source/WebCore/css/typedom/numeric/CSSMathInvert.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathInvert.h:
* Source/WebCore/css/typedom/numeric/CSSMathMax.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathMax.h:
* Source/WebCore/css/typedom/numeric/CSSMathMin.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathMin.h:
* Source/WebCore/css/typedom/numeric/CSSMathNegate.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathNegate.h:
* Source/WebCore/css/typedom/numeric/CSSMathProduct.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathProduct.h:
* Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:
* Source/WebCore/css/typedom/numeric/CSSMathSum.h:
* Source/WebCore/css/typedom/numeric/CSSMathValue.cpp: Added.
* Source/WebCore/css/typedom/numeric/CSSMathValue.h:
* Source/WebCore/css/typedom/transform/CSSScale.cpp:
* Source/WebCore/platform/Length.cpp:
* Source/WebCore/platform/calc/CalcExpressionBlendLength.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionBlendLength.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionInversion.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionInversion.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionLength.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionLength.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionNegation.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionNegation.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionNode.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionNode.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionNumber.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionNumber.h: Removed.
* Source/WebCore/platform/calc/CalcExpressionOperation.cpp: Removed.
* Source/WebCore/platform/calc/CalcExpressionOperation.h: Removed.
* Source/WebCore/platform/calc/CalcOperator.cpp: Removed.
* Source/WebCore/platform/calc/CalcOperator.h: Removed.
* Source/WebCore/platform/calc/CalculationCategory.cpp:
* Source/WebCore/platform/calc/CalculationCategory.h:
* Source/WebCore/platform/calc/CalculationExecutor.h: Added.
* Source/WebCore/platform/calc/CalculationOperator.cpp: Added.
* Source/WebCore/platform/calc/CalculationOperator.h: Added.
* Source/WebCore/platform/calc/CalculationTree+Copy.cpp: Added.
* Source/WebCore/platform/calc/CalculationTree+Copy.h: Added.
* Source/WebCore/platform/calc/CalculationTree+Evaluation.cpp: Added.
* Source/WebCore/platform/calc/CalculationTree+Evaluation.h: Added.
* Source/WebCore/platform/calc/CalculationTree+Traversal.h: Added.
* Source/WebCore/platform/calc/CalculationTree.cpp: Added.
* Source/WebCore/platform/calc/CalculationTree.h: Added.
* Source/WebCore/platform/calc/CalculationValue.cpp:
* Source/WebCore/platform/calc/CalculationValue.h:
* Source/WebCore/platform/graphics/cg/GradientRendererCG.cpp:
* Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:
* Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp:
* Source/WebCore/style/StyleBuilderConverter.h:
* Source/WebCore/style/StyleBuilderCustom.h:
* Source/WebCore/style/StyleResolveForFontRaw.cpp:
* Source/WebCore/svg/SVGLengthContext.cpp:
* Source/WebCore/svg/SVGSVGElement.cpp:

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



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


More information about the webkit-changes mailing list