Title: [154299] trunk/Source/WebCore
Revision
154299
Author
[email protected]
Date
2013-08-19 14:39:43 -0700 (Mon, 19 Aug 2013)

Log Message

<https://webkit.org/b/119936> Fix some encapsulation issues of RuleSet

Reviewed by Darin Adler.

None of the attributes of RuleSet should be modified directly.

* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::initUserStyle):
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
* css/RuleSet.h:
(WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
(WebCore::RuleSet::regionSelectorsAndRuleSets):
(WebCore::RuleSet::ruleCount):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::checkRegionStyle):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154298 => 154299)


--- trunk/Source/WebCore/ChangeLog	2013-08-19 21:26:10 UTC (rev 154298)
+++ trunk/Source/WebCore/ChangeLog	2013-08-19 21:39:43 UTC (rev 154299)
@@ -1,5 +1,24 @@
 2013-08-19  Benjamin Poulain  <[email protected]>
 
+        <https://webkit.org/b/119936> Fix some encapsulation issues of RuleSet
+
+        Reviewed by Darin Adler.
+
+        None of the attributes of RuleSet should be modified directly.
+
+        * css/DocumentRuleSets.cpp:
+        (WebCore::DocumentRuleSets::initUserStyle):
+        * css/ElementRuleCollector.cpp:
+        (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
+        * css/RuleSet.h:
+        (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
+        (WebCore::RuleSet::regionSelectorsAndRuleSets):
+        (WebCore::RuleSet::ruleCount):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::checkRegionStyle):
+
+2013-08-19  Benjamin Poulain  <[email protected]>
+
         <https://webkit.org/b/119937> Remove ElementRuleCollector's m_behaviorAtBoundary
 
         Reviewed by Darin Adler.

Modified: trunk/Source/WebCore/css/DocumentRuleSets.cpp (154298 => 154299)


--- trunk/Source/WebCore/css/DocumentRuleSets.cpp	2013-08-19 21:26:10 UTC (rev 154298)
+++ trunk/Source/WebCore/css/DocumentRuleSets.cpp	2013-08-19 21:39:43 UTC (rev 154299)
@@ -53,7 +53,7 @@
         tempUserStyle->addRulesFromSheet(pageUserSheet->contents(), medium, &resolver);
     collectRulesFromUserStyleSheets(styleSheetCollection->injectedUserStyleSheets(), *tempUserStyle, medium, resolver);
     collectRulesFromUserStyleSheets(styleSheetCollection->documentUserStyleSheets(), *tempUserStyle, medium, resolver);
-    if (tempUserStyle->m_ruleCount > 0 || tempUserStyle->m_pageRules.size() > 0)
+    if (tempUserStyle->ruleCount() > 0 || tempUserStyle->pageRules().size() > 0)
         m_userStyle = tempUserStyle.release();
 }
 

Modified: trunk/Source/WebCore/css/ElementRuleCollector.cpp (154298 => 154299)


--- trunk/Source/WebCore/css/ElementRuleCollector.cpp	2013-08-19 21:26:10 UTC (rev 154298)
+++ trunk/Source/WebCore/css/ElementRuleCollector.cpp	2013-08-19 21:39:43 UTC (rev 154299)
@@ -179,11 +179,11 @@
     if (!m_regionForStyling)
         return;
 
-    unsigned size = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.size();
+    unsigned size = matchRequest.ruleSet->regionSelectorsAndRuleSets().size();
     for (unsigned i = 0; i < size; ++i) {
-        const CSSSelector* regionSelector = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.at(i).selector;
+        const CSSSelector* regionSelector = matchRequest.ruleSet->regionSelectorsAndRuleSets().at(i).selector;
         if (checkRegionSelector(regionSelector, toElement(m_regionForStyling->node()))) {
-            RuleSet* regionRules = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.at(i).ruleSet.get();
+            RuleSet* regionRules = matchRequest.ruleSet->regionSelectorsAndRuleSets().at(i).ruleSet.get();
             ASSERT(regionRules);
             collectMatchingRules(MatchRequest(regionRules, matchRequest.includeEmptyRules, matchRequest.scope), ruleRange);
         }

Modified: trunk/Source/WebCore/css/RuleSet.h (154298 => 154299)


--- trunk/Source/WebCore/css/RuleSet.h	2013-08-19 21:26:10 UTC (rev 154298)
+++ trunk/Source/WebCore/css/RuleSet.h	2013-08-19 21:39:43 UTC (rev 154299)
@@ -106,6 +106,14 @@
 class RuleSet {
     WTF_MAKE_NONCOPYABLE(RuleSet); WTF_MAKE_FAST_ALLOCATED;
 public:
+    struct RuleSetSelectorPair {
+        RuleSetSelectorPair(const CSSSelector* selector, PassOwnPtr<RuleSet> ruleSet) : selector(selector), ruleSet(ruleSet) { }
+        RuleSetSelectorPair(const RuleSetSelectorPair& pair) : selector(pair.selector), ruleSet(const_cast<RuleSetSelectorPair*>(&pair)->ruleSet.release()) { }
+
+        const CSSSelector* selector;
+        OwnPtr<RuleSet> ruleSet;
+    };
+
     static PassOwnPtr<RuleSet> create() { return adoptPtr(new RuleSet); }
 
     typedef HashMap<AtomicStringImpl*, OwnPtr<Vector<RuleData> > > AtomRuleMap;
@@ -133,12 +141,14 @@
     const Vector<RuleData>* focusPseudoClassRules() const { return &m_focusPseudoClassRules; }
     const Vector<RuleData>* universalRules() const { return &m_universalRules; }
     const Vector<StyleRulePage*>& pageRules() const { return m_pageRules; }
+    const Vector<RuleSetSelectorPair>& regionSelectorsAndRuleSets() const { return m_regionSelectorsAndRuleSets; }
 
+    unsigned ruleCount() const { return m_ruleCount; }
+
 private:
     void addChildRules(const Vector<RefPtr<StyleRuleBase> >&, const MediaQueryEvaluator& medium, StyleResolver*, const ContainerNode* scope, bool hasDocumentSecurityOrigin, AddRuleFlags);
     bool findBestRuleSetAndAdd(const CSSSelector*, RuleData&);
 
-public:
     RuleSet();
 
     AtomRuleMap m_idRules;
@@ -155,15 +165,6 @@
     unsigned m_ruleCount;
     bool m_autoShrinkToFitEnabled;
     RuleFeatureSet m_features;
-
-    struct RuleSetSelectorPair {
-        RuleSetSelectorPair(const CSSSelector* selector, PassOwnPtr<RuleSet> ruleSet) : selector(selector), ruleSet(ruleSet) { }
-        RuleSetSelectorPair(const RuleSetSelectorPair& rs) : selector(rs.selector), ruleSet(const_cast<RuleSetSelectorPair*>(&rs)->ruleSet.release()) { }
-
-        const CSSSelector* selector;
-        OwnPtr<RuleSet> ruleSet;
-    };
-
     Vector<RuleSetSelectorPair> m_regionSelectorsAndRuleSets;
 };
 

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (154298 => 154299)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2013-08-19 21:26:10 UTC (rev 154298)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2013-08-19 21:39:43 UTC (rev 154299)
@@ -1432,18 +1432,18 @@
     // FIXME (BUG 72472): We don't add @-webkit-region rules of scoped style sheets for the moment,
     // so all region rules are global by default. Verify whether that can stand or needs changing.
 
-    unsigned rulesSize = m_ruleSets.authorStyle()->m_regionSelectorsAndRuleSets.size();
+    unsigned rulesSize = m_ruleSets.authorStyle()->regionSelectorsAndRuleSets().size();
     for (unsigned i = 0; i < rulesSize; ++i) {
-        ASSERT(m_ruleSets.authorStyle()->m_regionSelectorsAndRuleSets.at(i).ruleSet.get());
-        if (checkRegionSelector(m_ruleSets.authorStyle()->m_regionSelectorsAndRuleSets.at(i).selector, regionElement))
+        ASSERT(m_ruleSets.authorStyle()->regionSelectorsAndRuleSets().at(i).ruleSet.get());
+        if (checkRegionSelector(m_ruleSets.authorStyle()->regionSelectorsAndRuleSets().at(i).selector, regionElement))
             return true;
     }
 
     if (m_ruleSets.userStyle()) {
-        rulesSize = m_ruleSets.userStyle()->m_regionSelectorsAndRuleSets.size();
+        rulesSize = m_ruleSets.userStyle()->regionSelectorsAndRuleSets().size();
         for (unsigned i = 0; i < rulesSize; ++i) {
-            ASSERT(m_ruleSets.userStyle()->m_regionSelectorsAndRuleSets.at(i).ruleSet.get());
-            if (checkRegionSelector(m_ruleSets.userStyle()->m_regionSelectorsAndRuleSets.at(i).selector, regionElement))
+            ASSERT(m_ruleSets.userStyle()->regionSelectorsAndRuleSets().at(i).ruleSet.get());
+            if (checkRegionSelector(m_ruleSets.userStyle()->regionSelectorsAndRuleSets().at(i).selector, regionElement))
                 return true;
         }
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to