Title: [134008] trunk/Source/WebCore
- Revision
- 134008
- Author
- [email protected]
- Date
- 2012-11-08 22:17:31 -0800 (Thu, 08 Nov 2012)
Log Message
[Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
https://bugs.webkit.org/show_bug.cgi?id=101692
Reviewed by Dimitri Glazkov.
We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
No new tests, simple refactoring.
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
(WebCore):
* css/RuleFeature.h:
(WebCore):
(RuleFeatureSet):
* css/RuleSet.cpp:
(WebCore::collectFeaturesFromRuleData):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (134007 => 134008)
--- trunk/Source/WebCore/ChangeLog 2012-11-09 06:02:19 UTC (rev 134007)
+++ trunk/Source/WebCore/ChangeLog 2012-11-09 06:17:31 UTC (rev 134008)
@@ -1,3 +1,23 @@
+2012-11-08 Shinya Kawanaka <[email protected]>
+
+ [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=101692
+
+ Reviewed by Dimitri Glazkov.
+
+ We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
+
+ No new tests, simple refactoring.
+
+ * css/RuleFeature.cpp:
+ (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
+ (WebCore):
+ * css/RuleFeature.h:
+ (WebCore):
+ (RuleFeatureSet):
+ * css/RuleSet.cpp:
+ (WebCore::collectFeaturesFromRuleData):
+
2012-11-08 Robert Sesek <[email protected]>
Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
Modified: trunk/Source/WebCore/css/RuleFeature.cpp (134007 => 134008)
--- trunk/Source/WebCore/css/RuleFeature.cpp 2012-11-09 06:02:19 UTC (rev 134007)
+++ trunk/Source/WebCore/css/RuleFeature.cpp 2012-11-09 06:17:31 UTC (rev 134008)
@@ -29,6 +29,7 @@
#include "config.h"
#include "RuleFeature.h"
+#include "CSSSelector.h"
#include "WebCoreMemoryInstrumentation.h"
#include <wtf/MemoryInstrumentationHashMap.h>
#include <wtf/MemoryInstrumentationHashSet.h>
@@ -36,6 +37,27 @@
namespace WebCore {
+void RuleFeatureSet::collectFeaturesFromSelector(const CSSSelector* selector)
+{
+ if (selector->m_match == CSSSelector::Id)
+ idsInRules.add(selector->value().impl());
+ else if (selector->m_match == CSSSelector::Class)
+ classesInRules.add(selector->value().impl());
+ else if (selector->isAttributeSelector())
+ attrsInRules.add(selector->attribute().localName().impl());
+ switch (selector->pseudoType()) {
+ case CSSSelector::PseudoFirstLine:
+ usesFirstLineRules = true;
+ break;
+ case CSSSelector::PseudoBefore:
+ case CSSSelector::PseudoAfter:
+ usesBeforeAfterRules = true;
+ break;
+ default:
+ break;
+ }
+}
+
void RuleFeatureSet::add(const RuleFeatureSet& other)
{
HashSet<AtomicStringImpl*>::const_iterator end = other.idsInRules.end();
Modified: trunk/Source/WebCore/css/RuleFeature.h (134007 => 134008)
--- trunk/Source/WebCore/css/RuleFeature.h 2012-11-09 06:02:19 UTC (rev 134007)
+++ trunk/Source/WebCore/css/RuleFeature.h 2012-11-09 06:17:31 UTC (rev 134008)
@@ -30,6 +30,7 @@
namespace WebCore {
class StyleRule;
+class CSSSelector;
struct RuleFeature {
RuleFeature(StyleRule* rule, unsigned selectorIndex, bool hasDocumentSecurityOrigin)
@@ -51,7 +52,11 @@
void add(const RuleFeatureSet&);
void clear();
+
+ void collectFeaturesFromSelector(const CSSSelector*);
+
void reportMemoryUsage(MemoryObjectInfo*) const;
+
HashSet<AtomicStringImpl*> idsInRules;
HashSet<AtomicStringImpl*> classesInRules;
HashSet<AtomicStringImpl*> attrsInRules;
Modified: trunk/Source/WebCore/css/RuleSet.cpp (134007 => 134008)
--- trunk/Source/WebCore/css/RuleSet.cpp 2012-11-09 06:02:19 UTC (rev 134007)
+++ trunk/Source/WebCore/css/RuleSet.cpp 2012-11-09 06:17:31 UTC (rev 134008)
@@ -157,38 +157,17 @@
info.addMember(ruleSet);
}
-static inline void collectFeaturesFromSelector(RuleFeatureSet& features, const CSSSelector* selector)
-{
- if (selector->m_match == CSSSelector::Id)
- features.idsInRules.add(selector->value().impl());
- else if (selector->m_match == CSSSelector::Class)
- features.classesInRules.add(selector->value().impl());
- else if (selector->isAttributeSelector())
- features.attrsInRules.add(selector->attribute().localName().impl());
- switch (selector->pseudoType()) {
- case CSSSelector::PseudoFirstLine:
- features.usesFirstLineRules = true;
- break;
- case CSSSelector::PseudoBefore:
- case CSSSelector::PseudoAfter:
- features.usesBeforeAfterRules = true;
- break;
- default:
- break;
- }
-}
-
static void collectFeaturesFromRuleData(RuleFeatureSet& features, const RuleData& ruleData)
{
bool foundSiblingSelector = false;
for (CSSSelector* selector = ruleData.selector(); selector; selector = selector->tagHistory()) {
- collectFeaturesFromSelector(features, selector);
+ features.collectFeaturesFromSelector(selector);
if (CSSSelectorList* selectorList = selector->selectorList()) {
for (CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) {
if (!foundSiblingSelector && selector->isSiblingSelector())
foundSiblingSelector = true;
- collectFeaturesFromSelector(features, subSelector);
+ features.collectFeaturesFromSelector(subSelector);
}
} else if (!foundSiblingSelector && selector->isSiblingSelector())
foundSiblingSelector = true;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes