Title: [284604] trunk/Source/WebCore
Revision
284604
Author
[email protected]
Date
2021-10-21 07:29:14 -0700 (Thu, 21 Oct 2021)

Log Message

Move Style::Resolver::State out of header
https://bugs.webkit.org/show_bug.cgi?id=232074

Reviewed by Antoine Quint.

It is an implementation detail.

* style/PageRuleCollector.cpp:
(WebCore::Style::PageRuleCollector::isLeftPage const):
* style/PageRuleCollector.h:
(WebCore::Style::PageRuleCollector::PageRuleCollector):

Provide just the root text direction instead of the State.

* style/StyleResolver.cpp:
(WebCore::Style::Resolver::State::State):
(WebCore::Style::Resolver::State::element const):
(WebCore::Style::Resolver::State::setStyle):
(WebCore::Style::Resolver::State::style const):
(WebCore::Style::Resolver::State::takeStyle):
(WebCore::Style::Resolver::State::setParentStyle):
(WebCore::Style::Resolver::State::parentStyle const):
(WebCore::Style::Resolver::State::rootElementStyle const):
(WebCore::Style::Resolver::State::userAgentAppearanceStyle const):
(WebCore::Style::Resolver::State::setUserAgentAppearanceStyle):
(WebCore::Style::Resolver::styleForPage):
* style/StyleResolver.h:
(WebCore::Style::Resolver::State::State): Deleted.
(WebCore::Style::Resolver::State::element const): Deleted.
(WebCore::Style::Resolver::State::style const): Deleted.
(WebCore::Style::Resolver::State::takeStyle): Deleted.
(WebCore::Style::Resolver::State::parentStyle const): Deleted.
(WebCore::Style::Resolver::State::rootElementStyle const): Deleted.
(WebCore::Style::Resolver::State::userAgentAppearanceStyle const): Deleted.
(WebCore::Style::Resolver::State::setUserAgentAppearanceStyle): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (284603 => 284604)


--- trunk/Source/WebCore/ChangeLog	2021-10-21 14:09:08 UTC (rev 284603)
+++ trunk/Source/WebCore/ChangeLog	2021-10-21 14:29:14 UTC (rev 284604)
@@ -1,3 +1,41 @@
+2021-10-21  Antti Koivisto  <[email protected]>
+
+        Move Style::Resolver::State out of header
+        https://bugs.webkit.org/show_bug.cgi?id=232074
+
+        Reviewed by Antoine Quint.
+
+        It is an implementation detail.
+
+        * style/PageRuleCollector.cpp:
+        (WebCore::Style::PageRuleCollector::isLeftPage const):
+        * style/PageRuleCollector.h:
+        (WebCore::Style::PageRuleCollector::PageRuleCollector):
+
+        Provide just the root text direction instead of the State.
+
+        * style/StyleResolver.cpp:
+        (WebCore::Style::Resolver::State::State):
+        (WebCore::Style::Resolver::State::element const):
+        (WebCore::Style::Resolver::State::setStyle):
+        (WebCore::Style::Resolver::State::style const):
+        (WebCore::Style::Resolver::State::takeStyle):
+        (WebCore::Style::Resolver::State::setParentStyle):
+        (WebCore::Style::Resolver::State::parentStyle const):
+        (WebCore::Style::Resolver::State::rootElementStyle const):
+        (WebCore::Style::Resolver::State::userAgentAppearanceStyle const):
+        (WebCore::Style::Resolver::State::setUserAgentAppearanceStyle):
+        (WebCore::Style::Resolver::styleForPage):
+        * style/StyleResolver.h:
+        (WebCore::Style::Resolver::State::State): Deleted.
+        (WebCore::Style::Resolver::State::element const): Deleted.
+        (WebCore::Style::Resolver::State::style const): Deleted.
+        (WebCore::Style::Resolver::State::takeStyle): Deleted.
+        (WebCore::Style::Resolver::State::parentStyle const): Deleted.
+        (WebCore::Style::Resolver::State::rootElementStyle const): Deleted.
+        (WebCore::Style::Resolver::State::userAgentAppearanceStyle const): Deleted.
+        (WebCore::Style::Resolver::State::setUserAgentAppearanceStyle): Deleted.
+
 2021-10-21  Antoine Quint  <[email protected]>
 
         CSSPropertyZoom needs wrapper that ensures it's always blended into a positive value.

Modified: trunk/Source/WebCore/style/PageRuleCollector.cpp (284603 => 284604)


--- trunk/Source/WebCore/style/PageRuleCollector.cpp	2021-10-21 14:09:08 UTC (rev 284603)
+++ trunk/Source/WebCore/style/PageRuleCollector.cpp	2021-10-21 14:29:14 UTC (rev 284604)
@@ -43,10 +43,7 @@
 
 bool PageRuleCollector::isLeftPage(int pageIndex) const
 {
-    bool isFirstPageLeft = false;
-    if (!m_state.rootElementStyle()->isLeftToRightDirection())
-        isFirstPageLeft = true;
-
+    bool isFirstPageLeft = m_rootDirection == TextDirection::RTL;
     return (pageIndex + (isFirstPageLeft ? 1 : 0)) % 2;
 }
 

Modified: trunk/Source/WebCore/style/PageRuleCollector.h (284603 => 284604)


--- trunk/Source/WebCore/style/PageRuleCollector.h	2021-10-21 14:09:08 UTC (rev 284603)
+++ trunk/Source/WebCore/style/PageRuleCollector.h	2021-10-21 14:29:14 UTC (rev 284604)
@@ -21,7 +21,6 @@
 
 #pragma once
 
-#include "StyleResolver.h"
 #include "StyleScopeRuleSets.h"
 #include <wtf/Forward.h>
 
@@ -33,9 +32,10 @@
 
 class PageRuleCollector {
 public:
-    PageRuleCollector(Resolver::State& state, ScopeRuleSets& ruleSets)
-        : m_state(state)
-        , m_ruleSets(ruleSets) { }
+    PageRuleCollector(ScopeRuleSets& ruleSets, TextDirection rootDirection)
+        : m_ruleSets(ruleSets)
+        , m_rootDirection(rootDirection)
+    { }
 
     void matchAllPageRules(int pageIndex);
     const MatchResult& matchResult() const { return m_result; }
@@ -49,8 +49,8 @@
     void matchPageRules(RuleSet* rules, bool isLeftPage, bool isFirstPage, const String& pageName);
     void matchPageRulesForList(Vector<StyleRulePage*>& matchedRules, const Vector<StyleRulePage*>& rules, bool isLeftPage, bool isFirstPage, const String& pageName);
 
-    const Resolver::State& m_state;
     ScopeRuleSets& m_ruleSets;
+    TextDirection m_rootDirection;
 
     MatchResult m_result;
 };

Modified: trunk/Source/WebCore/style/StyleResolver.cpp (284603 => 284604)


--- trunk/Source/WebCore/style/StyleResolver.cpp	2021-10-21 14:09:08 UTC (rev 284603)
+++ trunk/Source/WebCore/style/StyleResolver.cpp	2021-10-21 14:29:14 UTC (rev 284604)
@@ -88,6 +88,52 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(Resolver);
 
+class Resolver::State {
+public:
+    State() { }
+    State(const Element& element, const RenderStyle* parentStyle, const RenderStyle* documentElementStyle = nullptr)
+        : m_element(&element)
+        , m_parentStyle(parentStyle)
+    {
+        bool resetStyleInheritance = hasShadowRootParent(element) && downcast<ShadowRoot>(element.parentNode())->resetStyleInheritance();
+        if (resetStyleInheritance)
+            m_parentStyle = nullptr;
+
+        auto& document = element.document();
+        auto* documentElement = document.documentElement();
+        if (!documentElement || documentElement == &element)
+            m_rootElementStyle = document.renderStyle();
+        else
+            m_rootElementStyle = documentElementStyle ? documentElementStyle : documentElement->renderStyle();
+    }
+
+    const Element* element() const { return m_element; }
+
+    void setStyle(std::unique_ptr<RenderStyle> style) { m_style = WTFMove(style); }
+    RenderStyle* style() const { return m_style.get(); }
+    std::unique_ptr<RenderStyle> takeStyle() { return WTFMove(m_style); }
+
+    void setParentStyle(std::unique_ptr<RenderStyle> parentStyle)
+    {
+        m_ownedParentStyle = WTFMove(parentStyle);
+        m_parentStyle = m_ownedParentStyle.get();
+    }
+    const RenderStyle* parentStyle() const { return m_parentStyle; }
+    const RenderStyle* rootElementStyle() const { return m_rootElementStyle; }
+
+    const RenderStyle* userAgentAppearanceStyle() const { return m_userAgentAppearanceStyle.get(); }
+    void setUserAgentAppearanceStyle(std::unique_ptr<RenderStyle> style) { m_userAgentAppearanceStyle = WTFMove(style); }
+
+private:
+    const Element* m_element { nullptr };
+    std::unique_ptr<RenderStyle> m_style;
+    const RenderStyle* m_parentStyle { nullptr };
+    std::unique_ptr<const RenderStyle> m_ownedParentStyle;
+    const RenderStyle* m_rootElementStyle { nullptr };
+
+    std::unique_ptr<RenderStyle> m_userAgentAppearanceStyle;
+};
+
 Ref<Resolver> Resolver::create(Document& document)
 {
     return adoptRef(*new Resolver(document));
@@ -159,33 +205,6 @@
     m_isDeleted = true;
 }
 
-Resolver::State::State(const Element& element, const RenderStyle* parentStyle, const RenderStyle* documentElementStyle)
-    : m_element(&element)
-    , m_parentStyle(parentStyle)
-{
-    bool resetStyleInheritance = hasShadowRootParent(element) && downcast<ShadowRoot>(element.parentNode())->resetStyleInheritance();
-    if (resetStyleInheritance)
-        m_parentStyle = nullptr;
-
-    auto& document = element.document();
-    auto* documentElement = document.documentElement();
-    if (!documentElement || documentElement == &element)
-        m_rootElementStyle = document.renderStyle();
-    else
-        m_rootElementStyle = documentElementStyle ? documentElementStyle : documentElement->renderStyle();
-}
-
-inline void Resolver::State::setStyle(std::unique_ptr<RenderStyle> style)
-{
-    m_style = WTFMove(style);
-}
-
-inline void Resolver::State::setParentStyle(std::unique_ptr<RenderStyle> parentStyle)
-{
-    m_ownedParentStyle = WTFMove(parentStyle);
-    m_parentStyle = m_ownedParentStyle.get();
-}
-
 static inline bool isAtShadowBoundary(const Element& element)
 {
     return is<ShadowRoot>(element.parentNode());
@@ -420,7 +439,7 @@
     state.setStyle(RenderStyle::createPtr());
     state.style()->inheritFrom(*state.rootElementStyle());
 
-    PageRuleCollector collector(state, m_ruleSets);
+    PageRuleCollector collector(m_ruleSets, state.rootElementStyle()->direction());
     collector.matchAllPageRules(pageIndex);
 
     auto& result = collector.matchResult();

Modified: trunk/Source/WebCore/style/StyleResolver.h (284603 => 284604)


--- trunk/Source/WebCore/style/StyleResolver.h	2021-10-21 14:09:08 UTC (rev 284603)
+++ trunk/Source/WebCore/style/StyleResolver.h	2021-10-21 14:29:14 UTC (rev 284604)
@@ -145,39 +145,10 @@
     void setSharedBetweenShadowTrees() { m_isSharedBetweenShadowTrees = true; }
 
 private:
-    friend class PageRuleCollector;
-
     Resolver(Document&);
 
-    class State {
-    public:
-        State() { }
-        State(const Element&, const RenderStyle* parentStyle, const RenderStyle* documentElementStyle = nullptr);
+    class State;
 
-    public:
-        const Element* element() const { return m_element; }
-
-        void setStyle(std::unique_ptr<RenderStyle>);
-        RenderStyle* style() const { return m_style.get(); }
-        std::unique_ptr<RenderStyle> takeStyle() { return WTFMove(m_style); }
-
-        void setParentStyle(std::unique_ptr<RenderStyle>);
-        const RenderStyle* parentStyle() const { return m_parentStyle; }
-        const RenderStyle* rootElementStyle() const { return m_rootElementStyle; }
-
-        const RenderStyle* userAgentAppearanceStyle() const { return m_userAgentAppearanceStyle.get(); }
-        void setUserAgentAppearanceStyle(std::unique_ptr<RenderStyle> style) { m_userAgentAppearanceStyle = WTFMove(style); }
-
-    private:
-        const Element* m_element { nullptr };
-        std::unique_ptr<RenderStyle> m_style;
-        const RenderStyle* m_parentStyle { nullptr };
-        std::unique_ptr<const RenderStyle> m_ownedParentStyle;
-        const RenderStyle* m_rootElementStyle { nullptr };
-
-        std::unique_ptr<RenderStyle> m_userAgentAppearanceStyle;
-    };
-
     BuilderContext builderContext(const State&);
 
     enum class UseMatchedDeclarationsCache { Yes, No };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to