haikuwebkit/Source/WebCore/style/StyleBuilderState.h

147 lines
5.7 KiB
C
Raw Permalink Normal View History

Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
/*
* Copyright (C) 2019 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
#include "CSSToLengthConversionData.h"
#include "CSSToStyleMap.h"
#include "CascadeLevel.h"
#include "RenderStyle.h"
#include "SelectorChecker.h"
#include <wtf/Bitmap.h>
namespace WebCore {
class StyleImage;
class StyleResolver;
namespace Style {
Introduce Style::Builder https://bugs.webkit.org/show_bug.cgi?id=203682 Reviewed by Zalan Bujtas. Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state. Move tha applying code from StyleResolver and PropertyCascade there. Move a bunch of font related state from StyleResolver::State to BuilderState. * DerivedSources-output.xcfilelist: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableReference): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): (WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted. (WebCore::checkForOrientationChange): Deleted. (WebCore::StyleResolver::updateFont): Deleted. (WebCore::StyleResolver::useSVGZoomRules const): Deleted. (WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted. (WebCore::StyleResolver::checkForTextSizeAdjust): Deleted. (WebCore::StyleResolver::checkForZoomChange): Deleted. (WebCore::StyleResolver::checkForGenericFamilyChange): Deleted. (WebCore::StyleResolver::setFontSize): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted. (WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted. (WebCore::StyleResolver::State::useSVGZoomRules const): Deleted. * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSPropertyParser.cpp: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::set): (WebCore::Style::PropertyCascade::propertyCascadeForRollback const): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const): (WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted. (WebCore::Style::PropertyCascade::applyProperties): Deleted. (WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperties): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperty): Deleted. (WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted. (WebCore::Style::PropertyCascade::applyProperty): Deleted. (WebCore::Style::PropertyCascade::resolveValue): Deleted. (WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted. (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted. * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::deferredProperties const): (WebCore::Style::PropertyCascade::customProperties const): (WebCore::Style::PropertyCascade::direction const): (WebCore::Style::PropertyCascade::builderState): Deleted. * style/StyleBuilder.cpp: Added. (WebCore::Style::directionFromStyle): (WebCore::Style::Builder::Builder): (WebCore::Style::Builder::applyAllProperties): (WebCore::Style::Builder::applyHighPriorityProperties): (WebCore::Style::Builder::applyLowPriorityProperties): (WebCore::Style::Builder::applyPropertyValue): (WebCore::Style::Builder::applyDeferredProperties): (WebCore::Style::Builder::applyProperties): (WebCore::Style::Builder::applyPropertiesImpl): (WebCore::Style::Builder::applyCustomProperties): (WebCore::Style::Builder::applyCustomProperty): (WebCore::Style::Builder::applyCascadeProperty): (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::resolveValue): (WebCore::Style::Builder::resolvedVariableValue): * style/StyleBuilder.h: Added. (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::state): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby): (WebCore::Style::BuilderState::updateFont): (WebCore::Style::BuilderState::updateFontForTextSizeAdjust): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): (WebCore::Style::BuilderState::updateFontForOrientationChange): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::cascade): Deleted. (WebCore::Style::BuilderState::clearFontDirty): Deleted. Canonical link: https://commits.webkit.org/217053@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-31 18:55:34 +00:00
class Builder;
Letter-spacing should disable ligatures https://bugs.webkit.org/show_bug.cgi?id=176215 <rdar://problem/17044265> Reviewed by Antti Koivisto. LayoutTests/imported/w3c: This test is sensitive the order of the CSSPropertyID enum values. * web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Apparently this test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h. I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this. Source/WebCore: The CSS Text spec[1] says: "When the effective spacing between two characters is not zero (due to either justification or a non-zero value of letter-spacing), user agents should not apply optional ligatures." The CSS Fonts spec[2] describes exactly how this is supposed to work: "Step 11. Feature settings determined by properties other than font-variant or font-feature-settings are applied. For example, setting a non-default value for the letter-spacing property disables optional ligatures." Disabling ligatures requires modifying font features, which means that the information about whether we should disable them or not needs to be inside the FontDescription. This patch adds a new bit, m_shouldDisableLigaturesForSpacing, to FontDescription. preparePlatformFont() reads this bit and disables ligatures appropriately. There's a bit of complexity here because the letter-spacing value itself lies inside the RenderStyle, but the derived bit lies inside the FontDescriptor, which is one reason why this patch migrates letter-spacing to use custom codegen functions. There's also a bit of complexity about dependencies which is explained in a comment in maybeUpdateFontForLetterSpacing(). [1] https://drafts.csswg.org/css-text-3/#letter-spacing-property [2] https://drafts.csswg.org/css-fonts-4/#feature-variation-precedence Test: imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html * css/CSSProperties.json: letter-spacing has to be high-priority because it affects font selection, but it has to be processed after zoom because its <length> value is sensitive to zoom. This adds a new keyword CSSProperties.json: sink-property which can let a property sink to the bottom of its priority bucket. * css/makeprop.pl: (addProperty): (sortByDescendingPriorityAndName): * platform/graphics/FontCache.h: (WebCore::FontDescriptionKey::makeFlagsKey): * platform/graphics/FontDescription.h: (WebCore::FontDescription::shouldDisableLigaturesForSpacing const): (WebCore::FontDescription::setShouldDisableLigaturesForSpacing): (WebCore::FontDescription::operator== const): (WebCore::FontDescription::encode const): (WebCore::FontDescription::decode): * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::preparePlatformFont): We can get into a situation where "liga" and "clig" don't match, which means whichever one is later clobbers whichever one is earlier when applied to AAT fonts. We need to make sure these values match so we don't get surprising results. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setLetterSpacing): (WebCore::RenderStyle::setLetterSpacingWithoutUpdatingFontDescription): * rendering/style/RenderStyle.h: * style/StyleBuilderCustom.h: (WebCore::Style::applyLetterSpacing): (WebCore::Style::BuilderCustom::applyInheritLetterSpacing): (WebCore::Style::BuilderCustom::applyInitialLetterSpacing): (WebCore::Style::maybeUpdateFontForLetterSpacing): (WebCore::Style::BuilderCustom::applyValueLetterSpacing): (WebCore::Style::BuilderCustom::applyValueWebkitLocale): (WebCore::Style::BuilderCustom::applyInitialFontFamily): (WebCore::Style::BuilderCustom::applyInheritFontFamily): (WebCore::Style::BuilderCustom::applyValueFontFamily): (WebCore::Style::BuilderCustom::applyInitialFontSize): (WebCore::Style::BuilderCustom::applyInheritFontSize): (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.h: Tools: * Scripts/webkitpy/style/checkers/jsonchecker.py: (JSONCSSPropertiesChecker.check_codegen_properties): LayoutTests: imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html passes now. * TestExpectations: * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Apparently this test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h. I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this. * platform/mac-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated. * platform/mac-mojave-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated Canonical link: https://commits.webkit.org/229052@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-06 22:20:54 +00:00
class BuilderState;
void maybeUpdateFontForLetterSpacing(BuilderState&, CSSValue&);
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
enum class ForVisitedLink : bool {
No,
Yes
};
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
struct BuilderContext {
Ref<const Document> document;
const RenderStyle& parentStyle;
const RenderStyle* rootElementStyle = nullptr;
RefPtr<const Element> element = nullptr;
};
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
class BuilderState {
public:
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
BuilderState(Builder&, RenderStyle&, BuilderContext&&);
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
Introduce Style::Builder https://bugs.webkit.org/show_bug.cgi?id=203682 Reviewed by Zalan Bujtas. Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state. Move tha applying code from StyleResolver and PropertyCascade there. Move a bunch of font related state from StyleResolver::State to BuilderState. * DerivedSources-output.xcfilelist: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableReference): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): (WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted. (WebCore::checkForOrientationChange): Deleted. (WebCore::StyleResolver::updateFont): Deleted. (WebCore::StyleResolver::useSVGZoomRules const): Deleted. (WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted. (WebCore::StyleResolver::checkForTextSizeAdjust): Deleted. (WebCore::StyleResolver::checkForZoomChange): Deleted. (WebCore::StyleResolver::checkForGenericFamilyChange): Deleted. (WebCore::StyleResolver::setFontSize): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted. (WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted. (WebCore::StyleResolver::State::useSVGZoomRules const): Deleted. * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSPropertyParser.cpp: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::set): (WebCore::Style::PropertyCascade::propertyCascadeForRollback const): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const): (WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted. (WebCore::Style::PropertyCascade::applyProperties): Deleted. (WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperties): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperty): Deleted. (WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted. (WebCore::Style::PropertyCascade::applyProperty): Deleted. (WebCore::Style::PropertyCascade::resolveValue): Deleted. (WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted. (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted. * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::deferredProperties const): (WebCore::Style::PropertyCascade::customProperties const): (WebCore::Style::PropertyCascade::direction const): (WebCore::Style::PropertyCascade::builderState): Deleted. * style/StyleBuilder.cpp: Added. (WebCore::Style::directionFromStyle): (WebCore::Style::Builder::Builder): (WebCore::Style::Builder::applyAllProperties): (WebCore::Style::Builder::applyHighPriorityProperties): (WebCore::Style::Builder::applyLowPriorityProperties): (WebCore::Style::Builder::applyPropertyValue): (WebCore::Style::Builder::applyDeferredProperties): (WebCore::Style::Builder::applyProperties): (WebCore::Style::Builder::applyPropertiesImpl): (WebCore::Style::Builder::applyCustomProperties): (WebCore::Style::Builder::applyCustomProperty): (WebCore::Style::Builder::applyCascadeProperty): (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::resolveValue): (WebCore::Style::Builder::resolvedVariableValue): * style/StyleBuilder.h: Added. (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::state): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby): (WebCore::Style::BuilderState::updateFont): (WebCore::Style::BuilderState::updateFontForTextSizeAdjust): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): (WebCore::Style::BuilderState::updateFontForOrientationChange): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::cascade): Deleted. (WebCore::Style::BuilderState::clearFontDirty): Deleted. Canonical link: https://commits.webkit.org/217053@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-31 18:55:34 +00:00
Builder& builder() { return m_builder; }
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
RenderStyle& style() { return m_style; }
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
const RenderStyle& parentStyle() const { return m_context.parentStyle; }
const RenderStyle* rootElementStyle() const { return m_context.rootElementStyle; }
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
const Document& document() const { return m_context.document.get(); }
const Element* element() const { return m_context.element.get(); }
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
void setFontDescription(FontCascadeDescription&& fontDescription) { m_fontDirty |= m_style.setFontDescription(WTFMove(fontDescription)); }
void setFontSize(FontCascadeDescription&, float size);
void setZoom(float f) { m_fontDirty |= m_style.setZoom(f); }
void setEffectiveZoom(float f) { m_fontDirty |= m_style.setEffectiveZoom(f); }
void setWritingMode(WritingMode writingMode) { m_fontDirty |= m_style.setWritingMode(writingMode); }
void setTextOrientation(TextOrientation textOrientation) { m_fontDirty |= m_style.setTextOrientation(textOrientation); }
bool fontDirty() const { return m_fontDirty; }
void setFontDirty() { m_fontDirty = true; }
const FontCascadeDescription& fontDescription() { return m_style.fontDescription(); }
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
const FontCascadeDescription& parentFontDescription() { return parentStyle().fontDescription(); }
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
// FIXME: These are mutually exclusive, clean up the code to take that into account.
bool applyPropertyToRegularStyle() const { return m_linkMatch != SelectorChecker::MatchVisited; }
bool applyPropertyToVisitedLinkStyle() const { return m_linkMatch == SelectorChecker::MatchVisited; }
bool useSVGZoomRules() const;
bool useSVGZoomRulesForLength() const;
ScopeOrdinal styleScopeOrdinal() const { return m_styleScopeOrdinal; }
-webkit-image-set should support all the image functions WebKit supports, not just url() https://bugs.webkit.org/show_bug.cgi?id=81941 Patch by Noam Rosenthal <noam@webkit.org> on 2020-01-21 Reviewed by Darin Adler. Source/WebCore: Separate StyleCachedImage to 4 classes: - StyleCachedImage: for single images only - StyleMultiImage: for values that can contain multiple images: like cursor/image-set - StyleImageSet - StyleCursorImage The new classes only deal with their own value type. Before, ImageSet and cursor were resolved as a StyleCachedImage, which is no longer a valid assumption if image-set can contain generated images. Though cursors still can only contain cached images, it was cleaner to refactor it out as well. Refactored best-fit image selection from loading. Now StyleCachedImage is in charge of loading the actual image, and StyleImageSet/StyleCursorImage perform the source selection. Also, added the necessary logic in the CSS parser to consume generated images inside image-sets, excluding when the image-set is a cursor value. Tests: fast/css/image-set-parsing-generated.html fast/hidpi/image-set-cross-fade.html fast/hidpi/image-set-gradient-multi.html fast/hidpi/image-set-gradient-single.html fast/hidpi/image-set-gradient.html * Sources.txt: * WebCore.xcodeproj/project.pbxproj: Added new files * css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::selectBestFitImage): (WebCore::CSSCursorImageValue::loadImage): Deleted. * css/CSSCursorImageValue.h: Instead of cursor loading the image, it selects an image CSS value * css/CSSImageSetValue.cpp: (WebCore::CSSImageSetValue::CSSImageSetValue): (WebCore::CSSImageSetValue::fillImageSet): (WebCore::CSSImageSetValue::cachedImage const): (WebCore::CSSImageSetValue::selectBestFitImage): (WebCore::CSSImageSetValue::updateDeviceScaleFactor): (WebCore::CSSImageSetValue::imageSetWithStylesResolved): (WebCore::CSSImageSetValue::traverseSubresources const): (WebCore::CSSImageSetValue::loadBestFitImage): Deleted. * css/CSSImageSetValue.h: Refactor CSSImageSetValue to include non-cachedImage images * css/parser/CSSPropertyParser.cpp: (WebCore::consumeCursor): * css/parser/CSSPropertyParserHelpers.cpp: (WebCore::CSSPropertyParserHelpers::consumeImageSet): (WebCore::CSSPropertyParserHelpers::consumeImage): (WebCore::CSSPropertyParserHelpers::consumeUrlOrStringAsStringView): Deleted. * css/parser/CSSPropertyParserHelpers.h: * page/animation/CSSPropertyAnimation.cpp: (WebCore::blendFunc): When blending two images, get the selected images in case it is an image-set * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderImageResourceStyleImage.cpp: (WebCore::RenderImageResourceStyleImage::initialize): * rendering/RenderLayerBacking.cpp: (WebCore::canDirectlyCompositeBackgroundBackgroundImage): * rendering/style/ShapeValue.cpp: (WebCore::ShapeValue::isImageValid const): Use hasCachedImage() instead of isCachedImage() as a StyleImageSet is no longer an isCachedImage() * rendering/style/StyleCachedImage.cpp: (WebCore::StyleCachedImage::StyleCachedImage): (WebCore::StyleCachedImage::imageURL): (WebCore::StyleCachedImage::load): * rendering/style/StyleCachedImage.h: * rendering/style/StyleCursorImage.h: * rendering/style/StyleCursorImage.cpp: * rendering/style/StyleMultiImage.h: * rendering/style/StyleMultiImage.cpp: * rendering/style/StyleImageSet.h: * rendering/style/StyleImageSet.cpp: * rendering/style/StyleImage.h: (WebCore::StyleImage::selectedImage): (WebCore::StyleImage::selectedImage const): (WebCore::StyleImage::isCursorImage const): (WebCore::StyleImage::isImageSet const): (WebCore::StyleImage::hasCachedImage const): (WebCore::StyleImage::StyleImage): Separate cursor/image-set related stuff away from StyleCachedImage. * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueContent): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::resolveImageStyles): (WebCore::Style::BuilderState::createStyleImage): * style/StyleBuilderState.h: Match the CSS values with the correct Style class. Also, ensure image-sets resolve their images' styles as they may contain gradients and other context-aware values. LayoutTests: * fast/css/cursor-parsing-expected.txt: * fast/css/cursor-parsing.html: Added parsing test to ensure arrow image-sets disable generated images * fast/css/image-set-parsing-generated-expected.txt: Added. * fast/css/image-set-parsing-generated.html: Added. * fast/css/image-set-parsing-invalid-expected.txt: * fast/css/image-set-parsing-invalid.html: Added parsing tests for new generated-inside-image-set use cases Test that image-set inside image-set is not supported * fast/hidpi/image-set-cross-fade-expected.html: Added. * fast/hidpi/image-set-cross-fade.html: Added. * fast/hidpi/image-set-gradient-expected.html: Added. * fast/hidpi/image-set-gradient-multi-expected.html: Added. * fast/hidpi/image-set-gradient-multi.html: Added. * fast/hidpi/image-set-gradient-single-expected.html: Added. * fast/hidpi/image-set-gradient-single.html: Added. * fast/hidpi/image-set-gradient.html: Added. Added ref-tests for several generated-inside-image-set use-cases Canonical link: https://commits.webkit.org/219598@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-21 18:28:17 +00:00
Ref<CSSValue> resolveImageStyles(CSSValue&);
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
RefPtr<StyleImage> createStyleImage(CSSValue&);
bool createFilterOperations(const CSSValue&, FilterOperations& outOperations);
Style::Builder should not depend on StyleResolver https://bugs.webkit.org/show_bug.cgi?id=203729 Reviewed by Zalan Bujtas. With all style building state in builder, we can remove the back-reference to style resolver. * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::createFilterOperations): * css/CSSFilterImageValue.h: * css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::gradientWithStylesResolved): (WebCore::CSSGradientValue::resolveRGBColors): Add helper for resolving basic colors without style builder. * css/CSSGradientValue.h: * css/StyleResolver.cpp: (WebCore::StyleResolver::State::clear): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::applyMatchedProperties): Register content attributes encountered during style building. (WebCore::StyleResolver::State::updateConversionData): Deleted. This is now created by BuilderState constructor. (WebCore::StyleResolver::styleImage): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted. (WebCore::filterOperationForType): Deleted. (WebCore::StyleResolver::createFilterOperations): Deleted. Move image mapping functions to BuilderState. * css/StyleResolver.h: (WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted. * html/HTMLInputElement.cpp: (WebCore::autoFillStrongPasswordMaskImage): (WebCore::HTMLInputElement::createInnerTextStyle): Create mask image without requiring style resolver. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueZoom): (WebCore::Style::BuilderCustom::applyValueContent): (WebCore::Style::BuilderCustom::applyValueFontSize): (WebCore::Style::BuilderCustom::applyValueAlt): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): No more m_styleResolver. (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::filterOperationForType): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::registerContentAttribute): Collect content attributes so they can be applied later by StyleResolver. * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::rootElementStyle const): Restore this to be nullable for simplicity. (WebCore::Style::BuilderState::registeredContentAttributes const): (WebCore::Style::BuilderState::styleResolver): Deleted. Canonical link: https://commits.webkit.org/217094@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-01 15:20:19 +00:00
static bool isColorFromPrimitiveValueDerivedFromElement(const CSSPrimitiveValue&);
Color colorFromPrimitiveValue(const CSSPrimitiveValue&, ForVisitedLink = ForVisitedLink::No) const;
Implement the css-color-4 behavior for inheritance of currentColor https://bugs.webkit.org/show_bug.cgi?id=193171 <rdar://problem/47287516> Reviewed by Simon Fraser. LayoutTests/imported/w3c: * web-platform-tests/css/css-text-decor/parsing/text-decoration-color-computed-expected.txt: * web-platform-tests/css/css-transitions/currentcolor-animation-001-expected.txt: * web-platform-tests/svg/pservers/scripted/stop-color-inheritance-currentcolor-expected.txt: Source/WebCore: In CSS3/4 'currentcolor' inherits as 'currentcolor' instead of as a resolved color value. Value 'currentcolor' is represented in RenderStyle as invalid Color object. This has been true even before the explicit property value for it was added. Fallback to 'color' has always been the default behavior of most color properties. As a result the correct behavior falls pretty easily from WebKit code. It essentially amounts to allowing color properties to inherit normally even when they are invalid/currentcolor. In future we might want to wrap RenderStyle color values into a type that makes 'currentcolor' more explicit. * css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::gradientWithStylesResolved): * css/CSSProperties.json: - Remove 'no-default-color' which triggered to old inheritance behavior. - Rename initial value invalidColor to currentColor for clarity. * css/makeprop.pl: Code for 'no-default-color' generation is not needed anymore. (generateInheritValueSetter): * page/animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::colorIncludingFallback const): Resolve 'background-color' like the rest so setting it to 'currentcolor' works correctly. * rendering/style/RenderStyle.h: (WebCore::RenderStyle::currentColor): (WebCore::RenderStyle::invalidColor): Deleted. * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): Don't resolve 'currentcolor', instead return it as a value. (WebCore::Style::BuilderState::colorFromPrimitiveValueWithResolvedCurrentColor const): Helper for a few cases where we still resolve current color during style building time. It is used for filters and generated images. * style/StyleBuilderState.h: * svg/SVGStopElement.cpp: (WebCore::SVGStopElement::stopColorIncludingOpacity const): Resolve 'currentcolor' during use time for svg color stops. LayoutTests: * TestExpectations: * fast/borders/border-color-inherit-expected.html: Copied from LayoutTests/fast/borders/border-color-inherit.html. * fast/borders/border-color-inherit.html: Fix for the new behavior and make it a reftest. * fast/css/webkit-text-fill-color-inherit.html: * platform/gtk/fast/borders/border-color-inherit-expected.png: Removed. * platform/gtk/fast/borders/border-color-inherit-expected.txt: Removed. * platform/ios/fast/borders/border-color-inherit-expected.txt: Removed. * platform/mac/fast/borders/border-color-inherit-expected.png: Removed. * platform/mac/fast/borders/border-color-inherit-expected.txt: Removed. * platform/win/fast/borders/border-color-inherit-expected.txt: Removed. * platform/wincairo/fast/borders/border-color-inherit-expected.txt: Removed. * platform/wpe/fast/borders/border-color-inherit-expected.txt: Removed. Canonical link: https://commits.webkit.org/222923@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259532 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-04-04 18:16:25 +00:00
// FIXME: Remove. 'currentcolor' should be resolved at use time. All call sites are broken with inheritance.
Color colorFromPrimitiveValueWithResolvedCurrentColor(const CSSPrimitiveValue&) const;
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
Style::Builder should not depend on StyleResolver https://bugs.webkit.org/show_bug.cgi?id=203729 Reviewed by Zalan Bujtas. With all style building state in builder, we can remove the back-reference to style resolver. * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::createFilterOperations): * css/CSSFilterImageValue.h: * css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::gradientWithStylesResolved): (WebCore::CSSGradientValue::resolveRGBColors): Add helper for resolving basic colors without style builder. * css/CSSGradientValue.h: * css/StyleResolver.cpp: (WebCore::StyleResolver::State::clear): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::applyMatchedProperties): Register content attributes encountered during style building. (WebCore::StyleResolver::State::updateConversionData): Deleted. This is now created by BuilderState constructor. (WebCore::StyleResolver::styleImage): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted. (WebCore::filterOperationForType): Deleted. (WebCore::StyleResolver::createFilterOperations): Deleted. Move image mapping functions to BuilderState. * css/StyleResolver.h: (WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted. * html/HTMLInputElement.cpp: (WebCore::autoFillStrongPasswordMaskImage): (WebCore::HTMLInputElement::createInnerTextStyle): Create mask image without requiring style resolver. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueZoom): (WebCore::Style::BuilderCustom::applyValueContent): (WebCore::Style::BuilderCustom::applyValueFontSize): (WebCore::Style::BuilderCustom::applyValueAlt): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): No more m_styleResolver. (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::filterOperationForType): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::registerContentAttribute): Collect content attributes so they can be applied later by StyleResolver. * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::rootElementStyle const): Restore this to be nullable for simplicity. (WebCore::Style::BuilderState::registeredContentAttributes const): (WebCore::Style::BuilderState::styleResolver): Deleted. Canonical link: https://commits.webkit.org/217094@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-01 15:20:19 +00:00
const Vector<AtomString>& registeredContentAttributes() const { return m_registeredContentAttributes; }
void registerContentAttribute(const AtomString& attributeLocalName);
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
const CSSToLengthConversionData& cssToLengthConversionData() const { return m_cssToLengthConversionData; }
CSSToStyleMap& styleMap() { return m_styleMap; }
private:
Letter-spacing should disable ligatures https://bugs.webkit.org/show_bug.cgi?id=176215 <rdar://problem/17044265> Reviewed by Antti Koivisto. LayoutTests/imported/w3c: This test is sensitive the order of the CSSPropertyID enum values. * web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Apparently this test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h. I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this. Source/WebCore: The CSS Text spec[1] says: "When the effective spacing between two characters is not zero (due to either justification or a non-zero value of letter-spacing), user agents should not apply optional ligatures." The CSS Fonts spec[2] describes exactly how this is supposed to work: "Step 11. Feature settings determined by properties other than font-variant or font-feature-settings are applied. For example, setting a non-default value for the letter-spacing property disables optional ligatures." Disabling ligatures requires modifying font features, which means that the information about whether we should disable them or not needs to be inside the FontDescription. This patch adds a new bit, m_shouldDisableLigaturesForSpacing, to FontDescription. preparePlatformFont() reads this bit and disables ligatures appropriately. There's a bit of complexity here because the letter-spacing value itself lies inside the RenderStyle, but the derived bit lies inside the FontDescriptor, which is one reason why this patch migrates letter-spacing to use custom codegen functions. There's also a bit of complexity about dependencies which is explained in a comment in maybeUpdateFontForLetterSpacing(). [1] https://drafts.csswg.org/css-text-3/#letter-spacing-property [2] https://drafts.csswg.org/css-fonts-4/#feature-variation-precedence Test: imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html * css/CSSProperties.json: letter-spacing has to be high-priority because it affects font selection, but it has to be processed after zoom because its <length> value is sensitive to zoom. This adds a new keyword CSSProperties.json: sink-property which can let a property sink to the bottom of its priority bucket. * css/makeprop.pl: (addProperty): (sortByDescendingPriorityAndName): * platform/graphics/FontCache.h: (WebCore::FontDescriptionKey::makeFlagsKey): * platform/graphics/FontDescription.h: (WebCore::FontDescription::shouldDisableLigaturesForSpacing const): (WebCore::FontDescription::setShouldDisableLigaturesForSpacing): (WebCore::FontDescription::operator== const): (WebCore::FontDescription::encode const): (WebCore::FontDescription::decode): * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::preparePlatformFont): We can get into a situation where "liga" and "clig" don't match, which means whichever one is later clobbers whichever one is earlier when applied to AAT fonts. We need to make sure these values match so we don't get surprising results. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setLetterSpacing): (WebCore::RenderStyle::setLetterSpacingWithoutUpdatingFontDescription): * rendering/style/RenderStyle.h: * style/StyleBuilderCustom.h: (WebCore::Style::applyLetterSpacing): (WebCore::Style::BuilderCustom::applyInheritLetterSpacing): (WebCore::Style::BuilderCustom::applyInitialLetterSpacing): (WebCore::Style::maybeUpdateFontForLetterSpacing): (WebCore::Style::BuilderCustom::applyValueLetterSpacing): (WebCore::Style::BuilderCustom::applyValueWebkitLocale): (WebCore::Style::BuilderCustom::applyInitialFontFamily): (WebCore::Style::BuilderCustom::applyInheritFontFamily): (WebCore::Style::BuilderCustom::applyValueFontFamily): (WebCore::Style::BuilderCustom::applyInitialFontSize): (WebCore::Style::BuilderCustom::applyInheritFontSize): (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.h: Tools: * Scripts/webkitpy/style/checkers/jsonchecker.py: (JSONCSSPropertiesChecker.check_codegen_properties): LayoutTests: imported/w3c/web-platform-tests/css/css-fonts/font-feature-resolution-001.html passes now. * TestExpectations: * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Apparently this test is sensitive to the ordering of CSSPropertyID enum values in CSSPropertyNames.h. I filed https://bugs.webkit.org/show_bug.cgi?id=216170 about this. * platform/mac-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated. * platform/mac-mojave-wk1/editing/mac/attributed-string/letter-spacing-expected.txt: Updated Canonical link: https://commits.webkit.org/229052@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-06 22:20:54 +00:00
// See the comment in maybeUpdateFontForLetterSpacing() about why this needs to be a friend.
friend void maybeUpdateFontForLetterSpacing(BuilderState&, CSSValue&);
Introduce Style::Builder https://bugs.webkit.org/show_bug.cgi?id=203682 Reviewed by Zalan Bujtas. Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state. Move tha applying code from StyleResolver and PropertyCascade there. Move a bunch of font related state from StyleResolver::State to BuilderState. * DerivedSources-output.xcfilelist: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableReference): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): (WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted. (WebCore::checkForOrientationChange): Deleted. (WebCore::StyleResolver::updateFont): Deleted. (WebCore::StyleResolver::useSVGZoomRules const): Deleted. (WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted. (WebCore::StyleResolver::checkForTextSizeAdjust): Deleted. (WebCore::StyleResolver::checkForZoomChange): Deleted. (WebCore::StyleResolver::checkForGenericFamilyChange): Deleted. (WebCore::StyleResolver::setFontSize): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted. (WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted. (WebCore::StyleResolver::State::useSVGZoomRules const): Deleted. * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSPropertyParser.cpp: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::set): (WebCore::Style::PropertyCascade::propertyCascadeForRollback const): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const): (WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted. (WebCore::Style::PropertyCascade::applyProperties): Deleted. (WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperties): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperty): Deleted. (WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted. (WebCore::Style::PropertyCascade::applyProperty): Deleted. (WebCore::Style::PropertyCascade::resolveValue): Deleted. (WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted. (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted. * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::deferredProperties const): (WebCore::Style::PropertyCascade::customProperties const): (WebCore::Style::PropertyCascade::direction const): (WebCore::Style::PropertyCascade::builderState): Deleted. * style/StyleBuilder.cpp: Added. (WebCore::Style::directionFromStyle): (WebCore::Style::Builder::Builder): (WebCore::Style::Builder::applyAllProperties): (WebCore::Style::Builder::applyHighPriorityProperties): (WebCore::Style::Builder::applyLowPriorityProperties): (WebCore::Style::Builder::applyPropertyValue): (WebCore::Style::Builder::applyDeferredProperties): (WebCore::Style::Builder::applyProperties): (WebCore::Style::Builder::applyPropertiesImpl): (WebCore::Style::Builder::applyCustomProperties): (WebCore::Style::Builder::applyCustomProperty): (WebCore::Style::Builder::applyCascadeProperty): (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::resolveValue): (WebCore::Style::Builder::resolvedVariableValue): * style/StyleBuilder.h: Added. (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::state): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby): (WebCore::Style::BuilderState::updateFont): (WebCore::Style::BuilderState::updateFontForTextSizeAdjust): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): (WebCore::Style::BuilderState::updateFontForOrientationChange): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::cascade): Deleted. (WebCore::Style::BuilderState::clearFontDirty): Deleted. Canonical link: https://commits.webkit.org/217053@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-31 18:55:34 +00:00
friend class Builder;
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
Introduce Style::Builder https://bugs.webkit.org/show_bug.cgi?id=203682 Reviewed by Zalan Bujtas. Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state. Move tha applying code from StyleResolver and PropertyCascade there. Move a bunch of font related state from StyleResolver::State to BuilderState. * DerivedSources-output.xcfilelist: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableReference): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): (WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted. (WebCore::checkForOrientationChange): Deleted. (WebCore::StyleResolver::updateFont): Deleted. (WebCore::StyleResolver::useSVGZoomRules const): Deleted. (WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted. (WebCore::StyleResolver::checkForTextSizeAdjust): Deleted. (WebCore::StyleResolver::checkForZoomChange): Deleted. (WebCore::StyleResolver::checkForGenericFamilyChange): Deleted. (WebCore::StyleResolver::setFontSize): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted. (WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted. (WebCore::StyleResolver::State::useSVGZoomRules const): Deleted. * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSPropertyParser.cpp: * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::set): (WebCore::Style::PropertyCascade::propertyCascadeForRollback const): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const): (WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted. (WebCore::Style::PropertyCascade::applyProperties): Deleted. (WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperties): Deleted. (WebCore::Style::PropertyCascade::applyCustomProperty): Deleted. (WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted. (WebCore::Style::PropertyCascade::applyProperty): Deleted. (WebCore::Style::PropertyCascade::resolveValue): Deleted. (WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted. (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted. * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::deferredProperties const): (WebCore::Style::PropertyCascade::customProperties const): (WebCore::Style::PropertyCascade::direction const): (WebCore::Style::PropertyCascade::builderState): Deleted. * style/StyleBuilder.cpp: Added. (WebCore::Style::directionFromStyle): (WebCore::Style::Builder::Builder): (WebCore::Style::Builder::applyAllProperties): (WebCore::Style::Builder::applyHighPriorityProperties): (WebCore::Style::Builder::applyLowPriorityProperties): (WebCore::Style::Builder::applyPropertyValue): (WebCore::Style::Builder::applyDeferredProperties): (WebCore::Style::Builder::applyProperties): (WebCore::Style::Builder::applyPropertiesImpl): (WebCore::Style::Builder::applyCustomProperties): (WebCore::Style::Builder::applyCustomProperty): (WebCore::Style::Builder::applyCascadeProperty): (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::resolveValue): (WebCore::Style::Builder::resolvedVariableValue): * style/StyleBuilder.h: Added. (WebCore::Style::Builder::applyProperty): (WebCore::Style::Builder::state): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueFontSize): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby): (WebCore::Style::BuilderState::updateFont): (WebCore::Style::BuilderState::updateFontForTextSizeAdjust): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): (WebCore::Style::BuilderState::updateFontForOrientationChange): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::cascade): Deleted. (WebCore::Style::BuilderState::clearFontDirty): Deleted. Canonical link: https://commits.webkit.org/217053@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-31 18:55:34 +00:00
void adjustStyleForInterCharacterRuby();
void updateFont();
#if ENABLE(TEXT_AUTOSIZING)
void updateFontForTextSizeAdjust();
#endif
void updateFontForZoomChange();
void updateFontForGenericFamilyChange();
void updateFontForOrientationChange();
Builder& m_builder;
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
CSSToStyleMap m_styleMap;
RenderStyle& m_style;
Stack allocate StyleResolver state https://bugs.webkit.org/show_bug.cgi?id=204053 Reviewed by Zalan Bujtas. State is currently awkwardly a member that gets cleared. It should be stack allocated and passed around where needed. * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::updateBlendingKeyframes): * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::builderContext): Helper for initializing Style::Builder from resolver state. (WebCore::StyleResolver::styleForElement): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::keyframeStylesForAnimation): (WebCore::StyleResolver::pseudoStyleForElement): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::defaultStyleForElement): (WebCore::StyleResolver::pseudoStyleRulesForElement): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::State::clear): Deleted. Nothing to clear, state is transient. (WebCore::StyleResolver::setNewStateWithElement): Deleted. (WebCore::StyleResolver::applyPropertyToStyle): Deleted. (WebCore::StyleResolver::applyPropertyToCurrentStyle): Deleted. Style::Builder can be used directly to apply properties instead of via these functions that require state setup. (WebCore::StyleResolver::initializeFontStyle): Deleted. * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::style const): Deleted. (WebCore::StyleResolver::parentStyle const): Deleted. (WebCore::StyleResolver::rootElementStyle const): Deleted. (WebCore::StyleResolver::element const): Deleted. (WebCore::StyleResolver::state): Deleted. (WebCore::StyleResolver::state const): Deleted. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): Use Style::Builder directly to apply properties. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): Encapsulte immutable arguments into BuilderContext type. (WebCore::Style::Builder::applyPropertyValue): * style/StyleBuilder.h: * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::updateFontForZoomChange): (WebCore::Style::BuilderState::updateFontForGenericFamilyChange): * style/StyleBuilderState.h: (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::parentFontDescription): Canonical link: https://commits.webkit.org/217376@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-10 08:01:51 +00:00
const BuilderContext m_context;
Style::Builder should not depend on StyleResolver https://bugs.webkit.org/show_bug.cgi?id=203729 Reviewed by Zalan Bujtas. With all style building state in builder, we can remove the back-reference to style resolver. * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::createFilterOperations): * css/CSSFilterImageValue.h: * css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::gradientWithStylesResolved): (WebCore::CSSGradientValue::resolveRGBColors): Add helper for resolving basic colors without style builder. * css/CSSGradientValue.h: * css/StyleResolver.cpp: (WebCore::StyleResolver::State::clear): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::applyMatchedProperties): Register content attributes encountered during style building. (WebCore::StyleResolver::State::updateConversionData): Deleted. This is now created by BuilderState constructor. (WebCore::StyleResolver::styleImage): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted. (WebCore::filterOperationForType): Deleted. (WebCore::StyleResolver::createFilterOperations): Deleted. Move image mapping functions to BuilderState. * css/StyleResolver.h: (WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted. * html/HTMLInputElement.cpp: (WebCore::autoFillStrongPasswordMaskImage): (WebCore::HTMLInputElement::createInnerTextStyle): Create mask image without requiring style resolver. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueZoom): (WebCore::Style::BuilderCustom::applyValueContent): (WebCore::Style::BuilderCustom::applyValueFontSize): (WebCore::Style::BuilderCustom::applyValueAlt): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): No more m_styleResolver. (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::filterOperationForType): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::registerContentAttribute): Collect content attributes so they can be applied later by StyleResolver. * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::rootElementStyle const): Restore this to be nullable for simplicity. (WebCore::Style::BuilderState::registeredContentAttributes const): (WebCore::Style::BuilderState::styleResolver): Deleted. Canonical link: https://commits.webkit.org/217094@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-01 15:20:19 +00:00
const CSSToLengthConversionData m_cssToLengthConversionData;
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
Bitmap<numCSSProperties> m_appliedProperties;
HashSet<String> m_appliedCustomProperties;
Bitmap<numCSSProperties> m_inProgressProperties;
HashSet<String> m_inProgressPropertiesCustom;
CascadeLevel m_cascadeLevel { };
ScopeOrdinal m_styleScopeOrdinal { };
SelectorChecker::LinkMatchMask m_linkMatch { };
bool m_fontDirty { false };
Style::Builder should not depend on StyleResolver https://bugs.webkit.org/show_bug.cgi?id=203729 Reviewed by Zalan Bujtas. With all style building state in builder, we can remove the back-reference to style resolver. * css/CSSFilterImageValue.cpp: (WebCore::CSSFilterImageValue::createFilterOperations): * css/CSSFilterImageValue.h: * css/CSSGradientValue.cpp: (WebCore::CSSGradientValue::gradientWithStylesResolved): (WebCore::CSSGradientValue::resolveRGBColors): Add helper for resolving basic colors without style builder. * css/CSSGradientValue.h: * css/StyleResolver.cpp: (WebCore::StyleResolver::State::clear): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::State::setStyle): (WebCore::StyleResolver::applyMatchedProperties): Register content attributes encountered during style building. (WebCore::StyleResolver::State::updateConversionData): Deleted. This is now created by BuilderState constructor. (WebCore::StyleResolver::styleImage): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted. (WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted. (WebCore::filterOperationForType): Deleted. (WebCore::StyleResolver::createFilterOperations): Deleted. Move image mapping functions to BuilderState. * css/StyleResolver.h: (WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted. * html/HTMLInputElement.cpp: (WebCore::autoFillStrongPasswordMaskImage): (WebCore::HTMLInputElement::createInnerTextStyle): Create mask image without requiring style resolver. * style/StyleBuilder.cpp: (WebCore::Style::Builder::Builder): * style/StyleBuilderCustom.h: (WebCore::Style::BuilderCustom::applyValueZoom): (WebCore::Style::BuilderCustom::applyValueContent): (WebCore::Style::BuilderCustom::applyValueFontSize): (WebCore::Style::BuilderCustom::applyValueAlt): * style/StyleBuilderState.cpp: (WebCore::Style::BuilderState::BuilderState): No more m_styleResolver. (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::filterOperationForType): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::registerContentAttribute): Collect content attributes so they can be applied later by StyleResolver. * style/StyleBuilderState.h: (WebCore::Style::BuilderState::builder): (WebCore::Style::BuilderState::rootElementStyle const): Restore this to be nullable for simplicity. (WebCore::Style::BuilderState::registeredContentAttributes const): (WebCore::Style::BuilderState::styleResolver): Deleted. Canonical link: https://commits.webkit.org/217094@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-01 15:20:19 +00:00
Vector<AtomString> m_registeredContentAttributes;
Move style building state to a class of its own https://bugs.webkit.org/show_bug.cgi?id=203562 Reviewed by Zalan Bujtas. Move most of the state needed for applying properties from StyleResolver::State and PropertyCascade::ApplyState to new Style::BuilderState. Pass BuilderState around in all functions invoked during style building instead of StyleResolver. Unlike StyleResolver, BuilderState is a stack-allocated object that exists during style building only. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * css/CSSToStyleMap.cpp: (WebCore::CSSToStyleMap::CSSToStyleMap): (WebCore::CSSToStyleMap::style const): (WebCore::CSSToStyleMap::useSVGZoomRules const): (WebCore::CSSToStyleMap::styleImage): (WebCore::CSSToStyleMap::mapFillSize): (WebCore::CSSToStyleMap::mapFillXPosition): (WebCore::CSSToStyleMap::mapFillYPosition): (WebCore::CSSToStyleMap::mapAnimationName): (WebCore::CSSToStyleMap::mapNinePieceImageQuad): (WebCore::CSSToStyleMap::rootElementStyle const): Deleted. * css/CSSToStyleMap.h: * css/CSSVariableReferenceValue.cpp: (WebCore::resolveVariableFallback): (WebCore::resolveVariableReference): (WebCore::resolveTokenRange): (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): * css/CSSVariableReferenceValue.h: * css/DOMCSSRegisterCustomProperty.cpp: (WebCore::DOMCSSRegisterCustomProperty::registerProperty): * css/StyleBuilder.h: * css/StyleBuilderConverter.h: (WebCore::StyleBuilderConverter::convertLength): (WebCore::StyleBuilderConverter::convertLengthOrAuto): (WebCore::StyleBuilderConverter::convertLengthSizing): (WebCore::StyleBuilderConverter::convertLengthMaxSizing): (WebCore::StyleBuilderConverter::convertTabSize): (WebCore::StyleBuilderConverter::convertComputedLength): (WebCore::StyleBuilderConverter::convertLineWidth): (WebCore::StyleBuilderConverter::convertSpacing): (WebCore::StyleBuilderConverter::convertRadius): (WebCore::StyleBuilderConverter::convertPositionComponentX): (WebCore::StyleBuilderConverter::convertPositionComponentY): (WebCore::StyleBuilderConverter::convertPositionComponent): (WebCore::StyleBuilderConverter::convertObjectPosition): (WebCore::StyleBuilderConverter::convertTextDecoration): (WebCore::StyleBuilderConverter::convertNumber): (WebCore::StyleBuilderConverter::convertNumberOrAuto): (WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines): (WebCore::StyleBuilderConverter::convertBorderImage): (WebCore::StyleBuilderConverter::convertBorderMask): (WebCore::StyleBuilderConverter::convertStyleImage): (WebCore::StyleBuilderConverter::convertTransform): (WebCore::StyleBuilderConverter::convertColorScheme): (WebCore::StyleBuilderConverter::convertString): (WebCore::StyleBuilderConverter::convertStringOrAuto): (WebCore::StyleBuilderConverter::convertStringOrNone): (WebCore::StyleBuilderConverter::convertTextEmphasisPosition): (WebCore::StyleBuilderConverter::convertTextAlign): (WebCore::StyleBuilderConverter::convertClipPath): (WebCore::StyleBuilderConverter::convertResize): (WebCore::StyleBuilderConverter::convertMarqueeRepetition): (WebCore::StyleBuilderConverter::convertMarqueeSpeed): (WebCore::StyleBuilderConverter::convertQuotes): (WebCore::StyleBuilderConverter::convertTextUnderlinePosition): (WebCore::StyleBuilderConverter::convertTextUnderlineOffset): (WebCore::StyleBuilderConverter::convertTextDecorationThickness): (WebCore::StyleBuilderConverter::convertReflection): (WebCore::StyleBuilderConverter::convertInitialLetter): (WebCore::StyleBuilderConverter::convertTextStrokeWidth): (WebCore::StyleBuilderConverter::convertLineBoxContain): (WebCore::StyleBuilderConverter::convertTextDecorationSkip): (WebCore::StyleBuilderConverter::convertShapeValue): (WebCore::StyleBuilderConverter::convertScrollSnapType): (WebCore::StyleBuilderConverter::convertScrollSnapAlign): (WebCore::StyleBuilderConverter::createGridTrackBreadth): (WebCore::StyleBuilderConverter::createGridTrackSize): (WebCore::StyleBuilderConverter::createGridTrackList): (WebCore::StyleBuilderConverter::convertGridTrackSizeList): (WebCore::StyleBuilderConverter::convertGridTrackSize): (WebCore::StyleBuilderConverter::convertGridPosition): (WebCore::StyleBuilderConverter::convertGridAutoFlow): (WebCore::StyleBuilderConverter::csstoLengthConversionDataWithTextZoomFactor): (WebCore::StyleBuilderConverter::convertWordSpacing): (WebCore::StyleBuilderConverter::convertPerspective): (WebCore::StyleBuilderConverter::convertMarqueeIncrement): (WebCore::StyleBuilderConverter::convertFilterOperations): (WebCore::StyleBuilderConverter::convertFontFeatureSettings): (WebCore::StyleBuilderConverter::convertFontWeight): (WebCore::StyleBuilderConverter::convertFontStretch): (WebCore::StyleBuilderConverter::convertFontVariationSettings): (WebCore::StyleBuilderConverter::convertTouchCallout): (WebCore::StyleBuilderConverter::convertTapHighlightColor): (WebCore::StyleBuilderConverter::convertTouchAction): (WebCore::StyleBuilderConverter::convertOverflowScrolling): (WebCore::StyleBuilderConverter::convertSVGLengthValue): (WebCore::StyleBuilderConverter::convertSVGLengthVector): (WebCore::StyleBuilderConverter::convertStrokeDashArray): (WebCore::StyleBuilderConverter::convertPaintOrder): (WebCore::StyleBuilderConverter::convertOpacity): (WebCore::StyleBuilderConverter::convertSVGURIReference): (WebCore::StyleBuilderConverter::convertSVGColor): (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): (WebCore::StyleBuilderConverter::convertContentAlignmentData): (WebCore::StyleBuilderConverter::convertGlyphOrientation): (WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto): (WebCore::StyleBuilderConverter::convertLineHeight): (WebCore::StyleBuilderConverter::convertFontSynthesis): (WebCore::StyleBuilderConverter::convertSpeakAs): (WebCore::StyleBuilderConverter::convertHangingPunctuation): (WebCore::StyleBuilderConverter::convertGapLength): * css/StyleBuilderCustom.h: (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): (WebCore::StyleBuilderCustom::applyInitialFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInheritFontFeatureSettings): (WebCore::StyleBuilderCustom::applyInitialFontVariationSettings): (WebCore::StyleBuilderCustom::applyInheritFontVariationSettings): (WebCore::StyleBuilderCustom::applyValueDirection): (WebCore::StyleBuilderCustom::applyInitialTextAlign): (WebCore::StyleBuilderCustom::applyValueTextAlign): (WebCore::StyleBuilderCustom::resetEffectiveZoom): (WebCore::StyleBuilderCustom::applyInitialZoom): (WebCore::StyleBuilderCustom::applyInheritZoom): (WebCore::StyleBuilderCustom::applyValueZoom): (WebCore::StyleBuilderCustom::applyValueVerticalAlign): (WebCore::StyleBuilderCustom::applyInheritImageResolution): (WebCore::StyleBuilderCustom::applyInitialImageResolution): (WebCore::StyleBuilderCustom::applyValueImageResolution): (WebCore::StyleBuilderCustom::applyInheritSize): (WebCore::StyleBuilderCustom::applyInitialSize): (WebCore::StyleBuilderCustom::applyValueSize): (WebCore::StyleBuilderCustom::applyInheritTextIndent): (WebCore::StyleBuilderCustom::applyInitialTextIndent): (WebCore::StyleBuilderCustom::applyValueTextIndent): (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): (WebCore::ApplyPropertyBorderImageModifier::applyValue): (WebCore::ApplyPropertyBorderImageModifier::getValue): (WebCore::ApplyPropertyBorderImageModifier::setValue): (WebCore::StyleBuilderCustom::applyInheritLineHeight): (WebCore::StyleBuilderCustom::applyInitialLineHeight): (WebCore::StyleBuilderCustom::applyValueLineHeight): (WebCore::StyleBuilderCustom::applyInheritOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialOutlineStyle): (WebCore::StyleBuilderCustom::applyValueOutlineStyle): (WebCore::StyleBuilderCustom::applyInitialClip): (WebCore::StyleBuilderCustom::applyInheritClip): (WebCore::StyleBuilderCustom::applyValueClip): (WebCore::StyleBuilderCustom::applyValueWebkitLocale): (WebCore::StyleBuilderCustom::applyValueWritingMode): (WebCore::StyleBuilderCustom::applyValueWebkitTextOrientation): (WebCore::StyleBuilderCustom::applyValueWebkitTextSizeAdjust): (WebCore::StyleBuilderCustom::applyValueWebkitTextZoom): (WebCore::StyleBuilderCustom::applyValueColorScheme): (WebCore::StyleBuilderCustom::applyTextOrBoxShadowValue): (WebCore::StyleBuilderCustom::applyInitialTextShadow): (WebCore::StyleBuilderCustom::applyInheritTextShadow): (WebCore::StyleBuilderCustom::applyValueTextShadow): (WebCore::StyleBuilderCustom::applyInitialBoxShadow): (WebCore::StyleBuilderCustom::applyInheritBoxShadow): (WebCore::StyleBuilderCustom::applyValueBoxShadow): (WebCore::StyleBuilderCustom::applyInitialWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInheritWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyValueWebkitBoxShadow): (WebCore::StyleBuilderCustom::applyInitialFontFamily): (WebCore::StyleBuilderCustom::applyInheritFontFamily): (WebCore::StyleBuilderCustom::applyValueFontFamily): (WebCore::StyleBuilderCustom::isValidDisplayValue): (WebCore::StyleBuilderCustom::applyInheritDisplay): (WebCore::StyleBuilderCustom::applyValueDisplay): (WebCore::StyleBuilderCustom::applyValueBaselineShift): (WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio): (WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle): (WebCore::StyleBuilderCustom::applyInheritCounter): (WebCore::StyleBuilderCustom::applyValueCounter): (WebCore::StyleBuilderCustom::applyInitialCounterIncrement): (WebCore::StyleBuilderCustom::applyInheritCounterIncrement): (WebCore::StyleBuilderCustom::applyValueCounterIncrement): (WebCore::StyleBuilderCustom::applyInitialCounterReset): (WebCore::StyleBuilderCustom::applyInheritCounterReset): (WebCore::StyleBuilderCustom::applyValueCounterReset): (WebCore::StyleBuilderCustom::applyInitialCursor): (WebCore::StyleBuilderCustom::applyInheritCursor): (WebCore::StyleBuilderCustom::applyValueCursor): (WebCore::StyleBuilderCustom::applyInitialFill): (WebCore::StyleBuilderCustom::applyInheritFill): (WebCore::StyleBuilderCustom::applyValueFill): (WebCore::StyleBuilderCustom::applyInitialStroke): (WebCore::StyleBuilderCustom::applyInheritStroke): (WebCore::StyleBuilderCustom::applyValueStroke): (WebCore::StyleBuilderCustom::applyInitialContent): (WebCore::StyleBuilderCustom::applyInheritContent): (WebCore::StyleBuilderCustom::applyValueContent): (WebCore::StyleBuilderCustom::applyInheritFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInitialFontVariantLigatures): (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures): (WebCore::StyleBuilderCustom::applyInheritFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInitialFontVariantNumeric): (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric): (WebCore::StyleBuilderCustom::applyInheritFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian): (WebCore::StyleBuilderCustom::applyInitialFontSize): (WebCore::StyleBuilderCustom::applyInheritFontSize): (WebCore::StyleBuilderCustom::determineRubyTextSizeMultiplier): (WebCore::StyleBuilderCustom::applyInitialFontStyle): (WebCore::StyleBuilderCustom::applyInheritFontStyle): (WebCore::StyleBuilderCustom::applyValueFontStyle): (WebCore::StyleBuilderCustom::applyValueFontSize): (WebCore::StyleBuilderCustom::applyInitialGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInheritGridTemplateAreas): (WebCore::StyleBuilderCustom::applyValueGridTemplateAreas): (WebCore::StyleBuilderCustom::applyInitialGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInheritGridTemplateColumns): (WebCore::StyleBuilderCustom::applyValueGridTemplateColumns): (WebCore::StyleBuilderCustom::applyInitialGridTemplateRows): (WebCore::StyleBuilderCustom::applyInheritGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueGridTemplateRows): (WebCore::StyleBuilderCustom::applyValueAlt): (WebCore::StyleBuilderCustom::applyValueWillChange): (WebCore::StyleBuilderCustom::applyValueStrokeWidth): (WebCore::StyleBuilderCustom::applyValueStrokeColor): (WebCore::StyleBuilderCustom::applyInitialCustomProperty): (WebCore::StyleBuilderCustom::applyInheritCustomProperty): (WebCore::StyleBuilderCustom::applyValueCustomProperty): * css/StyleResolver.cpp: (WebCore::StyleResolver::StyleResolver): (WebCore::StyleResolver::State::State): (WebCore::StyleResolver::styleForKeyframe): (WebCore::StyleResolver::styleForPage): (WebCore::StyleResolver::updateFont): (WebCore::StyleResolver::applyMatchedProperties): (WebCore::StyleResolver::applyPropertyToCurrentStyle): (WebCore::StyleResolver::initializeFontStyle): * css/StyleResolver.h: (WebCore::StyleResolver::inspectorCSSOMWrappers): (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle): Deleted. (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle): Deleted. (WebCore::StyleResolver::State::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::State::setFontDirty): Deleted. (WebCore::StyleResolver::State::fontDirty const): Deleted. (WebCore::StyleResolver::State::fontDescription): Deleted. (WebCore::StyleResolver::State::parentFontDescription): Deleted. (WebCore::StyleResolver::State::setFontDescription): Deleted. (WebCore::StyleResolver::State::setZoom): Deleted. (WebCore::StyleResolver::State::setEffectiveZoom): Deleted. (WebCore::StyleResolver::State::setWritingMode): Deleted. (WebCore::StyleResolver::State::setTextOrientation): Deleted. (WebCore::StyleResolver::State::cascadeLevel const): Deleted. (WebCore::StyleResolver::State::setCascadeLevel): Deleted. (WebCore::StyleResolver::State::styleScopeOrdinal const): Deleted. (WebCore::StyleResolver::State::setStyleScopeOrdinal): Deleted. (WebCore::StyleResolver::applyPropertyToRegularStyle const): Deleted. (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle const): Deleted. (WebCore::StyleResolver::styleMap): Deleted. (WebCore::StyleResolver::fontDescription): Deleted. (WebCore::StyleResolver::parentFontDescription): Deleted. (WebCore::StyleResolver::setFontDescription): Deleted. (WebCore::StyleResolver::setZoom): Deleted. (WebCore::StyleResolver::setEffectiveZoom): Deleted. (WebCore::StyleResolver::setWritingMode): Deleted. (WebCore::StyleResolver::setTextOrientation): Deleted. * css/makeprop.pl: (getAutoGetter): (getAutoSetter): (getVisitedLinkSetter): (colorFromPrimitiveValue): (generateColorValueSetter): (handleCurrentColorValue): (generateAnimationPropertyInitialValueSetter): (generateAnimationPropertyInheritValueSetter): (generateAnimationPropertyValueSetter): (generateFillLayerPropertyInitialValueSetter): (generateFillLayerPropertyInheritValueSetter): (generateFillLayerPropertyValueSetter): (generateSetValueStatement): (generateInitialValueSetter): (generateInheritValueSetter): (generateValueSetter): * css/parser/CSSParser.cpp: (WebCore::CSSParser::parseValueWithVariableReferences): * css/parser/CSSParser.h: * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): * css/parser/CSSPropertyParser.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::builderState): (WebCore::GraphicsContext::applyState): Deleted. * platform/graphics/GraphicsContext.h: * platform/graphics/displaylists/DisplayListItems.h: * style/CascadeLevel.h: Copied from Source/WebCore/css/StyleBuilder.h. (WebCore::Style::allCascadeLevels): * style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade): (WebCore::Style::PropertyCascade::applyPropertiesImpl): (WebCore::Style::PropertyCascade::applyCustomProperty): (WebCore::Style::PropertyCascade::applyProperty): (WebCore::Style::PropertyCascade::resolveValue): (WebCore::Style::PropertyCascade::resolvedVariableValue): (WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): * style/PropertyCascade.h: (WebCore::Style::PropertyCascade::builderState): (WebCore::Style::allCascadeLevels): Deleted. (WebCore::Style::PropertyCascade::styleResolver): Deleted. * style/StyleBuilderState.cpp: Added. (WebCore::Style::BuilderState::BuilderState): (WebCore::Style::BuilderState::useSVGZoomRules const): (WebCore::Style::BuilderState::useSVGZoomRulesForLength const): (WebCore::Style::BuilderState::createStyleImage): (WebCore::Style::BuilderState::createFilterOperations): (WebCore::Style::BuilderState::colorFromPrimitiveValue const): (WebCore::Style::BuilderState::setFontSize): * style/StyleBuilderState.h: Added. (WebCore::Style::BuilderState::cascade): (WebCore::Style::BuilderState::styleResolver): (WebCore::Style::BuilderState::style): (WebCore::Style::BuilderState::parentStyle const): (WebCore::Style::BuilderState::rootElementStyle const): (WebCore::Style::BuilderState::document const): (WebCore::Style::BuilderState::element const): (WebCore::Style::BuilderState::setFontDescription): (WebCore::Style::BuilderState::setZoom): (WebCore::Style::BuilderState::setEffectiveZoom): (WebCore::Style::BuilderState::setWritingMode): (WebCore::Style::BuilderState::setTextOrientation): (WebCore::Style::BuilderState::fontDirty const): (WebCore::Style::BuilderState::setFontDirty): (WebCore::Style::BuilderState::clearFontDirty): (WebCore::Style::BuilderState::fontDescription): (WebCore::Style::BuilderState::parentFontDescription): (WebCore::Style::BuilderState::applyPropertyToRegularStyle const): (WebCore::Style::BuilderState::applyPropertyToVisitedLinkStyle const): (WebCore::Style::BuilderState::styleScopeOrdinal const): (WebCore::Style::BuilderState::cssToLengthConversionData const): (WebCore::Style::BuilderState::styleMap): Canonical link: https://commits.webkit.org/216994@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-30 20:13:30 +00:00
};
}
}