Title: [176373] trunk/Source/WebCore
Revision
176373
Author
[email protected]
Date
2014-11-19 17:36:27 -0800 (Wed, 19 Nov 2014)

Log Message

Remove "document has no ::before and/or ::after rules" optimization.
<https://webkit.org/b/138897>

Reviewed by Antti Koivisto.

This optimization has been dead for a long time, since the default UA
style contains both ::before and ::after rules.

* css/RuleFeature.cpp:
(WebCore::recursivelyCollectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
* css/RuleFeature.h:
(WebCore::RuleFeatureSet::RuleFeatureSet):
* css/StyleResolver.h:
(WebCore::StyleResolver::usesBeforeAfterRules): Deleted.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
(WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
(WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
* dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::usesBeforeAfterRules): Deleted.
(WebCore::DocumentStyleSheetCollection::setUsesBeforeAfterRulesOverride): Deleted.
* html/HTMLQuoteElement.cpp:
(WebCore::HTMLQuoteElement::insertedInto): Deleted.
* html/HTMLQuoteElement.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::needsPseudoElement):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (176372 => 176373)


--- trunk/Source/WebCore/ChangeLog	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/ChangeLog	2014-11-20 01:36:27 UTC (rev 176373)
@@ -1,3 +1,34 @@
+2014-11-19  Andreas Kling  <[email protected]>
+
+        Remove "document has no ::before and/or ::after rules" optimization.
+        <https://webkit.org/b/138897>
+
+        Reviewed by Antti Koivisto.
+
+        This optimization has been dead for a long time, since the default UA
+        style contains both ::before and ::after rules.
+
+        * css/RuleFeature.cpp:
+        (WebCore::recursivelyCollectFeaturesFromSelector):
+        (WebCore::RuleFeatureSet::add):
+        (WebCore::RuleFeatureSet::clear):
+        * css/RuleFeature.h:
+        (WebCore::RuleFeatureSet::RuleFeatureSet):
+        * css/StyleResolver.h:
+        (WebCore::StyleResolver::usesBeforeAfterRules): Deleted.
+        * dom/DocumentStyleSheetCollection.cpp:
+        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
+        (WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
+        (WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
+        * dom/DocumentStyleSheetCollection.h:
+        (WebCore::DocumentStyleSheetCollection::usesBeforeAfterRules): Deleted.
+        (WebCore::DocumentStyleSheetCollection::setUsesBeforeAfterRulesOverride): Deleted.
+        * html/HTMLQuoteElement.cpp:
+        (WebCore::HTMLQuoteElement::insertedInto): Deleted.
+        * html/HTMLQuoteElement.h:
+        * style/StyleResolveTree.cpp:
+        (WebCore::Style::needsPseudoElement):
+
 2014-11-19  Myles C. Maxfield  <[email protected]>
 
         [OS X] Upright vertical text is completely broken for multi-code-unit codepoints

Modified: trunk/Source/WebCore/css/RuleFeature.cpp (176372 => 176373)


--- trunk/Source/WebCore/css/RuleFeature.cpp	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/css/RuleFeature.cpp	2014-11-20 01:36:27 UTC (rev 176373)
@@ -53,10 +53,6 @@
             case CSSSelector::PseudoElementFirstLetter:
                 features.usesFirstLetterRules = true;
                 break;
-            case CSSSelector::PseudoElementBefore:
-            case CSSSelector::PseudoElementAfter:
-                features.usesBeforeAfterRules = true;
-                break;
             default:
                 break;
             }
@@ -93,7 +89,6 @@
     uncommonAttributeRules.appendVector(other.uncommonAttributeRules);
     usesFirstLineRules = usesFirstLineRules || other.usesFirstLineRules;
     usesFirstLetterRules = usesFirstLetterRules || other.usesFirstLetterRules;
-    usesBeforeAfterRules = usesBeforeAfterRules || other.usesBeforeAfterRules;
 }
 
 void RuleFeatureSet::clear()
@@ -106,7 +101,6 @@
     uncommonAttributeRules.clear();
     usesFirstLineRules = false;
     usesFirstLetterRules = false;
-    usesBeforeAfterRules = false;
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/css/RuleFeature.h (176372 => 176373)


--- trunk/Source/WebCore/css/RuleFeature.h	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/css/RuleFeature.h	2014-11-20 01:36:27 UTC (rev 176373)
@@ -48,7 +48,6 @@
     RuleFeatureSet()
         : usesFirstLineRules(false)
         , usesFirstLetterRules(false)
-        , usesBeforeAfterRules(false)
     { }
 
     void add(const RuleFeatureSet&);
@@ -64,7 +63,6 @@
     Vector<RuleFeature> uncommonAttributeRules;
     bool usesFirstLineRules;
     bool usesFirstLetterRules;
-    bool usesBeforeAfterRules;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/css/StyleResolver.h (176372 => 176373)


--- trunk/Source/WebCore/css/StyleResolver.h	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/css/StyleResolver.h	2014-11-20 01:36:27 UTC (rev 176373)
@@ -232,7 +232,6 @@
     bool usesSiblingRules() const { return !m_ruleSets.features().siblingRules.isEmpty(); }
     bool usesFirstLineRules() const { return m_ruleSets.features().usesFirstLineRules; }
     bool usesFirstLetterRules() const { return m_ruleSets.features().usesFirstLetterRules; }
-    bool usesBeforeAfterRules() const { return m_ruleSets.features().usesBeforeAfterRules; }
     
     void invalidateMatchedPropertiesCache();
 

Modified: trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp (176372 => 176373)


--- trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp	2014-11-20 01:36:27 UTC (rev 176373)
@@ -60,8 +60,6 @@
     , m_usesSiblingRulesOverride(false)
     , m_usesFirstLineRules(false)
     , m_usesFirstLetterRules(false)
-    , m_usesBeforeAfterRules(false)
-    , m_usesBeforeAfterRulesOverride(false)
     , m_usesRemUnits(false)
 {
 }
@@ -73,7 +71,6 @@
     m_usesSiblingRules = m_usesSiblingRules || styleResolver.usesSiblingRules();
     m_usesFirstLineRules = m_usesFirstLineRules || styleResolver.usesFirstLineRules();
     m_usesFirstLetterRules = m_usesFirstLetterRules || styleResolver.usesFirstLetterRules();
-    m_usesBeforeAfterRules = m_usesBeforeAfterRules || styleResolver.usesBeforeAfterRules();
 }
 
 void DocumentStyleSheetCollection::resetCSSFeatureFlags()
@@ -82,7 +79,6 @@
     m_usesSiblingRules = styleResolver.usesSiblingRules();
     m_usesFirstLineRules = styleResolver.usesFirstLineRules();
     m_usesFirstLetterRules = styleResolver.usesFirstLetterRules();
-    m_usesBeforeAfterRules = styleResolver.usesBeforeAfterRules();
 }
 
 CSSStyleSheet* DocumentStyleSheetCollection::pageUserSheet()

Modified: trunk/Source/WebCore/dom/DocumentStyleSheetCollection.h (176372 => 176373)


--- trunk/Source/WebCore/dom/DocumentStyleSheetCollection.h	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/dom/DocumentStyleSheetCollection.h	2014-11-20 01:36:27 UTC (rev 176373)
@@ -105,8 +105,6 @@
     void setUsesSiblingRulesOverride(bool b) { m_usesSiblingRulesOverride = b; }
     bool usesFirstLineRules() const { return m_usesFirstLineRules; }
     bool usesFirstLetterRules() const { return m_usesFirstLetterRules; }
-    bool usesBeforeAfterRules() const { return m_usesBeforeAfterRules || m_usesBeforeAfterRulesOverride; }
-    void setUsesBeforeAfterRulesOverride(bool b) { m_usesBeforeAfterRulesOverride = b; }
     bool usesRemUnits() const { return m_usesRemUnits; }
     void setUsesRemUnit(bool b) { m_usesRemUnits = b; }
 
@@ -162,8 +160,6 @@
     bool m_usesSiblingRulesOverride;
     bool m_usesFirstLineRules;
     bool m_usesFirstLetterRules;
-    bool m_usesBeforeAfterRules;
-    bool m_usesBeforeAfterRulesOverride;
     bool m_usesRemUnits;
 };
 

Modified: trunk/Source/WebCore/html/HTMLQuoteElement.cpp (176372 => 176373)


--- trunk/Source/WebCore/html/HTMLQuoteElement.cpp	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/html/HTMLQuoteElement.cpp	2014-11-20 01:36:27 UTC (rev 176373)
@@ -42,14 +42,6 @@
     return adoptRef(new HTMLQuoteElement(tagName, document));
 }
 
-Node::InsertionNotificationRequest HTMLQuoteElement::insertedInto(ContainerNode& insertionPoint)
-{
-    if (hasTagName(qTag))
-        document().styleSheetCollection().setUsesBeforeAfterRulesOverride(true);
-
-    return HTMLElement::insertedInto(insertionPoint);
-}
-
 bool HTMLQuoteElement::isURLAttribute(const Attribute& attribute) const
 {
     return attribute.name() == citeAttr || HTMLElement::isURLAttribute(attribute);

Modified: trunk/Source/WebCore/html/HTMLQuoteElement.h (176372 => 176373)


--- trunk/Source/WebCore/html/HTMLQuoteElement.h	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/html/HTMLQuoteElement.h	2014-11-20 01:36:27 UTC (rev 176373)
@@ -36,7 +36,6 @@
 private:
     HTMLQuoteElement(const QualifiedName&, Document&);
     
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
     virtual bool isURLAttribute(const Attribute&) const override;
 };
 

Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (176372 => 176373)


--- trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-11-20 01:35:09 UTC (rev 176372)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp	2014-11-20 01:36:27 UTC (rev 176373)
@@ -579,8 +579,6 @@
 
 static bool needsPseudoElement(Element& current, PseudoId pseudoId)
 {
-    if (!current.document().styleSheetCollection().usesBeforeAfterRules())
-        return false;
     if (!current.renderer() || !current.renderer()->canHaveGeneratedChildren())
         return false;
     if (current.isPseudoElement())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to