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

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

Issue 18139007: Remove StyleResolverState::styledElement() since we can just check isHTMLElement() or isSVGElement() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/css/resolver/StyleResolverState.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 class RenderBox; 78 class RenderBox;
79 class RenderBoxModelObject; 79 class RenderBoxModelObject;
80 class RenderObject; 80 class RenderObject;
81 class RenderStyle; 81 class RenderStyle;
82 class ShadowRoot; 82 class ShadowRoot;
83 class TagNodeList; 83 class TagNodeList;
84 class TouchEvent; 84 class TouchEvent;
85 85
86 typedef int ExceptionCode; 86 typedef int ExceptionCode;
87 87
88 const int nodeStyleChangeShift = 15; 88 const int nodeStyleChangeShift = 14;
89 89
90 enum StyleChangeType { 90 enum StyleChangeType {
91 NoStyleChange = 0, 91 NoStyleChange = 0,
92 LocalStyleChange = 1 << nodeStyleChangeShift, 92 LocalStyleChange = 1 << nodeStyleChangeShift,
93 SubtreeStyleChange = 2 << nodeStyleChangeShift, 93 SubtreeStyleChange = 2 << nodeStyleChangeShift,
94 }; 94 };
95 95
96 // If the style change is from the renderer then we'll call setStyle on the 96 // If the style change is from the renderer then we'll call setStyle on the
97 // renderer even if the style computed from CSS is identical. 97 // renderer even if the style computed from CSS is identical.
98 enum StyleChangeSource { 98 enum StyleChangeSource {
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 PseudoId pseudoId() const { return (isElementNode() && hasCustomStyleCallbac ks()) ? customPseudoId() : NOPSEUDO; } 251 PseudoId pseudoId() const { return (isElementNode() && hasCustomStyleCallbac ks()) ? customPseudoId() : NOPSEUDO; }
252 252
253 bool isCustomElement() const { return getFlag(IsCustomElement); } 253 bool isCustomElement() const { return getFlag(IsCustomElement); }
254 void setIsCustomElement(); 254 void setIsCustomElement();
255 bool isUpgradedCustomElement() const { return getFlag(IsUpgradedCustomElemen t); } 255 bool isUpgradedCustomElement() const { return getFlag(IsUpgradedCustomElemen t); }
256 void setIsUpgradedCustomElement(); 256 void setIsUpgradedCustomElement();
257 257
258 virtual bool isMediaControlElement() const { return false; } 258 virtual bool isMediaControlElement() const { return false; }
259 virtual bool isMediaControls() const { return false; } 259 virtual bool isMediaControls() const { return false; }
260 virtual bool isWebVTTElement() const { return false; } 260 virtual bool isWebVTTElement() const { return false; }
261 bool isStyledElement() const { return getFlag(IsStyledElementFlag); } 261 bool isStyledElement() const { return isHTMLElement() || isSVGElement(); }
eseidel 2013/07/12 06:31:32 How do you know this to be true? could you add a
262 virtual bool isAttributeNode() const { return false; } 262 virtual bool isAttributeNode() const { return false; }
263 virtual bool isCharacterDataNode() const { return false; } 263 virtual bool isCharacterDataNode() const { return false; }
264 virtual bool isFrameOwnerElement() const { return false; } 264 virtual bool isFrameOwnerElement() const { return false; }
265 virtual bool isPluginElement() const { return false; } 265 virtual bool isPluginElement() const { return false; }
266 266
267 bool isDocumentNode() const; 267 bool isDocumentNode() const;
268 bool isTreeScope() const { return treeScope()->rootNode() == this; } 268 bool isTreeScope() const { return treeScope()->rootNode() == this; }
269 bool isDocumentFragment() const { return getFlag(IsDocumentFragmentFlag); } 269 bool isDocumentFragment() const { return getFlag(IsDocumentFragmentFlag); }
270 bool isShadowRoot() const { return isDocumentFragment() && isTreeScope(); } 270 bool isShadowRoot() const { return isDocumentFragment() && isTreeScope(); }
271 bool isInsertionPoint() const { return getFlag(IsInsertionPointFlag); } 271 bool isInsertionPoint() const { return getFlag(IsInsertionPointFlag); }
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 void incrementConnectedSubframeCount(unsigned amount = 1); 709 void incrementConnectedSubframeCount(unsigned amount = 1);
710 void decrementConnectedSubframeCount(unsigned amount = 1); 710 void decrementConnectedSubframeCount(unsigned amount = 1);
711 void updateAncestorConnectedSubframeCountForRemoval() const; 711 void updateAncestorConnectedSubframeCountForRemoval() const;
712 void updateAncestorConnectedSubframeCountForInsertion() const; 712 void updateAncestorConnectedSubframeCountForInsertion() const;
713 713
714 private: 714 private:
715 enum NodeFlags { 715 enum NodeFlags {
716 IsTextFlag = 1, 716 IsTextFlag = 1,
717 IsContainerFlag = 1 << 1, 717 IsContainerFlag = 1 << 1,
718 IsElementFlag = 1 << 2, 718 IsElementFlag = 1 << 2,
719 IsStyledElementFlag = 1 << 3, 719 IsHTMLFlag = 1 << 3,
720 IsHTMLFlag = 1 << 4, 720 IsSVGFlag = 1 << 4,
721 IsSVGFlag = 1 << 5, 721 IsAttachedFlag = 1 << 5,
722 IsAttachedFlag = 1 << 6, 722 ChildNeedsStyleRecalcFlag = 1 << 6,
723 ChildNeedsStyleRecalcFlag = 1 << 7, 723 InDocumentFlag = 1 << 7,
724 InDocumentFlag = 1 << 8, 724 IsLinkFlag = 1 << 8,
725 IsLinkFlag = 1 << 9, 725 IsUserActionElement = 1 << 9,
726 IsUserActionElement = 1 << 10, 726 HasRareDataFlag = 1 << 10,
727 HasRareDataFlag = 1 << 11, 727 IsDocumentFragmentFlag = 1 << 11,
728 IsDocumentFragmentFlag = 1 << 12,
729 728
730 // These bits are used by derived classes, pulled up here so they can 729 // These bits are used by derived classes, pulled up here so they can
731 // be stored in the same memory word as the Node bits above. 730 // be stored in the same memory word as the Node bits above.
732 IsParsingChildrenFinishedFlag = 1 << 13, // Element 731 IsParsingChildrenFinishedFlag = 1 << 12, // Element
733 HasSVGRareDataFlag = 1 << 14, // SVGElement 732 HasSVGRareDataFlag = 1 << 13, // SVGElement
734 733
735 StyleChangeMask = 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1), 734 StyleChangeMask = 1 << nodeStyleChangeShift | 1 << (nodeStyleChangeShift + 1),
736 735
737 SelfOrAncestorHasDirAutoFlag = 1 << 17, 736 SelfOrAncestorHasDirAutoFlag = 1 << 16,
738 737
739 HasNameOrIsEditingTextFlag = 1 << 18, 738 HasNameOrIsEditingTextFlag = 1 << 17,
740 739
741 InNamedFlowFlag = 1 << 19, 740 InNamedFlowFlag = 1 << 18,
742 HasSyntheticAttrChildNodesFlag = 1 << 20, 741 HasSyntheticAttrChildNodesFlag = 1 << 19,
743 HasCustomStyleCallbacksFlag = 1 << 21, 742 HasCustomStyleCallbacksFlag = 1 << 20,
744 HasScopedHTMLStyleChildFlag = 1 << 22, 743 HasScopedHTMLStyleChildFlag = 1 << 21,
745 HasEventTargetDataFlag = 1 << 23, 744 HasEventTargetDataFlag = 1 << 22,
746 V8CollectableDuringMinorGCFlag = 1 << 24, 745 V8CollectableDuringMinorGCFlag = 1 << 23,
747 IsInsertionPointFlag = 1 << 25, 746 IsInsertionPointFlag = 1 << 24,
748 IsInShadowTreeFlag = 1 << 26, 747 IsInShadowTreeFlag = 1 << 25,
749 IsCustomElement = 1 << 27, 748 IsCustomElement = 1 << 26,
750 749
751 NotifyRendererWithIdenticalStyles = 1 << 28, 750 NotifyRendererWithIdenticalStyles = 1 << 27,
752 751
753 IsUpgradedCustomElement = 1 << 29, 752 IsUpgradedCustomElement = 1 << 28,
754 753
755 DefaultNodeFlags = IsParsingChildrenFinishedFlag 754 DefaultNodeFlags = IsParsingChildrenFinishedFlag
756 }; 755 };
757 756
758 // 2 bits remaining 757 // 3 bits remaining
759 758
760 bool getFlag(NodeFlags mask) const { return m_nodeFlags & mask; } 759 bool getFlag(NodeFlags mask) const { return m_nodeFlags & mask; }
761 void setFlag(bool f, NodeFlags mask) const { m_nodeFlags = (m_nodeFlags & ~m ask) | (-(int32_t)f & mask); } 760 void setFlag(bool f, NodeFlags mask) const { m_nodeFlags = (m_nodeFlags & ~m ask) | (-(int32_t)f & mask); }
762 void setFlag(NodeFlags mask) const { m_nodeFlags |= mask; } 761 void setFlag(NodeFlags mask) const { m_nodeFlags |= mask; }
763 void clearFlag(NodeFlags mask) const { m_nodeFlags &= ~mask; } 762 void clearFlag(NodeFlags mask) const { m_nodeFlags &= ~mask; }
764 763
765 protected: 764 protected:
766 enum ConstructionType { 765 enum ConstructionType {
767 CreateOther = DefaultNodeFlags, 766 CreateOther = DefaultNodeFlags,
768 CreateText = DefaultNodeFlags | IsTextFlag, 767 CreateText = DefaultNodeFlags | IsTextFlag,
769 CreateContainer = DefaultNodeFlags | IsContainerFlag, 768 CreateContainer = DefaultNodeFlags | IsContainerFlag,
770 CreateElement = CreateContainer | IsElementFlag, 769 CreateElement = CreateContainer | IsElementFlag,
771 CreatePseudoElement = CreateElement | InDocumentFlag, 770 CreatePseudoElement = CreateElement | InDocumentFlag,
772 CreateShadowRoot = CreateContainer | IsDocumentFragmentFlag | IsInShadow TreeFlag, 771 CreateShadowRoot = CreateContainer | IsDocumentFragmentFlag | IsInShadow TreeFlag,
773 CreateDocumentFragment = CreateContainer | IsDocumentFragmentFlag, 772 CreateDocumentFragment = CreateContainer | IsDocumentFragmentFlag,
774 CreateStyledElement = CreateElement | IsStyledElementFlag, 773 CreateHTMLElement = CreateElement | IsHTMLFlag,
775 CreateHTMLElement = CreateStyledElement | IsHTMLFlag, 774 CreateSVGElement = CreateElement | IsSVGFlag,
776 CreateSVGElement = CreateStyledElement | IsSVGFlag,
777 CreateDocument = CreateContainer | InDocumentFlag, 775 CreateDocument = CreateContainer | InDocumentFlag,
778 CreateInsertionPoint = CreateHTMLElement | IsInsertionPointFlag, 776 CreateInsertionPoint = CreateHTMLElement | IsInsertionPointFlag,
779 CreateEditingText = CreateText | HasNameOrIsEditingTextFlag, 777 CreateEditingText = CreateText | HasNameOrIsEditingTextFlag,
780 }; 778 };
781 779
782 Node(TreeScope* treeScope, ConstructionType type) 780 Node(TreeScope* treeScope, ConstructionType type)
783 : m_nodeFlags(type) 781 : m_nodeFlags(type)
784 , m_parentOrShadowHostNode(0) 782 , m_parentOrShadowHostNode(0)
785 , m_treeScope(treeScope) 783 , m_treeScope(treeScope)
786 , m_previous(0) 784 , m_previous(0)
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 936
939 } //namespace 937 } //namespace
940 938
941 #ifndef NDEBUG 939 #ifndef NDEBUG
942 // Outside the WebCore namespace for ease of invocation from gdb. 940 // Outside the WebCore namespace for ease of invocation from gdb.
943 void showTree(const WebCore::Node*); 941 void showTree(const WebCore::Node*);
944 void showNodePath(const WebCore::Node*); 942 void showNodePath(const WebCore::Node*);
945 #endif 943 #endif
946 944
947 #endif 945 #endif
OLDNEW
« no previous file with comments | « Source/core/css/resolver/StyleResolverState.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698