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

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

Issue 2828193002: DO NOT LAND!! Revert of Generate ComputedStyle::hasViewportUnits and hasRemUnits. (Closed)
Patch Set: Created 3 years, 8 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 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 193
194 // inherited attributes 194 // inherited attributes
195 DataRef<StyleRareInheritedData> m_rareInheritedData; 195 DataRef<StyleRareInheritedData> m_rareInheritedData;
196 DataRef<StyleInheritedData> m_styleInheritedData; 196 DataRef<StyleInheritedData> m_styleInheritedData;
197 197
198 // list of associated pseudo styles 198 // list of associated pseudo styles
199 std::unique_ptr<PseudoStyleCache> m_cachedPseudoStyles; 199 std::unique_ptr<PseudoStyleCache> m_cachedPseudoStyles;
200 200
201 DataRef<SVGComputedStyle> m_svgStyle; 201 DataRef<SVGComputedStyle> m_svgStyle;
202 202
203 // !START SYNC!: Keep this in sync with the copy constructor in
204 // ComputedStyle.cpp.
205
206 // don't inherit
207 struct NonInheritedData {
208 NonInheritedData() : m_hasViewportUnits(false), m_hasRemUnits(false) {}
209
210 // Compare computed styles, differences in inherited bits or other flags
211 // should not cause an inequality.
212 bool operator==(const NonInheritedData& other) const {
213 // Generated properties are compared in ComputedStyleBase
214 return true;
215 // Differences in the following fields do not cause inequality:
216 // hasViewportUnits
217 // styleType
218 // pseudoBits
219 // explicitInheritance
220 // unique
221 // emptyState
222 // affectedByFocus
223 // affectedByHover
224 // affectedByActive
225 // affectedByDrag
226 // isLink
227 // isInherited flags
228 }
229
230 bool operator!=(const NonInheritedData& other) const {
231 return !(*this == other);
232 }
233
234 // These are set if we used viewport or rem units when resolving a length.
235 unsigned m_hasViewportUnits : 1;
236 unsigned m_hasRemUnits : 1;
237
238 // If you add more style bits here, you will also need to update
239 // ComputedStyle::copyNonInheritedFromCached() 68 bits
240 } m_nonInheritedData;
241
242 // !END SYNC!
243
203 private: 244 private:
204 // TODO(sashab): Move these private members to the bottom of ComputedStyle. 245 // TODO(sashab): Move these private members to the bottom of ComputedStyle.
205 ALWAYS_INLINE ComputedStyle(); 246 ALWAYS_INLINE ComputedStyle();
206 ALWAYS_INLINE ComputedStyle(const ComputedStyle&); 247 ALWAYS_INLINE ComputedStyle(const ComputedStyle&);
207 248
208 static PassRefPtr<ComputedStyle> createInitialStyle(); 249 static PassRefPtr<ComputedStyle> createInitialStyle();
209 // TODO(shend): Remove this. Initial style should not be mutable. 250 // TODO(shend): Remove this. Initial style should not be mutable.
210 static inline ComputedStyle& mutableInitialStyle() { 251 static inline ComputedStyle& mutableInitialStyle() {
211 LEAK_SANITIZER_DISABLED_SCOPE; 252 LEAK_SANITIZER_DISABLED_SCOPE;
212 DEFINE_STATIC_REF(ComputedStyle, s_initialStyle, 253 DEFINE_STATIC_REF(ComputedStyle, s_initialStyle,
(...skipping 2082 matching lines...) Expand 10 before | Expand all | Expand 10 after
2295 } 2336 }
2296 CSSTransitionData& accessTransitions(); 2337 CSSTransitionData& accessTransitions();
2297 2338
2298 // Callback selectors. 2339 // Callback selectors.
2299 const Vector<String>& callbackSelectors() const { 2340 const Vector<String>& callbackSelectors() const {
2300 return m_rareNonInheritedData->m_callbackSelectors; 2341 return m_rareNonInheritedData->m_callbackSelectors;
2301 } 2342 }
2302 void addCallbackSelector(const String& selector); 2343 void addCallbackSelector(const String& selector);
2303 2344
2304 // Non-property flags. 2345 // Non-property flags.
2346 bool hasViewportUnits() const {
2347 return m_nonInheritedData.m_hasViewportUnits;
2348 }
2349 // TODO(shend): This function should take no arguments.
2350 void setHasViewportUnits(bool hasViewportUnits) {
2351 m_nonInheritedData.m_hasViewportUnits = hasViewportUnits;
2352 }
2353
2354 bool hasRemUnits() const { return m_nonInheritedData.m_hasRemUnits; }
2355 void setHasRemUnits() { m_nonInheritedData.m_hasRemUnits = true; }
2356
2305 bool emptyState() const { return m_emptyState; } 2357 bool emptyState() const { return m_emptyState; }
2306 void setEmptyState(bool b) { 2358 void setEmptyState(bool b) {
2307 setUnique(); 2359 setUnique();
2308 m_emptyState = b; 2360 m_emptyState = b;
2309 } 2361 }
2310 2362
2311 bool hasInlineTransform() const { 2363 bool hasInlineTransform() const {
2312 return m_rareNonInheritedData->m_hasInlineTransform; 2364 return m_rareNonInheritedData->m_hasInlineTransform;
2313 } 2365 }
2314 void setHasInlineTransform(bool b) { 2366 void setHasInlineTransform(bool b) {
(...skipping 1374 matching lines...) Expand 10 before | Expand all | Expand 10 after
3689 m_pseudoBits |= 1 << (pseudo - FirstPublicPseudoId); 3741 m_pseudoBits |= 1 << (pseudo - FirstPublicPseudoId);
3690 } 3742 }
3691 3743
3692 inline bool ComputedStyle::hasPseudoElementStyle() const { 3744 inline bool ComputedStyle::hasPseudoElementStyle() const {
3693 return m_pseudoBits & ElementPseudoIdMask; 3745 return m_pseudoBits & ElementPseudoIdMask;
3694 } 3746 }
3695 3747
3696 } // namespace blink 3748 } // namespace blink
3697 3749
3698 #endif // ComputedStyle_h 3750 #endif // ComputedStyle_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698