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

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyle.h

Issue 2919343002: Remove template parameter on ComputedStyleBase. (Closed)
Patch Set: Address comments Created 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.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 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 // 173 //
174 // 2) Many of these data members can be packed as bit fields, so we use less 174 // 2) Many of these data members can be packed as bit fields, so we use less
175 // memory by packing them in this object with other bit fields. 175 // memory by packing them in this object with other bit fields.
176 // 176 //
177 // STORAGE: 177 // STORAGE:
178 // 178 //
179 // ComputedStyle is optimized for memory and performance. The data is not 179 // ComputedStyle is optimized for memory and performance. The data is not
180 // actually stored directly in ComputedStyle, but rather in a generated parent 180 // actually stored directly in ComputedStyle, but rather in a generated parent
181 // class ComputedStyleBase. This separation of concerns allows us to optimise 181 // class ComputedStyleBase. This separation of concerns allows us to optimise
182 // the memory layout without affecting users of ComputedStyle. ComputedStyle 182 // the memory layout without affecting users of ComputedStyle. ComputedStyle
183 // inherits from ComputedStyleBase, which in turn takes ComputedStyle as a 183 // inherits from ComputedStyleBase. For more about the memory layout, there is
184 // template argument so that ComputedStyleBase can access methods declared on 184 // documentation in ComputedStyleBase and make_computed_style_base.py.
185 // ComputedStyle. For more about the memory layout, there is documentation in
186 // ComputedStyleBase and make_computed_style_base.py.
187 // 185 //
188 // INTERFACE: 186 // INTERFACE:
189 // 187 //
190 // For most CSS properties, ComputedStyle provides a consistent interface which 188 // For most CSS properties, ComputedStyle provides a consistent interface which
191 // includes a getter, setter, initial method (the computed value when the 189 // includes a getter, setter, initial method (the computed value when the
192 // property is to 'initial'), and resetter (that resets the computed value to 190 // property is to 'initial'), and resetter (that resets the computed value to
193 // its initial value). Exceptions include vertical-align, which has a separate 191 // its initial value). Exceptions include vertical-align, which has a separate
194 // set of accessors for its length and its keyword components. Apart from 192 // set of accessors for its length and its keyword components. Apart from
195 // accessors, ComputedStyle also has a wealth of helper functions. 193 // accessors, ComputedStyle also has a wealth of helper functions.
196 // 194 //
197 // Because ComputedStyleBase defines simple accessors to every CSS property, 195 // Because ComputedStyleBase defines simple accessors to every CSS property,
198 // ComputedStyle inherits these and so they are not redeclared in this file. 196 // ComputedStyle inherits these and so they are not redeclared in this file.
199 // This means that the interface to ComputedStyle is split between this file and 197 // This means that the interface to ComputedStyle is split between this file and
200 // ComputedStyleBase.h. 198 // ComputedStyleBase.h.
201 // 199 //
202 // [1] https://developer.mozilla.org/en-US/docs/Web/CSS/computed_value 200 // [1] https://developer.mozilla.org/en-US/docs/Web/CSS/computed_value
203 // 201 //
204 // NOTE: 202 // NOTE:
205 // 203 //
206 // Currently, some properties are stored in ComputedStyle and some in 204 // Currently, some properties are stored in ComputedStyle and some in
207 // ComputedStyleBase. Eventually, the storage of all properties (except SVG 205 // ComputedStyleBase. Eventually, the storage of all properties (except SVG
208 // ones) will be in ComputedStyleBase. 206 // ones) will be in ComputedStyleBase.
209 class CORE_EXPORT ComputedStyle : public ComputedStyleBase<ComputedStyle>, 207 class CORE_EXPORT ComputedStyle : public ComputedStyleBase,
210 public RefCounted<ComputedStyle> { 208 public RefCounted<ComputedStyle> {
211 // Needed to allow access to private/protected getters of fields to allow diff 209 // Needed to allow access to private/protected getters of fields to allow diff
212 // generation 210 // generation
213 friend class ComputedStyleBase<ComputedStyle>; 211 friend class ComputedStyleBase;
214 // Used by Web Animations CSS. Sets the color styles. 212 // Used by Web Animations CSS. Sets the color styles.
215 friend class AnimatedStyleBuilder; 213 friend class AnimatedStyleBuilder;
216 // Used by Web Animations CSS. Gets visited and unvisited colors separately. 214 // Used by Web Animations CSS. Gets visited and unvisited colors separately.
217 friend class CSSAnimatableValueFactory; 215 friend class CSSAnimatableValueFactory;
218 // Used by CSS animations. We can't allow them to animate based off visited 216 // Used by CSS animations. We can't allow them to animate based off visited
219 // colors. 217 // colors.
220 friend class CSSPropertyEquality; 218 friend class CSSPropertyEquality;
221 // Editing has to only reveal unvisited info. 219 // Editing has to only reveal unvisited info.
222 friend class ApplyStyleCommand; 220 friend class ApplyStyleCommand;
223 // Editing has to only reveal unvisited info. 221 // Editing has to only reveal unvisited info.
(...skipping 3362 matching lines...) Expand 10 before | Expand all | Expand 10 after
3586 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); 3584 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId)));
3587 } 3585 }
3588 3586
3589 inline bool ComputedStyle::HasPseudoElementStyle() const { 3587 inline bool ComputedStyle::HasPseudoElementStyle() const {
3590 return PseudoBitsInternal() & kElementPseudoIdMask; 3588 return PseudoBitsInternal() & kElementPseudoIdMask;
3591 } 3589 }
3592 3590
3593 } // namespace blink 3591 } // namespace blink
3594 3592
3595 #endif // ComputedStyle_h 3593 #endif // ComputedStyle_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698