Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(770)

Unified Diff: Source/core/dom/Node.h

Issue 208933003: Remove SiblingRuleHelper (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/ElementRareData.h ('k') | Source/core/dom/Node.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Node.h
diff --git a/Source/core/dom/Node.h b/Source/core/dom/Node.h
index cce831a769f2edc00b28ea5f7808fa1f672bb756..b85ca81ae2912c25d0182c7933ec4fcf379ea584 100644
--- a/Source/core/dom/Node.h
+++ b/Source/core/dom/Node.h
@@ -100,6 +100,21 @@ enum StyleChangeSource {
StyleChangeFromRenderer
};
+enum DynamicRestyleFlags {
+ ChildrenAffectedByFocus = 1 << 0,
+ ChildrenAffectedByHover = 1 << 1,
+ ChildrenAffectedByActive = 1 << 2,
+ ChildrenAffectedByDrag = 1 << 3,
+ ChildrenAffectedByFirstChildRules = 1 << 4,
+ ChildrenAffectedByLastChildRules = 1 << 5,
+ ChildrenAffectedByDirectAdjacentRules = 1 << 6,
+ ChildrenAffectedByIndirectAdjacentRules = 1 << 7,
+ ChildrenAffectedByForwardPositionalRules = 1 << 8,
+ ChildrenAffectedByBackwardPositionalRules = 1 << 9,
+
+ NumberOfDynamicRestyleFlags = 10,
+};
+
class NodeRareDataBase {
public:
RenderObject* renderer() const { return m_renderer; }
@@ -377,6 +392,38 @@ public:
bool shouldNotifyRendererWithIdenticalStyles() const { return getFlag(NotifyRendererWithIdenticalStyles); }
+ bool childrenAffectedByFocus() const { return hasRestyleFlag(ChildrenAffectedByFocus); }
ojan 2014/03/21 22:39:12 What isn't all this stuff on ContainerNode?
+ void setChildrenAffectedByFocus() { setRestyleFlag(ChildrenAffectedByFocus); }
+
+ bool childrenAffectedByHover() const { return hasRestyleFlag(ChildrenAffectedByHover); }
+ void setChildrenAffectedByHover() { setRestyleFlag(ChildrenAffectedByHover); }
+
+ bool childrenAffectedByActive() const { return hasRestyleFlag(ChildrenAffectedByActive); }
+ void setChildrenAffectedByActive() { setRestyleFlag(ChildrenAffectedByActive); }
+
+ bool childrenAffectedByDrag() const { return hasRestyleFlag(ChildrenAffectedByDrag); }
+ void setChildrenAffectedByDrag() { setRestyleFlag(ChildrenAffectedByDrag); }
+
+ bool childrenAffectedByPositionalRules() const { return hasRestyleFlag(ChildrenAffectedByForwardPositionalRules) || hasRestyleFlag(ChildrenAffectedByBackwardPositionalRules); }
+
+ bool childrenAffectedByFirstChildRules() const { return hasRestyleFlag(ChildrenAffectedByFirstChildRules); }
+ void setChildrenAffectedByFirstChildRules() { setRestyleFlag(ChildrenAffectedByFirstChildRules); }
+
+ bool childrenAffectedByLastChildRules() const { return hasRestyleFlag(ChildrenAffectedByLastChildRules); }
+ void setChildrenAffectedByLastChildRules() { setRestyleFlag(ChildrenAffectedByLastChildRules); }
+
+ bool childrenAffectedByDirectAdjacentRules() const { return hasRestyleFlag(ChildrenAffectedByDirectAdjacentRules); }
+ void setChildrenAffectedByDirectAdjacentRules() { setRestyleFlag(ChildrenAffectedByDirectAdjacentRules); }
+
+ bool childrenAffectedByIndirectAdjacentRules() const { return hasRestyleFlag(ChildrenAffectedByIndirectAdjacentRules); }
+ void setChildrenAffectedByIndirectAdjacentRules() { setRestyleFlag(ChildrenAffectedByIndirectAdjacentRules); }
+
+ bool childrenAffectedByForwardPositionalRules() const { return hasRestyleFlag(ChildrenAffectedByForwardPositionalRules); }
+ void setChildrenAffectedByForwardPositionalRules() { setRestyleFlag(ChildrenAffectedByForwardPositionalRules); }
+
+ bool childrenAffectedByBackwardPositionalRules() const { return hasRestyleFlag(ChildrenAffectedByBackwardPositionalRules); }
+ void setChildrenAffectedByBackwardPositionalRules() { setRestyleFlag(ChildrenAffectedByBackwardPositionalRules); }
+
void setIsLink(bool f);
bool hasScopedHTMLStyleChild() const { return getFlag(HasScopedHTMLStyleChildFlag); }
@@ -672,6 +719,9 @@ public:
void setAlreadySpellChecked(bool flag) { setFlag(flag, AlreadySpellCheckedFlag); }
bool isAlreadySpellChecked() { return getFlag(AlreadySpellCheckedFlag); }
+ bool isFinishedParsingChildren() const { return getFlag(IsFinishedParsingChildrenFlag); }
+ bool childrenSupportStyleSharing() const { return !hasRestyleFlags(); }
+
private:
enum NodeFlags {
IsTextFlag = 1,
@@ -728,6 +778,12 @@ private:
void setFlag(NodeFlags mask) const { m_nodeFlags |= mask; }
void clearFlag(NodeFlags mask) const { m_nodeFlags &= ~mask; }
+ bool hasRestyleFlag(DynamicRestyleFlags mask) const { return hasRareData() && hasRestyleFlagInternal(mask); }
+ bool hasRestyleFlags() const { return hasRareData() && hasRestyleFlagsInternal(); }
+ void setRestyleFlag(DynamicRestyleFlags);
+ bool hasRestyleFlagInternal(DynamicRestyleFlags) const;
+ bool hasRestyleFlagsInternal() const;
+
protected:
enum ConstructionType {
CreateOther = DefaultNodeFlags,
@@ -786,7 +842,6 @@ protected:
void markAncestorsWithChildNeedsStyleRecalc();
- bool isFinishedParsingChildren() const { return getFlag(IsFinishedParsingChildrenFlag); }
void setIsFinishedParsingChildren(bool value) { setFlag(value, IsFinishedParsingChildrenFlag); }
private:
« no previous file with comments | « Source/core/dom/ElementRareData.h ('k') | Source/core/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698