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

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

Issue 2892483003: Add class level comments to ComputedStyle. (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « no previous file | 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) 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 class StyleInheritedData; 130 class StyleInheritedData;
131 class StylePath; 131 class StylePath;
132 class StyleResolver; 132 class StyleResolver;
133 class TransformationMatrix; 133 class TransformationMatrix;
134 class TranslateTransformOperation; 134 class TranslateTransformOperation;
135 135
136 class ContentData; 136 class ContentData;
137 137
138 typedef Vector<RefPtr<ComputedStyle>, 4> PseudoStyleCache; 138 typedef Vector<RefPtr<ComputedStyle>, 4> PseudoStyleCache;
139 139
140 // ComputedStyle stores the final style for an element and provides the 140 // ComputedStyle stores the resolved style for an element and provides the
nainar 2017/05/17 02:48:27 Define resolved here.
shend 2017/05/17 03:42:32 Done.
shend 2017/05/17 03:42:32 Should I explain the concept of computed/resolved
nainar 2017/05/17 03:48:43 If you can find a MDN link sure otherwise its ok.
141 // interface between the style engine and the rest of Blink. 141 // interface between the style engine and the rest of Blink. It acts as a
142 // container where the computed value of every CSS property can be stored and
143 // retrieved:
142 // 144 //
143 // It contains all the resolved styles for an element, and is densely packed and 145 // auto style = ComputedStyle::Create() style->SetDisplay(EDisplay::kNone); //
nainar 2017/05/17 02:48:27 erroneous // at the end of this line?
shend 2017/05/17 03:42:32 Done
144 // optimized for memory and performance. Enums and small fields are packed in 146 // 'display' keyword property style->Display()
145 // bit fields, while large fields are stored in pointers and shared where not
146 // modified from their parent value (see the DataRef class).
147 // 147 //
148 // Currently, ComputedStyle is hand-written and ComputedStyleBase is generated. 148 // In addition to storing the computed value of every CSS property,
149 // Over time, methods will be moved to ComputedStyleBase and the generator will 149 // ComputedStyle also contains various internal style information. Examples
150 // be expanded to handle more and more types of properties. Eventually, all 150 // include pseudo element styles, unique_ (for style sharing) and
nainar 2017/05/17 02:48:27 explain that PseudoStyleCache is where we store th
shend 2017/05/17 03:42:32 Done.
151 // methods will be on ComputedStyleBase (with custom methods defined in a class 151 // has_simple_underline_ (cached indicator flag of text-decoration). These are
152 // such as ComputedStyleBase.cpp) and ComputedStyle will be removed. 152 // stored on ComputedStyle for two reasons:
153 //
154 // 1) They share the same lifetime as ComputedStyle, so it is convenient to
155 // store them in the same object rather than a separate object that have to be
156 // passed around as well.
157 //
158 // 2) Many of these data members can be packed as bit fields, so we use less
159 // memory by packing them in this object with other bit fields.
160 //
161 // For most CSS properties, ComputedStyle provides a consistent interface which
162 // includes a getter, setter, initial method (the computed value when the
163 // property is to 'initial'), and resetter (that resets the computed value to
164 // its initial value). Exceptions include vertical-align, which has a separate
165 // set of accessors for its length and its keyword components. Apart from
166 // accessors, ComputedStyle also has a wealth of helper functions.
167 //
168 // ComputedStyle is optimized for memory and performance. The data is not
shend 2017/05/17 03:42:32 Would headings be useful?
nainar 2017/05/17 03:48:43 Headings are always useful :)
169 // actually stored directly in ComputedStyle, but rather in a generated parent
170 // class ComputedStyleBase. This separation of concerns allows us to optimise
171 // the memory layout without affecting users of ComputedStyle. ComputedStyle
172 // inherits from ComputedStyleBase, which in turn takes ComputedStyle as a
173 // template argument so that ComputedStyleBase can access methods declared on
174 // ComputedStyle. For more about the memory layout, there is documentation in
175 // ComputedStyleBase and make_computed_style_base.py.
176 //
177 // Because ComputedStyleBase defines simple accessors to every CSS property,
178 // ComputedStyle inherits these and so they are not redeclared in this file.
179 // This means that the interface to ComputedStyle is split between this file and
180 // ComputedStyleBase.h.
181 //
182 // Currently, some properties are stored in ComputedStyle and some in
183 // ComputedStyleBase. Eventually, the storage of all properties (except SVG
184 // ones) will be in ComputedStyleBase.
153 class CORE_EXPORT ComputedStyle : public ComputedStyleBase<ComputedStyle>, 185 class CORE_EXPORT ComputedStyle : public ComputedStyleBase<ComputedStyle>,
154 public RefCounted<ComputedStyle> { 186 public RefCounted<ComputedStyle> {
155 // Used by Web Animations CSS. Sets the color styles. 187 // Used by Web Animations CSS. Sets the color styles.
156 friend class AnimatedStyleBuilder; 188 friend class AnimatedStyleBuilder;
157 // Used by Web Animations CSS. Gets visited and unvisited colors separately. 189 // Used by Web Animations CSS. Gets visited and unvisited colors separately.
158 friend class CSSAnimatableValueFactory; 190 friend class CSSAnimatableValueFactory;
159 // Used by CSS animations. We can't allow them to animate based off visited 191 // Used by CSS animations. We can't allow them to animate based off visited
160 // colors. 192 // colors.
161 friend class CSSPropertyEquality; 193 friend class CSSPropertyEquality;
162 // Editing has to only reveal unvisited info. 194 // Editing has to only reveal unvisited info.
(...skipping 3610 matching lines...) Expand 10 before | Expand all | Expand 10 after
3773 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); 3805 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId)));
3774 } 3806 }
3775 3807
3776 inline bool ComputedStyle::HasPseudoElementStyle() const { 3808 inline bool ComputedStyle::HasPseudoElementStyle() const {
3777 return PseudoBitsInternal() & kElementPseudoIdMask; 3809 return PseudoBitsInternal() & kElementPseudoIdMask;
3778 } 3810 }
3779 3811
3780 } // namespace blink 3812 } // namespace blink
3781 3813
3782 #endif // ComputedStyle_h 3814 #endif // ComputedStyle_h
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698