Skip to content

Commit

Permalink
Split ShorthandSerializer into its own file
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=251064
rdar://problem/104586227

Reviewed by Tim Nguyen.

Split the StyleProperties.h/cpp file up so each file has only a single class.
Make a few changes tso there's enough encapsulation.

* Source/WebCore/Headers.cmake: Added ImmutableStyleProperties.h, MutableStyleProperties.h,
ShorthandSerializer.h, and StylePropertiesInlines.h.

* Source/WebCore/Modules/highlight/Highlight.cpp: Removed unneeded includes.

* Source/WebCore/Sources.txt: Added ImmutableStyleProperties.cpp, MutableStyleProperties.cpp,
and ShorthandSerializer.cpp.

* Source/WebCore/WebCore.xcodeproj/project.pbxproj: Added all the new files.

* Source/WebCore/animation/DocumentTimeline.cpp: Added an include.

* Source/WebCore/animation/KeyframeEffect.cpp: Added an include.
(WebCore::KeyframeEffect::ParsedKeyframe::ParsedKeyframe): Moved this out of the header so we can
compile without the definition of MutableStyleProperties.
(WebCore::KeyframeEffect::ParsedKeyframe::~ParsedKeyframe): Ditto.

* Source/WebCore/animation/KeyframeEffect.h: Removed include of StyleProperties.h and made
changes so everything can compile without it. Also tidied up a bit.

* Source/WebCore/css/CSSComputedStyleDeclaration.cpp: Updated includes.
* Source/WebCore/css/CSSFontFace.h: Ditto.
* Source/WebCore/css/CSSFontFaceSet.cpp: Ditto.
* Source/WebCore/css/CSSCounterStyleRule.cpp: Ditto.

* Source/WebCore/css/CSSCounterStyleRule.h: Removed include of StyleProperties.h and made
changes so everything can compile without it.
* Source/WebCore/css/CSSKeyframeRule.h: Ditto.

* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::ComputedStyleExtractor::copyProperties): Renamed from copyPropertiesInSet and updated
to take a Span.
* Source/WebCore/css/ComputedStyleExtractor.h: Ditto.

* Source/WebCore/css/FontSelectionValueInlines.h: Deleted unused isCSS21Weight and
fontWeightKeyword functions.

* Source/WebCore/css/ImmutableStyleProperties.cpp: Added.
* Source/WebCore/css/ImmutableStyleProperties.h: Added.
* Source/WebCore/css/MutableStyleProperties.cpp: Added.
* Source/WebCore/css/MutableStyleProperties.h: Added.
* Source/WebCore/css/ShorthandSerializer.cpp: Added.
* Source/WebCore/css/ShorthandSerializer.h: Added.
* Source/WebCore/css/StyleProperties.cpp: Moved code out of this file.
* Source/WebCore/css/StyleProperties.h: Removed most includes. Marked functions inline that need
inline definitions that depend on the immutable and mutable derived classes. Got rid of
StylePropertiesType and use a boolean m_isMutable instead. Changed copyProperties to take a Span.
* Source/WebCore/css/StylePropertiesInlines.h: Added.

* Source/WebCore/css/StylePropertyShorthand.h:
(WebCore::isShorthandCSSProperty): Deleted. This is now generated along with isLonghand and is
named isShorthand.

* Source/WebCore/css/StyleRule.cpp:
(WebCore::StyleRule::setProperties): Moved out of line so we can compile the header without
including StyleProperties.h.

* Source/WebCore/css/StyleRule.h: Removed include of StyleProperties.h and made changes so
everything can compile without it.

* Source/WebCore/css/parser/CSSParser.cpp: Updated includes.
* Source/WebCore/css/parser/CSSParserImpl.cpp: Ditto.

* Source/WebCore/css/parser/CSSParserMode.h: Give CSSParserMode an underlying integer type so
it can be forward declared.

* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseValueStart): Call isShorthand.
(WebCore::CSSPropertyParser::parseFontFaceDescriptor): Ditto.

* Source/WebCore/css/process-css-properties.py:
(GenerateCSSPropertyNames): Generate isShorthand alongside isLonghand.

* Source/WebCore/css/typedom/CSSStyleValueFactory.cpp: Updated includes.
(WebCore::CSSStyleValueFactory::parseStyleValue): Use isShorthand.

* Source/WebCore/css/typedom/InlineStylePropertyMap.cpp: Updated includes.

* Source/WebCore/css/typedom/MainThreadStylePropertyMapReadOnly.cpp:
(WebCore::MainThreadStylePropertyMapReadOnly::get const): Use isShorthand.
(WebCore::MainThreadStylePropertyMapReadOnly::getAll const): Ditto.
* Source/WebCore/css/typedom/StylePropertyMap.cpp:
(WebCore::StylePropertyMap::set): Ditto.

* Source/WebCore/dom/Attr.cpp: Updated includes.

* Source/WebCore/dom/ElementData.h: Use MutableStyleProperties instead of StyleProperties for
the types where possible. More specific class gives us more efficient code.

* Source/WebCore/dom/StyledElement.cpp: Updated includes.
* Source/WebCore/dom/StyledElement.h: Use MutableStyleProperties instead of StyleProperties for
the types where possible. More specific class gives us more efficient code.

* Source/WebCore/editing/EditingStyle.cpp: Updated includes.
(WebCore::copyEditingProperties): Use copyProperties.
(WebCore::EditingStyle::extractAndRemoveBlockProperties): Use copyProperties and removeProperties.
(WebCore::EditingStyle::removeBlockProperties): Use removeProperties.
(WebCore::EditingStyle::triStateOfStyle const): Ditto.
(WebCore::removePropertiesInStyle): Ditto.
(WebCore::StyleChange::~StyleChanged): Moved this here sot he header does not need the definition
of StyleProperties.

* Source/WebCore/editing/EditingStyle.h: Removed include of StyleProperties.h and made changes so
everything can compile without it.

* Source/WebCore/editing/Editor.cpp: Updated includes.
* Source/WebCore/editing/EditorCommand.cpp: Ditto.
* Source/WebCore/editing/RemoveFormatCommand.cpp: Ditto.
* Source/WebCore/editing/ReplaceSelectionCommand.cpp: Ditto.
* Source/WebCore/editing/ios/EditorIOS.mm: Ditto.
* Source/WebCore/editing/mac/EditorMac.mm: Ditto.
* Source/WebCore/editing/markup.cpp: Ditto.
* Source/WebCore/html/HTMLBodyElement.cpp: Ditto.
* Source/WebCore/html/HTMLHRElement.cpp: Ditto.
* Source/WebCore/html/HTMLPreElement.cpp: Ditto
.
* Source/WebCore/html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::additionalPresentationalHintStyle const): Use
MutableStyleProperties.
* Source/WebCore/html/HTMLTableCellElement.h: Ditto.
* Source/WebCore/html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::additionalPresentationalHintStyle const): Ditto.
* Source/WebCore/html/HTMLTableColElement.h: Ditto.

* Source/WebCore/html/HTMLTableElement.cpp: Updated includes.
(WebCore::leakBorderStyle): Use MutableStyleProperties.
(WebCore::HTMLTableElement::additionalPresentationalHintStyle const): Ditto.
(WebCore::HTMLTableElement::createSharedCellStyle const): Ditto.
(WebCore::HTMLTableElement::additionalCellStyle const): Ditto.
(WebCore::leakGroupBorderStyle): Ditto.
(WebCore::HTMLTableElement::additionalGroupStyle const): Ditto.
* Source/WebCore/html/HTMLTableElement.h: Ditto.
* Source/WebCore/html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::additionalPresentationalHintStyle const): DItto.
* Source/WebCore/html/HTMLTableSectionElement.h: Ditto.

* Source/WebCore/html/HTMLTextFormControlElement.cpp: Updated includes.
(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const): Use auto.

* Source/WebCore/html/track/WebVTTParser.cpp: Updated includes.
* Source/WebCore/inspector/agents/InspectorAnimationAgent.cpp: Ditto.

* Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle): Use
MutableStyleProperties.

* Source/WebCore/loader/cache/CachedScript.h: Export some symbols used for testing.

* Source/WebCore/page/DragController.cpp: Updated includes.
* Source/WebCore/page/PageSerializer.cpp: Ditto.
* Source/WebCore/platform/animation/TimingFunction.cpp: Ditto.
* Source/WebCore/rendering/RenderTreeAsText.cpp: Ditto.
* Source/WebCore/style/MatchResult.h: Ditto.

* Source/WebCore/style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyProperty): Use isShorthand.
* Source/WebCore/style/Styleable.cpp:
(WebCore::compileTransitionPropertiesInStyle): Ditto.

* Source/WebCore/svg/SVGElementRareData.h: Update includes.
* Source/WebCore/svg/SVGFontFaceElement.cpp: Ditto.
* Source/WebCore/svg/properties/SVGAttributeAnimator.cpp: Ditto.
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp: Ditto.
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm: Ditto.
* Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm: Ditto.
* Source/WebKitLegacy/mac/WebView/WebFrame.mm: Ditto.
* Source/WebKitLegacy/mac/WebView/WebView.mm: Ditto.
* Tools/TestWebKitAPI/Tests/WebCore/CSSParser.cpp: Ditto.

Canonical link: https://commits.webkit.org/259519@main
  • Loading branch information
darinadler committed Jan 28, 2023
1 parent bb5fff6 commit 4ec904b
Show file tree
Hide file tree
Showing 80 changed files with 2,248 additions and 1,969 deletions.
4 changes: 4 additions & 0 deletions Source/WebCore/Headers.cmake
Expand Up @@ -642,11 +642,15 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS
css/DeprecatedCSSOMValue.h
css/DeprecatedCSSOMValueList.h
css/FontLoadTimingOverride.h
css/ImmutableStyleProperties.h
css/MediaList.h
css/MediaQueryParserContext.h
css/MutableStyleProperties.h
css/Rect.h
css/ShorthandSerializer.h
css/StyleColor.h
css/StyleProperties.h
css/StylePropertiesInlines.h
css/StyleRule.h
css/StyleRuleType.h
css/StyleSheet.h
Expand Down
4 changes: 0 additions & 4 deletions Source/WebCore/Modules/highlight/Highlight.cpp
Expand Up @@ -30,12 +30,8 @@
#include "JSDOMSetLike.h"
#include "JSStaticRange.h"
#include "NodeTraversal.h"
#include "PropertySetCSSStyleDeclaration.h"
#include "RenderBlockFlow.h"
#include "RenderObject.h"
#include "StaticRange.h"
#include "StyleProperties.h"
#include <wtf/Ref.h>

namespace WebCore {

Expand Down
9 changes: 6 additions & 3 deletions Source/WebCore/Sources.txt
Expand Up @@ -730,9 +730,6 @@ crypto/keys/CryptoKeyRSA.cpp
crypto/keys/CryptoKeyRSAComponents.cpp
crypto/keys/CryptoKeyRaw.cpp
css/BasicShapeFunctions.cpp
css/ComputedStyleExtractor.cpp
css/ContainerQuery.cpp
css/ContainerQueryParser.cpp
css/CSSAspectRatioValue.cpp
css/CSSBackgroundRepeatValue.cpp
css/CSSBasicShapes.cpp
Expand Down Expand Up @@ -820,6 +817,9 @@ css/CSSValuePair.cpp
css/CSSValuePool.cpp
css/CSSVariableData.cpp
css/CSSVariableReferenceValue.cpp
css/ComputedStyleExtractor.cpp
css/ContainerQuery.cpp
css/ContainerQueryParser.cpp
css/DOMCSSNamespace.cpp
css/DOMCSSPaintWorklet.cpp
css/DOMCSSRegisterCustomProperty.cpp
Expand All @@ -831,15 +831,18 @@ css/DeprecatedCSSOMValueList.cpp
css/FontFace.cpp
css/FontFaceSet.cpp
css/FontVariantBuilder.cpp
css/ImmutableStyleProperties.cpp
css/MediaList.cpp
css/MediaQueryList.cpp
css/MediaQueryListEvent.cpp
css/MediaQueryMatcher.cpp
css/MediaQueryParserContext.cpp
css/MutableStyleProperties.cpp
css/PropertySetCSSStyleDeclaration.cpp
css/SVGCSSComputedStyleDeclaration.cpp
css/SelectorChecker.cpp
css/SelectorFilter.cpp
css/ShorthandSerializer.cpp
css/StyleColor.cpp
css/StyleMedia.cpp
css/StyleProperties.cpp
Expand Down
22 changes: 22 additions & 0 deletions Source/WebCore/WebCore.xcodeproj/project.pbxproj
Expand Up @@ -3074,6 +3074,10 @@
93085DBE26E18EE4000EC6A7 /* StorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DB826E14FBA000EC6A7 /* StorageProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
93085DF826E822C7000EC6A7 /* DummyStorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DF626E822C6000EC6A7 /* DummyStorageProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
930908910AF7EDE40081DF01 /* HitTestRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 930908900AF7EDE40081DF01 /* HitTestRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
930A76C3297FA0610055B743 /* ShorthandSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 930A76C2297FA04A0055B743 /* ShorthandSerializer.h */; };
930A76C8297FA1C70055B743 /* MutableStyleProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 930A76C6297FA1C30055B743 /* MutableStyleProperties.h */; settings = {ATTRIBUTES = (Private, ); }; };
930A76C9297FA1CE0055B743 /* ImmutableStyleProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 930A76C5297FA1B80055B743 /* ImmutableStyleProperties.h */; };
930A76CB297FA2B30055B743 /* StylePropertiesInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 930A76CA297FA2B00055B743 /* StylePropertiesInlines.h */; };
930AAC9A250EB8490013DA9F /* CSSConditionRule.h in Headers */ = {isa = PBXBuildFile; fileRef = 930AAC98250EB8170013DA9F /* CSSConditionRule.h */; settings = {ATTRIBUTES = (Private, ); }; };
930AAC9F250ED4090013DA9F /* JSCSSConditionRule.h in Headers */ = {isa = PBXBuildFile; fileRef = 930AAC9D250ED4090013DA9F /* JSCSSConditionRule.h */; };
930AACA2250ED4110013DA9F /* JSCSSGroupingRule.h in Headers */ = {isa = PBXBuildFile; fileRef = 930AACA0250ED4110013DA9F /* JSCSSGroupingRule.h */; };
Expand Down Expand Up @@ -13339,6 +13343,13 @@
93085DB926E14FBA000EC6A7 /* StorageConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageConnection.h; sourceTree = "<group>"; };
93085DF626E822C6000EC6A7 /* DummyStorageProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DummyStorageProvider.h; sourceTree = "<group>"; };
930908900AF7EDE40081DF01 /* HitTestRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HitTestRequest.h; sourceTree = "<group>"; };
930A76C1297FA0470055B743 /* ShorthandSerializer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ShorthandSerializer.cpp; sourceTree = "<group>"; };
930A76C2297FA04A0055B743 /* ShorthandSerializer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShorthandSerializer.h; sourceTree = "<group>"; };
930A76C4297FA1B40055B743 /* ImmutableStyleProperties.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ImmutableStyleProperties.cpp; sourceTree = "<group>"; };
930A76C5297FA1B80055B743 /* ImmutableStyleProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImmutableStyleProperties.h; sourceTree = "<group>"; };
930A76C6297FA1C30055B743 /* MutableStyleProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MutableStyleProperties.h; sourceTree = "<group>"; };
930A76C7297FA1C40055B743 /* MutableStyleProperties.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MutableStyleProperties.cpp; sourceTree = "<group>"; };
930A76CA297FA2B00055B743 /* StylePropertiesInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StylePropertiesInlines.h; sourceTree = "<group>"; };
930AAC96250EB8170013DA9F /* CSSConditionRule.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CSSConditionRule.cpp; sourceTree = "<group>"; };
930AAC98250EB8170013DA9F /* CSSConditionRule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSSConditionRule.h; sourceTree = "<group>"; };
930AAC99250EB8180013DA9F /* CSSConditionRule.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = CSSConditionRule.idl; sourceTree = "<group>"; };
Expand Down Expand Up @@ -33484,6 +33495,8 @@
C2015C091BE6FE2C00822389 /* FontVariantBuilder.h */,
CD4E0AFA11F7BC27009D3811 /* fullscreen.css */,
93CA4C9909DF93FA00DF8677 /* html.css */,
930A76C4297FA1B40055B743 /* ImmutableStyleProperties.cpp */,
930A76C5297FA1B80055B743 /* ImmutableStyleProperties.h */,
E54CA6DD255DE2D500F901A3 /* legacyFormControlsIOS.css */,
9BE5468E2880D72200F635A4 /* LinkStyle.idl */,
93CA4C9A09DF93FA00DF8677 /* make-css-file-arrays.pl */,
Expand All @@ -33504,6 +33517,8 @@
D3AA10F2123A98AA0092152B /* MediaQueryMatcher.h */,
4471710B205AF945000A116E /* MediaQueryParserContext.cpp */,
4471710C205AF945000A116E /* MediaQueryParserContext.h */,
930A76C7297FA1C40055B743 /* MutableStyleProperties.cpp */,
930A76C6297FA1C30055B743 /* MutableStyleProperties.h */,
A80E6CD10A1989CA007FB8C5 /* Pair.h */,
3189E6DB16B2103500386EA3 /* plugIns.css */,
BC8A133629177FB700096A9F /* process-css-properties.py */,
Expand All @@ -33520,13 +33535,16 @@
43B85ED618CBEC9700E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.in */,
26AA0F9A18D2973D00419381 /* SelectorPseudoElementTypeMap.in */,
43107BE118CC19DE00CC18E8 /* SelectorPseudoTypeMap.h */,
930A76C1297FA0470055B743 /* ShorthandSerializer.cpp */,
930A76C2297FA04A0055B743 /* ShorthandSerializer.h */,
941827881D8B242200492764 /* StyleColor.cpp */,
941827891D8B242200492764 /* StyleColor.h */,
0FF5026E102BA9660066F39A /* StyleMedia.cpp */,
0FF5026F102BA96A0066F39A /* StyleMedia.h */,
0FF50270102BA96A0066F39A /* StyleMedia.idl */,
A80E6DF90A199067007FB8C5 /* StyleProperties.cpp */,
A80E6DFA0A199067007FB8C5 /* StyleProperties.h */,
930A76CA297FA2B00055B743 /* StylePropertiesInlines.h */,
E1B25104152A0BAF0069B779 /* StylePropertyShorthand.cpp */,
E1B25105152A0BAF0069B779 /* StylePropertyShorthand.h */,
E4BBED4A14FCDBA1003F0B98 /* StyleRule.cpp */,
Expand Down Expand Up @@ -36767,6 +36785,7 @@
55BBD42924DB560400BB6E0C /* ImageUtilities.h in Headers */,
26F756B31B3B66F70005DD79 /* ImmutableNFA.h in Headers */,
26F756B51B3B68F20005DD79 /* ImmutableNFANodeBuilder.h in Headers */,
930A76C9297FA1CE0055B743 /* ImmutableStyleProperties.h in Headers */,
070E2D1026F250930014AAC3 /* InbandChapterTrackPrivateAVFObjC.h in Headers */,
BE961C5518AD338C00D07DC5 /* InbandDataTextTrack.h in Headers */,
078633E923FF347B0087AE21 /* InbandGenericCue.h in Headers */,
Expand Down Expand Up @@ -38135,6 +38154,7 @@
517E03F724B6D9840054895A /* MultiGamepadProvider.h in Headers */,
26F756B01B3B65AC0005DD79 /* MutableRange.h in Headers */,
26F756B11B3B65AC0005DD79 /* MutableRangeList.h in Headers */,
930A76C8297FA1C70055B743 /* MutableStyleProperties.h in Headers */,
C6F0900A14327B6100685849 /* MutationCallback.h in Headers */,
85031B4A0A44EFC700F992E0 /* MutationEvent.h in Headers */,
C6F0900F14327B6100685849 /* MutationObserver.h in Headers */,
Expand Down Expand Up @@ -39093,6 +39113,7 @@
467A68D8275EA995009B31C5 /* SharedWorkerScriptLoader.h in Headers */,
467A68D7275EA991009B31C5 /* SharedWorkerThread.h in Headers */,
467A68D9275EA998009B31C5 /* SharedWorkerThreadProxy.h in Headers */,
930A76C3297FA0610055B743 /* ShorthandSerializer.h in Headers */,
1C4DB02627339FE0007B0AD1 /* ShouldLocalizeAxisNames.h in Headers */,
DF19E2AC24772BC1007BDACB /* ShouldRelaxThirdPartyCookieBlocking.h in Headers */,
8362E8C120CEF9CB00245886 /* ShouldTreatAsContinuingLoad.h in Headers */,
Expand Down Expand Up @@ -39261,6 +39282,7 @@
BC5EB74E0E81E06700B25965 /* StyleMultiColData.h in Headers */,
E4DACE6A1D12E10B0075980F /* StylePendingResources.h in Headers */,
A80E6DFC0A199067007FB8C5 /* StyleProperties.h in Headers */,
930A76CB297FA2B30055B743 /* StylePropertiesInlines.h in Headers */,
4BD781BF21C1965F00D9703E /* StylePropertyMap.h in Headers */,
4BAFD0CF2190F9B500C0AB64 /* StylePropertyMapReadOnly.h in Headers */,
E1B25107152A0BB00069B779 /* StylePropertyShorthand.h in Headers */,
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/animation/DocumentTimeline.cpp
Expand Up @@ -27,6 +27,7 @@
#include "DocumentTimeline.h"

#include "AnimationEventBase.h"
#include "CSSProperty.h"
#include "CSSTransition.h"
#include "CustomAnimationOptions.h"
#include "CustomEffect.h"
Expand Down
8 changes: 8 additions & 0 deletions Source/WebCore/animation/KeyframeEffect.cpp
Expand Up @@ -48,6 +48,7 @@
#include "JSKeyframeEffect.h"
#include "KeyframeEffectStack.h"
#include "Logging.h"
#include "MutableStyleProperties.h"
#include "PropertyAllowlist.h"
#include "RenderBox.h"
#include "RenderBoxModelObject.h"
Expand All @@ -69,6 +70,13 @@
namespace WebCore {
using namespace JSC;

KeyframeEffect::ParsedKeyframe::ParsedKeyframe()
: style(MutableStyleProperties::create())
{
}

KeyframeEffect::ParsedKeyframe::~ParsedKeyframe() = default;

static inline void invalidateElement(const std::optional<const Styleable>& styleable)
{
if (styleable)
Expand Down
12 changes: 4 additions & 8 deletions Source/WebCore/animation/KeyframeEffect.h
Expand Up @@ -36,7 +36,6 @@
#include "KeyframeEffectOptions.h"
#include "KeyframeList.h"
#include "RenderStyle.h"
#include "StyleProperties.h"
#include "Styleable.h"
#include "WebAnimationTypes.h"
#include <wtf/Ref.h>
Expand All @@ -47,18 +46,17 @@ namespace WebCore {

class Element;
class FilterOperations;
class MutableStyleProperties;

namespace Style {
struct ResolutionContext;
}

class KeyframeEffect : public AnimationEffect
, public CSSPropertyBlendingClient {
class KeyframeEffect : public AnimationEffect, public CSSPropertyBlendingClient {
public:
static ExceptionOr<Ref<KeyframeEffect>> create(JSC::JSGlobalObject&, Document&, Element*, JSC::Strong<JSC::JSObject>&&, std::optional<std::variant<double, KeyframeEffectOptions>>&&);
static Ref<KeyframeEffect> create(Ref<KeyframeEffect>&&);
static Ref<KeyframeEffect> create(const Element&, PseudoId);
~KeyframeEffect() { }

struct BasePropertyIndexedKeyframe {
std::variant<std::nullptr_t, Vector<std::optional<double>>, double> offset = Vector<std::optional<double>>();
Expand Down Expand Up @@ -96,10 +94,8 @@ class KeyframeEffect : public AnimationEffect
RefPtr<TimingFunction> timingFunction;
Ref<MutableStyleProperties> style;

ParsedKeyframe()
: style(MutableStyleProperties::create())
{
}
ParsedKeyframe();
~ParsedKeyframe();
};

const Vector<ParsedKeyframe>& parsedKeyframes() const { return m_parsedKeyframes; }
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/css/CSSComputedStyleDeclaration.cpp
Expand Up @@ -37,7 +37,7 @@
#include "RenderBox.h"
#include "RenderBoxModelObject.h"
#include "RenderStyle.h"
#include "StyleProperties.h"
#include "StylePropertiesInlines.h"
#include "StylePropertyShorthand.h"
#include "StyleScope.h"
#include <wtf/IsoMallocInlines.h>
Expand Down
2 changes: 2 additions & 0 deletions Source/WebCore/css/CSSCounterStyleRule.cpp
Expand Up @@ -31,10 +31,12 @@
#include "CSSStyleSheet.h"
#include "CSSTokenizer.h"
#include "CSSValuePair.h"
#include "MutableStyleProperties.h"
#include "Pair.h"
#include <wtf/text/StringBuilder.h>

namespace WebCore {

StyleRuleCounterStyle::StyleRuleCounterStyle(const AtomString& name, Ref<StyleProperties>&& properties, CSSCounterStyleDescriptors&& descriptors)
: StyleRuleBase(StyleRuleType::CounterStyle)
, m_name(name)
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/css/CSSFontFace.h
Expand Up @@ -25,7 +25,7 @@

#pragma once

#include "FontSelectionValueInlines.h"
#include "FontSelectionAlgorithm.h"
#include "FontTaggedSettings.h"
#include "RenderStyleConstants.h"
#include "Settings.h"
Expand Down
1 change: 1 addition & 0 deletions Source/WebCore/css/CSSFontFaceSet.cpp
Expand Up @@ -36,6 +36,7 @@
#include "CSSValueList.h"
#include "CSSValuePool.h"
#include "FontCache.h"
#include "FontSelectionValueInlines.h"
#include "StyleBuilderConverter.h"
#include "StyleProperties.h"

Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/css/CSSKeyframeRule.h
Expand Up @@ -26,13 +26,13 @@
#pragma once

#include "CSSRule.h"
#include "StyleProperties.h"
#include "StyleRule.h"

namespace WebCore {

class CSSStyleDeclaration;
class CSSKeyframesRule;
class StyleProperties;
class StyleRuleCSSStyleDeclaration;

class StyleRuleKeyframe final : public StyleRuleBase {
Expand Down
16 changes: 8 additions & 8 deletions Source/WebCore/css/ComputedStyleExtractor.cpp
Expand Up @@ -4412,16 +4412,16 @@ Ref<CSSValueList> ComputedStyleExtractor::getCSSPropertyValuesForGridShorthand(c
return list;
}

Ref<MutableStyleProperties> ComputedStyleExtractor::copyPropertiesInSet(const CSSPropertyID* set, unsigned length)
Ref<MutableStyleProperties> ComputedStyleExtractor::copyProperties(Span<const CSSPropertyID> properties)
{
Vector<CSSProperty> list;
list.reserveInitialCapacity(length);
for (unsigned i = 0; i < length; ++i) {
if (auto value = propertyValue(set[i]))
list.uncheckedAppend(CSSProperty(set[i], WTFMove(value), false));
Vector<CSSProperty> vector;
vector.reserveInitialCapacity(properties.size());
for (auto property : properties) {
if (auto value = propertyValue(property))
vector.uncheckedAppend(CSSProperty(property, WTFMove(value), false));
}
list.shrinkToFit();
return MutableStyleProperties::create(WTFMove(list));
vector.shrinkToFit();
return MutableStyleProperties::create(WTFMove(vector));
}

Ref<MutableStyleProperties> ComputedStyleExtractor::copyProperties()
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/css/ComputedStyleExtractor.h
Expand Up @@ -55,7 +55,7 @@ class ComputedStyleExtractor {
RefPtr<CSSValue> customPropertyValue(const AtomString& propertyName);

// Helper methods for HTML editing.
Ref<MutableStyleProperties> copyPropertiesInSet(const CSSPropertyID* set, unsigned length);
Ref<MutableStyleProperties> copyProperties(Span<const CSSPropertyID>);
Ref<MutableStyleProperties> copyProperties();
RefPtr<CSSPrimitiveValue> getFontSizeCSSValuePreferringKeyword();
bool useFixedFontDefaultSize();
Expand Down
22 changes: 0 additions & 22 deletions Source/WebCore/css/FontSelectionValueInlines.h
Expand Up @@ -30,28 +30,6 @@

namespace WebCore {

inline bool isCSS21Weight(FontSelectionValue weight)
{
return weight == FontSelectionValue(100)
|| weight == FontSelectionValue(200)
|| weight == FontSelectionValue(300)
|| weight == FontSelectionValue(400)
|| weight == FontSelectionValue(500)
|| weight == FontSelectionValue(600)
|| weight == FontSelectionValue(700)
|| weight == FontSelectionValue(800)
|| weight == FontSelectionValue(900);
}

inline std::optional<CSSValueID> fontWeightKeyword(FontSelectionValue weight)
{
if (weight == normalWeightValue())
return CSSValueNormal;
if (weight == boldWeightValue())
return CSSValueBold;
return std::nullopt;
}

inline std::optional<FontSelectionValue> fontWeightValue(CSSValueID value)
{
switch (value) {
Expand Down

0 comments on commit 4ec904b

Please sign in to comment.