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

Side by Side Diff: third_party/WebKit/Source/core/css/StylePropertySet.h

Issue 2044023005: Make PropertyReference value() return a const CSSValue& (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@_remove_style_property_set_mutable_overload
Patch Set: Rebase Created 4 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
OLDNEW
1 /* 1 /*
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 { 56 {
57 } 57 }
58 58
59 CSSPropertyID id() const { return static_cast<CSSPropertyID>(propertyMet adata().m_propertyID); } 59 CSSPropertyID id() const { return static_cast<CSSPropertyID>(propertyMet adata().m_propertyID); }
60 CSSPropertyID shorthandID() const { return propertyMetadata().shorthandI D(); } 60 CSSPropertyID shorthandID() const { return propertyMetadata().shorthandI D(); }
61 61
62 bool isImportant() const { return propertyMetadata().m_important; } 62 bool isImportant() const { return propertyMetadata().m_important; }
63 bool isInherited() const { return propertyMetadata().m_inherited; } 63 bool isInherited() const { return propertyMetadata().m_inherited; }
64 bool isImplicit() const { return propertyMetadata().m_implicit; } 64 bool isImplicit() const { return propertyMetadata().m_implicit; }
65 65
66 const CSSValue* value() const { return propertyValue(); } 66 const CSSValue& value() const { return propertyValue(); }
67 67
68 // FIXME: Remove this. 68 // FIXME: Remove this.
69 CSSProperty toCSSProperty() const { return CSSProperty(propertyMetadata( ), *propertyValue()); } 69 CSSProperty toCSSProperty() const { return CSSProperty(propertyMetadata( ), propertyValue()); }
70 70
71 const StylePropertyMetadata& propertyMetadata() const; 71 const StylePropertyMetadata& propertyMetadata() const;
72 72
73 private: 73 private:
74 const CSSValue* propertyValue() const; 74 const CSSValue& propertyValue() const;
75 75
76 Member<const StylePropertySet> m_propertySet; 76 Member<const StylePropertySet> m_propertySet;
77 unsigned m_index; 77 unsigned m_index;
78 }; 78 };
79 79
80 unsigned propertyCount() const; 80 unsigned propertyCount() const;
81 bool isEmpty() const; 81 bool isEmpty() const;
82 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc e(*this, index); } 82 PropertyReference propertyAt(unsigned index) const { return PropertyReferenc e(*this, index); }
83 83
84 template<typename T> // CSSPropertyID or AtomicString 84 template<typename T> // CSSPropertyID or AtomicString
(...skipping 28 matching lines...) Expand all
113 bool isMutable() const { return m_isMutable; } 113 bool isMutable() const { return m_isMutable; }
114 114
115 bool hasFailedOrCanceledSubresources() const; 115 bool hasFailedOrCanceledSubresources() const;
116 116
117 static unsigned averageSizeInBytes(); 117 static unsigned averageSizeInBytes();
118 118
119 #ifndef NDEBUG 119 #ifndef NDEBUG
120 void showStyle(); 120 void showStyle();
121 #endif 121 #endif
122 122
123 bool propertyMatches(CSSPropertyID, const CSSValue*) const; 123 bool propertyMatches(CSSPropertyID, const CSSValue&) const;
124 124
125 DECLARE_TRACE(); 125 DECLARE_TRACE();
126 DEFINE_INLINE_TRACE_AFTER_DISPATCH() { } 126 DEFINE_INLINE_TRACE_AFTER_DISPATCH() { }
127 127
128 protected: 128 protected:
129 129
130 enum { MaxArraySize = (1 << 28) - 1 }; 130 enum { MaxArraySize = (1 << 28) - 1 };
131 131
132 StylePropertySet(CSSParserMode cssParserMode) 132 StylePropertySet(CSSParserMode cssParserMode)
133 : m_cssParserMode(cssParserMode) 133 : m_cssParserMode(cssParserMode)
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 194
195 unsigned propertyCount() const { return m_propertyVector.size(); } 195 unsigned propertyCount() const { return m_propertyVector.size(); }
196 196
197 // Returns whether this style set was changed. 197 // Returns whether this style set was changed.
198 bool addParsedProperties(const HeapVector<CSSProperty, 256>&); 198 bool addParsedProperties(const HeapVector<CSSProperty, 256>&);
199 bool addRespectingCascade(const CSSProperty&); 199 bool addRespectingCascade(const CSSProperty&);
200 200
201 // These expand shorthand properties into multiple properties. 201 // These expand shorthand properties into multiple properties.
202 bool setProperty(CSSPropertyID unresolvedProperty, const String& value, bool important = false, StyleSheetContents* contextStyleSheet = 0); 202 bool setProperty(CSSPropertyID unresolvedProperty, const String& value, bool important = false, StyleSheetContents* contextStyleSheet = 0);
203 bool setProperty(const AtomicString& customPropertyName, const String& value , bool important = false, StyleSheetContents* contextStyleSheet = 0); 203 bool setProperty(const AtomicString& customPropertyName, const String& value , bool important = false, StyleSheetContents* contextStyleSheet = 0);
204 // TODO(sashab): Make this take a const CSSValue&
204 void setProperty(CSSPropertyID, const CSSValue*, bool important = false); 205 void setProperty(CSSPropertyID, const CSSValue*, bool important = false);
205 206
206 // These do not. FIXME: This is too messy, we can do better. 207 // These do not. FIXME: This is too messy, we can do better.
207 bool setProperty(CSSPropertyID, CSSValueID identifier, bool important = fals e); 208 bool setProperty(CSSPropertyID, CSSValueID identifier, bool important = fals e);
208 bool setProperty(const CSSProperty&, CSSProperty* slot = 0); 209 bool setProperty(const CSSProperty&, CSSProperty* slot = 0);
209 210
210 template<typename T> // CSSPropertyID or AtomicString 211 template<typename T> // CSSPropertyID or AtomicString
211 bool removeProperty(T property, String* returnText = 0); 212 bool removeProperty(T property, String* returnText = 0);
212 bool removePropertiesInSet(const CSSPropertyID* set, unsigned length); 213 bool removePropertiesInSet(const CSSPropertyID* set, unsigned length);
213 void removeEquivalentProperties(const StylePropertySet*); 214 void removeEquivalentProperties(const StylePropertySet*);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 return toMutableStylePropertySet(set.get()); 255 return toMutableStylePropertySet(set.get());
255 } 256 }
256 257
257 inline const StylePropertyMetadata& StylePropertySet::PropertyReference::propert yMetadata() const 258 inline const StylePropertyMetadata& StylePropertySet::PropertyReference::propert yMetadata() const
258 { 259 {
259 if (m_propertySet->isMutable()) 260 if (m_propertySet->isMutable())
260 return toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_i ndex).metadata(); 261 return toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_i ndex).metadata();
261 return toImmutableStylePropertySet(*m_propertySet).metadataArray()[m_index]; 262 return toImmutableStylePropertySet(*m_propertySet).metadataArray()[m_index];
262 } 263 }
263 264
264 inline const CSSValue* StylePropertySet::PropertyReference::propertyValue() cons t 265 inline const CSSValue& StylePropertySet::PropertyReference::propertyValue() cons t
265 { 266 {
266 if (m_propertySet->isMutable()) 267 if (m_propertySet->isMutable())
267 return toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_i ndex).value(); 268 return *toMutableStylePropertySet(*m_propertySet).m_propertyVector.at(m_ index).value();
268 return toImmutableStylePropertySet(*m_propertySet).valueArray()[m_index]; 269 return *toImmutableStylePropertySet(*m_propertySet).valueArray()[m_index];
269 } 270 }
270 271
271 inline unsigned StylePropertySet::propertyCount() const 272 inline unsigned StylePropertySet::propertyCount() const
272 { 273 {
273 if (m_isMutable) 274 if (m_isMutable)
274 return toMutableStylePropertySet(this)->m_propertyVector.size(); 275 return toMutableStylePropertySet(this)->m_propertyVector.size();
275 return m_arraySize; 276 return m_arraySize;
276 } 277 }
277 278
278 inline bool StylePropertySet::isEmpty() const 279 inline bool StylePropertySet::isEmpty() const
279 { 280 {
280 return !propertyCount(); 281 return !propertyCount();
281 } 282 }
282 283
283 template<typename T> 284 template<typename T>
284 inline int StylePropertySet::findPropertyIndex(T property) const 285 inline int StylePropertySet::findPropertyIndex(T property) const
285 { 286 {
286 if (m_isMutable) 287 if (m_isMutable)
287 return toMutableStylePropertySet(this)->findPropertyIndex(property); 288 return toMutableStylePropertySet(this)->findPropertyIndex(property);
288 return toImmutableStylePropertySet(this)->findPropertyIndex(property); 289 return toImmutableStylePropertySet(this)->findPropertyIndex(property);
289 } 290 }
290 291
291 } // namespace blink 292 } // namespace blink
292 293
293 #endif // StylePropertySet_h 294 #endif // StylePropertySet_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698