Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d8f83b72c8e85196eacadf83a18045ece3ebed0c
      
https://github.com/WebKit/WebKit/commit/d8f83b72c8e85196eacadf83a18045ece3ebed0c
  Author: Darin Adler <da...@apple.com>
  Date:   2023-01-15 (Sun, 15 Jan 2023)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/contentextensions/ContentExtensionParser.cpp
    M Source/WebCore/css/BasicShapeFunctions.cpp
    M Source/WebCore/css/CSSBackgroundRepeatValue.cpp
    M Source/WebCore/css/CSSBasicShapes.cpp
    M Source/WebCore/css/CSSContentDistributionValue.cpp
    M Source/WebCore/css/CSSContentDistributionValue.h
    M Source/WebCore/css/CSSFontFace.cpp
    M Source/WebCore/css/CSSFontFaceSet.cpp
    R Source/WebCore/css/CSSFontFamily.h
    M Source/WebCore/css/CSSFontFeatureValuesRule.cpp
    M Source/WebCore/css/CSSFontSelector.cpp
    M Source/WebCore/css/CSSFontVariantLigaturesParser.h
    M Source/WebCore/css/CSSFontVariantNumericParser.h
    M Source/WebCore/css/CSSOffsetRotateValue.cpp
    M Source/WebCore/css/CSSOffsetRotateValue.h
    M Source/WebCore/css/CSSPrimitiveValue.cpp
    M Source/WebCore/css/CSSPrimitiveValue.h
    M Source/WebCore/css/CSSPrimitiveValueMappings.h
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/CSSValueList.h
    M Source/WebCore/css/CSSValuePool.cpp
    M Source/WebCore/css/CSSValuePool.h
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/css/FontFace.cpp
    M Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
    M Source/WebCore/css/StyleProperties.cpp
    M Source/WebCore/css/parser/CSSParserContext.cpp
    M Source/WebCore/css/parser/CSSParserFastPaths.cpp
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSPropertyParser.cpp
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.h
    M Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp
    M Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.h
    M Source/WebCore/css/process-css-properties.py
    M Source/WebCore/css/typedom/CSSKeywordValue.cpp
    M Source/WebCore/css/typedom/CSSStyleValueFactory.cpp
    M Source/WebCore/dom/StyledElement.cpp
    M Source/WebCore/editing/ApplyStyleCommand.cpp
    M Source/WebCore/editing/EditingStyle.cpp
    M Source/WebCore/editing/FontAttributeChanges.cpp
    M Source/WebCore/editing/mac/EditorMac.mm
    M Source/WebCore/html/HTMLElement.cpp
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLTableElement.cpp
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/OffscreenCanvas.h
    M Source/WebCore/html/shadow/TextControlInnerElements.cpp
    M Source/WebCore/page/Frame.cpp
    M Source/WebCore/rendering/style/StyleCrossfadeImage.cpp
    M Source/WebCore/rendering/style/StyleFilterImage.cpp
    M Source/WebCore/style/StyleBuilder.cpp
    M Source/WebCore/style/StyleBuilderConverter.h
    M Source/WebCore/style/StyleBuilderCustom.h
    M Source/WebCore/style/UserAgentStyle.cpp
    M Source/WebCore/svg/SVGLengthValue.cpp

  Log Message:
  -----------
  CSSValuePool can be used more efficiently
https://bugs.webkit.org/show_bug.cgi?id=250514
rdar://problem/104170378

Reviewed by Sam Weinig.

CSSValuePool was not being used consistently. Because we left the ways to 
create CSS values
without using the pool accessible some callers just weren't using it. Also, the 
static CSS
value pool can be used safely on any thread once it has been initialized, so in 
the vast majority
of cases we don't need to call CSSValuePool::singleton. To solve these 
problems, built the use of
the static pool into the CSSPrimitiveValue class itself, and only left 
functions in CSSValuePool
for the cases that really ned a separate per-thread pool. Also made some things 
private and deleted
in CSSPrimitiveValue so we can't bypass the pool by accident without a compile 
error.

One major thing that remains is changing CSSPrimitiveValueMappings.h so it 
takes advantage of
the pool. Including that here would have made this patch too big, but it's a 
logical next step.

As part of this, removed CSSFontFamily since a font family name is really just 
a string that
serializes with a special rule. We have not been using a separate boolean along 
with the string
for some time now, but the code was still hanging around.

* Source/WebCore/Headers.cmake: Removed CSSFontFamily.h.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj: Removed CSSFontFamily.h and 
made
CSSValuePool.h private instead of project so it can be included outside WebCore.

* Source/WebCore/contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::isValidCSSSelector): Removed unneeded redundant 
initialization
that repeats what is already in ProcessWarming::initializeNames. Stumbled on 
this while working
on initialization of StaticCSSValuePool.

* Source/WebCore/css/BasicShapeFunctions.cpp:
(WebCore::valueForCenterCoordinate): Removed pool arguments and use 
CSSPrimitiveValue directly.
(WebCore::basicShapeRadiusToCSSValue): Ditto.
(WebCore::valueForBasicShape): Ditto.
* Source/WebCore/css/CSSBackgroundRepeatValue.cpp:
(WebCore::CSSBackgroundRepeatValue::CSSBackgroundRepeatValue): Ditto.
* Source/WebCore/css/CSSBasicShapes.cpp:
(WebCore::buildSerializablePositionOffset): Ditto.

* Source/WebCore/css/CSSContentDistributionValue.cpp:
(WebCore::CSSContentDistributionValue::customCSSText const): Rewrote 
serialization so it does not
use CSSValueList unnecessarily.

* Source/WebCore/css/CSSContentDistributionValue.h: Use CSSPrimitiveValue 
directly.

* Source/WebCore/css/CSSFontFace.cpp:
(WebCore::CSSFontFace::family const): Use stringValue for font family string.
* Source/WebCore/css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::familyNameFromPrimitive): Ditto. Also remove unneeded 
isValueID check.

* Source/WebCore/css/CSSFontFamily.h: Removed.

* Source/WebCore/css/CSSFontFeatureValuesRule.cpp:
(WebCore::CSSFontFeatureValuesRule::cssText const): ASCIILiteral instead of 
String for efficiency.

* Source/WebCore/css/CSSFontSelector.cpp: Removed include of CSSFontFamily.h.

* Source/WebCore/css/CSSFontVariantLigaturesParser.h:
(WebCore::CSSFontVariantLigaturesParser::finalizeValue): Use CSSPrimitiveValue 
directly.
* Source/WebCore/css/CSSFontVariantNumericParser.h:
(WebCore::CSSFontVariantNumericParser::finalizeValue): Ditto.

* Source/WebCore/css/CSSPrimitiveValue.cpp:
(WebCore::isStringType): Return true for CSS_FONT_FAMILY.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed CSSValueID constructor 
since we only
use the StaticCSSValue version. Updated the ImplicitInitialValue constructor 
for that change.
(WebCore::CSSPrimitiveValue::cleanup): Make CSS_FONT_FAMILY clean up the string.
(WebCore::CSSPrimitiveValue::create): Renamed from CSSValuePool::createValue 
and moved here.
Use Ref for thevalue type in the hash map and also call the CSSPrimitiveValue 
constructor rather
than create since this is now the create function and it can't call itself. 
Also made this handle
negative zero properly by using memcmp to check if floating point values are 
identical, not just
equal. The old function wasn't called with negative zero because the code 
implementing calc() did
not use CSSValuePool.
(WebCore::CSSPrimitiveValue::stringValue const): Use string case for 
CSS_FONT_FAMILY.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const): Use 
m_value.string
for CSS_FONT_FAMILY.
(WebCore::CSSPrimitiveValue::equals const): Use the string case for 
CSS_FONT_FAMILY.

* Source/WebCore/css/CSSPrimitiveValue.h: Renamed createIdentifier to create, 
using overloading
instead of function name. Made create(CSSValueID) an inline function that is 
defined in the
CSSValuePool.h header. Added createCustomIdent. Made create(double, 
CSSUnitType) a function
that is defined in CSSValuePool.cpp. Added implicitInitialValue, also an inline 
function defined in
the CSSValuePool.h header. Removed fontFamily. Made many constructors explicit. 
Added compile time
guards for AtomString, Color, and String, to make a compile time error if 
someone tries to call
CSSPrimitiveValue::create with one of those types. Removed isResolution and 
m_value.fontFamily.

* Source/WebCore/css/CSSPrimitiveValueMappings.h: Removed CSSFontFamily code.

* Source/WebCore/css/CSSProperties.json: Removed 
parser-function-requires-value-pool from
consumeFontStyle, consumeFontStretchRange, consumeFontStyleRange, 
consumeFontWeightAbsoluteRange,
and consumeFontWeightAbsolute. It's now no longer used for anything, but might 
need to be in the
future.

* Source/WebCore/css/CSSValueList.h: Removed the non-const iterator. We don't 
want to be able
to modify the vector using the iterator.

* Source/WebCore/css/CSSValuePool.cpp:
(WebCore::StaticCSSValuePool::StaticCSSValuePool): Tweaked for loop for clarity.
(WebCore::CSSValuePool::CSSValuePool): Removed call to 
StaticCSSValuePool::init, since that is
no longer needed here; handled instead where we initialize global HTML names 
and such.
(WebCore::CSSValuePool::createIdentifierValue): Deleted.
(WebCore::CSSValuePool::createColorValue): Use Ref for the value type in the 
hash map and also
call the CSSPrimitiveValue constructor since we don't want a 
CSSPrimitiveValue::create that
callers can use by accident.
(WebCore::CSSValuePool::createFontFamilyValue): Do not take a fromSystemFontID 
argument, no caller
was passing Yes. Use Ref for the value type in the hash map and also create a 
string of type
CSS_FONT_FAMILY. In this case, we do not have a simple way to prevent callers 
from using
CSSPrimitiveValue::create with CSS_FONT_FAMILY directly, but it's less of a 
risk since it's so
explicit compared to the other simpler cases.
(WebCore::CSSValuePool::createFontFaceValue): Use dynamicDowncast to simplify 
the code a bit.
Removed a FIXME about a tiny bit of reference count churn.

* Source/WebCore/css/CSSValuePool.h: Removed uneeded includes. Removed 
FromSystemFontID.
Removed createImplicitInitialValue, createIdentifierValue, createValue, and 
createCustomIdent.
Changed createFontFamilyValue to take a const AtomString&. Got rid of the type 
names for the
caches, since they were never used. Put the inline CSSPrimitiveValue function 
definitions that
use the StaticCSSValuePool here.

* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::OrderedNamedLinesCollector::appendLines const): Use 
CSSPrimitiveValue::create.
(WebCore::valueForImageSliceSide): Ditto.
(WebCore::valueForNinePieceImageQuad): Ditto.
(WebCore::valueForNinePieceImageRepeat): Ditto.
(WebCore::valueForNinePieceImage): Ditto.
(WebCore::fontSizeAdjustFromStyle): Ditto.
(WebCore::zoomAdjustedPixelValue): Ditto.
(WebCore::zoomAdjustedPixelValueForLength): Ditto.
(WebCore::valueForReflection): Ditto.
(WebCore::createPositionListForLayer): Ditto.
(WebCore::createSingleAxisPositionValueForLayer): Ditto.
(WebCore::positionOffsetValue): Ditto.
(WebCore::percentageOrZoomAdjustedValue): Ditto.
(WebCore::autoOrZoomAdjustedValue): Ditto.
(WebCore::valueForQuotes): Ditto.
(WebCore::borderRadiusCornerValue): Ditto.
(WebCore::matrixTransformValue): Ditto.
(WebCore::transformOperationAsCSSValue): Ditto.
(WebCore::computedTransform): Ditto.
(WebCore::computedTranslate): Ditto.
(WebCore::computedScale): Ditto.
(WebCore::computedRotate): Ditto.
(WebCore::adjustLengthForZoom): Ditto.
(WebCore::ComputedStyleExtractor::valueForShadow): Ditto.
(WebCore::ComputedStyleExtractor::valueForFilter): Ditto.
(WebCore::specifiedValueForGridTrackBreadth): Ditto.
(WebCore::specifiedValueForGridTrackSize): Ditto.
(WebCore::valueForGridTrackList): Ditto.
(WebCore::valueForGridPosition): Ditto.
(WebCore::createTransitionPropertyValue): Ditto.
(WebCore::valueForScrollSnapType): Ditto.
(WebCore::willChangePropertyValue): Ditto.
(WebCore::appendLigaturesValue): Ditto.
(WebCore::fontVariantLigaturesPropertyValue): Ditto.
(WebCore::fontVariantPositionPropertyValue): Ditto.
(WebCore::fontVariantCapsPropertyValue): Ditto.
(WebCore::fontVariantNumericPropertyValue): Ditto.
(WebCore::fontVariantAlternatesPropertyValue): Ditto.
(WebCore::fontVariantEastAsianPropertyValue): Ditto.
(WebCore::valueForAnimationDuration): Ditto.
(WebCore::valueForAnimationDelay): Ditto.
(WebCore::valueForAnimationIterationCount): Ditto.
(WebCore::valueForAnimationDirection): Ditto.
(WebCore::valueForAnimationFillMode): Ditto.
(WebCore::valueForAnimationComposition): Ditto.
(WebCore::valueForAnimationPlayState): Ditto.
(WebCore::valueForAnimationName): Ditto.
(WebCore::valueForAnimationTimingFunction): Ditto.
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList): Ditto.
(WebCore::createLineBoxContainValue): Ditto.
(WebCore::valueForPositionOrAuto): Ditto.
(WebCore::valueForPathOperation): Ditto.
(WebCore::valueForContainIntrinsicSize): Ditto.
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword): Ditto.
(WebCore::valueForFamily): Ditto.
(WebCore::touchActionFlagsToCSSValue): Ditto.
(WebCore::renderTextDecorationLineFlagsToCSSValue): Ditto.
(WebCore::renderTextDecorationStyleFlagsToCSSValue): Ditto.
(WebCore::renderTextDecorationSkipToCSSValue): Ditto.
(WebCore::textUnderlineOffsetToCSSValue): Ditto.
(WebCore::textDecorationThicknessToCSSValue): Ditto.
(WebCore::renderEmphasisPositionFlagsToCSSValue): Ditto.
(WebCore::valueForTextEmphasisStyle): Ditto.
(WebCore::speakAsToCSSValue): Ditto.
(WebCore::hangingPunctuationToCSSValue): Ditto.
(WebCore::fillRepeatToCSSValue): Ditto.
(WebCore::maskSourceTypeToCSSValue): Ditto.
(WebCore::maskModeToCSSValue): Ditto.
(WebCore::fillSizeToCSSValue): Ditto.
(WebCore::altTextToCSSValue): Ditto.
(WebCore::contentToCSSValue): Ditto.
(WebCore::counterToCSSValue): Ditto.
(WebCore::optionalLineHeight): Ditto.
(WebCore::lineHeight): Ditto.
(WebCore::fontPalette): Ditto.
(WebCore::fontWeight): Ditto.
(WebCore::fontStretch): Ditto.
(WebCore::fontStyle): Ditto.
(WebCore::ComputedStyleExtractor::fontVariantShorthandValue): Ditto.
(WebCore::fontSynthesis): Ditto.
(WebCore::fontSynthesisLonghandToCSSValue): Ditto.
(WebCore::shapePropertyValue): Ditto.
(WebCore::valueForItemPositionWithOverflowAlignment): Ditto.
(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment): Ditto.
(WebCore::valueForOffsetRotate): Ditto.
(WebCore::valueForOffsetShorthand): Ditto.
(WebCore::paintOrder): Ditto.
(WebCore::fontShorthandValue) Ditto.:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Ditto.
(WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue): Ditto.

* Source/WebCore/css/FontFace.cpp:
(WebCore::FontFace::setFamily): Convert to AtomString.

* Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::strokeDashArrayToCSSValueList): Use CSSPrimitiveValue::create.
(WebCore::ComputedStyleExtractor::adjustSVGPaint const): Ditto.
(WebCore::ComputedStyleExtractor::svgPropertyValue): Ditto.
* Source/WebCore/css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::setProperty): Ditto.

* Source/WebCore/css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::CSSParserContext): Call StaticCSSValuePool::init 
here.
Initialize the pool with an approach similar to the one for 
ProcessWarming::initializeNames,
rather than the more costly check for initializing every time a CSSValuePool is 
created.

* Source/WebCore/css/parser/CSSParserFastPaths.cpp:
(WebCore::parseColor): Use CSSPrimitiveValue::create.
(WebCore::parseKeywordValue): Ditto.
(WebCore::parseColorWithAuto): Ditto.

* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeFontPaletteValuesRule): Simplify the font 
family code so it doesn't
rely on getPropertyCSSValue.

* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::addProperty): Use 
CSSPrimitiveValue::implicitInitialValue.
(WebCore::maybeConsumeCSSWideKeyword): Don't pass CSSValuePool. Use 
CSSPrimitiveValue::create.
(WebCore::CSSPropertyParser::consumeFont): Ditto.
(WebCore::CSSPropertyParser::consumeTextDecorationSkip): Ditto.
(WebCore::CSSPropertyParser::consumeFontSynthesis): Ditto.
(WebCore::CSSPropertyParser::consumeColumns): Ditto.
(WebCore::initialCSSValueForAnimationLonghand): Ditto.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
(WebCore::CSSPropertyParser::consumeLegacyBreakProperty): Ditto.
(WebCore::CSSPropertyParser::consumeLegacyTextOrientation): Ditto.
(WebCore::CSSPropertyParser::consumeBackgroundShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeOverflowShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeGridItemPositionShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeGridAreaShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::CSSPropertyParser::consumeGridTemplateShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeGridShorthand): Ditto.
(WebCore::CSSPropertyParser::consumeListStyleShorthand): Ditto.
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::CalcParser): Ditto.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeValue): Ditto.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeValueIfCategory): Ditto.
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeNumberConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::ResolutionCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::ResolutionCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
 Ditto.
(WebCore::CSSPropertyParserHelpers::consumeIntegerType): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeInteger): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeNonNegativeInteger): Ditto.
(WebCore::CSSPropertyParserHelpers::consumePositiveInteger): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeNumber): Ditto.
(WebCore::CSSPropertyParserHelpers::consumePercent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumePercentWorkerSafe): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLength): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAngle): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAngleWorkerSafe): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTime): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeResolution): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberWorkerSafe): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIdent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeCustomIdent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeString): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeURL): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeColor): Ditto.
(WebCore::CSSPropertyParserHelpers::positionFromOneValue): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPointValue): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeCrossFade): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAspectRatioValue): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAspectRatio): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeDisplay): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeWillChange): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeFontVariantEastAsian): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeFontVariantAlternates): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeFontWeight): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeMarginTrim): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeClip): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeKeyframesName): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeSingleTransitionPropertyIdent): 
Ditto.
(WebCore::CSSPropertyParserHelpers::consumeRotate): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeCursor): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeAttr): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeCounterContent): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeBasicShape): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeBorderImageOutset): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeReflect): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeBackgroundSize): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeMasonryAutoFlow): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeTextEmphasisPosition): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeColorScheme): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeIdentWorkerSafe): Deleted.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.h: Removed 
consumePercentWorkerSafe,
consumeAngleWorkerSafe, consumeFontWeightNumberWorkerSafe, and 
consumeIdentWorkerSafe.
These are all now worker-safe without having a separate function.

* Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.cpp: Moved declarations 
of
consumeFontFeatureSettings and consumeFontStretch in here so they don't 
interfere with the
same-named, same-argument functions generated by the process-css-properties.py 
script. Later, we
should probably cut down on the number of "worker-safe" functions since only 
the ones that use
CSSValuePool need a separate worker-safe versions, and unnecessary use of 
CSSValuePool created the
illusion of non-worker-safety for many functions before these changes.
(WebCore::CSSPropertyParserWorkerSafe::parseFontFaceStyle): Don't pass 
CSSValuePool.
Use CSSPrimitiveValue::create.
(WebCore::CSSPropertyParserWorkerSafe::parseFontFaceWeight): Ditto.
(WebCore::CSSPropertyParserWorkerSafe::parseFontFaceStretch): Ditto.
(WebCore::CSSPropertyParserWorkerSafe::parseFontFaceFeatureSettings): Ditto.
(WebCore::CSSPropertyParserWorkerSafe::parseFontFaceDisplay): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStyleAngle): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStyleRange): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStyle): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontWeightAbsoluteKeywordValue):
 Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontWeightAbsoluteRange): 
Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontWeightAbsolute): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretchKeywordValue): 
Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretch): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretchRange): Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFeatureSettings): 
Ditto.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceFontDisplay): 
Ditto.

* Source/WebCore/css/parser/CSSPropertyParserWorkerSafe.h: Removed the pool 
arguments from most
of these functions, and moved consumeFontStretch and consumeFontFeatureSettings 
out of the header.

* Source/WebCore/css/process-css-properties.py: Use CSSPrimitiveValue::create.
* Source/WebCore/css/typedom/CSSKeywordValue.cpp:
(WebCore::CSSKeywordValue::toCSSValue const): Ditto.
* Source/WebCore/css/typedom/CSSStyleValueFactory.cpp:
(WebCore::CSSStyleValueFactory::constructStyleValueForCustomPropertySyntaxValue):
 Ditto.
* Source/WebCore/dom/StyledElement.cpp:
(WebCore::StyledElement::setInlineStyleProperty): Ditto.
(WebCore::StyledElement::addPropertyToPresentationalHintStyle): Ditto.
* Source/WebCore/editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Ditto.
* Source/WebCore/editing/EditingStyle.cpp:
(WebCore::HTMLElementEquivalent::HTMLElementEquivalent): Ditto.
(WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue const): Ditto.
(WebCore::EditingStyle::styleWithResolvedTextDecorations const): Ditto.
(WebCore::EditingStyle::overrideTypingStyleAt): Ditto.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement const): Ditto.
(WebCore::mergeTextDecorationValues): Ditto.
(WebCore::familyNameFromCSSPrimitiveValue): Deleted.
(WebCore::loneFontFamilyName): Use CSSPrimitiveValue::stringValue.
(WebCore::EditingStyle::convertPositionStyle): Use CSSPrimitiveValue::create.
(WebCore::EditingStyle::isFloating): Ditto.
(WebCore::StyleChange::StyleChange): Ditto.

* Source/WebCore/editing/FontAttributeChanges.cpp:
(WebCore::FontChanges::createStyleProperties const): Use AtomString for 
createFontFamilyValue.
(WebCore::cssValueListForShadow): Use CSSPrimitiveValue::create.
(WebCore::FontAttributeChanges::createEditingStyle const): Use 
CSSValuePool::createColorValue.

* Source/WebCore/editing/mac/EditorMac.mm:
(WebCore::Editor::platformPasteFont): Use CSSValuePool::createColorValue.

* Source/WebCore/html/HTMLElement.cpp:
(WebCore::HTMLElement::addParsedWidthAndHeightToAspectRatioList): Use 
CSSPrimitiveValue::create.
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::autoFillStrongPasswordMaskImage): Ditto.
* Source/WebCore/html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createSharedCellStyle const): Ditto.

* Source/WebCore/html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle): Fix function name in 
comment.

* Source/WebCore/page/Frame.cpp:
(WebCore::Frame::Frame): Call StaticCSSValuePool::init here. Initialize the 
pool with an approach
similar to the one for ProcessWarming::initializeNames, rather than the more 
costly check for
initializing every time a CSSValuePool is created.

* Source/WebCore/rendering/style/StyleCrossfadeImage.cpp:
(WebCore::StyleCrossfadeImage::computedStyleValue const): Use 
CSSPrimitiveValue::create.
* Source/WebCore/rendering/style/StyleFilterImage.cpp:
(WebCore::StyleFilterImage::computedStyleValue const): Ditto.
* Source/WebCore/style/StyleBuilder.cpp:
(WebCore::Style::Builder::resolveVariableReferences): Ditto.
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertTextStrokeWidth): Ditto.

* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::mmLength): Streamline by eliminating local 
variable.
(WebCore::Style::BuilderCustom::inchLength): Ditto.
(WebCore::Style::BuilderCustom::applyValueFontFamily): Use Vector::from for 
efficiency. Use
stringValue to get the font family name. Added WTFMove for efficiency. Moved 
empty vector check
to take advantage of the fact that the single element vector can never be empty.

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to