Title: [283552] trunk/Source/WebCore
Revision
283552
Author
[email protected]
Date
2021-10-05 08:54:12 -0700 (Tue, 05 Oct 2021)

Log Message

Remove m_autoShrinkToFitEnabled from RuleSet
https://bugs.webkit.org/show_bug.cgi?id=231214

Reviewed by Alan Bujtas.

Make it RuleSetBuilder setting instead, enabled by default.

* style/RuleSet.h:
(WebCore::Style::RuleSet::disableAutoShrinkToFit): Deleted.
* style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::RuleSetBuilder):
(WebCore::Style::m_shrinkToFit):
(WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
(WebCore::Style::m_resolver): Deleted.
* style/RuleSetBuilder.h:
* style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::Invalidator):

Here we still want to avoid shrink-to-fit since the constructed RuleSets are temporary.

* style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::ScopeRuleSets):
(WebCore::Style::ScopeRuleSets::resetAuthorStyle):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):

Since RuleSetBuilder is scoped over everything we can no use it to do shrink-to-fit.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (283551 => 283552)


--- trunk/Source/WebCore/ChangeLog	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/ChangeLog	2021-10-05 15:54:12 UTC (rev 283552)
@@ -1,3 +1,32 @@
+2021-10-05  Antti Koivisto  <[email protected]>
+
+        Remove m_autoShrinkToFitEnabled from RuleSet
+        https://bugs.webkit.org/show_bug.cgi?id=231214
+
+        Reviewed by Alan Bujtas.
+
+        Make it RuleSetBuilder setting instead, enabled by default.
+
+        * style/RuleSet.h:
+        (WebCore::Style::RuleSet::disableAutoShrinkToFit): Deleted.
+        * style/RuleSetBuilder.cpp:
+        (WebCore::Style::RuleSetBuilder::RuleSetBuilder):
+        (WebCore::Style::m_shrinkToFit):
+        (WebCore::Style::RuleSetBuilder::~RuleSetBuilder):
+        (WebCore::Style::m_resolver): Deleted.
+        * style/RuleSetBuilder.h:
+        * style/StyleInvalidator.cpp:
+        (WebCore::Style::Invalidator::Invalidator):
+
+        Here we still want to avoid shrink-to-fit since the constructed RuleSets are temporary.
+
+        * style/StyleScopeRuleSets.cpp:
+        (WebCore::Style::ScopeRuleSets::ScopeRuleSets):
+        (WebCore::Style::ScopeRuleSets::resetAuthorStyle):
+        (WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
+
+        Since RuleSetBuilder is scoped over everything we can no use it to do shrink-to-fit.
+
 2021-10-05  Alan Bujtas  <[email protected]>
 
         [IFC][Integration] Enable first-line style for modern line layout

Modified: trunk/Source/WebCore/style/RuleSet.h (283551 => 283552)


--- trunk/Source/WebCore/style/RuleSet.h	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/style/RuleSet.h	2021-10-05 15:54:12 UTC (rev 283552)
@@ -75,7 +75,6 @@
 
     void addToRuleSet(const AtomString& key, AtomRuleMap&, const RuleData&);
     void shrinkToFit();
-    void disableAutoShrinkToFit() { m_autoShrinkToFitEnabled = false; }
 
     bool hasViewportDependentMediaQueries() const { return m_hasViewportDependentMediaQueries; }
 
@@ -180,7 +179,6 @@
     Vector<ResolverMutatingRule> m_resolverMutatingRulesInLayers;
 
     bool m_hasHostPseudoClassRulesMatchingInShadowTree { false };
-    bool m_autoShrinkToFitEnabled { true };
     bool m_hasViewportDependentMediaQueries { false };
 };
 

Modified: trunk/Source/WebCore/style/RuleSetBuilder.cpp (283551 => 283552)


--- trunk/Source/WebCore/style/RuleSetBuilder.cpp	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/style/RuleSetBuilder.cpp	2021-10-05 15:54:12 UTC (rev 283552)
@@ -32,10 +32,11 @@
 namespace WebCore {
 namespace Style {
 
-RuleSetBuilder::RuleSetBuilder(RuleSet& ruleSet, const MediaQueryEvaluator& evaluator, Resolver* resolver)
+RuleSetBuilder::RuleSetBuilder(RuleSet& ruleSet, const MediaQueryEvaluator& evaluator, Resolver* resolver, ShrinkToFit shrinkToFit)
     : m_ruleSet(&ruleSet)
     , m_mediaQueryCollector({ evaluator })
     , m_resolver(resolver)
+    , m_shrinkToFit(shrinkToFit)
 {
 }
 
@@ -53,7 +54,7 @@
     updateDynamicMediaQueries();
     addMutatingRulesToResolver();
 
-    if (m_ruleSet->m_autoShrinkToFitEnabled)
+    if (m_shrinkToFit == ShrinkToFit::Enable)
         m_ruleSet->shrinkToFit();
 }
 

Modified: trunk/Source/WebCore/style/RuleSetBuilder.h (283551 => 283552)


--- trunk/Source/WebCore/style/RuleSetBuilder.h	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/style/RuleSetBuilder.h	2021-10-05 15:54:12 UTC (rev 283552)
@@ -28,7 +28,8 @@
 
 class RuleSetBuilder {
 public:
-    RuleSetBuilder(RuleSet&, const MediaQueryEvaluator&, Resolver* = nullptr);
+    enum class ShrinkToFit { Enable, Disable };
+    RuleSetBuilder(RuleSet&, const MediaQueryEvaluator&, Resolver* = nullptr, ShrinkToFit = ShrinkToFit::Enable);
     ~RuleSetBuilder();
 
     void addRulesFromSheet(const StyleSheetContents&, const MediaQuerySet* sheetQuery = nullptr);
@@ -71,9 +72,12 @@
     RefPtr<RuleSet> m_ruleSet;
     MediaQueryCollector m_mediaQueryCollector;
     Resolver* m_resolver { nullptr };
+    const ShrinkToFit m_shrinkToFit { ShrinkToFit::Enable };
+
     CascadeLayerName m_resolvedCascadeLayerName { };
     HashMap<CascadeLayerName, RuleSet::CascadeLayerIdentifier> m_cascadeLayerIdentifierMap { };
     RuleSet::CascadeLayerIdentifier m_currentCascadeLayerIdentifier { 0 };
+
     Vector<RuleSet::ResolverMutatingRule> m_collectedResolverMutatingRules { };
     bool didSeeResolverMutationWithinDynamicMediaQuery { false };
 };

Modified: trunk/Source/WebCore/style/StyleInvalidator.cpp (283551 => 283552)


--- trunk/Source/WebCore/style/StyleInvalidator.cpp	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/style/StyleInvalidator.cpp	2021-10-05 15:54:12 UTC (rev 283552)
@@ -91,9 +91,8 @@
     if (m_dirtiesAllStyle)
         return;
 
-    m_ownedRuleSet->disableAutoShrinkToFit();
+    RuleSetBuilder ruleSetBuilder(*m_ownedRuleSet, mediaQueryEvaluator, nullptr, RuleSetBuilder::ShrinkToFit::Disable);
 
-    RuleSetBuilder ruleSetBuilder(*m_ownedRuleSet, mediaQueryEvaluator);
     for (auto& sheet : sheets)
         ruleSetBuilder.addRulesFromSheet(*sheet);
 

Modified: trunk/Source/WebCore/style/StyleScopeRuleSets.cpp (283551 => 283552)


--- trunk/Source/WebCore/style/StyleScopeRuleSets.cpp	2021-10-05 15:53:58 UTC (rev 283551)
+++ trunk/Source/WebCore/style/StyleScopeRuleSets.cpp	2021-10-05 15:54:12 UTC (rev 283552)
@@ -48,7 +48,6 @@
     : m_styleResolver(styleResolver)
 {
     m_authorStyle = RuleSet::create();
-    m_authorStyle->disableAutoShrinkToFit();
 }
 
 ScopeRuleSets::~ScopeRuleSets()
@@ -143,7 +142,6 @@
 {
     m_isAuthorStyleDefined = true;
     m_authorStyle = RuleSet::create();
-    m_authorStyle->disableAutoShrinkToFit();
 }
 
 void ScopeRuleSets::resetUserAgentMediaQueryStyle()
@@ -195,7 +193,6 @@
         inspectorCSSOMWrappers.collectFromStyleSheetIfNeeded(cssSheet.get());
     }
 
-    m_authorStyle->shrinkToFit();
     collectFeatures();
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to