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

Side by Side Diff: third_party/WebKit/Source/core/dom/Node.h

Issue 2490163002: Reland of "Tracking reference filter mutation via SVGElementProxy" (Closed)
Patch Set: Fix double observer unregistration; simplify scope selection; add tests Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved. 5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
7 * (http://www.torchmobile.com/) 7 * (http://www.torchmobile.com/)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 class ComputedStyle; 70 class ComputedStyle;
71 class SVGQualifiedName; 71 class SVGQualifiedName;
72 class ShadowRoot; 72 class ShadowRoot;
73 template <typename NodeType> 73 template <typename NodeType>
74 class StaticNodeTypeList; 74 class StaticNodeTypeList;
75 using StaticNodeList = StaticNodeTypeList<Node>; 75 using StaticNodeList = StaticNodeTypeList<Node>;
76 class StyleChangeReasonForTracing; 76 class StyleChangeReasonForTracing;
77 class Text; 77 class Text;
78 class TouchEvent; 78 class TouchEvent;
79 79
80 const int nodeStyleChangeShift = 19; 80 const int nodeStyleChangeShift = 18;
81 const int nodeCustomElementShift = 21; 81 const int nodeCustomElementShift = 20;
82 82
83 enum StyleChangeType { 83 enum StyleChangeType {
84 NoStyleChange = 0, 84 NoStyleChange = 0,
85 LocalStyleChange = 1 << nodeStyleChangeShift, 85 LocalStyleChange = 1 << nodeStyleChangeShift,
86 SubtreeStyleChange = 2 << nodeStyleChangeShift, 86 SubtreeStyleChange = 2 << nodeStyleChangeShift,
87 NeedsReattachStyleChange = 3 << nodeStyleChangeShift, 87 NeedsReattachStyleChange = 3 << nodeStyleChangeShift,
88 }; 88 };
89 89
90 enum class CustomElementState { 90 enum class CustomElementState {
91 // https://dom.spec.whatwg.org/#concept-element-custom-element-state 91 // https://dom.spec.whatwg.org/#concept-element-custom-element-state
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 } 465 }
466 void markAncestorsWithChildNeedsStyleInvalidation(); 466 void markAncestorsWithChildNeedsStyleInvalidation();
467 bool needsStyleInvalidation() const { 467 bool needsStyleInvalidation() const {
468 return getFlag(NeedsStyleInvalidationFlag); 468 return getFlag(NeedsStyleInvalidationFlag);
469 } 469 }
470 void clearNeedsStyleInvalidation() { clearFlag(NeedsStyleInvalidationFlag); } 470 void clearNeedsStyleInvalidation() { clearFlag(NeedsStyleInvalidationFlag); }
471 void setNeedsStyleInvalidation(); 471 void setNeedsStyleInvalidation();
472 472
473 void updateDistribution(); 473 void updateDistribution();
474 474
475 bool svgFilterNeedsLayerUpdate() const {
476 return getFlag(SVGFilterNeedsLayerUpdateFlag);
477 }
478 void setSVGFilterNeedsLayerUpdate() {
479 setFlag(SVGFilterNeedsLayerUpdateFlag);
480 }
481 void clearSVGFilterNeedsLayerUpdate() {
482 clearFlag(SVGFilterNeedsLayerUpdateFlag);
483 }
484
485 void setIsLink(bool f); 475 void setIsLink(bool f);
486 476
487 bool hasEventTargetData() const { return getFlag(HasEventTargetDataFlag); } 477 bool hasEventTargetData() const { return getFlag(HasEventTargetDataFlag); }
488 void setHasEventTargetData(bool flag) { 478 void setHasEventTargetData(bool flag) {
489 setFlag(flag, HasEventTargetDataFlag); 479 setFlag(flag, HasEventTargetDataFlag);
490 } 480 }
491 481
492 virtual void setFocused(bool flag); 482 virtual void setFocused(bool flag);
493 virtual void setActive(bool flag = true); 483 virtual void setActive(bool flag = true);
494 virtual void setDragged(bool flag); 484 virtual void setDragged(bool flag);
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 806
817 // Tree state flags. These change when the element is added/removed 807 // Tree state flags. These change when the element is added/removed
818 // from a DOM tree. 808 // from a DOM tree.
819 IsConnectedFlag = 1 << 10, 809 IsConnectedFlag = 1 << 10,
820 IsInShadowTreeFlag = 1 << 11, 810 IsInShadowTreeFlag = 1 << 11,
821 811
822 // Set by the parser when the children are done parsing. 812 // Set by the parser when the children are done parsing.
823 IsFinishedParsingChildrenFlag = 1 << 12, 813 IsFinishedParsingChildrenFlag = 1 << 12,
824 814
825 // Flags related to recalcStyle. 815 // Flags related to recalcStyle.
826 SVGFilterNeedsLayerUpdateFlag = 1 << 13, 816 HasCustomStyleCallbacksFlag = 1 << 13,
827 HasCustomStyleCallbacksFlag = 1 << 14, 817 ChildNeedsStyleInvalidationFlag = 1 << 14,
828 ChildNeedsStyleInvalidationFlag = 1 << 15, 818 NeedsStyleInvalidationFlag = 1 << 15,
829 NeedsStyleInvalidationFlag = 1 << 16, 819 ChildNeedsDistributionRecalcFlag = 1 << 16,
830 ChildNeedsDistributionRecalcFlag = 1 << 17, 820 ChildNeedsStyleRecalcFlag = 1 << 17,
831 ChildNeedsStyleRecalcFlag = 1 << 18,
832 StyleChangeMask = 821 StyleChangeMask =
833 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1), 822 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1),
834 823
835 CustomElementStateMask = 0x3 << nodeCustomElementShift, 824 CustomElementStateMask = 0x3 << nodeCustomElementShift,
836 825
837 HasNameOrIsEditingTextFlag = 1 << 23, 826 HasNameOrIsEditingTextFlag = 1 << 22,
838 HasEventTargetDataFlag = 1 << 24, 827 HasEventTargetDataFlag = 1 << 23,
839 828
840 V0CustomElementFlag = 1 << 25, 829 V0CustomElementFlag = 1 << 24,
841 V0CustomElementUpgradedFlag = 1 << 26, 830 V0CustomElementUpgradedFlag = 1 << 25,
842 831
843 NeedsReattachLayoutTree = 1 << 27, 832 NeedsReattachLayoutTree = 1 << 26,
844 ChildNeedsReattachLayoutTree = 1 << 28, 833 ChildNeedsReattachLayoutTree = 1 << 27,
845 834
846 DefaultNodeFlags = IsFinishedParsingChildrenFlag | NeedsReattachStyleChange 835 DefaultNodeFlags = IsFinishedParsingChildrenFlag | NeedsReattachStyleChange
847 }; 836 };
848 837
849 // 3 bits remaining. 838 // 4 bits remaining.
850 839
851 bool getFlag(NodeFlags mask) const { return m_nodeFlags & mask; } 840 bool getFlag(NodeFlags mask) const { return m_nodeFlags & mask; }
852 void setFlag(bool f, NodeFlags mask) { 841 void setFlag(bool f, NodeFlags mask) {
853 m_nodeFlags = (m_nodeFlags & ~mask) | (-(int32_t)f & mask); 842 m_nodeFlags = (m_nodeFlags & ~mask) | (-(int32_t)f & mask);
854 } 843 }
855 void setFlag(NodeFlags mask) { m_nodeFlags |= mask; } 844 void setFlag(NodeFlags mask) { m_nodeFlags |= mask; }
856 void clearFlag(NodeFlags mask) { m_nodeFlags &= ~mask; } 845 void clearFlag(NodeFlags mask) { m_nodeFlags &= ~mask; }
857 846
858 protected: 847 protected:
859 enum ConstructionType { 848 enum ConstructionType {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 } // namespace blink 1013 } // namespace blink
1025 1014
1026 #ifndef NDEBUG 1015 #ifndef NDEBUG
1027 // Outside the WebCore namespace for ease of invocation from gdb. 1016 // Outside the WebCore namespace for ease of invocation from gdb.
1028 void showNode(const blink::Node*); 1017 void showNode(const blink::Node*);
1029 void showTree(const blink::Node*); 1018 void showTree(const blink::Node*);
1030 void showNodePath(const blink::Node*); 1019 void showNodePath(const blink::Node*);
1031 #endif 1020 #endif
1032 1021
1033 #endif // Node_h 1022 #endif // Node_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Element.cpp ('k') | third_party/WebKit/Source/core/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698