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

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

Issue 2555423002: Move white-space to be generated in ComputedStyleBase. (Closed)
Patch Set: Updated SameSizeAsComputedStyle() to reflect the change in inherited data bitfield size. Created 4 years 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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 bool operator!=(const InheritedData& other) const { 205 bool operator!=(const InheritedData& other) const {
206 return !(*this == other); 206 return !(*this == other);
207 } 207 }
208 208
209 inline bool compareEqualIndependent(const InheritedData& other) const { 209 inline bool compareEqualIndependent(const InheritedData& other) const {
210 // These must match the properties tagged 'independent' in 210 // These must match the properties tagged 'independent' in
211 // CSSProperties.in. 211 // CSSProperties.in.
212 // TODO(napper): Remove this once all independent properties are 212 // TODO(napper): Remove this once all independent properties are
213 // generated and replace with a private function used only in 213 // generated and replace with a private function used only in
214 // stylePropagationDiff(). 214 // stylePropagationDiff().
215 return (m_pointerEvents == other.m_pointerEvents) && 215 return (m_pointerEvents == other.m_pointerEvents);
216 (m_whiteSpace == other.m_whiteSpace);
217 } 216 }
218 217
219 inline bool compareEqualNonIndependent(const InheritedData& other) const { 218 inline bool compareEqualNonIndependent(const InheritedData& other) const {
220 return (m_listStyleType == other.m_listStyleType) && 219 return (m_listStyleType == other.m_listStyleType) &&
221 (m_textAlign == other.m_textAlign) && 220 (m_textAlign == other.m_textAlign) &&
222 (m_hasSimpleUnderline == other.m_hasSimpleUnderline) && 221 (m_hasSimpleUnderline == other.m_hasSimpleUnderline) &&
223 (m_cursorStyle == other.m_cursorStyle) && 222 (m_cursorStyle == other.m_cursorStyle) &&
224 (m_direction == other.m_direction) && 223 (m_direction == other.m_direction) &&
225 (m_boxDirection == other.m_boxDirection) && 224 (m_boxDirection == other.m_boxDirection) &&
226 (m_rtlOrdering == other.m_rtlOrdering) && 225 (m_rtlOrdering == other.m_rtlOrdering) &&
227 (m_printColorAdjust == other.m_printColorAdjust) && 226 (m_printColorAdjust == other.m_printColorAdjust) &&
228 (m_insideLink == other.m_insideLink) && 227 (m_insideLink == other.m_insideLink) &&
229 (m_writingMode == other.m_writingMode); 228 (m_writingMode == other.m_writingMode);
230 } 229 }
231 230
232 unsigned m_listStyleType : 7; // EListStyleType 231 unsigned m_listStyleType : 7; // EListStyleType
233 unsigned m_textAlign : 4; // ETextAlign 232 unsigned m_textAlign : 4; // ETextAlign
234 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only 233 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only
235 // text decoration on this element. 234 // text decoration on this element.
236 unsigned m_cursorStyle : 6; // ECursor 235 unsigned m_cursorStyle : 6; // ECursor
237 unsigned m_direction : 1; // TextDirection 236 unsigned m_direction : 1; // TextDirection
238 unsigned m_whiteSpace : 3; // EWhiteSpace
239 unsigned m_boxDirection : 1; // EBoxDirection (CSS3 box_direction property, 237 unsigned m_boxDirection : 1; // EBoxDirection (CSS3 box_direction property,
240 // flexible box layout module) 238 // flexible box layout module)
241 // 32 bits 239 // 32 bits
242 240
243 // non CSS2 inherited 241 // non CSS2 inherited
244 unsigned m_rtlOrdering : 1; // EOrder 242 unsigned m_rtlOrdering : 1; // EOrder
245 unsigned m_printColorAdjust : 1; // PrintColorAdjust 243 unsigned m_printColorAdjust : 1; // PrintColorAdjust
246 unsigned m_pointerEvents : 4; // EPointerEvents 244 unsigned m_pointerEvents : 4; // EPointerEvents
247 unsigned m_insideLink : 2; // EInsideLink 245 unsigned m_insideLink : 2; // EInsideLink
248 246
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 // TODO(sashab): Move these flags closer to inheritedData so that it's 338 // TODO(sashab): Move these flags closer to inheritedData so that it's
341 // clear which inherited properties have a flag stored and which don't. 339 // clear which inherited properties have a flag stored and which don't.
342 // Keep this list of fields in sync with: 340 // Keep this list of fields in sync with:
343 // - setBitDefaults() 341 // - setBitDefaults()
344 // - The ComputedStyle setter, which must take an extra boolean parameter 342 // - The ComputedStyle setter, which must take an extra boolean parameter
345 // and set this - propagateIndependentInheritedProperties() in 343 // and set this - propagateIndependentInheritedProperties() in
346 // ComputedStyle.cpp 344 // ComputedStyle.cpp
347 // - The compareEqual() methods in the corresponding class 345 // - The compareEqual() methods in the corresponding class
348 // InheritedFlags 346 // InheritedFlags
349 unsigned m_isPointerEventsInherited : 1; 347 unsigned m_isPointerEventsInherited : 1;
350 unsigned m_isWhiteSpaceInherited : 1;
351 348
352 // If you add more style bits here, you will also need to update 349 // If you add more style bits here, you will also need to update
353 // ComputedStyle::copyNonInheritedFromCached() 68 bits 350 // ComputedStyle::copyNonInheritedFromCached() 68 bits
354 } m_nonInheritedData; 351 } m_nonInheritedData;
355 352
356 // !END SYNC! 353 // !END SYNC!
357 354
358 void setBitDefaults() { 355 void setBitDefaults() {
359 ComputedStyleBase::setBitDefaults(); 356 ComputedStyleBase::setBitDefaults();
360 m_inheritedData.m_listStyleType = 357 m_inheritedData.m_listStyleType =
361 static_cast<unsigned>(initialListStyleType()); 358 static_cast<unsigned>(initialListStyleType());
362 m_inheritedData.m_textAlign = static_cast<unsigned>(initialTextAlign()); 359 m_inheritedData.m_textAlign = static_cast<unsigned>(initialTextAlign());
363 m_inheritedData.m_hasSimpleUnderline = false; 360 m_inheritedData.m_hasSimpleUnderline = false;
364 m_inheritedData.m_cursorStyle = static_cast<unsigned>(initialCursor()); 361 m_inheritedData.m_cursorStyle = static_cast<unsigned>(initialCursor());
365 m_inheritedData.m_direction = initialDirection(); 362 m_inheritedData.m_direction = initialDirection();
366 m_inheritedData.m_whiteSpace = static_cast<unsigned>(initialWhiteSpace());
367 m_inheritedData.m_rtlOrdering = static_cast<unsigned>(initialRTLOrdering()); 363 m_inheritedData.m_rtlOrdering = static_cast<unsigned>(initialRTLOrdering());
368 m_inheritedData.m_boxDirection = 364 m_inheritedData.m_boxDirection =
369 static_cast<unsigned>(initialBoxDirection()); 365 static_cast<unsigned>(initialBoxDirection());
370 m_inheritedData.m_printColorAdjust = 366 m_inheritedData.m_printColorAdjust =
371 static_cast<unsigned>(initialPrintColorAdjust()); 367 static_cast<unsigned>(initialPrintColorAdjust());
372 m_inheritedData.m_pointerEvents = 368 m_inheritedData.m_pointerEvents =
373 static_cast<unsigned>(initialPointerEvents()); 369 static_cast<unsigned>(initialPointerEvents());
374 m_inheritedData.m_insideLink = NotInsideLink; 370 m_inheritedData.m_insideLink = NotInsideLink;
375 m_inheritedData.m_writingMode = initialWritingMode(); 371 m_inheritedData.m_writingMode = initialWritingMode();
376 372
(...skipping 20 matching lines...) Expand all
397 m_nonInheritedData.m_hasViewportUnits = false; 393 m_nonInheritedData.m_hasViewportUnits = false;
398 m_nonInheritedData.m_affectedByFocus = false; 394 m_nonInheritedData.m_affectedByFocus = false;
399 m_nonInheritedData.m_affectedByHover = false; 395 m_nonInheritedData.m_affectedByHover = false;
400 m_nonInheritedData.m_affectedByActive = false; 396 m_nonInheritedData.m_affectedByActive = false;
401 m_nonInheritedData.m_affectedByDrag = false; 397 m_nonInheritedData.m_affectedByDrag = false;
402 m_nonInheritedData.m_isLink = false; 398 m_nonInheritedData.m_isLink = false;
403 m_nonInheritedData.m_hasRemUnits = false; 399 m_nonInheritedData.m_hasRemUnits = false;
404 400
405 // All independently inherited properties default to being inherited. 401 // All independently inherited properties default to being inherited.
406 m_nonInheritedData.m_isPointerEventsInherited = true; 402 m_nonInheritedData.m_isPointerEventsInherited = true;
407 m_nonInheritedData.m_isWhiteSpaceInherited = true;
408 } 403 }
409 404
410 private: 405 private:
411 // TODO(sashab): Move these to the bottom of ComputedStyle. 406 // TODO(sashab): Move these to the bottom of ComputedStyle.
412 ALWAYS_INLINE ComputedStyle(); 407 ALWAYS_INLINE ComputedStyle();
413 408
414 enum InitialStyleTag { InitialStyle }; 409 enum InitialStyleTag { InitialStyle };
415 ALWAYS_INLINE explicit ComputedStyle(InitialStyleTag); 410 ALWAYS_INLINE explicit ComputedStyle(InitialStyleTag);
416 ALWAYS_INLINE ComputedStyle(const ComputedStyle&); 411 ALWAYS_INLINE ComputedStyle(const ComputedStyle&);
417 412
(...skipping 1841 matching lines...) Expand 10 before | Expand all | Expand 10 after
2259 static TextSizeAdjust initialTextSizeAdjust() { 2254 static TextSizeAdjust initialTextSizeAdjust() {
2260 return TextSizeAdjust::adjustAuto(); 2255 return TextSizeAdjust::adjustAuto();
2261 } 2256 }
2262 TextSizeAdjust getTextSizeAdjust() const { 2257 TextSizeAdjust getTextSizeAdjust() const {
2263 return m_rareInheritedData->m_textSizeAdjust; 2258 return m_rareInheritedData->m_textSizeAdjust;
2264 } 2259 }
2265 void setTextSizeAdjust(TextSizeAdjust sizeAdjust) { 2260 void setTextSizeAdjust(TextSizeAdjust sizeAdjust) {
2266 SET_VAR(m_rareInheritedData, m_textSizeAdjust, sizeAdjust); 2261 SET_VAR(m_rareInheritedData, m_textSizeAdjust, sizeAdjust);
2267 } 2262 }
2268 2263
2269 // white-space inherited
2270 static EWhiteSpace initialWhiteSpace() { return EWhiteSpace::Normal; }
2271 EWhiteSpace whiteSpace() const {
2272 return static_cast<EWhiteSpace>(m_inheritedData.m_whiteSpace);
2273 }
2274 void setWhiteSpace(EWhiteSpace v) {
2275 m_inheritedData.m_whiteSpace = static_cast<unsigned>(v);
2276 }
2277 void setWhiteSpaceIsInherited(bool isInherited) {
2278 m_nonInheritedData.m_isWhiteSpaceInherited = isInherited;
2279 }
2280
2281 // word-break inherited (aka -epub-word-break) 2264 // word-break inherited (aka -epub-word-break)
2282 static EWordBreak initialWordBreak() { return NormalWordBreak; } 2265 static EWordBreak initialWordBreak() { return NormalWordBreak; }
2283 EWordBreak wordBreak() const { 2266 EWordBreak wordBreak() const {
2284 return static_cast<EWordBreak>(m_rareInheritedData->wordBreak); 2267 return static_cast<EWordBreak>(m_rareInheritedData->wordBreak);
2285 } 2268 }
2286 void setWordBreak(EWordBreak b) { 2269 void setWordBreak(EWordBreak b) {
2287 SET_VAR(m_rareInheritedData, wordBreak, b); 2270 SET_VAR(m_rareInheritedData, wordBreak, b);
2288 } 2271 }
2289 2272
2290 // -webkit-line-break 2273 // -webkit-line-break
(...skipping 1802 matching lines...) Expand 10 before | Expand all | Expand 10 after
4093 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - 1); 4076 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - 1);
4094 } 4077 }
4095 4078
4096 inline bool ComputedStyle::hasPseudoElementStyle() const { 4079 inline bool ComputedStyle::hasPseudoElementStyle() const {
4097 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask; 4080 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask;
4098 } 4081 }
4099 4082
4100 } // namespace blink 4083 } // namespace blink
4101 4084
4102 #endif // ComputedStyle_h 4085 #endif // ComputedStyle_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSProperties.in ('k') | third_party/WebKit/Source/core/style/ComputedStyle.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698