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

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

Issue 354023008: Move attributes-related methods from ElementData to AttributeCollection (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Take feedback into consideration Created 6 years, 6 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/dom/AttributeCollection.cpp ('k') | Source/core/dom/Element.cpp » ('j') | 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 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Appl e Inc. All rights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Appl e Inc. All rights reserved.
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 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 // so this function is not suitable for non-style uses. 168 // so this function is not suitable for non-style uses.
169 const AtomicString& idForStyleResolution() const; 169 const AtomicString& idForStyleResolution() const;
170 170
171 // Internal methods that assume the existence of attribute storage, one shou ld use hasAttributes() 171 // Internal methods that assume the existence of attribute storage, one shou ld use hasAttributes()
172 // before calling them. This is not a trivial getter and its return value sh ould be cached for 172 // before calling them. This is not a trivial getter and its return value sh ould be cached for
173 // performance. 173 // performance.
174 AttributeCollection attributes() const { return elementData()->attributes(); } 174 AttributeCollection attributes() const { return elementData()->attributes(); }
175 size_t attributeCount() const; 175 size_t attributeCount() const;
176 const Attribute& attributeAt(unsigned index) const; 176 const Attribute& attributeAt(unsigned index) const;
177 const Attribute* findAttributeByName(const QualifiedName&) const; 177 const Attribute* findAttributeByName(const QualifiedName&) const;
178 size_t findAttributeIndexByName(const QualifiedName& name) const { return el ementData()->findAttributeIndexByName(name); } 178 size_t findAttributeIndexByName(const QualifiedName& name) const { return el ementData()->attributes().findIndex(name); }
179 size_t findAttributeIndexByName(const AtomicString& name, bool shouldIgnoreA ttributeCase) const { return elementData()->findAttributeIndexByName(name, shoul dIgnoreAttributeCase); } 179 size_t findAttributeIndexByName(const AtomicString& name, bool shouldIgnoreA ttributeCase) const { return elementData()->attributes().findIndex(name, shouldI gnoreAttributeCase); }
180 180
181 void scrollIntoView(bool alignToTop = true); 181 void scrollIntoView(bool alignToTop = true);
182 void scrollIntoViewIfNeeded(bool centerIfNeeded = true); 182 void scrollIntoViewIfNeeded(bool centerIfNeeded = true);
183 183
184 void scrollByLines(int lines); 184 void scrollByLines(int lines);
185 void scrollByPages(int pages); 185 void scrollByPages(int pages);
186 186
187 int offsetLeft(); 187 int offsetLeft();
188 int offsetTop(); 188 int offsetTop();
189 int offsetWidth(); 189 int offsetWidth();
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 ASSERT(fastAttributeLookupAllowed(name)); 710 ASSERT(fastAttributeLookupAllowed(name));
711 if (elementData()) { 711 if (elementData()) {
712 if (const Attribute* attribute = findAttributeByName(name)) 712 if (const Attribute* attribute = findAttributeByName(name))
713 return attribute->value(); 713 return attribute->value();
714 } 714 }
715 return nullAtom; 715 return nullAtom;
716 } 716 }
717 717
718 inline bool Element::hasAttributesWithoutUpdate() const 718 inline bool Element::hasAttributesWithoutUpdate() const
719 { 719 {
720 return elementData() && elementData()->hasAttributes(); 720 return elementData() && !elementData()->attributes().isEmpty();
721 } 721 }
722 722
723 inline const AtomicString& Element::idForStyleResolution() const 723 inline const AtomicString& Element::idForStyleResolution() const
724 { 724 {
725 ASSERT(hasID()); 725 ASSERT(hasID());
726 return elementData()->idForStyleResolution(); 726 return elementData()->idForStyleResolution();
727 } 727 }
728 728
729 inline bool Element::isIdAttributeName(const QualifiedName& attributeName) const 729 inline bool Element::isIdAttributeName(const QualifiedName& attributeName) const
730 { 730 {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 inline const SpaceSplitString& Element::classNames() const 762 inline const SpaceSplitString& Element::classNames() const
763 { 763 {
764 ASSERT(hasClass()); 764 ASSERT(hasClass());
765 ASSERT(elementData()); 765 ASSERT(elementData());
766 return elementData()->classNames(); 766 return elementData()->classNames();
767 } 767 }
768 768
769 inline size_t Element::attributeCount() const 769 inline size_t Element::attributeCount() const
770 { 770 {
771 ASSERT(elementData()); 771 ASSERT(elementData());
772 return elementData()->attributeCount(); 772 return elementData()->attributes().size();
773 } 773 }
774 774
775 inline const Attribute& Element::attributeAt(unsigned index) const 775 inline const Attribute& Element::attributeAt(unsigned index) const
776 { 776 {
777 ASSERT(elementData()); 777 ASSERT(elementData());
778 return elementData()->attributeAt(index); 778 return elementData()->attributes()[index];
779 } 779 }
780 780
781 inline const Attribute* Element::findAttributeByName(const QualifiedName& name) const 781 inline const Attribute* Element::findAttributeByName(const QualifiedName& name) const
782 { 782 {
783 ASSERT(elementData()); 783 ASSERT(elementData());
784 return elementData()->findAttributeByName(name); 784 return elementData()->attributes().find(name);
785 } 785 }
786 786
787 inline bool Element::hasID() const 787 inline bool Element::hasID() const
788 { 788 {
789 return elementData() && elementData()->hasID(); 789 return elementData() && elementData()->hasID();
790 } 790 }
791 791
792 inline bool Element::hasClass() const 792 inline bool Element::hasClass() const
793 { 793 {
794 return elementData() && elementData()->hasClass(); 794 return elementData() && elementData()->hasClass();
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&) 884 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&)
885 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ 885 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \
886 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document& document) \ 886 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document& document) \
887 { \ 887 { \
888 return adoptRefWillBeNoop(new T(tagName, document)); \ 888 return adoptRefWillBeNoop(new T(tagName, document)); \
889 } 889 }
890 890
891 } // namespace 891 } // namespace
892 892
893 #endif 893 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/AttributeCollection.cpp ('k') | Source/core/dom/Element.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698