OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * Copyright (C) 2015 Google Inc. All rights reserved. | 7 * Copyright (C) 2015 Google Inc. All rights reserved. |
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 Lesser General Public | 10 * modify it under the terms of the GNU Lesser General Public |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "core/css/CSSColorValue.h" | 34 #include "core/css/CSSColorValue.h" |
35 #include "core/css/CSSCounterValue.h" | 35 #include "core/css/CSSCounterValue.h" |
36 #include "core/css/CSSCursorImageValue.h" | 36 #include "core/css/CSSCursorImageValue.h" |
37 #include "core/css/CSSCustomIdentValue.h" | 37 #include "core/css/CSSCustomIdentValue.h" |
38 #include "core/css/CSSCustomPropertyDeclaration.h" | 38 #include "core/css/CSSCustomPropertyDeclaration.h" |
39 #include "core/css/CSSFontFamilyValue.h" | 39 #include "core/css/CSSFontFamilyValue.h" |
40 #include "core/css/CSSFontFeatureValue.h" | 40 #include "core/css/CSSFontFeatureValue.h" |
41 #include "core/css/CSSFunctionValue.h" | 41 #include "core/css/CSSFunctionValue.h" |
42 #include "core/css/CSSGridLineNamesValue.h" | 42 #include "core/css/CSSGridLineNamesValue.h" |
43 #include "core/css/CSSGridTemplateAreasValue.h" | 43 #include "core/css/CSSGridTemplateAreasValue.h" |
| 44 #include "core/css/CSSIdentifierValue.h" |
44 #include "core/css/CSSInitialValue.h" | 45 #include "core/css/CSSInitialValue.h" |
45 #include "core/css/CSSPathValue.h" | 46 #include "core/css/CSSPathValue.h" |
46 #include "core/css/CSSPrimitiveValue.h" | 47 #include "core/css/CSSPrimitiveValue.h" |
47 #include "core/css/CSSPrimitiveValueMappings.h" | 48 #include "core/css/CSSPrimitiveValueMappings.h" |
48 #include "core/css/CSSQuadValue.h" | 49 #include "core/css/CSSQuadValue.h" |
49 #include "core/css/CSSReflectValue.h" | 50 #include "core/css/CSSReflectValue.h" |
50 #include "core/css/CSSShadowValue.h" | 51 #include "core/css/CSSShadowValue.h" |
51 #include "core/css/CSSStringValue.h" | 52 #include "core/css/CSSStringValue.h" |
52 #include "core/css/CSSTimingFunctionValue.h" | 53 #include "core/css/CSSTimingFunctionValue.h" |
53 #include "core/css/CSSURIValue.h" | 54 #include "core/css/CSSURIValue.h" |
(...skipping 17 matching lines...) Expand all Loading... |
71 inline static bool isFlexOrGrid(const ComputedStyle* style) | 72 inline static bool isFlexOrGrid(const ComputedStyle* style) |
72 { | 73 { |
73 return style && style->isDisplayFlexibleOrGridBox(); | 74 return style && style->isDisplayFlexibleOrGridBox(); |
74 } | 75 } |
75 | 76 |
76 inline static CSSPrimitiveValue* zoomAdjustedPixelValue(double value, const Comp
utedStyle& style) | 77 inline static CSSPrimitiveValue* zoomAdjustedPixelValue(double value, const Comp
utedStyle& style) |
77 { | 78 { |
78 return CSSPrimitiveValue::create(adjustFloatForAbsoluteZoom(value, style), C
SSPrimitiveValue::UnitType::Pixels); | 79 return CSSPrimitiveValue::create(adjustFloatForAbsoluteZoom(value, style), C
SSPrimitiveValue::UnitType::Pixels); |
79 } | 80 } |
80 | 81 |
| 82 inline static CSSValue* zoomAdjustedPixelValueOrAuto(const Length& length, const
ComputedStyle& style) |
| 83 { |
| 84 if (length.isAuto()) |
| 85 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
| 86 return zoomAdjustedPixelValue(length.value(), style); |
| 87 } |
| 88 |
81 inline static CSSPrimitiveValue* zoomAdjustedNumberValue(double value, const Com
putedStyle& style) | 89 inline static CSSPrimitiveValue* zoomAdjustedNumberValue(double value, const Com
putedStyle& style) |
82 { | 90 { |
83 return CSSPrimitiveValue::create(value / style.effectiveZoom(), CSSPrimitive
Value::UnitType::Number); | 91 return CSSPrimitiveValue::create(value / style.effectiveZoom(), CSSPrimitive
Value::UnitType::Number); |
84 } | 92 } |
85 | 93 |
86 static CSSPrimitiveValue* zoomAdjustedPixelValueForLength(const Length& length,
const ComputedStyle& style) | 94 static CSSValue* zoomAdjustedPixelValueForLength(const Length& length, const Com
putedStyle& style) |
87 { | 95 { |
88 if (length.isFixed()) | 96 if (length.isFixed()) |
89 return zoomAdjustedPixelValue(length.value(), style); | 97 return zoomAdjustedPixelValue(length.value(), style); |
90 return CSSPrimitiveValue::create(length, style.effectiveZoom()); | 98 return CSSValue::create(length, style.effectiveZoom()); |
91 } | 99 } |
92 | 100 |
93 static CSSPrimitiveValue* pixelValueForUnzoomedLength(const UnzoomedLength& unzo
omedLength, const ComputedStyle& style) | 101 static CSSValue* pixelValueForUnzoomedLength(const UnzoomedLength& unzoomedLengt
h, const ComputedStyle& style) |
94 { | 102 { |
95 const Length& length = unzoomedLength.length(); | 103 const Length& length = unzoomedLength.length(); |
96 if (length.isFixed()) | 104 if (length.isFixed()) |
97 return CSSPrimitiveValue::create(length.value(), CSSPrimitiveValue::Unit
Type::Pixels); | 105 return CSSPrimitiveValue::create(length.value(), CSSPrimitiveValue::Unit
Type::Pixels); |
98 return CSSPrimitiveValue::create(length, style.effectiveZoom()); | 106 return CSSValue::create(length, style.effectiveZoom()); |
99 } | 107 } |
100 | 108 |
101 static CSSValueList* createPositionListForLayer(CSSPropertyID propertyID, const
FillLayer& layer, const ComputedStyle& style) | 109 static CSSValueList* createPositionListForLayer(CSSPropertyID propertyID, const
FillLayer& layer, const ComputedStyle& style) |
102 { | 110 { |
103 CSSValueList* positionList = CSSValueList::createSpaceSeparated(); | 111 CSSValueList* positionList = CSSValueList::createSpaceSeparated(); |
104 if (layer.isBackgroundXOriginSet()) { | 112 if (layer.isBackgroundXOriginSet()) { |
105 ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition ||
propertyID == CSSPropertyWebkitMaskPosition); | 113 ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition ||
propertyID == CSSPropertyWebkitMaskPosition); |
106 positionList->append(*CSSPrimitiveValue::create(layer.backgroundXOrigin(
))); | 114 positionList->append(*CSSIdentifierValue::create(layer.backgroundXOrigin
())); |
107 } | 115 } |
108 positionList->append(*zoomAdjustedPixelValueForLength(layer.xPosition(), sty
le)); | 116 positionList->append(*zoomAdjustedPixelValueForLength(layer.xPosition(), sty
le)); |
109 if (layer.isBackgroundYOriginSet()) { | 117 if (layer.isBackgroundYOriginSet()) { |
110 ASSERT(propertyID == CSSPropertyBackgroundPosition || propertyID == CSSP
ropertyWebkitMaskPosition); | 118 ASSERT(propertyID == CSSPropertyBackgroundPosition || propertyID == CSSP
ropertyWebkitMaskPosition); |
111 positionList->append(*CSSPrimitiveValue::create(layer.backgroundYOrigin(
))); | 119 positionList->append(*CSSIdentifierValue::create(layer.backgroundYOrigin
())); |
112 } | 120 } |
113 positionList->append(*zoomAdjustedPixelValueForLength(layer.yPosition(), sty
le)); | 121 positionList->append(*zoomAdjustedPixelValueForLength(layer.yPosition(), sty
le)); |
114 return positionList; | 122 return positionList; |
115 } | 123 } |
116 | 124 |
117 CSSValue* ComputedStyleCSSValueMapping::currentColorOrValidColor(const ComputedS
tyle& style, const StyleColor& color) | 125 CSSValue* ComputedStyleCSSValueMapping::currentColorOrValidColor(const ComputedS
tyle& style, const StyleColor& color) |
118 { | 126 { |
119 // This function does NOT look at visited information, so that computed styl
e doesn't expose that. | 127 // This function does NOT look at visited information, so that computed styl
e doesn't expose that. |
120 return CSSColorValue::create(color.resolve(style.color()).rgb()); | 128 return CSSColorValue::create(color.resolve(style.color()).rgb()); |
121 } | 129 } |
122 | 130 |
123 static CSSValue* valueForFillSize(const FillSize& fillSize, const ComputedStyle&
style) | 131 static CSSValue* valueForFillSize(const FillSize& fillSize, const ComputedStyle&
style) |
124 { | 132 { |
125 if (fillSize.type == Contain) | 133 if (fillSize.type == Contain) |
126 return CSSPrimitiveValue::createIdentifier(CSSValueContain); | 134 return CSSIdentifierValue::createIdentifier(CSSValueContain); |
127 | 135 |
128 if (fillSize.type == Cover) | 136 if (fillSize.type == Cover) |
129 return CSSPrimitiveValue::createIdentifier(CSSValueCover); | 137 return CSSIdentifierValue::createIdentifier(CSSValueCover); |
130 | 138 |
131 if (fillSize.size.height().isAuto()) | 139 if (fillSize.size.height().isAuto()) |
132 return zoomAdjustedPixelValueForLength(fillSize.size.width(), style); | 140 return zoomAdjustedPixelValueForLength(fillSize.size.width(), style); |
133 | 141 |
134 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 142 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
135 list->append(*zoomAdjustedPixelValueForLength(fillSize.size.width(), style))
; | 143 list->append(*zoomAdjustedPixelValueForLength(fillSize.size.width(), style))
; |
136 list->append(*zoomAdjustedPixelValueForLength(fillSize.size.height(), style)
); | 144 list->append(*zoomAdjustedPixelValueForLength(fillSize.size.height(), style)
); |
137 return list; | 145 return list; |
138 } | 146 } |
139 | 147 |
140 static CSSValue* valueForFillRepeat(EFillRepeat xRepeat, EFillRepeat yRepeat) | 148 static CSSValue* valueForFillRepeat(EFillRepeat xRepeat, EFillRepeat yRepeat) |
141 { | 149 { |
142 // For backwards compatibility, if both values are equal, just return one of
them. And | 150 // For backwards compatibility, if both values are equal, just return one of
them. And |
143 // if the two values are equivalent to repeat-x or repeat-y, just return the
shorthand. | 151 // if the two values are equivalent to repeat-x or repeat-y, just return the
shorthand. |
144 if (xRepeat == yRepeat) | 152 if (xRepeat == yRepeat) |
145 return CSSPrimitiveValue::create(xRepeat); | 153 return CSSIdentifierValue::create(xRepeat); |
146 if (xRepeat == RepeatFill && yRepeat == NoRepeatFill) | 154 if (xRepeat == RepeatFill && yRepeat == NoRepeatFill) |
147 return CSSPrimitiveValue::createIdentifier(CSSValueRepeatX); | 155 return CSSIdentifierValue::createIdentifier(CSSValueRepeatX); |
148 if (xRepeat == NoRepeatFill && yRepeat == RepeatFill) | 156 if (xRepeat == NoRepeatFill && yRepeat == RepeatFill) |
149 return CSSPrimitiveValue::createIdentifier(CSSValueRepeatY); | 157 return CSSIdentifierValue::createIdentifier(CSSValueRepeatY); |
150 | 158 |
151 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 159 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
152 list->append(*CSSPrimitiveValue::create(xRepeat)); | 160 list->append(*CSSIdentifierValue::create(xRepeat)); |
153 list->append(*CSSPrimitiveValue::create(yRepeat)); | 161 list->append(*CSSIdentifierValue::create(yRepeat)); |
154 return list; | 162 return list; |
155 } | 163 } |
156 | 164 |
157 static CSSValue* valueForFillSourceType(EMaskSourceType type) | 165 static CSSValue* valueForFillSourceType(EMaskSourceType type) |
158 { | 166 { |
159 switch (type) { | 167 switch (type) { |
160 case MaskAlpha: | 168 case MaskAlpha: |
161 return CSSPrimitiveValue::createIdentifier(CSSValueAlpha); | 169 return CSSIdentifierValue::createIdentifier(CSSValueAlpha); |
162 case MaskLuminance: | 170 case MaskLuminance: |
163 return CSSPrimitiveValue::createIdentifier(CSSValueLuminance); | 171 return CSSIdentifierValue::createIdentifier(CSSValueLuminance); |
164 } | 172 } |
165 | 173 |
166 ASSERT_NOT_REACHED(); | 174 ASSERT_NOT_REACHED(); |
167 | 175 |
168 return nullptr; | 176 return nullptr; |
169 } | 177 } |
170 | 178 |
171 static CSSValue* valueForPositionOffset(const ComputedStyle& style, CSSPropertyI
D propertyID, const LayoutObject* layoutObject) | 179 static CSSValue* valueForPositionOffset(const ComputedStyle& style, CSSPropertyI
D propertyID, const LayoutObject* layoutObject) |
172 { | 180 { |
173 Length offset, opposite; | 181 Length offset, opposite; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 | 218 |
211 if (opposite.isPercentOrCalc() || opposite.isCalculated()) { | 219 if (opposite.isPercentOrCalc() || opposite.isCalculated()) { |
212 if (layoutObject->isBox()) { | 220 if (layoutObject->isBox()) { |
213 LayoutUnit containingBlockSize = | 221 LayoutUnit containingBlockSize = |
214 (propertyID == CSSPropertyLeft || propertyID == CSSPrope
rtyRight) ? | 222 (propertyID == CSSPropertyLeft || propertyID == CSSPrope
rtyRight) ? |
215 toLayoutBox(layoutObject)->containingBlockLogicalWidthFo
rContent() : | 223 toLayoutBox(layoutObject)->containingBlockLogicalWidthFo
rContent() : |
216 toLayoutBox(layoutObject)->containingBlockLogicalHeightF
orGetComputedStyle(); | 224 toLayoutBox(layoutObject)->containingBlockLogicalHeightF
orGetComputedStyle(); |
217 return zoomAdjustedPixelValue(-floatValueForLength(opposite,
containingBlockSize), style); | 225 return zoomAdjustedPixelValue(-floatValueForLength(opposite,
containingBlockSize), style); |
218 } | 226 } |
219 // FIXME: fall back to auto for position:relative, display:inli
ne | 227 // FIXME: fall back to auto for position:relative, display:inli
ne |
220 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 228 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
221 } | 229 } |
222 | 230 |
223 // Length doesn't provide operator -, so multiply by -1. | 231 // Length doesn't provide operator -, so multiply by -1. |
224 opposite *= -1.f; | 232 opposite *= -1.f; |
225 return zoomAdjustedPixelValueForLength(opposite, style); | 233 return zoomAdjustedPixelValueForLength(opposite, style); |
226 } | 234 } |
227 | 235 |
228 if (layoutObject->isOutOfFlowPositioned() && layoutObject->isBox()) { | 236 if (layoutObject->isOutOfFlowPositioned() && layoutObject->isBox()) { |
229 // For fixed and absolute positioned elements, the top, left, bottom
, and right | 237 // For fixed and absolute positioned elements, the top, left, bottom
, and right |
230 // are defined relative to the corresponding sides of the containing
block. | 238 // are defined relative to the corresponding sides of the containing
block. |
(...skipping 22 matching lines...) Expand all Loading... |
253 (layoutBox->offsetHeight() + clientOffset.height()); | 261 (layoutBox->offsetHeight() + clientOffset.height()); |
254 break; | 262 break; |
255 default: | 263 default: |
256 ASSERT_NOT_REACHED(); | 264 ASSERT_NOT_REACHED(); |
257 } | 265 } |
258 return zoomAdjustedPixelValue(position, style); | 266 return zoomAdjustedPixelValue(position, style); |
259 } | 267 } |
260 } | 268 } |
261 | 269 |
262 if (offset.isAuto()) | 270 if (offset.isAuto()) |
263 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 271 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
264 | 272 |
265 return zoomAdjustedPixelValueForLength(offset, style); | 273 return zoomAdjustedPixelValueForLength(offset, style); |
266 } | 274 } |
267 | 275 |
268 static CSSBorderImageSliceValue* valueForNinePieceImageSlice(const NinePieceImag
e& image) | 276 static CSSBorderImageSliceValue* valueForNinePieceImageSlice(const NinePieceImag
e& image) |
269 { | 277 { |
270 // Create the slices. | 278 // Create the slices. |
271 CSSPrimitiveValue* top = nullptr; | 279 CSSPrimitiveValue* top = nullptr; |
272 CSSPrimitiveValue* right = nullptr; | 280 CSSPrimitiveValue* right = nullptr; |
273 CSSPrimitiveValue* bottom = nullptr; | 281 CSSPrimitiveValue* bottom = nullptr; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 left = CSSPrimitiveValue::create(image.imageSlices().left().
value(), CSSPrimitiveValue::UnitType::Percentage); | 314 left = CSSPrimitiveValue::create(image.imageSlices().left().
value(), CSSPrimitiveValue::UnitType::Percentage); |
307 else | 315 else |
308 left = CSSPrimitiveValue::create(image.imageSlices().left().
value(), CSSPrimitiveValue::UnitType::Number); | 316 left = CSSPrimitiveValue::create(image.imageSlices().left().
value(), CSSPrimitiveValue::UnitType::Number); |
309 } | 317 } |
310 } | 318 } |
311 } | 319 } |
312 | 320 |
313 return CSSBorderImageSliceValue::create(CSSQuadValue::create(top, right, bot
tom, left, CSSQuadValue::SerializeAsQuad), image.fill()); | 321 return CSSBorderImageSliceValue::create(CSSQuadValue::create(top, right, bot
tom, left, CSSQuadValue::SerializeAsQuad), image.fill()); |
314 } | 322 } |
315 | 323 |
316 static CSSPrimitiveValue* valueForBorderImageLength(const BorderImageLength& bor
derImageLength, const ComputedStyle& style) | 324 static CSSValue* valueForBorderImageLength(const BorderImageLength& borderImageL
ength, const ComputedStyle& style) |
317 { | 325 { |
318 if (borderImageLength.isNumber()) | 326 if (borderImageLength.isNumber()) |
319 return CSSPrimitiveValue::create(borderImageLength.number(), CSSPrimitiv
eValue::UnitType::Number); | 327 return CSSPrimitiveValue::create(borderImageLength.number(), CSSPrimitiv
eValue::UnitType::Number); |
320 return CSSPrimitiveValue::create(borderImageLength.length(), style.effective
Zoom()); | 328 return CSSValue::create(borderImageLength.length(), style.effectiveZoom()); |
321 } | 329 } |
322 | 330 |
323 static CSSQuadValue* valueForNinePieceImageQuad(const BorderImageLengthBox& box,
const ComputedStyle& style) | 331 static CSSQuadValue* valueForNinePieceImageQuad(const BorderImageLengthBox& box,
const ComputedStyle& style) |
324 { | 332 { |
325 // Create the slices. | 333 // Create the slices. |
326 CSSPrimitiveValue* top = nullptr; | 334 CSSValue* top = nullptr; |
327 CSSPrimitiveValue* right = nullptr; | 335 CSSValue* right = nullptr; |
328 CSSPrimitiveValue* bottom = nullptr; | 336 CSSValue* bottom = nullptr; |
329 CSSPrimitiveValue* left = nullptr; | 337 CSSValue* left = nullptr; |
330 | 338 |
331 top = valueForBorderImageLength(box.top(), style); | 339 top = valueForBorderImageLength(box.top(), style); |
332 | 340 |
333 if (box.right() == box.top() && box.bottom() == box.top() && box.left() == b
ox.top()) { | 341 if (box.right() == box.top() && box.bottom() == box.top() && box.left() == b
ox.top()) { |
334 right = top; | 342 right = top; |
335 bottom = top; | 343 bottom = top; |
336 left = top; | 344 left = top; |
337 } else { | 345 } else { |
338 right = valueForBorderImageLength(box.right(), style); | 346 right = valueForBorderImageLength(box.right(), style); |
339 | 347 |
(...skipping 21 matching lines...) Expand all Loading... |
361 return CSSValueRound; | 369 return CSSValueRound; |
362 case SpaceImageRule: | 370 case SpaceImageRule: |
363 return CSSValueSpace; | 371 return CSSValueSpace; |
364 default: | 372 default: |
365 return CSSValueStretch; | 373 return CSSValueStretch; |
366 } | 374 } |
367 } | 375 } |
368 | 376 |
369 static CSSValue* valueForNinePieceImageRepeat(const NinePieceImage& image) | 377 static CSSValue* valueForNinePieceImageRepeat(const NinePieceImage& image) |
370 { | 378 { |
371 CSSPrimitiveValue* horizontalRepeat = nullptr; | 379 CSSIdentifierValue* horizontalRepeat = nullptr; |
372 CSSPrimitiveValue* verticalRepeat = nullptr; | 380 CSSIdentifierValue* verticalRepeat = nullptr; |
373 | 381 |
374 horizontalRepeat = CSSPrimitiveValue::createIdentifier(valueForRepeatRule(im
age.horizontalRule())); | 382 horizontalRepeat = CSSIdentifierValue::createIdentifier(valueForRepeatRule(i
mage.horizontalRule())); |
375 if (image.horizontalRule() == image.verticalRule()) | 383 if (image.horizontalRule() == image.verticalRule()) |
376 verticalRepeat = horizontalRepeat; | 384 verticalRepeat = horizontalRepeat; |
377 else | 385 else |
378 verticalRepeat = CSSPrimitiveValue::createIdentifier(valueForRepeatRule(
image.verticalRule())); | 386 verticalRepeat = CSSIdentifierValue::createIdentifier(valueForRepeatRule
(image.verticalRule())); |
379 return CSSValuePair::create(horizontalRepeat, verticalRepeat, CSSValuePair::
DropIdenticalValues); | 387 return CSSValuePair::create(horizontalRepeat, verticalRepeat, CSSValuePair::
DropIdenticalValues); |
380 } | 388 } |
381 | 389 |
382 static CSSValue* valueForNinePieceImage(const NinePieceImage& image, const Compu
tedStyle& style) | 390 static CSSValue* valueForNinePieceImage(const NinePieceImage& image, const Compu
tedStyle& style) |
383 { | 391 { |
384 if (!image.hasImage()) | 392 if (!image.hasImage()) |
385 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 393 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
386 | 394 |
387 // Image first. | 395 // Image first. |
388 CSSValue* imageValue = nullptr; | 396 CSSValue* imageValue = nullptr; |
389 if (image.image()) | 397 if (image.image()) |
390 imageValue = image.image()->computedCSSValue(); | 398 imageValue = image.image()->computedCSSValue(); |
391 | 399 |
392 // Create the image slice. | 400 // Create the image slice. |
393 CSSBorderImageSliceValue* imageSlices = valueForNinePieceImageSlice(image); | 401 CSSBorderImageSliceValue* imageSlices = valueForNinePieceImageSlice(image); |
394 | 402 |
395 // Create the border area slices. | 403 // Create the border area slices. |
396 CSSValue* borderSlices = valueForNinePieceImageQuad(image.borderSlices(), st
yle); | 404 CSSValue* borderSlices = valueForNinePieceImageQuad(image.borderSlices(), st
yle); |
397 | 405 |
398 // Create the border outset. | 406 // Create the border outset. |
399 CSSValue* outset = valueForNinePieceImageQuad(image.outset(), style); | 407 CSSValue* outset = valueForNinePieceImageQuad(image.outset(), style); |
400 | 408 |
401 // Create the repeat rules. | 409 // Create the repeat rules. |
402 CSSValue* repeat = valueForNinePieceImageRepeat(image); | 410 CSSValue* repeat = valueForNinePieceImageRepeat(image); |
403 | 411 |
404 return createBorderImageValue(imageValue, imageSlices, borderSlices, outset,
repeat); | 412 return createBorderImageValue(imageValue, imageSlices, borderSlices, outset,
repeat); |
405 } | 413 } |
406 | 414 |
407 static CSSValue* valueForReflection(const StyleReflection* reflection, const Com
putedStyle& style) | 415 static CSSValue* valueForReflection(const StyleReflection* reflection, const Com
putedStyle& style) |
408 { | 416 { |
409 if (!reflection) | 417 if (!reflection) |
410 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 418 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
411 | 419 |
412 CSSPrimitiveValue* offset = nullptr; | 420 CSSPrimitiveValue* offset = nullptr; |
413 // TODO(alancutter): Make this work correctly for calc lengths. | 421 // TODO(alancutter): Make this work correctly for calc lengths. |
414 if (reflection->offset().isPercentOrCalc()) | 422 if (reflection->offset().isPercentOrCalc()) |
415 offset = CSSPrimitiveValue::create(reflection->offset().percent(), CSSPr
imitiveValue::UnitType::Percentage); | 423 offset = CSSPrimitiveValue::create(reflection->offset().percent(), CSSPr
imitiveValue::UnitType::Percentage); |
416 else | 424 else |
417 offset = zoomAdjustedPixelValue(reflection->offset().value(), style); | 425 offset = zoomAdjustedPixelValue(reflection->offset().value(), style); |
418 | 426 |
419 CSSPrimitiveValue* direction = nullptr; | 427 CSSIdentifierValue* direction = nullptr; |
420 switch (reflection->direction()) { | 428 switch (reflection->direction()) { |
421 case ReflectionBelow: | 429 case ReflectionBelow: |
422 direction = CSSPrimitiveValue::createIdentifier(CSSValueBelow); | 430 direction = CSSIdentifierValue::createIdentifier(CSSValueBelow); |
423 break; | 431 break; |
424 case ReflectionAbove: | 432 case ReflectionAbove: |
425 direction = CSSPrimitiveValue::createIdentifier(CSSValueAbove); | 433 direction = CSSIdentifierValue::createIdentifier(CSSValueAbove); |
426 break; | 434 break; |
427 case ReflectionLeft: | 435 case ReflectionLeft: |
428 direction = CSSPrimitiveValue::createIdentifier(CSSValueLeft); | 436 direction = CSSIdentifierValue::createIdentifier(CSSValueLeft); |
429 break; | 437 break; |
430 case ReflectionRight: | 438 case ReflectionRight: |
431 direction = CSSPrimitiveValue::createIdentifier(CSSValueRight); | 439 direction = CSSIdentifierValue::createIdentifier(CSSValueRight); |
432 break; | 440 break; |
433 } | 441 } |
434 | 442 |
435 return CSSReflectValue::create(direction, offset, valueForNinePieceImage(ref
lection->mask(), style)); | 443 return CSSReflectValue::create(direction, offset, valueForNinePieceImage(ref
lection->mask(), style)); |
436 } | 444 } |
437 | 445 |
438 static CSSValueList* valueForItemPositionWithOverflowAlignment(const StyleSelfAl
ignmentData& data) | 446 static CSSValueList* valueForItemPositionWithOverflowAlignment(const StyleSelfAl
ignmentData& data) |
439 { | 447 { |
440 CSSValueList* result = CSSValueList::createSpaceSeparated(); | 448 CSSValueList* result = CSSValueList::createSpaceSeparated(); |
441 if (data.positionType() == LegacyPosition) | 449 if (data.positionType() == LegacyPosition) |
442 result->append(*CSSPrimitiveValue::createIdentifier(CSSValueLegacy)); | 450 result->append(*CSSIdentifierValue::createIdentifier(CSSValueLegacy)); |
443 // To avoid needing to copy the RareNonInheritedData, we repurpose the 'auto
' flag to not just mean 'auto' prior to running the StyleAdjuster but also mean
'normal' after running it. | 451 // To avoid needing to copy the RareNonInheritedData, we repurpose the 'auto
' flag to not just mean 'auto' prior to running the StyleAdjuster but also mean
'normal' after running it. |
444 result->append(*CSSPrimitiveValue::create(data.position() == ItemPositionAut
o ? ComputedStyle::initialDefaultAlignment().position() : data.position())); | 452 result->append(*CSSIdentifierValue::create(data.position() == ItemPositionAu
to ? ComputedStyle::initialDefaultAlignment().position() : data.position())); |
445 if (data.position() >= ItemPositionCenter && data.overflow() != OverflowAlig
nmentDefault) | 453 if (data.position() >= ItemPositionCenter && data.overflow() != OverflowAlig
nmentDefault) |
446 result->append(*CSSPrimitiveValue::create(data.overflow())); | 454 result->append(*CSSIdentifierValue::create(data.overflow())); |
447 ASSERT(result->length() <= 2); | 455 ASSERT(result->length() <= 2); |
448 return result; | 456 return result; |
449 } | 457 } |
450 | 458 |
451 static CSSValueList* valuesForGridShorthand(const StylePropertyShorthand& shorth
and, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledN
ode, bool allowVisitedStyle) | 459 static CSSValueList* valuesForGridShorthand(const StylePropertyShorthand& shorth
and, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledN
ode, bool allowVisitedStyle) |
452 { | 460 { |
453 CSSValueList* list = CSSValueList::createSlashSeparated(); | 461 CSSValueList* list = CSSValueList::createSlashSeparated(); |
454 for (size_t i = 0; i < shorthand.length(); ++i) { | 462 for (size_t i = 0; i < shorthand.length(); ++i) { |
455 const CSSValue* value = ComputedStyleCSSValueMapping::get(shorthand.prop
erties()[i], style, layoutObject, styledNode, allowVisitedStyle); | 463 const CSSValue* value = ComputedStyleCSSValueMapping::get(shorthand.prop
erties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
456 ASSERT(value); | 464 ASSERT(value); |
457 list->append(*value); | 465 list->append(*value); |
458 } | 466 } |
459 return list; | 467 return list; |
460 } | 468 } |
461 | 469 |
462 static CSSValueList* valuesForShorthandProperty(const StylePropertyShorthand& sh
orthand, const ComputedStyle& style, const LayoutObject* layoutObject, Node* sty
ledNode, bool allowVisitedStyle) | 470 static CSSValueList* valuesForShorthandProperty(const StylePropertyShorthand& sh
orthand, const ComputedStyle& style, const LayoutObject* layoutObject, Node* sty
ledNode, bool allowVisitedStyle) |
463 { | 471 { |
464 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 472 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
465 for (size_t i = 0; i < shorthand.length(); ++i) { | 473 for (size_t i = 0; i < shorthand.length(); ++i) { |
466 const CSSValue* value = ComputedStyleCSSValueMapping::get(shorthand.prop
erties()[i], style, layoutObject, styledNode, allowVisitedStyle); | 474 const CSSValue* value = ComputedStyleCSSValueMapping::get(shorthand.prop
erties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
467 ASSERT(value); | 475 ASSERT(value); |
468 list->append(*value); | 476 list->append(*value); |
469 } | 477 } |
470 return list; | 478 return list; |
471 } | 479 } |
472 | 480 |
473 static CSSValue* expandNoneLigaturesValue() | 481 static CSSValue* expandNoneLigaturesValue() |
474 { | 482 { |
475 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 483 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
476 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNoCommonLigatures)
); | 484 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNoCommonLigatures
)); |
477 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNoDiscretionaryLig
atures)); | 485 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNoDiscretionaryLi
gatures)); |
478 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNoHistoricalLigatu
res)); | 486 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNoHistoricalLigat
ures)); |
479 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNoContextual)); | 487 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNoContextual)); |
480 return list; | 488 return list; |
481 } | 489 } |
482 | 490 |
483 static CSSValue* valuesForFontVariantProperty(const ComputedStyle& style, const
LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) | 491 static CSSValue* valuesForFontVariantProperty(const ComputedStyle& style, const
LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) |
484 { | 492 { |
485 enum VariantShorthandCases { AllNormal, NoneLigatures, ConcatenateNonNormal
}; | 493 enum VariantShorthandCases { AllNormal, NoneLigatures, ConcatenateNonNormal
}; |
486 VariantShorthandCases shorthandCase = AllNormal; | 494 VariantShorthandCases shorthandCase = AllNormal; |
487 for (size_t i = 0; i < fontVariantShorthand().length(); ++i) { | 495 for (size_t i = 0; i < fontVariantShorthand().length(); ++i) { |
488 const CSSValue* value = ComputedStyleCSSValueMapping::get(fontVariantSho
rthand().properties()[i], style, layoutObject, styledNode, allowVisitedStyle); | 496 const CSSValue* value = ComputedStyleCSSValueMapping::get(fontVariantSho
rthand().properties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
489 | 497 |
490 if (shorthandCase == AllNormal | 498 if (shorthandCase == AllNormal |
491 && value->isPrimitiveValue() | 499 && value->isIdentifierValue() |
492 && toCSSPrimitiveValue(value)->getValueID() == CSSValueNone | 500 && toCSSIdentifierValue(value)->getValueID() == CSSValueNone |
493 && fontVariantShorthand().properties()[i] == CSSPropertyFontVariantL
igatures) { | 501 && fontVariantShorthand().properties()[i] == CSSPropertyFontVariantL
igatures) { |
494 shorthandCase = NoneLigatures; | 502 shorthandCase = NoneLigatures; |
495 } else if (!(value->isPrimitiveValue() && toCSSPrimitiveValue(value)->ge
tValueID() == CSSValueNormal)) { | 503 } else if (!(value->isIdentifierValue() && toCSSIdentifierValue(value)->
getValueID() == CSSValueNormal)) { |
496 shorthandCase = ConcatenateNonNormal; | 504 shorthandCase = ConcatenateNonNormal; |
497 break; | 505 break; |
498 } | 506 } |
499 } | 507 } |
500 | 508 |
501 switch (shorthandCase) { | 509 switch (shorthandCase) { |
502 case AllNormal: | 510 case AllNormal: |
503 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 511 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
504 case NoneLigatures: | 512 case NoneLigatures: |
505 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 513 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
506 case ConcatenateNonNormal: | 514 case ConcatenateNonNormal: |
507 { | 515 { |
508 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 516 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
509 for (size_t i = 0; i < fontVariantShorthand().length(); ++i) { | 517 for (size_t i = 0; i < fontVariantShorthand().length(); ++i) { |
510 const CSSValue* value = ComputedStyleCSSValueMapping::get(fontVarian
tShorthand().properties()[i], style, layoutObject, styledNode, allowVisitedStyle
); | 518 const CSSValue* value = ComputedStyleCSSValueMapping::get(fontVarian
tShorthand().properties()[i], style, layoutObject, styledNode, allowVisitedStyle
); |
511 ASSERT(value); | 519 ASSERT(value); |
512 if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValu
eID() == CSSValueNone) { | 520 if (value->isIdentifierValue() && toCSSIdentifierValue(value)->getVa
lueID() == CSSValueNone) { |
513 list->append(*expandNoneLigaturesValue()); | 521 list->append(*expandNoneLigaturesValue()); |
514 } else if (!(value->isPrimitiveValue() && toCSSPrimitiveValue(value)
->getValueID() == CSSValueNormal)) { | 522 } else if (!(value->isIdentifierValue() && toCSSIdentifierValue(valu
e)->getValueID() == CSSValueNormal)) { |
515 list->append(*value); | 523 list->append(*value); |
516 } | 524 } |
517 } | 525 } |
518 return list; | 526 return list; |
519 } | 527 } |
520 default: | 528 default: |
521 NOTREACHED(); | 529 NOTREACHED(); |
522 return nullptr; | 530 return nullptr; |
523 } | 531 } |
524 } | 532 } |
525 | 533 |
526 static CSSValueList* valuesForBackgroundShorthand(const ComputedStyle& style, co
nst LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) | 534 static CSSValueList* valuesForBackgroundShorthand(const ComputedStyle& style, co
nst LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) |
527 { | 535 { |
528 CSSValueList* ret = CSSValueList::createCommaSeparated(); | 536 CSSValueList* ret = CSSValueList::createCommaSeparated(); |
529 const FillLayer* currLayer = &style.backgroundLayers(); | 537 const FillLayer* currLayer = &style.backgroundLayers(); |
530 for (; currLayer; currLayer = currLayer->next()) { | 538 for (; currLayer; currLayer = currLayer->next()) { |
531 CSSValueList* list = CSSValueList::createSlashSeparated(); | 539 CSSValueList* list = CSSValueList::createSlashSeparated(); |
532 CSSValueList* beforeSlash = CSSValueList::createSpaceSeparated(); | 540 CSSValueList* beforeSlash = CSSValueList::createSpaceSeparated(); |
533 if (!currLayer->next()) { // color only for final layer | 541 if (!currLayer->next()) { // color only for final layer |
534 const CSSValue* value = ComputedStyleCSSValueMapping::get(CSSPropert
yBackgroundColor, style, layoutObject, styledNode, allowVisitedStyle); | 542 const CSSValue* value = ComputedStyleCSSValueMapping::get(CSSPropert
yBackgroundColor, style, layoutObject, styledNode, allowVisitedStyle); |
535 ASSERT(value); | 543 ASSERT(value); |
536 beforeSlash->append(*value); | 544 beforeSlash->append(*value); |
537 } | 545 } |
538 beforeSlash->append(currLayer->image() ? *currLayer->image()->computedCS
SValue() : *CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 546 beforeSlash->append(currLayer->image() ? *currLayer->image()->computedCS
SValue() : *CSSIdentifierValue::createIdentifier(CSSValueNone)); |
539 beforeSlash->append(*valueForFillRepeat(currLayer->repeatX(), currLayer-
>repeatY())); | 547 beforeSlash->append(*valueForFillRepeat(currLayer->repeatX(), currLayer-
>repeatY())); |
540 beforeSlash->append(*CSSPrimitiveValue::create(currLayer->attachment()))
; | 548 beforeSlash->append(*CSSIdentifierValue::create(currLayer->attachment())
); |
541 beforeSlash->append(*createPositionListForLayer(CSSPropertyBackgroundPos
ition, *currLayer, style)); | 549 beforeSlash->append(*createPositionListForLayer(CSSPropertyBackgroundPos
ition, *currLayer, style)); |
542 list->append(*beforeSlash); | 550 list->append(*beforeSlash); |
543 CSSValueList* afterSlash = CSSValueList::createSpaceSeparated(); | 551 CSSValueList* afterSlash = CSSValueList::createSpaceSeparated(); |
544 afterSlash->append(*valueForFillSize(currLayer->size(), style)); | 552 afterSlash->append(*valueForFillSize(currLayer->size(), style)); |
545 afterSlash->append(*CSSPrimitiveValue::create(currLayer->origin())); | 553 afterSlash->append(*CSSIdentifierValue::create(currLayer->origin())); |
546 afterSlash->append(*CSSPrimitiveValue::create(currLayer->clip())); | 554 afterSlash->append(*CSSIdentifierValue::create(currLayer->clip())); |
547 list->append(*afterSlash); | 555 list->append(*afterSlash); |
548 ret->append(*list); | 556 ret->append(*list); |
549 } | 557 } |
550 return ret; | 558 return ret; |
551 } | 559 } |
552 | 560 |
553 static CSSValueList* valueForContentPositionAndDistributionWithOverflowAlignment
(const StyleContentAlignmentData& data) | 561 static CSSValueList* valueForContentPositionAndDistributionWithOverflowAlignment
(const StyleContentAlignmentData& data) |
554 { | 562 { |
555 CSSValueList* result = CSSValueList::createSpaceSeparated(); | 563 CSSValueList* result = CSSValueList::createSpaceSeparated(); |
556 if (data.distribution() != ContentDistributionDefault) | 564 if (data.distribution() != ContentDistributionDefault) |
557 result->append(*CSSPrimitiveValue::create(data.distribution())); | 565 result->append(*CSSIdentifierValue::create(data.distribution())); |
558 if (data.distribution() == ContentDistributionDefault || data.position() !=
ContentPositionNormal) | 566 if (data.distribution() == ContentDistributionDefault || data.position() !=
ContentPositionNormal) |
559 result->append(*CSSPrimitiveValue::create(data.position())); | 567 result->append(*CSSIdentifierValue::create(data.position())); |
560 if ((data.position() >= ContentPositionCenter || data.distribution() != Cont
entDistributionDefault) && data.overflow() != OverflowAlignmentDefault) | 568 if ((data.position() >= ContentPositionCenter || data.distribution() != Cont
entDistributionDefault) && data.overflow() != OverflowAlignmentDefault) |
561 result->append(*CSSPrimitiveValue::create(data.overflow())); | 569 result->append(*CSSIdentifierValue::create(data.overflow())); |
562 ASSERT(result->length() > 0); | 570 ASSERT(result->length() > 0); |
563 ASSERT(result->length() <= 3); | 571 ASSERT(result->length() <= 3); |
564 return result; | 572 return result; |
565 } | 573 } |
566 | 574 |
567 static CSSPrimitiveValue* valueForLineHeight(const ComputedStyle& style) | 575 static CSSValue* valueForLineHeight(const ComputedStyle& style) |
568 { | 576 { |
569 Length length = style.lineHeight(); | 577 Length length = style.lineHeight(); |
570 if (length.isNegative()) | 578 if (length.isNegative()) |
571 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 579 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
572 | 580 |
573 return zoomAdjustedPixelValue(floatValueForLength(length, style.getFontDescr
iption().computedSize()), style); | 581 return zoomAdjustedPixelValue(floatValueForLength(length, style.getFontDescr
iption().computedSize()), style); |
574 } | 582 } |
575 | 583 |
576 static CSSValueID identifierForFamily(const AtomicString& family) | 584 static CSSValueID identifierForFamily(const AtomicString& family) |
577 { | 585 { |
578 if (family == FontFamilyNames::webkit_cursive) | 586 if (family == FontFamilyNames::webkit_cursive) |
579 return CSSValueCursive; | 587 return CSSValueCursive; |
580 if (family == FontFamilyNames::webkit_fantasy) | 588 if (family == FontFamilyNames::webkit_fantasy) |
581 return CSSValueFantasy; | 589 return CSSValueFantasy; |
582 if (family == FontFamilyNames::webkit_monospace) | 590 if (family == FontFamilyNames::webkit_monospace) |
583 return CSSValueMonospace; | 591 return CSSValueMonospace; |
584 if (family == FontFamilyNames::webkit_pictograph) | 592 if (family == FontFamilyNames::webkit_pictograph) |
585 return CSSValueWebkitPictograph; | 593 return CSSValueWebkitPictograph; |
586 if (family == FontFamilyNames::webkit_sans_serif) | 594 if (family == FontFamilyNames::webkit_sans_serif) |
587 return CSSValueSansSerif; | 595 return CSSValueSansSerif; |
588 if (family == FontFamilyNames::webkit_serif) | 596 if (family == FontFamilyNames::webkit_serif) |
589 return CSSValueSerif; | 597 return CSSValueSerif; |
590 return CSSValueInvalid; | 598 return CSSValueInvalid; |
591 } | 599 } |
592 | 600 |
593 static CSSValue* valueForFamily(const AtomicString& family) | 601 static CSSValue* valueForFamily(const AtomicString& family) |
594 { | 602 { |
595 if (CSSValueID familyIdentifier = identifierForFamily(family)) | 603 if (CSSValueID familyIdentifier = identifierForFamily(family)) |
596 return CSSPrimitiveValue::createIdentifier(familyIdentifier); | 604 return CSSIdentifierValue::createIdentifier(familyIdentifier); |
597 return CSSFontFamilyValue::create(family.getString()); | 605 return CSSFontFamilyValue::create(family.getString()); |
598 } | 606 } |
599 | 607 |
600 static CSSValueList* valueForFontFamily(const ComputedStyle& style) | 608 static CSSValueList* valueForFontFamily(const ComputedStyle& style) |
601 { | 609 { |
602 const FontFamily& firstFamily = style.getFontDescription().family(); | 610 const FontFamily& firstFamily = style.getFontDescription().family(); |
603 CSSValueList* list = CSSValueList::createCommaSeparated(); | 611 CSSValueList* list = CSSValueList::createCommaSeparated(); |
604 for (const FontFamily* family = &firstFamily; family; family = family->next(
)) | 612 for (const FontFamily* family = &firstFamily; family; family = family->next(
)) |
605 list->append(*valueForFamily(family->family())); | 613 list->append(*valueForFamily(family->family())); |
606 return list; | 614 return list; |
607 } | 615 } |
608 | 616 |
609 static CSSPrimitiveValue* valueForFontSize(const ComputedStyle& style) | 617 static CSSPrimitiveValue* valueForFontSize(const ComputedStyle& style) |
610 { | 618 { |
611 return zoomAdjustedPixelValue(style.getFontDescription().computedSize(), sty
le); | 619 return zoomAdjustedPixelValue(style.getFontDescription().computedSize(), sty
le); |
612 } | 620 } |
613 | 621 |
614 static CSSPrimitiveValue* valueForFontStretch(const ComputedStyle& style) | 622 static CSSIdentifierValue* valueForFontStretch(const ComputedStyle& style) |
615 { | 623 { |
616 return CSSPrimitiveValue::create(style.getFontDescription().stretch()); | 624 return CSSIdentifierValue::create(style.getFontDescription().stretch()); |
617 } | 625 } |
618 | 626 |
619 static CSSPrimitiveValue* valueForFontStyle(const ComputedStyle& style) | 627 static CSSIdentifierValue* valueForFontStyle(const ComputedStyle& style) |
620 { | 628 { |
621 return CSSPrimitiveValue::create(style.getFontDescription().style()); | 629 return CSSIdentifierValue::create(style.getFontDescription().style()); |
622 } | 630 } |
623 | 631 |
624 static CSSPrimitiveValue* valueForFontWeight(const ComputedStyle& style) | 632 static CSSIdentifierValue* valueForFontWeight(const ComputedStyle& style) |
625 { | 633 { |
626 return CSSPrimitiveValue::create(style.getFontDescription().weight()); | 634 return CSSIdentifierValue::create(style.getFontDescription().weight()); |
627 } | 635 } |
628 | 636 |
629 static CSSPrimitiveValue* valueForFontVariantCaps(const ComputedStyle& style) | 637 static CSSIdentifierValue* valueForFontVariantCaps(const ComputedStyle& style) |
630 { | 638 { |
631 FontDescription::FontVariantCaps variantCaps = style.getFontDescription().va
riantCaps(); | 639 FontDescription::FontVariantCaps variantCaps = style.getFontDescription().va
riantCaps(); |
632 switch (variantCaps) { | 640 switch (variantCaps) { |
633 case FontDescription::CapsNormal: | 641 case FontDescription::CapsNormal: |
634 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 642 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
635 case FontDescription::SmallCaps: | 643 case FontDescription::SmallCaps: |
636 return CSSPrimitiveValue::createIdentifier(CSSValueSmallCaps); | 644 return CSSIdentifierValue::createIdentifier(CSSValueSmallCaps); |
637 case FontDescription::AllSmallCaps: | 645 case FontDescription::AllSmallCaps: |
638 return CSSPrimitiveValue::createIdentifier(CSSValueAllSmallCaps); | 646 return CSSIdentifierValue::createIdentifier(CSSValueAllSmallCaps); |
639 case FontDescription::PetiteCaps: | 647 case FontDescription::PetiteCaps: |
640 return CSSPrimitiveValue::createIdentifier(CSSValuePetiteCaps); | 648 return CSSIdentifierValue::createIdentifier(CSSValuePetiteCaps); |
641 case FontDescription::AllPetiteCaps: | 649 case FontDescription::AllPetiteCaps: |
642 return CSSPrimitiveValue::createIdentifier(CSSValueAllPetiteCaps); | 650 return CSSIdentifierValue::createIdentifier(CSSValueAllPetiteCaps); |
643 case FontDescription::Unicase: | 651 case FontDescription::Unicase: |
644 return CSSPrimitiveValue::createIdentifier(CSSValueUnicase); | 652 return CSSIdentifierValue::createIdentifier(CSSValueUnicase); |
645 case FontDescription::TitlingCaps: | 653 case FontDescription::TitlingCaps: |
646 return CSSPrimitiveValue::createIdentifier(CSSValueTitlingCaps); | 654 return CSSIdentifierValue::createIdentifier(CSSValueTitlingCaps); |
647 default: | 655 default: |
648 NOTREACHED(); | 656 NOTREACHED(); |
649 return nullptr; | 657 return nullptr; |
650 } | 658 } |
651 } | 659 } |
652 | 660 |
653 static CSSValue* valueForFontVariantLigatures(const ComputedStyle& style) | 661 static CSSValue* valueForFontVariantLigatures(const ComputedStyle& style) |
654 { | 662 { |
655 FontDescription::LigaturesState commonLigaturesState = style.getFontDescript
ion().commonLigaturesState(); | 663 FontDescription::LigaturesState commonLigaturesState = style.getFontDescript
ion().commonLigaturesState(); |
656 FontDescription::LigaturesState discretionaryLigaturesState = style.getFontD
escription().discretionaryLigaturesState(); | 664 FontDescription::LigaturesState discretionaryLigaturesState = style.getFontD
escription().discretionaryLigaturesState(); |
657 FontDescription::LigaturesState historicalLigaturesState = style.getFontDesc
ription().historicalLigaturesState(); | 665 FontDescription::LigaturesState historicalLigaturesState = style.getFontDesc
ription().historicalLigaturesState(); |
658 FontDescription::LigaturesState contextualLigaturesState = style.getFontDesc
ription().contextualLigaturesState(); | 666 FontDescription::LigaturesState contextualLigaturesState = style.getFontDesc
ription().contextualLigaturesState(); |
659 if (commonLigaturesState == FontDescription::NormalLigaturesState && discret
ionaryLigaturesState == FontDescription::NormalLigaturesState | 667 if (commonLigaturesState == FontDescription::NormalLigaturesState && discret
ionaryLigaturesState == FontDescription::NormalLigaturesState |
660 && historicalLigaturesState == FontDescription::NormalLigaturesState &&
contextualLigaturesState == FontDescription::NormalLigaturesState) | 668 && historicalLigaturesState == FontDescription::NormalLigaturesState &&
contextualLigaturesState == FontDescription::NormalLigaturesState) |
661 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 669 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
662 | 670 |
663 if (commonLigaturesState == FontDescription::DisabledLigaturesState && discr
etionaryLigaturesState == FontDescription::DisabledLigaturesState | 671 if (commonLigaturesState == FontDescription::DisabledLigaturesState && discr
etionaryLigaturesState == FontDescription::DisabledLigaturesState |
664 && historicalLigaturesState == FontDescription::DisabledLigaturesState &
& contextualLigaturesState == FontDescription::DisabledLigaturesState) | 672 && historicalLigaturesState == FontDescription::DisabledLigaturesState &
& contextualLigaturesState == FontDescription::DisabledLigaturesState) |
665 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 673 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
666 | 674 |
667 CSSValueList* valueList = CSSValueList::createSpaceSeparated(); | 675 CSSValueList* valueList = CSSValueList::createSpaceSeparated(); |
668 if (commonLigaturesState != FontDescription::NormalLigaturesState) | 676 if (commonLigaturesState != FontDescription::NormalLigaturesState) |
669 valueList->append(*CSSPrimitiveValue::createIdentifier(commonLigaturesSt
ate == FontDescription::DisabledLigaturesState ? CSSValueNoCommonLigatures : CSS
ValueCommonLigatures)); | 677 valueList->append(*CSSIdentifierValue::createIdentifier(commonLigaturesS
tate == FontDescription::DisabledLigaturesState ? CSSValueNoCommonLigatures : CS
SValueCommonLigatures)); |
670 if (discretionaryLigaturesState != FontDescription::NormalLigaturesState) | 678 if (discretionaryLigaturesState != FontDescription::NormalLigaturesState) |
671 valueList->append(*CSSPrimitiveValue::createIdentifier(discretionaryLiga
turesState == FontDescription::DisabledLigaturesState ? CSSValueNoDiscretionaryL
igatures : CSSValueDiscretionaryLigatures)); | 679 valueList->append(*CSSIdentifierValue::createIdentifier(discretionaryLig
aturesState == FontDescription::DisabledLigaturesState ? CSSValueNoDiscretionary
Ligatures : CSSValueDiscretionaryLigatures)); |
672 if (historicalLigaturesState != FontDescription::NormalLigaturesState) | 680 if (historicalLigaturesState != FontDescription::NormalLigaturesState) |
673 valueList->append(*CSSPrimitiveValue::createIdentifier(historicalLigatur
esState == FontDescription::DisabledLigaturesState ? CSSValueNoHistoricalLigatur
es : CSSValueHistoricalLigatures)); | 681 valueList->append(*CSSIdentifierValue::createIdentifier(historicalLigatu
resState == FontDescription::DisabledLigaturesState ? CSSValueNoHistoricalLigatu
res : CSSValueHistoricalLigatures)); |
674 if (contextualLigaturesState != FontDescription::NormalLigaturesState) | 682 if (contextualLigaturesState != FontDescription::NormalLigaturesState) |
675 valueList->append(*CSSPrimitiveValue::createIdentifier(contextualLigatur
esState == FontDescription::DisabledLigaturesState ? CSSValueNoContextual : CSSV
alueContextual)); | 683 valueList->append(*CSSIdentifierValue::createIdentifier(contextualLigatu
resState == FontDescription::DisabledLigaturesState ? CSSValueNoContextual : CSS
ValueContextual)); |
676 return valueList; | 684 return valueList; |
677 } | 685 } |
678 | 686 |
679 static CSSValue* valueForFontVariantNumeric(const ComputedStyle& style) | 687 static CSSValue* valueForFontVariantNumeric(const ComputedStyle& style) |
680 { | 688 { |
681 FontVariantNumeric variantNumeric = style.getFontDescription().variantNumeri
c(); | 689 FontVariantNumeric variantNumeric = style.getFontDescription().variantNumeri
c(); |
682 if (variantNumeric.isAllNormal()) | 690 if (variantNumeric.isAllNormal()) |
683 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 691 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
684 | 692 |
685 CSSValueList* valueList = CSSValueList::createSpaceSeparated(); | 693 CSSValueList* valueList = CSSValueList::createSpaceSeparated(); |
686 if (variantNumeric.numericFigureValue() != FontVariantNumeric::NormalFigure) | 694 if (variantNumeric.numericFigureValue() != FontVariantNumeric::NormalFigure) |
687 valueList->append(*CSSPrimitiveValue::createIdentifier(variantNumeric.nu
mericFigureValue() == FontVariantNumeric::LiningNums ? CSSValueLiningNums : CSSV
alueOldstyleNums)); | 695 valueList->append(*CSSIdentifierValue::createIdentifier(variantNumeric.n
umericFigureValue() == FontVariantNumeric::LiningNums ? CSSValueLiningNums : CSS
ValueOldstyleNums)); |
688 if (variantNumeric.numericSpacingValue() != FontVariantNumeric::NormalSpacin
g) | 696 if (variantNumeric.numericSpacingValue() != FontVariantNumeric::NormalSpacin
g) |
689 valueList->append(*CSSPrimitiveValue::createIdentifier(variantNumeric.nu
mericSpacingValue() == FontVariantNumeric::ProportionalNums ? CSSValueProportion
alNums : CSSValueTabularNums)); | 697 valueList->append(*CSSIdentifierValue::createIdentifier(variantNumeric.n
umericSpacingValue() == FontVariantNumeric::ProportionalNums ? CSSValueProportio
nalNums : CSSValueTabularNums)); |
690 if (variantNumeric.numericFractionValue() != FontVariantNumeric::NormalFract
ion) | 698 if (variantNumeric.numericFractionValue() != FontVariantNumeric::NormalFract
ion) |
691 valueList->append(*CSSPrimitiveValue::createIdentifier(variantNumeric.nu
mericFractionValue() == FontVariantNumeric::DiagonalFractions ? CSSValueDiagonal
Fractions : CSSValueStackedFractions)); | 699 valueList->append(*CSSIdentifierValue::createIdentifier(variantNumeric.n
umericFractionValue() == FontVariantNumeric::DiagonalFractions ? CSSValueDiagona
lFractions : CSSValueStackedFractions)); |
692 if (variantNumeric.ordinalValue() == FontVariantNumeric::OrdinalOn) | 700 if (variantNumeric.ordinalValue() == FontVariantNumeric::OrdinalOn) |
693 valueList->append(*CSSPrimitiveValue::createIdentifier(CSSValueOrdinal))
; | 701 valueList->append(*CSSIdentifierValue::createIdentifier(CSSValueOrdinal)
); |
694 if (variantNumeric.slashedZeroValue() == FontVariantNumeric::SlashedZeroOn) | 702 if (variantNumeric.slashedZeroValue() == FontVariantNumeric::SlashedZeroOn) |
695 valueList->append(*CSSPrimitiveValue::createIdentifier(CSSValueSlashedZe
ro)); | 703 valueList->append(*CSSIdentifierValue::createIdentifier(CSSValueSlashedZ
ero)); |
696 | 704 |
697 return valueList; | 705 return valueList; |
698 } | 706 } |
699 | 707 |
700 | 708 |
701 static CSSValue* specifiedValueForGridTrackBreadth(const GridLength& trackBreadt
h, const ComputedStyle& style) | 709 static CSSValue* specifiedValueForGridTrackBreadth(const GridLength& trackBreadt
h, const ComputedStyle& style) |
702 { | 710 { |
703 if (!trackBreadth.isLength()) | 711 if (!trackBreadth.isLength()) |
704 return CSSPrimitiveValue::create(trackBreadth.flex(), CSSPrimitiveValue:
:UnitType::Fraction); | 712 return CSSPrimitiveValue::create(trackBreadth.flex(), CSSPrimitiveValue:
:UnitType::Fraction); |
705 | 713 |
706 const Length& trackBreadthLength = trackBreadth.length(); | 714 const Length& trackBreadthLength = trackBreadth.length(); |
707 if (trackBreadthLength.isAuto()) | 715 if (trackBreadthLength.isAuto()) |
708 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 716 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
709 return zoomAdjustedPixelValueForLength(trackBreadthLength, style); | 717 return zoomAdjustedPixelValueForLength(trackBreadthLength, style); |
710 } | 718 } |
711 | 719 |
712 static CSSValue* specifiedValueForGridTrackSize(const GridTrackSize& trackSize,
const ComputedStyle& style) | 720 static CSSValue* specifiedValueForGridTrackSize(const GridTrackSize& trackSize,
const ComputedStyle& style) |
713 { | 721 { |
714 switch (trackSize.type()) { | 722 switch (trackSize.type()) { |
715 case LengthTrackSizing: | 723 case LengthTrackSizing: |
716 return specifiedValueForGridTrackBreadth(trackSize.minTrackBreadth(), st
yle); | 724 return specifiedValueForGridTrackBreadth(trackSize.minTrackBreadth(), st
yle); |
717 case MinMaxTrackSizing: { | 725 case MinMaxTrackSizing: { |
718 auto* minMaxTrackBreadths = CSSFunctionValue::create(CSSValueMinmax); | 726 auto* minMaxTrackBreadths = CSSFunctionValue::create(CSSValueMinmax); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 // Handle the 'none' case. | 840 // Handle the 'none' case. |
833 bool trackListIsEmpty = trackSizes.isEmpty() && autoRepeatTrackSizes.isEmpty
(); | 841 bool trackListIsEmpty = trackSizes.isEmpty() && autoRepeatTrackSizes.isEmpty
(); |
834 if (isLayoutGrid && trackListIsEmpty) { | 842 if (isLayoutGrid && trackListIsEmpty) { |
835 // For grids we should consider every listed track, whether implicitly o
r explicitly | 843 // For grids we should consider every listed track, whether implicitly o
r explicitly |
836 // created. Empty grids have a sole grid line per axis. | 844 // created. Empty grids have a sole grid line per axis. |
837 auto& positions = isRowAxis ? toLayoutGrid(layoutObject)->columnPosition
s() : toLayoutGrid(layoutObject)->rowPositions(); | 845 auto& positions = isRowAxis ? toLayoutGrid(layoutObject)->columnPosition
s() : toLayoutGrid(layoutObject)->rowPositions(); |
838 trackListIsEmpty = positions.size() == 1; | 846 trackListIsEmpty = positions.size() == 1; |
839 } | 847 } |
840 | 848 |
841 if (trackListIsEmpty) | 849 if (trackListIsEmpty) |
842 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 850 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
843 | 851 |
844 size_t autoRepeatTotalTracks = isLayoutGrid ? toLayoutGrid(layoutObject)->au
toRepeatCountForDirection(direction) : 0; | 852 size_t autoRepeatTotalTracks = isLayoutGrid ? toLayoutGrid(layoutObject)->au
toRepeatCountForDirection(direction) : 0; |
845 OrderedNamedLinesCollector collector(style, isRowAxis, autoRepeatTotalTracks
); | 853 OrderedNamedLinesCollector collector(style, isRowAxis, autoRepeatTotalTracks
); |
846 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 854 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
847 size_t insertionIndex; | 855 size_t insertionIndex; |
848 if (isLayoutGrid) { | 856 if (isLayoutGrid) { |
849 const auto* grid = toLayoutGrid(layoutObject); | 857 const auto* grid = toLayoutGrid(layoutObject); |
850 Vector<LayoutUnit> computedTrackSizes = grid->trackSizesForComputedStyle
(direction); | 858 Vector<LayoutUnit> computedTrackSizes = grid->trackSizesForComputedStyle
(direction); |
851 size_t numTracks = computedTrackSizes.size(); | 859 size_t numTracks = computedTrackSizes.size(); |
852 | 860 |
(...skipping 12 matching lines...) Expand all Loading... |
865 insertionIndex = trackSizes.size(); | 873 insertionIndex = trackSizes.size(); |
866 } | 874 } |
867 // Those are the trailing <string>* allowed in the syntax. | 875 // Those are the trailing <string>* allowed in the syntax. |
868 addValuesForNamedGridLinesAtIndex(collector, insertionIndex, *list); | 876 addValuesForNamedGridLinesAtIndex(collector, insertionIndex, *list); |
869 return list; | 877 return list; |
870 } | 878 } |
871 | 879 |
872 static CSSValue* valueForGridPosition(const GridPosition& position) | 880 static CSSValue* valueForGridPosition(const GridPosition& position) |
873 { | 881 { |
874 if (position.isAuto()) | 882 if (position.isAuto()) |
875 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 883 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
876 | 884 |
877 if (position.isNamedGridArea()) | 885 if (position.isNamedGridArea()) |
878 return CSSCustomIdentValue::create(position.namedGridLine()); | 886 return CSSCustomIdentValue::create(position.namedGridLine()); |
879 | 887 |
880 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 888 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
881 if (position.isSpan()) { | 889 if (position.isSpan()) { |
882 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueSpan)); | 890 list->append(*CSSIdentifierValue::createIdentifier(CSSValueSpan)); |
883 list->append(*CSSPrimitiveValue::create(position.spanPosition(), CSSPrim
itiveValue::UnitType::Number)); | 891 list->append(*CSSPrimitiveValue::create(position.spanPosition(), CSSPrim
itiveValue::UnitType::Number)); |
884 } else { | 892 } else { |
885 list->append(*CSSPrimitiveValue::create(position.integerPosition(), CSSP
rimitiveValue::UnitType::Number)); | 893 list->append(*CSSPrimitiveValue::create(position.integerPosition(), CSSP
rimitiveValue::UnitType::Number)); |
886 } | 894 } |
887 | 895 |
888 if (!position.namedGridLine().isNull()) | 896 if (!position.namedGridLine().isNull()) |
889 list->append(*CSSCustomIdentValue::create(position.namedGridLine())); | 897 list->append(*CSSCustomIdentValue::create(position.namedGridLine())); |
890 return list; | 898 return list; |
891 } | 899 } |
892 | 900 |
893 static LayoutRect sizingBox(const LayoutObject* layoutObject) | 901 static LayoutRect sizingBox(const LayoutObject* layoutObject) |
894 { | 902 { |
895 if (!layoutObject->isBox()) | 903 if (!layoutObject->isBox()) |
896 return LayoutRect(); | 904 return LayoutRect(); |
897 | 905 |
898 const LayoutBox* box = toLayoutBox(layoutObject); | 906 const LayoutBox* box = toLayoutBox(layoutObject); |
899 return box->style()->boxSizing() == BoxSizingBorderBox ? box->borderBoxRect(
) : box->computedCSSContentBoxRect(); | 907 return box->style()->boxSizing() == BoxSizingBorderBox ? box->borderBoxRect(
) : box->computedCSSContentBoxRect(); |
900 } | 908 } |
901 | 909 |
902 static CSSValue* renderTextDecorationFlagsToCSSValue(int textDecoration) | 910 static CSSValue* renderTextDecorationFlagsToCSSValue(int textDecoration) |
903 { | 911 { |
904 // Blink value is ignored. | 912 // Blink value is ignored. |
905 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 913 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
906 if (textDecoration & TextDecorationUnderline) | 914 if (textDecoration & TextDecorationUnderline) |
907 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueUnderline)); | 915 list->append(*CSSIdentifierValue::createIdentifier(CSSValueUnderline)); |
908 if (textDecoration & TextDecorationOverline) | 916 if (textDecoration & TextDecorationOverline) |
909 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueOverline)); | 917 list->append(*CSSIdentifierValue::createIdentifier(CSSValueOverline)); |
910 if (textDecoration & TextDecorationLineThrough) | 918 if (textDecoration & TextDecorationLineThrough) |
911 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueLineThrough)); | 919 list->append(*CSSIdentifierValue::createIdentifier(CSSValueLineThrough))
; |
912 | 920 |
913 if (!list->length()) | 921 if (!list->length()) |
914 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 922 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
915 return list; | 923 return list; |
916 } | 924 } |
917 | 925 |
918 static CSSValue* valueForTextDecorationStyle(TextDecorationStyle textDecorationS
tyle) | 926 static CSSValue* valueForTextDecorationStyle(TextDecorationStyle textDecorationS
tyle) |
919 { | 927 { |
920 switch (textDecorationStyle) { | 928 switch (textDecorationStyle) { |
921 case TextDecorationStyleSolid: | 929 case TextDecorationStyleSolid: |
922 return CSSPrimitiveValue::createIdentifier(CSSValueSolid); | 930 return CSSIdentifierValue::createIdentifier(CSSValueSolid); |
923 case TextDecorationStyleDouble: | 931 case TextDecorationStyleDouble: |
924 return CSSPrimitiveValue::createIdentifier(CSSValueDouble); | 932 return CSSIdentifierValue::createIdentifier(CSSValueDouble); |
925 case TextDecorationStyleDotted: | 933 case TextDecorationStyleDotted: |
926 return CSSPrimitiveValue::createIdentifier(CSSValueDotted); | 934 return CSSIdentifierValue::createIdentifier(CSSValueDotted); |
927 case TextDecorationStyleDashed: | 935 case TextDecorationStyleDashed: |
928 return CSSPrimitiveValue::createIdentifier(CSSValueDashed); | 936 return CSSIdentifierValue::createIdentifier(CSSValueDashed); |
929 case TextDecorationStyleWavy: | 937 case TextDecorationStyleWavy: |
930 return CSSPrimitiveValue::createIdentifier(CSSValueWavy); | 938 return CSSIdentifierValue::createIdentifier(CSSValueWavy); |
931 } | 939 } |
932 | 940 |
933 ASSERT_NOT_REACHED(); | 941 ASSERT_NOT_REACHED(); |
934 return CSSInitialValue::create(); | 942 return CSSInitialValue::create(); |
935 } | 943 } |
936 | 944 |
937 static CSSValue* touchActionFlagsToCSSValue(TouchAction touchAction) | 945 static CSSValue* touchActionFlagsToCSSValue(TouchAction touchAction) |
938 { | 946 { |
939 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 947 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
940 if (touchAction == TouchActionAuto) { | 948 if (touchAction == TouchActionAuto) { |
941 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueAuto)); | 949 list->append(*CSSIdentifierValue::createIdentifier(CSSValueAuto)); |
942 } else if (touchAction == TouchActionNone) { | 950 } else if (touchAction == TouchActionNone) { |
943 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 951 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)); |
944 } else if (touchAction == TouchActionManipulation) { | 952 } else if (touchAction == TouchActionManipulation) { |
945 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueManipulation))
; | 953 list->append(*CSSIdentifierValue::createIdentifier(CSSValueManipulation)
); |
946 } else { | 954 } else { |
947 if ((touchAction & TouchActionPanX) == TouchActionPanX) | 955 if ((touchAction & TouchActionPanX) == TouchActionPanX) |
948 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanX)); | 956 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanX)); |
949 else if (touchAction & TouchActionPanLeft) | 957 else if (touchAction & TouchActionPanLeft) |
950 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanLeft)); | 958 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanLeft))
; |
951 else if (touchAction & TouchActionPanRight) | 959 else if (touchAction & TouchActionPanRight) |
952 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanRight))
; | 960 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanRight)
); |
953 | 961 |
954 if ((touchAction & TouchActionPanY) == TouchActionPanY) | 962 if ((touchAction & TouchActionPanY) == TouchActionPanY) |
955 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanY)); | 963 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanY)); |
956 else if (touchAction & TouchActionPanUp) | 964 else if (touchAction & TouchActionPanUp) |
957 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanUp)); | 965 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanUp)); |
958 else if (touchAction & TouchActionPanDown) | 966 else if (touchAction & TouchActionPanDown) |
959 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePanDown)); | 967 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePanDown))
; |
960 } | 968 } |
961 ASSERT(list->length()); | 969 ASSERT(list->length()); |
962 return list; | 970 return list; |
963 } | 971 } |
964 | 972 |
965 static CSSValue* valueForWillChange(const Vector<CSSPropertyID>& willChangePrope
rties, bool willChangeContents, bool willChangeScrollPosition) | 973 static CSSValue* valueForWillChange(const Vector<CSSPropertyID>& willChangePrope
rties, bool willChangeContents, bool willChangeScrollPosition) |
966 { | 974 { |
967 CSSValueList* list = CSSValueList::createCommaSeparated(); | 975 CSSValueList* list = CSSValueList::createCommaSeparated(); |
968 if (willChangeContents) | 976 if (willChangeContents) |
969 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueContents)); | 977 list->append(*CSSIdentifierValue::createIdentifier(CSSValueContents)); |
970 if (willChangeScrollPosition) | 978 if (willChangeScrollPosition) |
971 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueScrollPosition
)); | 979 list->append(*CSSIdentifierValue::createIdentifier(CSSValueScrollPositio
n)); |
972 for (size_t i = 0; i < willChangeProperties.size(); ++i) | 980 for (size_t i = 0; i < willChangeProperties.size(); ++i) |
973 list->append(*CSSCustomIdentValue::create(willChangeProperties[i])); | 981 list->append(*CSSCustomIdentValue::create(willChangeProperties[i])); |
974 if (!list->length()) | 982 if (!list->length()) |
975 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueAuto)); | 983 list->append(*CSSIdentifierValue::createIdentifier(CSSValueAuto)); |
976 return list; | 984 return list; |
977 } | 985 } |
978 | 986 |
979 static CSSValue* valueForAnimationDelay(const CSSTimingData* timingData) | 987 static CSSValue* valueForAnimationDelay(const CSSTimingData* timingData) |
980 { | 988 { |
981 CSSValueList* list = CSSValueList::createCommaSeparated(); | 989 CSSValueList* list = CSSValueList::createCommaSeparated(); |
982 if (timingData) { | 990 if (timingData) { |
983 for (size_t i = 0; i < timingData->delayList().size(); ++i) | 991 for (size_t i = 0; i < timingData->delayList().size(); ++i) |
984 list->append(*CSSPrimitiveValue::create(timingData->delayList()[i],
CSSPrimitiveValue::UnitType::Seconds)); | 992 list->append(*CSSPrimitiveValue::create(timingData->delayList()[i],
CSSPrimitiveValue::UnitType::Seconds)); |
985 } else { | 993 } else { |
986 list->append(*CSSPrimitiveValue::create(CSSTimingData::initialDelay(), C
SSPrimitiveValue::UnitType::Seconds)); | 994 list->append(*CSSPrimitiveValue::create(CSSTimingData::initialDelay(), C
SSPrimitiveValue::UnitType::Seconds)); |
987 } | 995 } |
988 return list; | 996 return list; |
989 } | 997 } |
990 | 998 |
991 static CSSValue* valueForAnimationDirection(Timing::PlaybackDirection direction) | 999 static CSSValue* valueForAnimationDirection(Timing::PlaybackDirection direction) |
992 { | 1000 { |
993 switch (direction) { | 1001 switch (direction) { |
994 case Timing::PlaybackDirection::NORMAL: | 1002 case Timing::PlaybackDirection::NORMAL: |
995 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 1003 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
996 case Timing::PlaybackDirection::ALTERNATE_NORMAL: | 1004 case Timing::PlaybackDirection::ALTERNATE_NORMAL: |
997 return CSSPrimitiveValue::createIdentifier(CSSValueAlternate); | 1005 return CSSIdentifierValue::createIdentifier(CSSValueAlternate); |
998 case Timing::PlaybackDirection::REVERSE: | 1006 case Timing::PlaybackDirection::REVERSE: |
999 return CSSPrimitiveValue::createIdentifier(CSSValueReverse); | 1007 return CSSIdentifierValue::createIdentifier(CSSValueReverse); |
1000 case Timing::PlaybackDirection::ALTERNATE_REVERSE: | 1008 case Timing::PlaybackDirection::ALTERNATE_REVERSE: |
1001 return CSSPrimitiveValue::createIdentifier(CSSValueAlternateReverse); | 1009 return CSSIdentifierValue::createIdentifier(CSSValueAlternateReverse); |
1002 default: | 1010 default: |
1003 ASSERT_NOT_REACHED(); | 1011 ASSERT_NOT_REACHED(); |
1004 return nullptr; | 1012 return nullptr; |
1005 } | 1013 } |
1006 } | 1014 } |
1007 | 1015 |
1008 static CSSValue* valueForAnimationDuration(const CSSTimingData* timingData) | 1016 static CSSValue* valueForAnimationDuration(const CSSTimingData* timingData) |
1009 { | 1017 { |
1010 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1018 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1011 if (timingData) { | 1019 if (timingData) { |
1012 for (size_t i = 0; i < timingData->durationList().size(); ++i) | 1020 for (size_t i = 0; i < timingData->durationList().size(); ++i) |
1013 list->append(*CSSPrimitiveValue::create(timingData->durationList()[i
], CSSPrimitiveValue::UnitType::Seconds)); | 1021 list->append(*CSSPrimitiveValue::create(timingData->durationList()[i
], CSSPrimitiveValue::UnitType::Seconds)); |
1014 } else { | 1022 } else { |
1015 list->append(*CSSPrimitiveValue::create(CSSTimingData::initialDuration()
, CSSPrimitiveValue::UnitType::Seconds)); | 1023 list->append(*CSSPrimitiveValue::create(CSSTimingData::initialDuration()
, CSSPrimitiveValue::UnitType::Seconds)); |
1016 } | 1024 } |
1017 return list; | 1025 return list; |
1018 } | 1026 } |
1019 | 1027 |
1020 static CSSValue* valueForAnimationFillMode(Timing::FillMode fillMode) | 1028 static CSSValue* valueForAnimationFillMode(Timing::FillMode fillMode) |
1021 { | 1029 { |
1022 switch (fillMode) { | 1030 switch (fillMode) { |
1023 case Timing::FillMode::NONE: | 1031 case Timing::FillMode::NONE: |
1024 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1032 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1025 case Timing::FillMode::FORWARDS: | 1033 case Timing::FillMode::FORWARDS: |
1026 return CSSPrimitiveValue::createIdentifier(CSSValueForwards); | 1034 return CSSIdentifierValue::createIdentifier(CSSValueForwards); |
1027 case Timing::FillMode::BACKWARDS: | 1035 case Timing::FillMode::BACKWARDS: |
1028 return CSSPrimitiveValue::createIdentifier(CSSValueBackwards); | 1036 return CSSIdentifierValue::createIdentifier(CSSValueBackwards); |
1029 case Timing::FillMode::BOTH: | 1037 case Timing::FillMode::BOTH: |
1030 return CSSPrimitiveValue::createIdentifier(CSSValueBoth); | 1038 return CSSIdentifierValue::createIdentifier(CSSValueBoth); |
1031 default: | 1039 default: |
1032 ASSERT_NOT_REACHED(); | 1040 ASSERT_NOT_REACHED(); |
1033 return nullptr; | 1041 return nullptr; |
1034 } | 1042 } |
1035 } | 1043 } |
1036 | 1044 |
1037 static CSSValue* valueForAnimationIterationCount(double iterationCount) | 1045 static CSSValue* valueForAnimationIterationCount(double iterationCount) |
1038 { | 1046 { |
1039 if (iterationCount == std::numeric_limits<double>::infinity()) | 1047 if (iterationCount == std::numeric_limits<double>::infinity()) |
1040 return CSSPrimitiveValue::createIdentifier(CSSValueInfinite); | 1048 return CSSIdentifierValue::createIdentifier(CSSValueInfinite); |
1041 return CSSPrimitiveValue::create(iterationCount, CSSPrimitiveValue::UnitType
::Number); | 1049 return CSSPrimitiveValue::create(iterationCount, CSSPrimitiveValue::UnitType
::Number); |
1042 } | 1050 } |
1043 | 1051 |
1044 static CSSValue* valueForAnimationPlayState(EAnimPlayState playState) | 1052 static CSSValue* valueForAnimationPlayState(EAnimPlayState playState) |
1045 { | 1053 { |
1046 if (playState == AnimPlayStatePlaying) | 1054 if (playState == AnimPlayStatePlaying) |
1047 return CSSPrimitiveValue::createIdentifier(CSSValueRunning); | 1055 return CSSIdentifierValue::createIdentifier(CSSValueRunning); |
1048 ASSERT(playState == AnimPlayStatePaused); | 1056 ASSERT(playState == AnimPlayStatePaused); |
1049 return CSSPrimitiveValue::createIdentifier(CSSValuePaused); | 1057 return CSSIdentifierValue::createIdentifier(CSSValuePaused); |
1050 } | 1058 } |
1051 | 1059 |
1052 static CSSValue* createTimingFunctionValue(const TimingFunction* timingFunction) | 1060 static CSSValue* createTimingFunctionValue(const TimingFunction* timingFunction) |
1053 { | 1061 { |
1054 switch (timingFunction->getType()) { | 1062 switch (timingFunction->getType()) { |
1055 case TimingFunction::Type::CUBIC_BEZIER: | 1063 case TimingFunction::Type::CUBIC_BEZIER: |
1056 { | 1064 { |
1057 const CubicBezierTimingFunction* bezierTimingFunction = toCubicBezie
rTimingFunction(timingFunction); | 1065 const CubicBezierTimingFunction* bezierTimingFunction = toCubicBezie
rTimingFunction(timingFunction); |
1058 if (bezierTimingFunction->getEaseType() != CubicBezierTimingFunction
::EaseType::CUSTOM) { | 1066 if (bezierTimingFunction->getEaseType() != CubicBezierTimingFunction
::EaseType::CUSTOM) { |
1059 CSSValueID valueId = CSSValueInvalid; | 1067 CSSValueID valueId = CSSValueInvalid; |
1060 switch (bezierTimingFunction->getEaseType()) { | 1068 switch (bezierTimingFunction->getEaseType()) { |
1061 case CubicBezierTimingFunction::EaseType::EASE: | 1069 case CubicBezierTimingFunction::EaseType::EASE: |
1062 valueId = CSSValueEase; | 1070 valueId = CSSValueEase; |
1063 break; | 1071 break; |
1064 case CubicBezierTimingFunction::EaseType::EASE_IN: | 1072 case CubicBezierTimingFunction::EaseType::EASE_IN: |
1065 valueId = CSSValueEaseIn; | 1073 valueId = CSSValueEaseIn; |
1066 break; | 1074 break; |
1067 case CubicBezierTimingFunction::EaseType::EASE_OUT: | 1075 case CubicBezierTimingFunction::EaseType::EASE_OUT: |
1068 valueId = CSSValueEaseOut; | 1076 valueId = CSSValueEaseOut; |
1069 break; | 1077 break; |
1070 case CubicBezierTimingFunction::EaseType::EASE_IN_OUT: | 1078 case CubicBezierTimingFunction::EaseType::EASE_IN_OUT: |
1071 valueId = CSSValueEaseInOut; | 1079 valueId = CSSValueEaseInOut; |
1072 break; | 1080 break; |
1073 default: | 1081 default: |
1074 ASSERT_NOT_REACHED(); | 1082 ASSERT_NOT_REACHED(); |
1075 return nullptr; | 1083 return nullptr; |
1076 } | 1084 } |
1077 return CSSPrimitiveValue::createIdentifier(valueId); | 1085 return CSSIdentifierValue::createIdentifier(valueId); |
1078 } | 1086 } |
1079 return CSSCubicBezierTimingFunctionValue::create(bezierTimingFunctio
n->x1(), bezierTimingFunction->y1(), bezierTimingFunction->x2(), bezierTimingFun
ction->y2()); | 1087 return CSSCubicBezierTimingFunctionValue::create(bezierTimingFunctio
n->x1(), bezierTimingFunction->y1(), bezierTimingFunction->x2(), bezierTimingFun
ction->y2()); |
1080 } | 1088 } |
1081 | 1089 |
1082 case TimingFunction::Type::STEPS: | 1090 case TimingFunction::Type::STEPS: |
1083 { | 1091 { |
1084 const StepsTimingFunction* stepsTimingFunction = toStepsTimingFuncti
on(timingFunction); | 1092 const StepsTimingFunction* stepsTimingFunction = toStepsTimingFuncti
on(timingFunction); |
1085 StepsTimingFunction::StepPosition position = stepsTimingFunction->ge
tStepPosition(); | 1093 StepsTimingFunction::StepPosition position = stepsTimingFunction->ge
tStepPosition(); |
1086 int steps = stepsTimingFunction->numberOfSteps(); | 1094 int steps = stepsTimingFunction->numberOfSteps(); |
1087 DCHECK(position == StepsTimingFunction::StepPosition::START || posit
ion == StepsTimingFunction::StepPosition::END); | 1095 DCHECK(position == StepsTimingFunction::StepPosition::START || posit
ion == StepsTimingFunction::StepPosition::END); |
1088 | 1096 |
1089 if (steps > 1) | 1097 if (steps > 1) |
1090 return CSSStepsTimingFunctionValue::create(steps, position); | 1098 return CSSStepsTimingFunctionValue::create(steps, position); |
1091 CSSValueID valueId = position == StepsTimingFunction::StepPosition::
START ? CSSValueStepStart : CSSValueStepEnd; | 1099 CSSValueID valueId = position == StepsTimingFunction::StepPosition::
START ? CSSValueStepStart : CSSValueStepEnd; |
1092 return CSSPrimitiveValue::createIdentifier(valueId); | 1100 return CSSIdentifierValue::createIdentifier(valueId); |
1093 } | 1101 } |
1094 | 1102 |
1095 default: | 1103 default: |
1096 return CSSPrimitiveValue::createIdentifier(CSSValueLinear); | 1104 return CSSIdentifierValue::createIdentifier(CSSValueLinear); |
1097 } | 1105 } |
1098 } | 1106 } |
1099 | 1107 |
1100 static CSSValue* valueForAnimationTimingFunction(const CSSTimingData* timingData
) | 1108 static CSSValue* valueForAnimationTimingFunction(const CSSTimingData* timingData
) |
1101 { | 1109 { |
1102 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1110 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1103 if (timingData) { | 1111 if (timingData) { |
1104 for (size_t i = 0; i < timingData->timingFunctionList().size(); ++i) | 1112 for (size_t i = 0; i < timingData->timingFunctionList().size(); ++i) |
1105 list->append(*createTimingFunctionValue(timingData->timingFunctionLi
st()[i].get())); | 1113 list->append(*createTimingFunctionValue(timingData->timingFunctionLi
st()[i].get())); |
1106 } else { | 1114 } else { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1166 transformValue->append(*zoomAdjustedNumberValue(transform.m43(), style))
; | 1174 transformValue->append(*zoomAdjustedNumberValue(transform.m43(), style))
; |
1167 transformValue->append(*CSSPrimitiveValue::create(transform.m44(), CSSPr
imitiveValue::UnitType::Number)); | 1175 transformValue->append(*CSSPrimitiveValue::create(transform.m44(), CSSPr
imitiveValue::UnitType::Number)); |
1168 } | 1176 } |
1169 | 1177 |
1170 return transformValue; | 1178 return transformValue; |
1171 } | 1179 } |
1172 | 1180 |
1173 static CSSValue* computedTransform(const LayoutObject* layoutObject, const Compu
tedStyle& style) | 1181 static CSSValue* computedTransform(const LayoutObject* layoutObject, const Compu
tedStyle& style) |
1174 { | 1182 { |
1175 if (!layoutObject || !style.hasTransform()) | 1183 if (!layoutObject || !style.hasTransform()) |
1176 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1184 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1177 | 1185 |
1178 IntRect box; | 1186 IntRect box; |
1179 if (layoutObject->isBox()) | 1187 if (layoutObject->isBox()) |
1180 box = pixelSnappedIntRect(toLayoutBox(layoutObject)->borderBoxRect()); | 1188 box = pixelSnappedIntRect(toLayoutBox(layoutObject)->borderBoxRect()); |
1181 | 1189 |
1182 TransformationMatrix transform; | 1190 TransformationMatrix transform; |
1183 style.applyTransform(transform, LayoutSize(box.size()), ComputedStyle::Exclu
deTransformOrigin, ComputedStyle::ExcludeMotionPath, ComputedStyle::ExcludeIndep
endentTransformProperties); | 1191 style.applyTransform(transform, LayoutSize(box.size()), ComputedStyle::Exclu
deTransformOrigin, ComputedStyle::ExcludeMotionPath, ComputedStyle::ExcludeIndep
endentTransformProperties); |
1184 | 1192 |
1185 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) | 1193 // FIXME: Need to print out individual functions (https://bugs.webkit.org/sh
ow_bug.cgi?id=23924) |
1186 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1194 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1187 list->append(*valueForMatrixTransform(transform, style)); | 1195 list->append(*valueForMatrixTransform(transform, style)); |
1188 | 1196 |
1189 return list; | 1197 return list; |
1190 } | 1198 } |
1191 | 1199 |
1192 static CSSValue* createTransitionPropertyValue(const CSSTransitionData::Transiti
onProperty& property) | 1200 static CSSValue* createTransitionPropertyValue(const CSSTransitionData::Transiti
onProperty& property) |
1193 { | 1201 { |
1194 if (property.propertyType == CSSTransitionData::TransitionNone) | 1202 if (property.propertyType == CSSTransitionData::TransitionNone) |
1195 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1203 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1196 if (property.propertyType == CSSTransitionData::TransitionUnknownProperty) | 1204 if (property.propertyType == CSSTransitionData::TransitionUnknownProperty) |
1197 return CSSCustomIdentValue::create(property.propertyString); | 1205 return CSSCustomIdentValue::create(property.propertyString); |
1198 ASSERT(property.propertyType == CSSTransitionData::TransitionKnownProperty); | 1206 ASSERT(property.propertyType == CSSTransitionData::TransitionKnownProperty); |
1199 return CSSCustomIdentValue::create(getPropertyNameAtomicString(property.unre
solvedProperty)); | 1207 return CSSCustomIdentValue::create(getPropertyNameAtomicString(property.unre
solvedProperty)); |
1200 } | 1208 } |
1201 | 1209 |
1202 static CSSValue* valueForTransitionProperty(const CSSTransitionData* transitionD
ata) | 1210 static CSSValue* valueForTransitionProperty(const CSSTransitionData* transitionD
ata) |
1203 { | 1211 { |
1204 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1212 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1205 if (transitionData) { | 1213 if (transitionData) { |
1206 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) | 1214 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) |
1207 list->append(*createTransitionPropertyValue(transitionData->property
List()[i])); | 1215 list->append(*createTransitionPropertyValue(transitionData->property
List()[i])); |
1208 } else { | 1216 } else { |
1209 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueAll)); | 1217 list->append(*CSSIdentifierValue::createIdentifier(CSSValueAll)); |
1210 } | 1218 } |
1211 return list; | 1219 return list; |
1212 } | 1220 } |
1213 | 1221 |
1214 CSSValueID valueForQuoteType(const QuoteType quoteType) | 1222 CSSValueID valueForQuoteType(const QuoteType quoteType) |
1215 { | 1223 { |
1216 switch (quoteType) { | 1224 switch (quoteType) { |
1217 case NO_OPEN_QUOTE: | 1225 case NO_OPEN_QUOTE: |
1218 return CSSValueNoOpenQuote; | 1226 return CSSValueNoOpenQuote; |
1219 case NO_CLOSE_QUOTE: | 1227 case NO_CLOSE_QUOTE: |
(...skipping 12 matching lines...) Expand all Loading... |
1232 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1240 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1233 for (const ContentData* contentData = style.contentData(); contentData; cont
entData = contentData->next()) { | 1241 for (const ContentData* contentData = style.contentData(); contentData; cont
entData = contentData->next()) { |
1234 if (contentData->isCounter()) { | 1242 if (contentData->isCounter()) { |
1235 const CounterContent* counter = toCounterContentData(contentData)->c
ounter(); | 1243 const CounterContent* counter = toCounterContentData(contentData)->c
ounter(); |
1236 ASSERT(counter); | 1244 ASSERT(counter); |
1237 CSSCustomIdentValue* identifier = CSSCustomIdentValue::create(counte
r->identifier()); | 1245 CSSCustomIdentValue* identifier = CSSCustomIdentValue::create(counte
r->identifier()); |
1238 CSSStringValue* separator = CSSStringValue::create(counter->separato
r()); | 1246 CSSStringValue* separator = CSSStringValue::create(counter->separato
r()); |
1239 CSSValueID listStyleIdent = CSSValueNone; | 1247 CSSValueID listStyleIdent = CSSValueNone; |
1240 if (counter->listStyle() != NoneListStyle) | 1248 if (counter->listStyle() != NoneListStyle) |
1241 listStyleIdent = static_cast<CSSValueID>(CSSValueDisc + counter-
>listStyle()); | 1249 listStyleIdent = static_cast<CSSValueID>(CSSValueDisc + counter-
>listStyle()); |
1242 CSSPrimitiveValue* listStyle = CSSPrimitiveValue::createIdentifier(l
istStyleIdent); | 1250 CSSIdentifierValue* listStyle = CSSIdentifierValue::createIdentifier
(listStyleIdent); |
1243 list->append(*CSSCounterValue::create(identifier, listStyle, separat
or)); | 1251 list->append(*CSSCounterValue::create(identifier, listStyle, separat
or)); |
1244 } else if (contentData->isImage()) { | 1252 } else if (contentData->isImage()) { |
1245 const StyleImage* image = toImageContentData(contentData)->image(); | 1253 const StyleImage* image = toImageContentData(contentData)->image(); |
1246 ASSERT(image); | 1254 ASSERT(image); |
1247 list->append(*image->computedCSSValue()); | 1255 list->append(*image->computedCSSValue()); |
1248 } else if (contentData->isText()) { | 1256 } else if (contentData->isText()) { |
1249 list->append(*CSSStringValue::create(toTextContentData(contentData)-
>text())); | 1257 list->append(*CSSStringValue::create(toTextContentData(contentData)-
>text())); |
1250 } else if (contentData->isQuote()) { | 1258 } else if (contentData->isQuote()) { |
1251 const QuoteType quoteType = toQuoteContentData(contentData)->quote()
; | 1259 const QuoteType quoteType = toQuoteContentData(contentData)->quote()
; |
1252 list->append(*CSSPrimitiveValue::createIdentifier(valueForQuoteType(
quoteType))); | 1260 list->append(*CSSIdentifierValue::createIdentifier(valueForQuoteType
(quoteType))); |
1253 } else { | 1261 } else { |
1254 ASSERT_NOT_REACHED(); | 1262 ASSERT_NOT_REACHED(); |
1255 } | 1263 } |
1256 } | 1264 } |
1257 return list; | 1265 return list; |
1258 } | 1266 } |
1259 | 1267 |
1260 static CSSValue* valueForCounterDirectives(const ComputedStyle& style, CSSProper
tyID propertyID) | 1268 static CSSValue* valueForCounterDirectives(const ComputedStyle& style, CSSProper
tyID propertyID) |
1261 { | 1269 { |
1262 const CounterDirectiveMap* map = style.counterDirectives(); | 1270 const CounterDirectiveMap* map = style.counterDirectives(); |
1263 if (!map) | 1271 if (!map) |
1264 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1272 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1265 | 1273 |
1266 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1274 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1267 for (const auto& item : *map) { | 1275 for (const auto& item : *map) { |
1268 bool isValidCounterValue = propertyID == CSSPropertyCounterIncrement ? i
tem.value.isIncrement() : item.value.isReset(); | 1276 bool isValidCounterValue = propertyID == CSSPropertyCounterIncrement ? i
tem.value.isIncrement() : item.value.isReset(); |
1269 if (!isValidCounterValue) | 1277 if (!isValidCounterValue) |
1270 continue; | 1278 continue; |
1271 | 1279 |
1272 list->append(*CSSCustomIdentValue::create(item.key)); | 1280 list->append(*CSSCustomIdentValue::create(item.key)); |
1273 short number = propertyID == CSSPropertyCounterIncrement ? item.value.in
crementValue() : item.value.resetValue(); | 1281 short number = propertyID == CSSPropertyCounterIncrement ? item.value.in
crementValue() : item.value.resetValue(); |
1274 list->append(*CSSPrimitiveValue::create((double)number, CSSPrimitiveValu
e::UnitType::Integer)); | 1282 list->append(*CSSPrimitiveValue::create((double)number, CSSPrimitiveValu
e::UnitType::Integer)); |
1275 } | 1283 } |
1276 | 1284 |
1277 if (!list->length()) | 1285 if (!list->length()) |
1278 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1286 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1279 | 1287 |
1280 return list; | 1288 return list; |
1281 } | 1289 } |
1282 | 1290 |
1283 static CSSValue* valueForShape(const ComputedStyle& style, ShapeValue* shapeValu
e) | 1291 static CSSValue* valueForShape(const ComputedStyle& style, ShapeValue* shapeValu
e) |
1284 { | 1292 { |
1285 if (!shapeValue) | 1293 if (!shapeValue) |
1286 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1294 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1287 if (shapeValue->type() == ShapeValue::Box) | 1295 if (shapeValue->type() == ShapeValue::Box) |
1288 return CSSPrimitiveValue::create(shapeValue->cssBox()); | 1296 return CSSIdentifierValue::create(shapeValue->cssBox()); |
1289 if (shapeValue->type() == ShapeValue::Image) { | 1297 if (shapeValue->type() == ShapeValue::Image) { |
1290 if (shapeValue->image()) | 1298 if (shapeValue->image()) |
1291 return shapeValue->image()->computedCSSValue(); | 1299 return shapeValue->image()->computedCSSValue(); |
1292 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1300 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1293 } | 1301 } |
1294 | 1302 |
1295 ASSERT(shapeValue->type() == ShapeValue::Shape); | 1303 ASSERT(shapeValue->type() == ShapeValue::Shape); |
1296 | 1304 |
1297 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1305 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1298 list->append(*valueForBasicShape(style, shapeValue->shape())); | 1306 list->append(*valueForBasicShape(style, shapeValue->shape())); |
1299 if (shapeValue->cssBox() != BoxMissing) | 1307 if (shapeValue->cssBox() != BoxMissing) |
1300 list->append(*CSSPrimitiveValue::create(shapeValue->cssBox())); | 1308 list->append(*CSSIdentifierValue::create(shapeValue->cssBox())); |
1301 return list; | 1309 return list; |
1302 } | 1310 } |
1303 | 1311 |
1304 static CSSValueList* valuesForSidesShorthand(const StylePropertyShorthand& short
hand, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styled
Node, bool allowVisitedStyle) | 1312 static CSSValueList* valuesForSidesShorthand(const StylePropertyShorthand& short
hand, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styled
Node, bool allowVisitedStyle) |
1305 { | 1313 { |
1306 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1314 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1307 // Assume the properties are in the usual order top, right, bottom, left. | 1315 // Assume the properties are in the usual order top, right, bottom, left. |
1308 const CSSValue* topValue = ComputedStyleCSSValueMapping::get(shorthand.prope
rties()[0], style, layoutObject, styledNode, allowVisitedStyle); | 1316 const CSSValue* topValue = ComputedStyleCSSValueMapping::get(shorthand.prope
rties()[0], style, layoutObject, styledNode, allowVisitedStyle); |
1309 const CSSValue* rightValue = ComputedStyleCSSValueMapping::get(shorthand.pro
perties()[1], style, layoutObject, styledNode, allowVisitedStyle); | 1317 const CSSValue* rightValue = ComputedStyleCSSValueMapping::get(shorthand.pro
perties()[1], style, layoutObject, styledNode, allowVisitedStyle); |
1310 const CSSValue* bottomValue = ComputedStyleCSSValueMapping::get(shorthand.pr
operties()[2], style, layoutObject, styledNode, allowVisitedStyle); | 1318 const CSSValue* bottomValue = ComputedStyleCSSValueMapping::get(shorthand.pr
operties()[2], style, layoutObject, styledNode, allowVisitedStyle); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1368 | 1376 |
1369 if (!verticalRadii->equals(toCSSValueList(list->item(0)))) | 1377 if (!verticalRadii->equals(toCSSValueList(list->item(0)))) |
1370 list->append(*verticalRadii); | 1378 list->append(*verticalRadii); |
1371 | 1379 |
1372 return list; | 1380 return list; |
1373 } | 1381 } |
1374 | 1382 |
1375 static CSSValue* strokeDashArrayToCSSValueList(const SVGDashArray& dashes, const
ComputedStyle& style) | 1383 static CSSValue* strokeDashArrayToCSSValueList(const SVGDashArray& dashes, const
ComputedStyle& style) |
1376 { | 1384 { |
1377 if (dashes.isEmpty()) | 1385 if (dashes.isEmpty()) |
1378 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1386 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1379 | 1387 |
1380 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1388 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1381 for (const Length& dashLength : dashes.vector()) | 1389 for (const Length& dashLength : dashes.vector()) |
1382 list->append(*zoomAdjustedPixelValueForLength(dashLength, style)); | 1390 list->append(*zoomAdjustedPixelValueForLength(dashLength, style)); |
1383 | 1391 |
1384 return list; | 1392 return list; |
1385 } | 1393 } |
1386 | 1394 |
1387 static CSSValue* paintOrderToCSSValueList(const SVGComputedStyle& svgStyle) | 1395 static CSSValue* paintOrderToCSSValueList(const SVGComputedStyle& svgStyle) |
1388 { | 1396 { |
1389 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1397 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1390 for (int i = 0; i < 3; i++) { | 1398 for (int i = 0; i < 3; i++) { |
1391 EPaintOrderType paintOrderType = svgStyle.paintOrderType(i); | 1399 EPaintOrderType paintOrderType = svgStyle.paintOrderType(i); |
1392 switch (paintOrderType) { | 1400 switch (paintOrderType) { |
1393 case PT_FILL: | 1401 case PT_FILL: |
1394 case PT_STROKE: | 1402 case PT_STROKE: |
1395 case PT_MARKERS: | 1403 case PT_MARKERS: |
1396 list->append(*CSSPrimitiveValue::create(paintOrderType)); | 1404 list->append(*CSSIdentifierValue::create(paintOrderType)); |
1397 break; | 1405 break; |
1398 case PT_NONE: | 1406 case PT_NONE: |
1399 default: | 1407 default: |
1400 ASSERT_NOT_REACHED(); | 1408 ASSERT_NOT_REACHED(); |
1401 break; | 1409 break; |
1402 } | 1410 } |
1403 } | 1411 } |
1404 | 1412 |
1405 return list; | 1413 return list; |
1406 } | 1414 } |
1407 | 1415 |
1408 static CSSValue* adjustSVGPaintForCurrentColor(SVGPaintType paintType, const Str
ing& url, const Color& color, const Color& currentColor) | 1416 static CSSValue* adjustSVGPaintForCurrentColor(SVGPaintType paintType, const Str
ing& url, const Color& color, const Color& currentColor) |
1409 { | 1417 { |
1410 if (paintType >= SVG_PAINTTYPE_URI_NONE) { | 1418 if (paintType >= SVG_PAINTTYPE_URI_NONE) { |
1411 CSSValueList* values = CSSValueList::createSpaceSeparated(); | 1419 CSSValueList* values = CSSValueList::createSpaceSeparated(); |
1412 values->append(*CSSURIValue::create(url)); | 1420 values->append(*CSSURIValue::create(url)); |
1413 if (paintType == SVG_PAINTTYPE_URI_NONE) | 1421 if (paintType == SVG_PAINTTYPE_URI_NONE) |
1414 values->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 1422 values->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)); |
1415 else if (paintType == SVG_PAINTTYPE_URI_CURRENTCOLOR) | 1423 else if (paintType == SVG_PAINTTYPE_URI_CURRENTCOLOR) |
1416 values->append(*CSSColorValue::create(currentColor.rgb())); | 1424 values->append(*CSSColorValue::create(currentColor.rgb())); |
1417 else if (paintType == SVG_PAINTTYPE_URI_RGBCOLOR) | 1425 else if (paintType == SVG_PAINTTYPE_URI_RGBCOLOR) |
1418 values->append(*CSSColorValue::create(color.rgb())); | 1426 values->append(*CSSColorValue::create(color.rgb())); |
1419 return values; | 1427 return values; |
1420 } | 1428 } |
1421 if (paintType == SVG_PAINTTYPE_NONE) | 1429 if (paintType == SVG_PAINTTYPE_NONE) |
1422 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1430 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1423 if (paintType == SVG_PAINTTYPE_CURRENTCOLOR) | 1431 if (paintType == SVG_PAINTTYPE_CURRENTCOLOR) |
1424 return CSSColorValue::create(currentColor.rgb()); | 1432 return CSSColorValue::create(currentColor.rgb()); |
1425 | 1433 |
1426 return CSSColorValue::create(color.rgb()); | 1434 return CSSColorValue::create(color.rgb()); |
1427 } | 1435 } |
1428 | 1436 |
1429 static inline String serializeAsFragmentIdentifier(const AtomicString& resource) | 1437 static inline String serializeAsFragmentIdentifier(const AtomicString& resource) |
1430 { | 1438 { |
1431 return "#" + resource; | 1439 return "#" + resource; |
1432 } | 1440 } |
1433 | 1441 |
1434 CSSValue* ComputedStyleCSSValueMapping::valueForShadowData(const ShadowData& sha
dow, const ComputedStyle& style, bool useSpread) | 1442 CSSValue* ComputedStyleCSSValueMapping::valueForShadowData(const ShadowData& sha
dow, const ComputedStyle& style, bool useSpread) |
1435 { | 1443 { |
1436 CSSPrimitiveValue* x = zoomAdjustedPixelValue(shadow.x(), style); | 1444 CSSPrimitiveValue* x = zoomAdjustedPixelValue(shadow.x(), style); |
1437 CSSPrimitiveValue* y = zoomAdjustedPixelValue(shadow.y(), style); | 1445 CSSPrimitiveValue* y = zoomAdjustedPixelValue(shadow.y(), style); |
1438 CSSPrimitiveValue* blur = zoomAdjustedPixelValue(shadow.blur(), style); | 1446 CSSPrimitiveValue* blur = zoomAdjustedPixelValue(shadow.blur(), style); |
1439 CSSPrimitiveValue* spread = useSpread ? zoomAdjustedPixelValue(shadow.spread
(), style) : nullptr; | 1447 CSSPrimitiveValue* spread = useSpread ? zoomAdjustedPixelValue(shadow.spread
(), style) : nullptr; |
1440 CSSPrimitiveValue* shadowStyle = shadow.style() == Normal ? nullptr : CSSPri
mitiveValue::createIdentifier(CSSValueInset); | 1448 CSSIdentifierValue* shadowStyle = shadow.style() == Normal ? nullptr : CSSId
entifierValue::createIdentifier(CSSValueInset); |
1441 CSSValue* color = currentColorOrValidColor(style, shadow.color()); | 1449 CSSValue* color = currentColorOrValidColor(style, shadow.color()); |
1442 return CSSShadowValue::create(x, y, blur, spread, shadowStyle, color); | 1450 return CSSShadowValue::create(x, y, blur, spread, shadowStyle, color); |
1443 } | 1451 } |
1444 | 1452 |
1445 CSSValue* ComputedStyleCSSValueMapping::valueForShadowList(const ShadowList* sha
dowList, const ComputedStyle& style, bool useSpread) | 1453 CSSValue* ComputedStyleCSSValueMapping::valueForShadowList(const ShadowList* sha
dowList, const ComputedStyle& style, bool useSpread) |
1446 { | 1454 { |
1447 if (!shadowList) | 1455 if (!shadowList) |
1448 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1456 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1449 | 1457 |
1450 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1458 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1451 size_t shadowCount = shadowList->shadows().size(); | 1459 size_t shadowCount = shadowList->shadows().size(); |
1452 for (size_t i = 0; i < shadowCount; ++i) | 1460 for (size_t i = 0; i < shadowCount; ++i) |
1453 list->append(*valueForShadowData(shadowList->shadows()[i], style, useSpr
ead)); | 1461 list->append(*valueForShadowData(shadowList->shadows()[i], style, useSpr
ead)); |
1454 return list; | 1462 return list; |
1455 } | 1463 } |
1456 | 1464 |
1457 CSSValue* ComputedStyleCSSValueMapping::valueForFilter(const ComputedStyle& styl
e, const FilterOperations& filterOperations) | 1465 CSSValue* ComputedStyleCSSValueMapping::valueForFilter(const ComputedStyle& styl
e, const FilterOperations& filterOperations) |
1458 { | 1466 { |
1459 if (filterOperations.operations().isEmpty()) | 1467 if (filterOperations.operations().isEmpty()) |
1460 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1468 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1461 | 1469 |
1462 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1470 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1463 | 1471 |
1464 CSSFunctionValue* filterValue = nullptr; | 1472 CSSFunctionValue* filterValue = nullptr; |
1465 | 1473 |
1466 for (const auto& operation : filterOperations.operations()) { | 1474 for (const auto& operation : filterOperations.operations()) { |
1467 FilterOperation* filterOperation = operation.get(); | 1475 FilterOperation* filterOperation = operation.get(); |
1468 switch (filterOperation->type()) { | 1476 switch (filterOperation->type()) { |
1469 case FilterOperation::REFERENCE: | 1477 case FilterOperation::REFERENCE: |
1470 filterValue = CSSFunctionValue::create(CSSValueUrl); | 1478 filterValue = CSSFunctionValue::create(CSSValueUrl); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1530 CSSValueList* sizeAndLineHeight = CSSValueList::createSlashSeparated(); | 1538 CSSValueList* sizeAndLineHeight = CSSValueList::createSlashSeparated(); |
1531 sizeAndLineHeight->append(*valueForFontSize(style)); | 1539 sizeAndLineHeight->append(*valueForFontSize(style)); |
1532 sizeAndLineHeight->append(*valueForLineHeight(style)); | 1540 sizeAndLineHeight->append(*valueForLineHeight(style)); |
1533 | 1541 |
1534 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1542 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1535 list->append(*valueForFontStyle(style)); | 1543 list->append(*valueForFontStyle(style)); |
1536 | 1544 |
1537 // Check that non-initial font-variant subproperties are not conflicting wit
h this serialization. | 1545 // Check that non-initial font-variant subproperties are not conflicting wit
h this serialization. |
1538 CSSValue* ligaturesValue = valueForFontVariantLigatures(style); | 1546 CSSValue* ligaturesValue = valueForFontVariantLigatures(style); |
1539 CSSValue* numericValue = valueForFontVariantNumeric(style); | 1547 CSSValue* numericValue = valueForFontVariantNumeric(style); |
1540 if (!ligaturesValue->equals(*CSSPrimitiveValue::createIdentifier(CSSValueNor
mal)) | 1548 if (!ligaturesValue->equals(*CSSIdentifierValue::createIdentifier(CSSValueNo
rmal)) |
1541 || !numericValue->equals(*CSSPrimitiveValue::createIdentifier(CSSValueNo
rmal))) | 1549 || !numericValue->equals(*CSSIdentifierValue::createIdentifier(CSSValueN
ormal))) |
1542 return nullptr; | 1550 return nullptr; |
1543 | 1551 |
1544 CSSPrimitiveValue* capsValue = valueForFontVariantCaps(style); | 1552 CSSIdentifierValue* capsValue = valueForFontVariantCaps(style); |
1545 if (!capsValue->equals(*CSSPrimitiveValue::createIdentifier(CSSValueNormal)) | 1553 if (capsValue->getValueID() != CSSValueNormal |
1546 && !capsValue->equals(*CSSPrimitiveValue::createIdentifier(CSSValueSmall
Caps))) | 1554 && capsValue->getValueID() != CSSValueSmallCaps) |
1547 return nullptr; | 1555 return nullptr; |
1548 list->append(*capsValue); | 1556 list->append(*capsValue); |
1549 | 1557 |
1550 list->append(*valueForFontWeight(style)); | 1558 list->append(*valueForFontWeight(style)); |
1551 list->append(*valueForFontStretch(style)); | 1559 list->append(*valueForFontStretch(style)); |
1552 list->append(*sizeAndLineHeight); | 1560 list->append(*sizeAndLineHeight); |
1553 list->append(*valueForFontFamily(style)); | 1561 list->append(*valueForFontFamily(style)); |
1554 | 1562 |
1555 return list; | 1563 return list; |
1556 } | 1564 } |
1557 | 1565 |
1558 static CSSValue* valueForScrollSnapDestination(const LengthPoint& destination, c
onst ComputedStyle& style) | 1566 static CSSValue* valueForScrollSnapDestination(const LengthPoint& destination, c
onst ComputedStyle& style) |
1559 { | 1567 { |
1560 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1568 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1561 list->append(*zoomAdjustedPixelValueForLength(destination.x(), style)); | 1569 list->append(*zoomAdjustedPixelValueForLength(destination.x(), style)); |
1562 list->append(*zoomAdjustedPixelValueForLength(destination.y(), style)); | 1570 list->append(*zoomAdjustedPixelValueForLength(destination.y(), style)); |
1563 return list; | 1571 return list; |
1564 } | 1572 } |
1565 | 1573 |
1566 static CSSValue* valueForScrollSnapPoints(const ScrollSnapPoints& points, const
ComputedStyle& style) | 1574 static CSSValue* valueForScrollSnapPoints(const ScrollSnapPoints& points, const
ComputedStyle& style) |
1567 { | 1575 { |
1568 if (points.hasRepeat) { | 1576 if (points.hasRepeat) { |
1569 CSSFunctionValue* repeat = CSSFunctionValue::create(CSSValueRepeat); | 1577 CSSFunctionValue* repeat = CSSFunctionValue::create(CSSValueRepeat); |
1570 repeat->append(*zoomAdjustedPixelValueForLength(points.repeatOffset, sty
le)); | 1578 repeat->append(*zoomAdjustedPixelValueForLength(points.repeatOffset, sty
le)); |
1571 return repeat; | 1579 return repeat; |
1572 } | 1580 } |
1573 | 1581 |
1574 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1582 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1575 } | 1583 } |
1576 | 1584 |
1577 static CSSValue* valueForScrollSnapCoordinate(const Vector<LengthPoint>& coordin
ates, const ComputedStyle& style) | 1585 static CSSValue* valueForScrollSnapCoordinate(const Vector<LengthPoint>& coordin
ates, const ComputedStyle& style) |
1578 { | 1586 { |
1579 if (coordinates.isEmpty()) | 1587 if (coordinates.isEmpty()) |
1580 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1588 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1581 | 1589 |
1582 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1590 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1583 | 1591 |
1584 for (auto& coordinate : coordinates) { | 1592 for (auto& coordinate : coordinates) { |
1585 auto pair = CSSValueList::createSpaceSeparated(); | 1593 auto pair = CSSValueList::createSpaceSeparated(); |
1586 pair->append(*zoomAdjustedPixelValueForLength(coordinate.x(), style)); | 1594 pair->append(*zoomAdjustedPixelValueForLength(coordinate.x(), style)); |
1587 pair->append(*zoomAdjustedPixelValueForLength(coordinate.y(), style)); | 1595 pair->append(*zoomAdjustedPixelValueForLength(coordinate.y(), style)); |
1588 list->append(*pair); | 1596 list->append(*pair); |
1589 } | 1597 } |
1590 | 1598 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1671 case CSSPropertyBackgroundColor: | 1679 case CSSPropertyBackgroundColor: |
1672 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(style, style.
backgroundColor()); | 1680 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBackgroundColor).rgb()) : currentColorOrValidColor(style, style.
backgroundColor()); |
1673 case CSSPropertyBackgroundImage: | 1681 case CSSPropertyBackgroundImage: |
1674 case CSSPropertyWebkitMaskImage: { | 1682 case CSSPropertyWebkitMaskImage: { |
1675 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1683 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1676 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskImage ?
&style.maskLayers() : &style.backgroundLayers(); | 1684 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskImage ?
&style.maskLayers() : &style.backgroundLayers(); |
1677 for (; currLayer; currLayer = currLayer->next()) { | 1685 for (; currLayer; currLayer = currLayer->next()) { |
1678 if (currLayer->image()) | 1686 if (currLayer->image()) |
1679 list->append(*currLayer->image()->computedCSSValue()); | 1687 list->append(*currLayer->image()->computedCSSValue()); |
1680 else | 1688 else |
1681 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone))
; | 1689 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)
); |
1682 } | 1690 } |
1683 return list; | 1691 return list; |
1684 } | 1692 } |
1685 case CSSPropertyBackgroundSize: | 1693 case CSSPropertyBackgroundSize: |
1686 case CSSPropertyWebkitMaskSize: { | 1694 case CSSPropertyWebkitMaskSize: { |
1687 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1695 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1688 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskSize ? &
style.maskLayers() : &style.backgroundLayers(); | 1696 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskSize ? &
style.maskLayers() : &style.backgroundLayers(); |
1689 for (; currLayer; currLayer = currLayer->next()) | 1697 for (; currLayer; currLayer = currLayer->next()) |
1690 list->append(*valueForFillSize(currLayer->size(), style)); | 1698 list->append(*valueForFillSize(currLayer->size(), style)); |
1691 return list; | 1699 return list; |
1692 } | 1700 } |
1693 case CSSPropertyBackgroundRepeat: | 1701 case CSSPropertyBackgroundRepeat: |
1694 case CSSPropertyWebkitMaskRepeat: { | 1702 case CSSPropertyWebkitMaskRepeat: { |
1695 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1703 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1696 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskRepeat ?
&style.maskLayers() : &style.backgroundLayers(); | 1704 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskRepeat ?
&style.maskLayers() : &style.backgroundLayers(); |
1697 for (; currLayer; currLayer = currLayer->next()) | 1705 for (; currLayer; currLayer = currLayer->next()) |
1698 list->append(*valueForFillRepeat(currLayer->repeatX(), currLayer->re
peatY())); | 1706 list->append(*valueForFillRepeat(currLayer->repeatX(), currLayer->re
peatY())); |
1699 return list; | 1707 return list; |
1700 } | 1708 } |
1701 case CSSPropertyMaskSourceType: { | 1709 case CSSPropertyMaskSourceType: { |
1702 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1710 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1703 for (const FillLayer* currLayer = &style.maskLayers(); currLayer; currLa
yer = currLayer->next()) | 1711 for (const FillLayer* currLayer = &style.maskLayers(); currLayer; currLa
yer = currLayer->next()) |
1704 list->append(*valueForFillSourceType(currLayer->maskSourceType())); | 1712 list->append(*valueForFillSourceType(currLayer->maskSourceType())); |
1705 return list; | 1713 return list; |
1706 } | 1714 } |
1707 case CSSPropertyWebkitMaskComposite: { | 1715 case CSSPropertyWebkitMaskComposite: { |
1708 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1716 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1709 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskComposit
e ? &style.maskLayers() : &style.backgroundLayers(); | 1717 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskComposit
e ? &style.maskLayers() : &style.backgroundLayers(); |
1710 for (; currLayer; currLayer = currLayer->next()) | 1718 for (; currLayer; currLayer = currLayer->next()) |
1711 list->append(*CSSPrimitiveValue::create(currLayer->composite())); | 1719 list->append(*CSSIdentifierValue::create(currLayer->composite())); |
1712 return list; | 1720 return list; |
1713 } | 1721 } |
1714 case CSSPropertyBackgroundAttachment: { | 1722 case CSSPropertyBackgroundAttachment: { |
1715 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1723 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1716 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer;
currLayer = currLayer->next()) | 1724 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer;
currLayer = currLayer->next()) |
1717 list->append(*CSSPrimitiveValue::create(currLayer->attachment())); | 1725 list->append(*CSSIdentifierValue::create(currLayer->attachment())); |
1718 return list; | 1726 return list; |
1719 } | 1727 } |
1720 case CSSPropertyBackgroundClip: | 1728 case CSSPropertyBackgroundClip: |
1721 case CSSPropertyBackgroundOrigin: | 1729 case CSSPropertyBackgroundOrigin: |
1722 case CSSPropertyWebkitBackgroundClip: | 1730 case CSSPropertyWebkitBackgroundClip: |
1723 case CSSPropertyWebkitBackgroundOrigin: | 1731 case CSSPropertyWebkitBackgroundOrigin: |
1724 case CSSPropertyWebkitMaskClip: | 1732 case CSSPropertyWebkitMaskClip: |
1725 case CSSPropertyWebkitMaskOrigin: { | 1733 case CSSPropertyWebkitMaskOrigin: { |
1726 bool isClip = propertyID == CSSPropertyBackgroundClip || propertyID == C
SSPropertyWebkitBackgroundClip || propertyID == CSSPropertyWebkitMaskClip; | 1734 bool isClip = propertyID == CSSPropertyBackgroundClip || propertyID == C
SSPropertyWebkitBackgroundClip || propertyID == CSSPropertyWebkitMaskClip; |
1727 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1735 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1728 const FillLayer* currLayer = (propertyID == CSSPropertyWebkitMaskClip ||
propertyID == CSSPropertyWebkitMaskOrigin) ? &style.maskLayers() : &style.backg
roundLayers(); | 1736 const FillLayer* currLayer = (propertyID == CSSPropertyWebkitMaskClip ||
propertyID == CSSPropertyWebkitMaskOrigin) ? &style.maskLayers() : &style.backg
roundLayers(); |
1729 for (; currLayer; currLayer = currLayer->next()) { | 1737 for (; currLayer; currLayer = currLayer->next()) { |
1730 EFillBox box = isClip ? currLayer->clip() : currLayer->origin(); | 1738 EFillBox box = isClip ? currLayer->clip() : currLayer->origin(); |
1731 list->append(*CSSPrimitiveValue::create(box)); | 1739 list->append(*CSSIdentifierValue::create(box)); |
1732 } | 1740 } |
1733 return list; | 1741 return list; |
1734 } | 1742 } |
1735 case CSSPropertyBackgroundPosition: | 1743 case CSSPropertyBackgroundPosition: |
1736 case CSSPropertyWebkitMaskPosition: { | 1744 case CSSPropertyWebkitMaskPosition: { |
1737 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1745 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1738 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
? &style.maskLayers() : &style.backgroundLayers(); | 1746 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
? &style.maskLayers() : &style.backgroundLayers(); |
1739 for (; currLayer; currLayer = currLayer->next()) | 1747 for (; currLayer; currLayer = currLayer->next()) |
1740 list->append(*createPositionListForLayer(propertyID, *currLayer, sty
le)); | 1748 list->append(*createPositionListForLayer(propertyID, *currLayer, sty
le)); |
1741 return list; | 1749 return list; |
1742 } | 1750 } |
1743 case CSSPropertyBackgroundPositionX: | 1751 case CSSPropertyBackgroundPositionX: |
1744 case CSSPropertyWebkitMaskPositionX: { | 1752 case CSSPropertyWebkitMaskPositionX: { |
1745 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1753 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1746 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
X ? &style.maskLayers() : &style.backgroundLayers(); | 1754 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
X ? &style.maskLayers() : &style.backgroundLayers(); |
1747 for (; currLayer; currLayer = currLayer->next()) | 1755 for (; currLayer; currLayer = currLayer->next()) |
1748 list->append(*zoomAdjustedPixelValueForLength(currLayer->xPosition()
, style)); | 1756 list->append(*zoomAdjustedPixelValueForLength(currLayer->xPosition()
, style)); |
1749 return list; | 1757 return list; |
1750 } | 1758 } |
1751 case CSSPropertyBackgroundPositionY: | 1759 case CSSPropertyBackgroundPositionY: |
1752 case CSSPropertyWebkitMaskPositionY: { | 1760 case CSSPropertyWebkitMaskPositionY: { |
1753 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1761 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1754 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
Y ? &style.maskLayers() : &style.backgroundLayers(); | 1762 const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskPosition
Y ? &style.maskLayers() : &style.backgroundLayers(); |
1755 for (; currLayer; currLayer = currLayer->next()) | 1763 for (; currLayer; currLayer = currLayer->next()) |
1756 list->append(*zoomAdjustedPixelValueForLength(currLayer->yPosition()
, style)); | 1764 list->append(*zoomAdjustedPixelValueForLength(currLayer->yPosition()
, style)); |
1757 return list; | 1765 return list; |
1758 } | 1766 } |
1759 case CSSPropertyBorderCollapse: | 1767 case CSSPropertyBorderCollapse: |
1760 if (style.borderCollapse()) | 1768 if (style.borderCollapse()) |
1761 return CSSPrimitiveValue::createIdentifier(CSSValueCollapse); | 1769 return CSSIdentifierValue::createIdentifier(CSSValueCollapse); |
1762 return CSSPrimitiveValue::createIdentifier(CSSValueSeparate); | 1770 return CSSIdentifierValue::createIdentifier(CSSValueSeparate); |
1763 case CSSPropertyBorderSpacing: { | 1771 case CSSPropertyBorderSpacing: { |
1764 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1772 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1765 list->append(*zoomAdjustedPixelValue(style.horizontalBorderSpacing(), st
yle)); | 1773 list->append(*zoomAdjustedPixelValue(style.horizontalBorderSpacing(), st
yle)); |
1766 list->append(*zoomAdjustedPixelValue(style.verticalBorderSpacing(), styl
e)); | 1774 list->append(*zoomAdjustedPixelValue(style.verticalBorderSpacing(), styl
e)); |
1767 return list; | 1775 return list; |
1768 } | 1776 } |
1769 case CSSPropertyWebkitBorderHorizontalSpacing: | 1777 case CSSPropertyWebkitBorderHorizontalSpacing: |
1770 return zoomAdjustedPixelValue(style.horizontalBorderSpacing(), style); | 1778 return zoomAdjustedPixelValue(style.horizontalBorderSpacing(), style); |
1771 case CSSPropertyWebkitBorderVerticalSpacing: | 1779 case CSSPropertyWebkitBorderVerticalSpacing: |
1772 return zoomAdjustedPixelValue(style.verticalBorderSpacing(), style); | 1780 return zoomAdjustedPixelValue(style.verticalBorderSpacing(), style); |
1773 case CSSPropertyBorderImageSource: | 1781 case CSSPropertyBorderImageSource: |
1774 if (style.borderImageSource()) | 1782 if (style.borderImageSource()) |
1775 return style.borderImageSource()->computedCSSValue(); | 1783 return style.borderImageSource()->computedCSSValue(); |
1776 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1784 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1777 case CSSPropertyBorderTopColor: | 1785 case CSSPropertyBorderTopColor: |
1778 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderTopColor).rgb()) : currentColorOrValidColor(style, style.b
orderTopColor()); | 1786 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderTopColor).rgb()) : currentColorOrValidColor(style, style.b
orderTopColor()); |
1779 case CSSPropertyBorderRightColor: | 1787 case CSSPropertyBorderRightColor: |
1780 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderRightColor).rgb()) : currentColorOrValidColor(style, style
.borderRightColor()); | 1788 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderRightColor).rgb()) : currentColorOrValidColor(style, style
.borderRightColor()); |
1781 case CSSPropertyBorderBottomColor: | 1789 case CSSPropertyBorderBottomColor: |
1782 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderBottomColor).rgb()) : currentColorOrValidColor(style, styl
e.borderBottomColor()); | 1790 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderBottomColor).rgb()) : currentColorOrValidColor(style, styl
e.borderBottomColor()); |
1783 case CSSPropertyBorderLeftColor: | 1791 case CSSPropertyBorderLeftColor: |
1784 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderLeftColor).rgb()) : currentColorOrValidColor(style, style.
borderLeftColor()); | 1792 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyBorderLeftColor).rgb()) : currentColorOrValidColor(style, style.
borderLeftColor()); |
1785 case CSSPropertyBorderTopStyle: | 1793 case CSSPropertyBorderTopStyle: |
1786 return CSSPrimitiveValue::create(style.borderTopStyle()); | 1794 return CSSIdentifierValue::create(style.borderTopStyle()); |
1787 case CSSPropertyBorderRightStyle: | 1795 case CSSPropertyBorderRightStyle: |
1788 return CSSPrimitiveValue::create(style.borderRightStyle()); | 1796 return CSSIdentifierValue::create(style.borderRightStyle()); |
1789 case CSSPropertyBorderBottomStyle: | 1797 case CSSPropertyBorderBottomStyle: |
1790 return CSSPrimitiveValue::create(style.borderBottomStyle()); | 1798 return CSSIdentifierValue::create(style.borderBottomStyle()); |
1791 case CSSPropertyBorderLeftStyle: | 1799 case CSSPropertyBorderLeftStyle: |
1792 return CSSPrimitiveValue::create(style.borderLeftStyle()); | 1800 return CSSIdentifierValue::create(style.borderLeftStyle()); |
1793 case CSSPropertyBorderTopWidth: | 1801 case CSSPropertyBorderTopWidth: |
1794 return zoomAdjustedPixelValue(style.borderTopWidth(), style); | 1802 return zoomAdjustedPixelValue(style.borderTopWidth(), style); |
1795 case CSSPropertyBorderRightWidth: | 1803 case CSSPropertyBorderRightWidth: |
1796 return zoomAdjustedPixelValue(style.borderRightWidth(), style); | 1804 return zoomAdjustedPixelValue(style.borderRightWidth(), style); |
1797 case CSSPropertyBorderBottomWidth: | 1805 case CSSPropertyBorderBottomWidth: |
1798 return zoomAdjustedPixelValue(style.borderBottomWidth(), style); | 1806 return zoomAdjustedPixelValue(style.borderBottomWidth(), style); |
1799 case CSSPropertyBorderLeftWidth: | 1807 case CSSPropertyBorderLeftWidth: |
1800 return zoomAdjustedPixelValue(style.borderLeftWidth(), style); | 1808 return zoomAdjustedPixelValue(style.borderLeftWidth(), style); |
1801 case CSSPropertyBottom: | 1809 case CSSPropertyBottom: |
1802 return valueForPositionOffset(style, CSSPropertyBottom, layoutObject); | 1810 return valueForPositionOffset(style, CSSPropertyBottom, layoutObject); |
1803 case CSSPropertyWebkitBoxAlign: | 1811 case CSSPropertyWebkitBoxAlign: |
1804 return CSSPrimitiveValue::create(style.boxAlign()); | 1812 return CSSIdentifierValue::create(style.boxAlign()); |
1805 case CSSPropertyWebkitBoxDecorationBreak: | 1813 case CSSPropertyWebkitBoxDecorationBreak: |
1806 if (style.boxDecorationBreak() == BoxDecorationBreakSlice) | 1814 if (style.boxDecorationBreak() == BoxDecorationBreakSlice) |
1807 return CSSPrimitiveValue::createIdentifier(CSSValueSlice); | 1815 return CSSIdentifierValue::createIdentifier(CSSValueSlice); |
1808 return CSSPrimitiveValue::createIdentifier(CSSValueClone); | 1816 return CSSIdentifierValue::createIdentifier(CSSValueClone); |
1809 case CSSPropertyWebkitBoxDirection: | 1817 case CSSPropertyWebkitBoxDirection: |
1810 return CSSPrimitiveValue::create(style.boxDirection()); | 1818 return CSSIdentifierValue::create(style.boxDirection()); |
1811 case CSSPropertyWebkitBoxFlex: | 1819 case CSSPropertyWebkitBoxFlex: |
1812 return CSSPrimitiveValue::create(style.boxFlex(), CSSPrimitiveValue::Uni
tType::Number); | 1820 return CSSPrimitiveValue::create(style.boxFlex(), CSSPrimitiveValue::Uni
tType::Number); |
1813 case CSSPropertyWebkitBoxFlexGroup: | 1821 case CSSPropertyWebkitBoxFlexGroup: |
1814 return CSSPrimitiveValue::create(style.boxFlexGroup(), CSSPrimitiveValue
::UnitType::Number); | 1822 return CSSPrimitiveValue::create(style.boxFlexGroup(), CSSPrimitiveValue
::UnitType::Number); |
1815 case CSSPropertyWebkitBoxLines: | 1823 case CSSPropertyWebkitBoxLines: |
1816 return CSSPrimitiveValue::create(style.boxLines()); | 1824 return CSSIdentifierValue::create(style.boxLines()); |
1817 case CSSPropertyWebkitBoxOrdinalGroup: | 1825 case CSSPropertyWebkitBoxOrdinalGroup: |
1818 return CSSPrimitiveValue::create(style.boxOrdinalGroup(), CSSPrimitiveVa
lue::UnitType::Number); | 1826 return CSSPrimitiveValue::create(style.boxOrdinalGroup(), CSSPrimitiveVa
lue::UnitType::Number); |
1819 case CSSPropertyWebkitBoxOrient: | 1827 case CSSPropertyWebkitBoxOrient: |
1820 return CSSPrimitiveValue::create(style.boxOrient()); | 1828 return CSSIdentifierValue::create(style.boxOrient()); |
1821 case CSSPropertyWebkitBoxPack: | 1829 case CSSPropertyWebkitBoxPack: |
1822 return CSSPrimitiveValue::create(style.boxPack()); | 1830 return CSSIdentifierValue::create(style.boxPack()); |
1823 case CSSPropertyWebkitBoxReflect: | 1831 case CSSPropertyWebkitBoxReflect: |
1824 return valueForReflection(style.boxReflect(), style); | 1832 return valueForReflection(style.boxReflect(), style); |
1825 case CSSPropertyBoxShadow: | 1833 case CSSPropertyBoxShadow: |
1826 return valueForShadowList(style.boxShadow(), style, true); | 1834 return valueForShadowList(style.boxShadow(), style, true); |
1827 case CSSPropertyCaptionSide: | 1835 case CSSPropertyCaptionSide: |
1828 return CSSPrimitiveValue::create(style.captionSide()); | 1836 return CSSIdentifierValue::create(style.captionSide()); |
1829 case CSSPropertyClear: | 1837 case CSSPropertyClear: |
1830 return CSSPrimitiveValue::create(style.clear()); | 1838 return CSSIdentifierValue::create(style.clear()); |
1831 case CSSPropertyColor: | 1839 case CSSPropertyColor: |
1832 return CSSColorValue::create(allowVisitedStyle ? style.visitedDependentC
olor(CSSPropertyColor).rgb() : style.color().rgb()); | 1840 return CSSColorValue::create(allowVisitedStyle ? style.visitedDependentC
olor(CSSPropertyColor).rgb() : style.color().rgb()); |
1833 case CSSPropertyWebkitPrintColorAdjust: | 1841 case CSSPropertyWebkitPrintColorAdjust: |
1834 return CSSPrimitiveValue::create(style.getPrintColorAdjust()); | 1842 return CSSIdentifierValue::create(style.getPrintColorAdjust()); |
1835 case CSSPropertyColumnCount: | 1843 case CSSPropertyColumnCount: |
1836 if (style.hasAutoColumnCount()) | 1844 if (style.hasAutoColumnCount()) |
1837 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 1845 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
1838 return CSSPrimitiveValue::create(style.columnCount(), CSSPrimitiveValue:
:UnitType::Number); | 1846 return CSSPrimitiveValue::create(style.columnCount(), CSSPrimitiveValue:
:UnitType::Number); |
1839 case CSSPropertyColumnFill: | 1847 case CSSPropertyColumnFill: |
1840 return CSSPrimitiveValue::create(style.getColumnFill()); | 1848 return CSSIdentifierValue::create(style.getColumnFill()); |
1841 case CSSPropertyColumnGap: | 1849 case CSSPropertyColumnGap: |
1842 if (style.hasNormalColumnGap()) | 1850 if (style.hasNormalColumnGap()) |
1843 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 1851 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
1844 return zoomAdjustedPixelValue(style.columnGap(), style); | 1852 return zoomAdjustedPixelValue(style.columnGap(), style); |
1845 case CSSPropertyColumnRuleColor: | 1853 case CSSPropertyColumnRuleColor: |
1846 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor(style, style.col
umnRuleColor()); | 1854 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor(style, style.col
umnRuleColor()); |
1847 case CSSPropertyColumnRuleStyle: | 1855 case CSSPropertyColumnRuleStyle: |
1848 return CSSPrimitiveValue::create(style.columnRuleStyle()); | 1856 return CSSIdentifierValue::create(style.columnRuleStyle()); |
1849 case CSSPropertyColumnRuleWidth: | 1857 case CSSPropertyColumnRuleWidth: |
1850 return zoomAdjustedPixelValue(style.columnRuleWidth(), style); | 1858 return zoomAdjustedPixelValue(style.columnRuleWidth(), style); |
1851 case CSSPropertyColumnSpan: | 1859 case CSSPropertyColumnSpan: |
1852 return CSSPrimitiveValue::createIdentifier(style.getColumnSpan() ? CSSVa
lueAll : CSSValueNone); | 1860 return CSSIdentifierValue::createIdentifier(style.getColumnSpan() ? CSSV
alueAll : CSSValueNone); |
1853 case CSSPropertyWebkitColumnBreakAfter: | 1861 case CSSPropertyWebkitColumnBreakAfter: |
1854 return CSSPrimitiveValue::create(mapToColumnBreakValue(style.breakAfter(
))); | 1862 return CSSIdentifierValue::create(mapToColumnBreakValue(style.breakAfter
())); |
1855 case CSSPropertyWebkitColumnBreakBefore: | 1863 case CSSPropertyWebkitColumnBreakBefore: |
1856 return CSSPrimitiveValue::create(mapToColumnBreakValue(style.breakBefore
())); | 1864 return CSSIdentifierValue::create(mapToColumnBreakValue(style.breakBefor
e())); |
1857 case CSSPropertyWebkitColumnBreakInside: | 1865 case CSSPropertyWebkitColumnBreakInside: |
1858 return CSSPrimitiveValue::create(mapToColumnBreakValue(style.breakInside
())); | 1866 return CSSIdentifierValue::create(mapToColumnBreakValue(style.breakInsid
e())); |
1859 case CSSPropertyColumnWidth: | 1867 case CSSPropertyColumnWidth: |
1860 if (style.hasAutoColumnWidth()) | 1868 if (style.hasAutoColumnWidth()) |
1861 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 1869 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
1862 return zoomAdjustedPixelValue(style.columnWidth(), style); | 1870 return zoomAdjustedPixelValue(style.columnWidth(), style); |
1863 case CSSPropertyTabSize: | 1871 case CSSPropertyTabSize: |
1864 return CSSPrimitiveValue::create( | 1872 return CSSPrimitiveValue::create( |
1865 style.getTabSize().getPixelSize(1.0), style.getTabSize().isSpaces()
? CSSPrimitiveValue::UnitType::Number : CSSPrimitiveValue::UnitType::Pixels); | 1873 style.getTabSize().getPixelSize(1.0), style.getTabSize().isSpaces()
? CSSPrimitiveValue::UnitType::Number : CSSPrimitiveValue::UnitType::Pixels); |
1866 case CSSPropertyTextSizeAdjust: | 1874 case CSSPropertyTextSizeAdjust: |
1867 if (style.getTextSizeAdjust().isAuto()) | 1875 if (style.getTextSizeAdjust().isAuto()) |
1868 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 1876 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
1869 return CSSPrimitiveValue::create(style.getTextSizeAdjust().multiplier()
* 100, CSSPrimitiveValue::UnitType::Percentage); | 1877 return CSSPrimitiveValue::create(style.getTextSizeAdjust().multiplier()
* 100, CSSPrimitiveValue::UnitType::Percentage); |
1870 case CSSPropertyCursor: { | 1878 case CSSPropertyCursor: { |
1871 CSSValueList* list = nullptr; | 1879 CSSValueList* list = nullptr; |
1872 CursorList* cursors = style.cursors(); | 1880 CursorList* cursors = style.cursors(); |
1873 if (cursors && cursors->size() > 0) { | 1881 if (cursors && cursors->size() > 0) { |
1874 list = CSSValueList::createCommaSeparated(); | 1882 list = CSSValueList::createCommaSeparated(); |
1875 for (unsigned i = 0; i < cursors->size(); ++i) { | 1883 for (unsigned i = 0; i < cursors->size(); ++i) { |
1876 if (StyleImage* image = cursors->at(i).image()) | 1884 if (StyleImage* image = cursors->at(i).image()) |
1877 list->append(*CSSCursorImageValue::create(image->computedCSS
Value(), cursors->at(i).hotSpotSpecified(), cursors->at(i).hotSpot())); | 1885 list->append(*CSSCursorImageValue::create(image->computedCSS
Value(), cursors->at(i).hotSpotSpecified(), cursors->at(i).hotSpot())); |
1878 } | 1886 } |
1879 } | 1887 } |
1880 CSSValue* value = CSSPrimitiveValue::create(style.cursor()); | 1888 CSSValue* value = CSSIdentifierValue::create(style.cursor()); |
1881 if (list) { | 1889 if (list) { |
1882 list->append(*value); | 1890 list->append(*value); |
1883 return list; | 1891 return list; |
1884 } | 1892 } |
1885 return value; | 1893 return value; |
1886 } | 1894 } |
1887 case CSSPropertyDirection: | 1895 case CSSPropertyDirection: |
1888 return CSSPrimitiveValue::create(style.direction()); | 1896 return CSSIdentifierValue::create(style.direction()); |
1889 case CSSPropertyDisplay: | 1897 case CSSPropertyDisplay: |
1890 return CSSPrimitiveValue::create(style.display()); | 1898 return CSSIdentifierValue::create(style.display()); |
1891 case CSSPropertyEmptyCells: | 1899 case CSSPropertyEmptyCells: |
1892 return CSSPrimitiveValue::create(style.emptyCells()); | 1900 return CSSIdentifierValue::create(style.emptyCells()); |
1893 case CSSPropertyAlignContent: | 1901 case CSSPropertyAlignContent: |
1894 return valueForContentPositionAndDistributionWithOverflowAlignment(style
.alignContent()); | 1902 return valueForContentPositionAndDistributionWithOverflowAlignment(style
.alignContent()); |
1895 case CSSPropertyAlignItems: | 1903 case CSSPropertyAlignItems: |
1896 return valueForItemPositionWithOverflowAlignment(style.alignItems()); | 1904 return valueForItemPositionWithOverflowAlignment(style.alignItems()); |
1897 case CSSPropertyAlignSelf: | 1905 case CSSPropertyAlignSelf: |
1898 return valueForItemPositionWithOverflowAlignment(style.alignSelf()); | 1906 return valueForItemPositionWithOverflowAlignment(style.alignSelf()); |
1899 case CSSPropertyFlex: | 1907 case CSSPropertyFlex: |
1900 return valuesForShorthandProperty(flexShorthand(), style, layoutObject,
styledNode, allowVisitedStyle); | 1908 return valuesForShorthandProperty(flexShorthand(), style, layoutObject,
styledNode, allowVisitedStyle); |
1901 case CSSPropertyFlexBasis: | 1909 case CSSPropertyFlexBasis: |
1902 return zoomAdjustedPixelValueForLength(style.flexBasis(), style); | 1910 return zoomAdjustedPixelValueForLength(style.flexBasis(), style); |
1903 case CSSPropertyFlexDirection: | 1911 case CSSPropertyFlexDirection: |
1904 return CSSPrimitiveValue::create(style.flexDirection()); | 1912 return CSSIdentifierValue::create(style.flexDirection()); |
1905 case CSSPropertyFlexFlow: | 1913 case CSSPropertyFlexFlow: |
1906 return valuesForShorthandProperty(flexFlowShorthand(), style, layoutObje
ct, styledNode, allowVisitedStyle); | 1914 return valuesForShorthandProperty(flexFlowShorthand(), style, layoutObje
ct, styledNode, allowVisitedStyle); |
1907 case CSSPropertyFlexGrow: | 1915 case CSSPropertyFlexGrow: |
1908 return CSSPrimitiveValue::create(style.flexGrow(), CSSPrimitiveValue::Un
itType::Number); | 1916 return CSSPrimitiveValue::create(style.flexGrow(), CSSPrimitiveValue::Un
itType::Number); |
1909 case CSSPropertyFlexShrink: | 1917 case CSSPropertyFlexShrink: |
1910 return CSSPrimitiveValue::create(style.flexShrink(), CSSPrimitiveValue::
UnitType::Number); | 1918 return CSSPrimitiveValue::create(style.flexShrink(), CSSPrimitiveValue::
UnitType::Number); |
1911 case CSSPropertyFlexWrap: | 1919 case CSSPropertyFlexWrap: |
1912 return CSSPrimitiveValue::create(style.flexWrap()); | 1920 return CSSIdentifierValue::create(style.flexWrap()); |
1913 case CSSPropertyJustifyContent: | 1921 case CSSPropertyJustifyContent: |
1914 return valueForContentPositionAndDistributionWithOverflowAlignment(style
.justifyContent()); | 1922 return valueForContentPositionAndDistributionWithOverflowAlignment(style
.justifyContent()); |
1915 case CSSPropertyOrder: | 1923 case CSSPropertyOrder: |
1916 return CSSPrimitiveValue::create(style.order(), CSSPrimitiveValue::UnitT
ype::Number); | 1924 return CSSPrimitiveValue::create(style.order(), CSSPrimitiveValue::UnitT
ype::Number); |
1917 case CSSPropertyFloat: | 1925 case CSSPropertyFloat: |
1918 if (style.display() != NONE && style.hasOutOfFlowPosition()) | 1926 if (style.display() != NONE && style.hasOutOfFlowPosition()) |
1919 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1927 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1920 return CSSPrimitiveValue::create(style.floating()); | 1928 return CSSIdentifierValue::create(style.floating()); |
1921 case CSSPropertyFont: | 1929 case CSSPropertyFont: |
1922 return valueForFont(style); | 1930 return valueForFont(style); |
1923 case CSSPropertyFontFamily: | 1931 case CSSPropertyFontFamily: |
1924 return valueForFontFamily(style); | 1932 return valueForFontFamily(style); |
1925 case CSSPropertyFontSize: | 1933 case CSSPropertyFontSize: |
1926 return valueForFontSize(style); | 1934 return valueForFontSize(style); |
1927 case CSSPropertyFontSizeAdjust: | 1935 case CSSPropertyFontSizeAdjust: |
1928 if (style.hasFontSizeAdjust()) | 1936 if (style.hasFontSizeAdjust()) |
1929 return CSSPrimitiveValue::create(style.fontSizeAdjust(), CSSPrimitiv
eValue::UnitType::Number); | 1937 return CSSPrimitiveValue::create(style.fontSizeAdjust(), CSSPrimitiv
eValue::UnitType::Number); |
1930 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 1938 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
1931 case CSSPropertyFontStretch: | 1939 case CSSPropertyFontStretch: |
1932 return valueForFontStretch(style); | 1940 return valueForFontStretch(style); |
1933 case CSSPropertyFontStyle: | 1941 case CSSPropertyFontStyle: |
1934 return valueForFontStyle(style); | 1942 return valueForFontStyle(style); |
1935 case CSSPropertyFontVariant: | 1943 case CSSPropertyFontVariant: |
1936 return valuesForFontVariantProperty(style, layoutObject, styledNode, all
owVisitedStyle); | 1944 return valuesForFontVariantProperty(style, layoutObject, styledNode, all
owVisitedStyle); |
1937 case CSSPropertyFontWeight: | 1945 case CSSPropertyFontWeight: |
1938 return valueForFontWeight(style); | 1946 return valueForFontWeight(style); |
1939 case CSSPropertyFontFeatureSettings: { | 1947 case CSSPropertyFontFeatureSettings: { |
1940 const FontFeatureSettings* featureSettings = style.getFontDescription().
featureSettings(); | 1948 const FontFeatureSettings* featureSettings = style.getFontDescription().
featureSettings(); |
1941 if (!featureSettings || !featureSettings->size()) | 1949 if (!featureSettings || !featureSettings->size()) |
1942 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 1950 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
1943 CSSValueList* list = CSSValueList::createCommaSeparated(); | 1951 CSSValueList* list = CSSValueList::createCommaSeparated(); |
1944 for (unsigned i = 0; i < featureSettings->size(); ++i) { | 1952 for (unsigned i = 0; i < featureSettings->size(); ++i) { |
1945 const FontFeature& feature = featureSettings->at(i); | 1953 const FontFeature& feature = featureSettings->at(i); |
1946 CSSFontFeatureValue* featureValue = CSSFontFeatureValue::create(feat
ure.tag(), feature.value()); | 1954 CSSFontFeatureValue* featureValue = CSSFontFeatureValue::create(feat
ure.tag(), feature.value()); |
1947 list->append(*featureValue); | 1955 list->append(*featureValue); |
1948 } | 1956 } |
1949 return list; | 1957 return list; |
1950 } | 1958 } |
1951 case CSSPropertyGridAutoFlow: { | 1959 case CSSPropertyGridAutoFlow: { |
1952 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 1960 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
1953 switch (style.getGridAutoFlow()) { | 1961 switch (style.getGridAutoFlow()) { |
1954 case AutoFlowRow: | 1962 case AutoFlowRow: |
1955 case AutoFlowRowDense: | 1963 case AutoFlowRowDense: |
1956 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueRow)); | 1964 list->append(*CSSIdentifierValue::createIdentifier(CSSValueRow)); |
1957 break; | 1965 break; |
1958 case AutoFlowColumn: | 1966 case AutoFlowColumn: |
1959 case AutoFlowColumnDense: | 1967 case AutoFlowColumnDense: |
1960 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueColumn)); | 1968 list->append(*CSSIdentifierValue::createIdentifier(CSSValueColumn)); |
1961 break; | 1969 break; |
1962 default: | 1970 default: |
1963 ASSERT_NOT_REACHED(); | 1971 ASSERT_NOT_REACHED(); |
1964 } | 1972 } |
1965 | 1973 |
1966 switch (style.getGridAutoFlow()) { | 1974 switch (style.getGridAutoFlow()) { |
1967 case AutoFlowRowDense: | 1975 case AutoFlowRowDense: |
1968 case AutoFlowColumnDense: | 1976 case AutoFlowColumnDense: |
1969 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueDense)); | 1977 list->append(*CSSIdentifierValue::createIdentifier(CSSValueDense)); |
1970 break; | 1978 break; |
1971 default: | 1979 default: |
1972 // Do nothing. | 1980 // Do nothing. |
1973 break; | 1981 break; |
1974 } | 1982 } |
1975 | 1983 |
1976 return list; | 1984 return list; |
1977 } | 1985 } |
1978 // Specs mention that getComputedStyle() should return the used value of the
property instead of the computed | 1986 // Specs mention that getComputedStyle() should return the used value of the
property instead of the computed |
1979 // one for grid-template-{rows|columns} but not for the grid-auto-{rows|colu
mns} as things like | 1987 // one for grid-template-{rows|columns} but not for the grid-auto-{rows|colu
mns} as things like |
(...skipping 24 matching lines...) Expand all Loading... |
2004 return valuesForGridShorthand(gridRowShorthand(), style, layoutObject, s
tyledNode, allowVisitedStyle); | 2012 return valuesForGridShorthand(gridRowShorthand(), style, layoutObject, s
tyledNode, allowVisitedStyle); |
2005 case CSSPropertyGridArea: | 2013 case CSSPropertyGridArea: |
2006 return valuesForGridShorthand(gridAreaShorthand(), style, layoutObject,
styledNode, allowVisitedStyle); | 2014 return valuesForGridShorthand(gridAreaShorthand(), style, layoutObject,
styledNode, allowVisitedStyle); |
2007 case CSSPropertyGridTemplate: | 2015 case CSSPropertyGridTemplate: |
2008 return valuesForGridShorthand(gridTemplateShorthand(), style, layoutObje
ct, styledNode, allowVisitedStyle); | 2016 return valuesForGridShorthand(gridTemplateShorthand(), style, layoutObje
ct, styledNode, allowVisitedStyle); |
2009 case CSSPropertyGrid: | 2017 case CSSPropertyGrid: |
2010 return valuesForGridShorthand(gridShorthand(), style, layoutObject, styl
edNode, allowVisitedStyle); | 2018 return valuesForGridShorthand(gridShorthand(), style, layoutObject, styl
edNode, allowVisitedStyle); |
2011 case CSSPropertyGridTemplateAreas: | 2019 case CSSPropertyGridTemplateAreas: |
2012 if (!style.namedGridAreaRowCount()) { | 2020 if (!style.namedGridAreaRowCount()) { |
2013 ASSERT(!style.namedGridAreaColumnCount()); | 2021 ASSERT(!style.namedGridAreaColumnCount()); |
2014 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2022 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2015 } | 2023 } |
2016 | 2024 |
2017 return CSSGridTemplateAreasValue::create(style.namedGridArea(), style.na
medGridAreaRowCount(), style.namedGridAreaColumnCount()); | 2025 return CSSGridTemplateAreasValue::create(style.namedGridArea(), style.na
medGridAreaRowCount(), style.namedGridAreaColumnCount()); |
2018 case CSSPropertyGridColumnGap: | 2026 case CSSPropertyGridColumnGap: |
2019 return zoomAdjustedPixelValueForLength(style.gridColumnGap(), style); | 2027 return zoomAdjustedPixelValueForLength(style.gridColumnGap(), style); |
2020 case CSSPropertyGridRowGap: | 2028 case CSSPropertyGridRowGap: |
2021 return zoomAdjustedPixelValueForLength(style.gridRowGap(), style); | 2029 return zoomAdjustedPixelValueForLength(style.gridRowGap(), style); |
2022 case CSSPropertyGridGap: | 2030 case CSSPropertyGridGap: |
2023 return valuesForShorthandProperty(gridGapShorthand(), style, layoutObjec
t, styledNode, allowVisitedStyle); | 2031 return valuesForShorthandProperty(gridGapShorthand(), style, layoutObjec
t, styledNode, allowVisitedStyle); |
2024 | 2032 |
2025 case CSSPropertyHeight: | 2033 case CSSPropertyHeight: |
2026 if (layoutObject) { | 2034 if (layoutObject) { |
2027 // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-pr
operty, | 2035 // According to http://www.w3.org/TR/CSS2/visudet.html#the-height-pr
operty, |
2028 // the "height" property does not apply for non-atomic inline elemen
ts. | 2036 // the "height" property does not apply for non-atomic inline elemen
ts. |
2029 if (!layoutObject->isAtomicInlineLevel() && layoutObject->isInline()
) | 2037 if (!layoutObject->isAtomicInlineLevel() && layoutObject->isInline()
) |
2030 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2038 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2031 return zoomAdjustedPixelValue(sizingBox(layoutObject).height(), styl
e); | 2039 return zoomAdjustedPixelValue(sizingBox(layoutObject).height(), styl
e); |
2032 } | 2040 } |
2033 return zoomAdjustedPixelValueForLength(style.height(), style); | 2041 return zoomAdjustedPixelValueForLength(style.height(), style); |
2034 case CSSPropertyWebkitHighlight: | 2042 case CSSPropertyWebkitHighlight: |
2035 if (style.highlight() == nullAtom) | 2043 if (style.highlight() == nullAtom) |
2036 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2044 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2037 return CSSStringValue::create(style.highlight()); | 2045 return CSSStringValue::create(style.highlight()); |
2038 case CSSPropertyHyphens: | 2046 case CSSPropertyHyphens: |
2039 return CSSPrimitiveValue::create(style.getHyphens()); | 2047 return CSSIdentifierValue::create(style.getHyphens()); |
2040 case CSSPropertyWebkitHyphenateCharacter: | 2048 case CSSPropertyWebkitHyphenateCharacter: |
2041 if (style.hyphenationString().isNull()) | 2049 if (style.hyphenationString().isNull()) |
2042 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2050 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2043 return CSSStringValue::create(style.hyphenationString()); | 2051 return CSSStringValue::create(style.hyphenationString()); |
2044 case CSSPropertyImageRendering: | 2052 case CSSPropertyImageRendering: |
2045 return CSSPrimitiveValue::create(style.imageRendering()); | 2053 return CSSIdentifierValue::create(style.imageRendering()); |
2046 case CSSPropertyImageOrientation: | 2054 case CSSPropertyImageOrientation: |
2047 if (style.respectImageOrientation() == RespectImageOrientation) | 2055 if (style.respectImageOrientation() == RespectImageOrientation) |
2048 return CSSPrimitiveValue::createIdentifier(CSSValueFromImage); | 2056 return CSSIdentifierValue::createIdentifier(CSSValueFromImage); |
2049 return CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degrees
); | 2057 return CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Degrees
); |
2050 case CSSPropertyIsolation: | 2058 case CSSPropertyIsolation: |
2051 return CSSPrimitiveValue::create(style.isolation()); | 2059 return CSSIdentifierValue::create(style.isolation()); |
2052 case CSSPropertyJustifyItems: | 2060 case CSSPropertyJustifyItems: |
2053 return valueForItemPositionWithOverflowAlignment(style.justifyItems()); | 2061 return valueForItemPositionWithOverflowAlignment(style.justifyItems()); |
2054 case CSSPropertyJustifySelf: | 2062 case CSSPropertyJustifySelf: |
2055 return valueForItemPositionWithOverflowAlignment(style.justifySelf()); | 2063 return valueForItemPositionWithOverflowAlignment(style.justifySelf()); |
2056 case CSSPropertyLeft: | 2064 case CSSPropertyLeft: |
2057 return valueForPositionOffset(style, CSSPropertyLeft, layoutObject); | 2065 return valueForPositionOffset(style, CSSPropertyLeft, layoutObject); |
2058 case CSSPropertyLetterSpacing: | 2066 case CSSPropertyLetterSpacing: |
2059 if (!style.letterSpacing()) | 2067 if (!style.letterSpacing()) |
2060 return CSSPrimitiveValue::createIdentifier(CSSValueNormal); | 2068 return CSSIdentifierValue::createIdentifier(CSSValueNormal); |
2061 return zoomAdjustedPixelValue(style.letterSpacing(), style); | 2069 return zoomAdjustedPixelValue(style.letterSpacing(), style); |
2062 case CSSPropertyWebkitLineClamp: | 2070 case CSSPropertyWebkitLineClamp: |
2063 if (style.lineClamp().isNone()) | 2071 if (style.lineClamp().isNone()) |
2064 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2072 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2065 return CSSPrimitiveValue::create(style.lineClamp().value(), style.lineCl
amp().isPercentage() ? CSSPrimitiveValue::UnitType::Percentage : CSSPrimitiveVal
ue::UnitType::Number); | 2073 return CSSPrimitiveValue::create(style.lineClamp().value(), style.lineCl
amp().isPercentage() ? CSSPrimitiveValue::UnitType::Percentage : CSSPrimitiveVal
ue::UnitType::Number); |
2066 case CSSPropertyLineHeight: | 2074 case CSSPropertyLineHeight: |
2067 return valueForLineHeight(style); | 2075 return valueForLineHeight(style); |
2068 case CSSPropertyListStyleImage: | 2076 case CSSPropertyListStyleImage: |
2069 if (style.listStyleImage()) | 2077 if (style.listStyleImage()) |
2070 return style.listStyleImage()->computedCSSValue(); | 2078 return style.listStyleImage()->computedCSSValue(); |
2071 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2079 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2072 case CSSPropertyListStylePosition: | 2080 case CSSPropertyListStylePosition: |
2073 return CSSPrimitiveValue::create(style.listStylePosition()); | 2081 return CSSIdentifierValue::create(style.listStylePosition()); |
2074 case CSSPropertyListStyleType: | 2082 case CSSPropertyListStyleType: |
2075 return CSSPrimitiveValue::create(style.listStyleType()); | 2083 return CSSIdentifierValue::create(style.listStyleType()); |
2076 case CSSPropertyWebkitLocale: | 2084 case CSSPropertyWebkitLocale: |
2077 if (style.locale().isNull()) | 2085 if (style.locale().isNull()) |
2078 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2086 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2079 return CSSStringValue::create(style.locale()); | 2087 return CSSStringValue::create(style.locale()); |
2080 case CSSPropertyMarginTop: { | 2088 case CSSPropertyMarginTop: { |
2081 Length marginTop = style.marginTop(); | 2089 Length marginTop = style.marginTop(); |
2082 if (marginTop.isFixed() || !layoutObject || !layoutObject->isBox()) | 2090 if (marginTop.isFixed() || !layoutObject || !layoutObject->isBox()) |
2083 return zoomAdjustedPixelValueForLength(marginTop, style); | 2091 return zoomAdjustedPixelValueForLength(marginTop, style); |
2084 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginTop(), st
yle); | 2092 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginTop(), st
yle); |
2085 } | 2093 } |
2086 case CSSPropertyMarginRight: { | 2094 case CSSPropertyMarginRight: { |
2087 Length marginRight = style.marginRight(); | 2095 Length marginRight = style.marginRight(); |
2088 if (marginRight.isFixed() || !layoutObject || !layoutObject->isBox()) | 2096 if (marginRight.isFixed() || !layoutObject || !layoutObject->isBox()) |
(...skipping 15 matching lines...) Expand all Loading... |
2104 return zoomAdjustedPixelValueForLength(marginBottom, style); | 2112 return zoomAdjustedPixelValueForLength(marginBottom, style); |
2105 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginBottom(),
style); | 2113 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginBottom(),
style); |
2106 } | 2114 } |
2107 case CSSPropertyMarginLeft: { | 2115 case CSSPropertyMarginLeft: { |
2108 Length marginLeft = style.marginLeft(); | 2116 Length marginLeft = style.marginLeft(); |
2109 if (marginLeft.isFixed() || !layoutObject || !layoutObject->isBox()) | 2117 if (marginLeft.isFixed() || !layoutObject || !layoutObject->isBox()) |
2110 return zoomAdjustedPixelValueForLength(marginLeft, style); | 2118 return zoomAdjustedPixelValueForLength(marginLeft, style); |
2111 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginLeft(), s
tyle); | 2119 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->marginLeft(), s
tyle); |
2112 } | 2120 } |
2113 case CSSPropertyWebkitUserModify: | 2121 case CSSPropertyWebkitUserModify: |
2114 return CSSPrimitiveValue::create(style.userModify()); | 2122 return CSSIdentifierValue::create(style.userModify()); |
2115 case CSSPropertyMaxHeight: { | 2123 case CSSPropertyMaxHeight: { |
2116 const Length& maxHeight = style.maxHeight(); | 2124 const Length& maxHeight = style.maxHeight(); |
2117 if (maxHeight.isMaxSizeNone()) | 2125 if (maxHeight.isMaxSizeNone()) |
2118 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2126 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2119 return zoomAdjustedPixelValueForLength(maxHeight, style); | 2127 return zoomAdjustedPixelValueForLength(maxHeight, style); |
2120 } | 2128 } |
2121 case CSSPropertyMaxWidth: { | 2129 case CSSPropertyMaxWidth: { |
2122 const Length& maxWidth = style.maxWidth(); | 2130 const Length& maxWidth = style.maxWidth(); |
2123 if (maxWidth.isMaxSizeNone()) | 2131 if (maxWidth.isMaxSizeNone()) |
2124 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2132 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2125 return zoomAdjustedPixelValueForLength(maxWidth, style); | 2133 return zoomAdjustedPixelValueForLength(maxWidth, style); |
2126 } | 2134 } |
2127 case CSSPropertyMinHeight: | 2135 case CSSPropertyMinHeight: |
2128 if (style.minHeight().isAuto()) { | 2136 if (style.minHeight().isAuto()) { |
2129 Node* parent = styledNode->parentNode(); | 2137 Node* parent = styledNode->parentNode(); |
2130 if (isFlexOrGrid(parent ? parent->ensureComputedStyle() : nullptr)) | 2138 if (isFlexOrGrid(parent ? parent->ensureComputedStyle() : nullptr)) |
2131 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2139 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2132 return zoomAdjustedPixelValue(0, style); | 2140 return zoomAdjustedPixelValue(0, style); |
2133 } | 2141 } |
2134 return zoomAdjustedPixelValueForLength(style.minHeight(), style); | 2142 return zoomAdjustedPixelValueForLength(style.minHeight(), style); |
2135 case CSSPropertyMinWidth: | 2143 case CSSPropertyMinWidth: |
2136 if (style.minWidth().isAuto()) { | 2144 if (style.minWidth().isAuto()) { |
2137 Node* parent = styledNode->parentNode(); | 2145 Node* parent = styledNode->parentNode(); |
2138 if (isFlexOrGrid(parent ? parent->ensureComputedStyle() : nullptr)) | 2146 if (isFlexOrGrid(parent ? parent->ensureComputedStyle() : nullptr)) |
2139 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2147 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2140 return zoomAdjustedPixelValue(0, style); | 2148 return zoomAdjustedPixelValue(0, style); |
2141 } | 2149 } |
2142 return zoomAdjustedPixelValueForLength(style.minWidth(), style); | 2150 return zoomAdjustedPixelValueForLength(style.minWidth(), style); |
2143 case CSSPropertyObjectFit: | 2151 case CSSPropertyObjectFit: |
2144 return CSSPrimitiveValue::create(style.getObjectFit()); | 2152 return CSSIdentifierValue::create(style.getObjectFit()); |
2145 case CSSPropertyObjectPosition: | 2153 case CSSPropertyObjectPosition: |
2146 return CSSValuePair::create( | 2154 return CSSValuePair::create( |
2147 zoomAdjustedPixelValueForLength(style.objectPosition().x(), style), | 2155 zoomAdjustedPixelValueForLength(style.objectPosition().x(), style), |
2148 zoomAdjustedPixelValueForLength(style.objectPosition().y(), style), | 2156 zoomAdjustedPixelValueForLength(style.objectPosition().y(), style), |
2149 CSSValuePair::KeepIdenticalValues); | 2157 CSSValuePair::KeepIdenticalValues); |
2150 case CSSPropertyOpacity: | 2158 case CSSPropertyOpacity: |
2151 return CSSPrimitiveValue::create(style.opacity(), CSSPrimitiveValue::Uni
tType::Number); | 2159 return CSSPrimitiveValue::create(style.opacity(), CSSPrimitiveValue::Uni
tType::Number); |
2152 case CSSPropertyOrphans: | 2160 case CSSPropertyOrphans: |
2153 return CSSPrimitiveValue::create(style.orphans(), CSSPrimitiveValue::Uni
tType::Number); | 2161 return CSSPrimitiveValue::create(style.orphans(), CSSPrimitiveValue::Uni
tType::Number); |
2154 case CSSPropertyOutlineColor: | 2162 case CSSPropertyOutlineColor: |
2155 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor(style, style.out
lineColor()); | 2163 return allowVisitedStyle ? CSSColorValue::create(style.visitedDependentC
olor(CSSPropertyOutlineColor).rgb()) : currentColorOrValidColor(style, style.out
lineColor()); |
2156 case CSSPropertyOutlineOffset: | 2164 case CSSPropertyOutlineOffset: |
2157 return zoomAdjustedPixelValue(style.outlineOffset(), style); | 2165 return zoomAdjustedPixelValue(style.outlineOffset(), style); |
2158 case CSSPropertyOutlineStyle: | 2166 case CSSPropertyOutlineStyle: |
2159 if (style.outlineStyleIsAuto()) | 2167 if (style.outlineStyleIsAuto()) |
2160 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2168 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2161 return CSSPrimitiveValue::create(style.outlineStyle()); | 2169 return CSSIdentifierValue::create(style.outlineStyle()); |
2162 case CSSPropertyOutlineWidth: | 2170 case CSSPropertyOutlineWidth: |
2163 return zoomAdjustedPixelValue(style.outlineWidth(), style); | 2171 return zoomAdjustedPixelValue(style.outlineWidth(), style); |
2164 case CSSPropertyOverflow: | 2172 case CSSPropertyOverflow: |
2165 return CSSPrimitiveValue::create(max(style.overflowX(), style.overflowY(
))); | 2173 return CSSIdentifierValue::create(max(style.overflowX(), style.overflowY
())); |
2166 case CSSPropertyOverflowAnchor: | 2174 case CSSPropertyOverflowAnchor: |
2167 return CSSPrimitiveValue::create(style.overflowAnchor()); | 2175 return CSSIdentifierValue::create(style.overflowAnchor()); |
2168 case CSSPropertyOverflowWrap: | 2176 case CSSPropertyOverflowWrap: |
2169 return CSSPrimitiveValue::create(style.overflowWrap()); | 2177 return CSSIdentifierValue::create(style.overflowWrap()); |
2170 case CSSPropertyOverflowX: | 2178 case CSSPropertyOverflowX: |
2171 return CSSPrimitiveValue::create(style.overflowX()); | 2179 return CSSIdentifierValue::create(style.overflowX()); |
2172 case CSSPropertyOverflowY: | 2180 case CSSPropertyOverflowY: |
2173 return CSSPrimitiveValue::create(style.overflowY()); | 2181 return CSSIdentifierValue::create(style.overflowY()); |
2174 case CSSPropertyPaddingTop: { | 2182 case CSSPropertyPaddingTop: { |
2175 Length paddingTop = style.paddingTop(); | 2183 Length paddingTop = style.paddingTop(); |
2176 if (paddingTop.isFixed() || !layoutObject || !layoutObject->isBox()) | 2184 if (paddingTop.isFixed() || !layoutObject || !layoutObject->isBox()) |
2177 return zoomAdjustedPixelValueForLength(paddingTop, style); | 2185 return zoomAdjustedPixelValueForLength(paddingTop, style); |
2178 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingTop(), style); | 2186 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingTop(), style); |
2179 } | 2187 } |
2180 case CSSPropertyPaddingRight: { | 2188 case CSSPropertyPaddingRight: { |
2181 Length paddingRight = style.paddingRight(); | 2189 Length paddingRight = style.paddingRight(); |
2182 if (paddingRight.isFixed() || !layoutObject || !layoutObject->isBox()) | 2190 if (paddingRight.isFixed() || !layoutObject || !layoutObject->isBox()) |
2183 return zoomAdjustedPixelValueForLength(paddingRight, style); | 2191 return zoomAdjustedPixelValueForLength(paddingRight, style); |
2184 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingRight(), style); | 2192 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingRight(), style); |
2185 } | 2193 } |
2186 case CSSPropertyPaddingBottom: { | 2194 case CSSPropertyPaddingBottom: { |
2187 Length paddingBottom = style.paddingBottom(); | 2195 Length paddingBottom = style.paddingBottom(); |
2188 if (paddingBottom.isFixed() || !layoutObject || !layoutObject->isBox()) | 2196 if (paddingBottom.isFixed() || !layoutObject || !layoutObject->isBox()) |
2189 return zoomAdjustedPixelValueForLength(paddingBottom, style); | 2197 return zoomAdjustedPixelValueForLength(paddingBottom, style); |
2190 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingBottom(), style); | 2198 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingBottom(), style); |
2191 } | 2199 } |
2192 case CSSPropertyPaddingLeft: { | 2200 case CSSPropertyPaddingLeft: { |
2193 Length paddingLeft = style.paddingLeft(); | 2201 Length paddingLeft = style.paddingLeft(); |
2194 if (paddingLeft.isFixed() || !layoutObject || !layoutObject->isBox()) | 2202 if (paddingLeft.isFixed() || !layoutObject || !layoutObject->isBox()) |
2195 return zoomAdjustedPixelValueForLength(paddingLeft, style); | 2203 return zoomAdjustedPixelValueForLength(paddingLeft, style); |
2196 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingLeft(), style); | 2204 return zoomAdjustedPixelValue(toLayoutBox(layoutObject)->computedCSSPadd
ingLeft(), style); |
2197 } | 2205 } |
2198 case CSSPropertyBreakAfter: | 2206 case CSSPropertyBreakAfter: |
2199 return CSSPrimitiveValue::create(style.breakAfter()); | 2207 return CSSIdentifierValue::create(style.breakAfter()); |
2200 case CSSPropertyBreakBefore: | 2208 case CSSPropertyBreakBefore: |
2201 return CSSPrimitiveValue::create(style.breakBefore()); | 2209 return CSSIdentifierValue::create(style.breakBefore()); |
2202 case CSSPropertyBreakInside: | 2210 case CSSPropertyBreakInside: |
2203 return CSSPrimitiveValue::create(style.breakInside()); | 2211 return CSSIdentifierValue::create(style.breakInside()); |
2204 case CSSPropertyPageBreakAfter: | 2212 case CSSPropertyPageBreakAfter: |
2205 return CSSPrimitiveValue::create(mapToPageBreakValue(style.breakAfter())
); | 2213 return CSSIdentifierValue::create(mapToPageBreakValue(style.breakAfter()
)); |
2206 case CSSPropertyPageBreakBefore: | 2214 case CSSPropertyPageBreakBefore: |
2207 return CSSPrimitiveValue::create(mapToPageBreakValue(style.breakBefore()
)); | 2215 return CSSIdentifierValue::create(mapToPageBreakValue(style.breakBefore(
))); |
2208 case CSSPropertyPageBreakInside: | 2216 case CSSPropertyPageBreakInside: |
2209 return CSSPrimitiveValue::create(mapToPageBreakValue(style.breakInside()
)); | 2217 return CSSIdentifierValue::create(mapToPageBreakValue(style.breakInside(
))); |
2210 case CSSPropertyPosition: | 2218 case CSSPropertyPosition: |
2211 return CSSPrimitiveValue::create(style.position()); | 2219 return CSSIdentifierValue::create(style.position()); |
2212 case CSSPropertyQuotes: | 2220 case CSSPropertyQuotes: |
2213 if (!style.quotes()) { | 2221 if (!style.quotes()) { |
2214 // TODO(ramya.v): We should return the quote values that we're actua
lly using. | 2222 // TODO(ramya.v): We should return the quote values that we're actua
lly using. |
2215 return nullptr; | 2223 return nullptr; |
2216 } | 2224 } |
2217 if (style.quotes()->size()) { | 2225 if (style.quotes()->size()) { |
2218 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2226 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2219 for (int i = 0; i < style.quotes()->size(); i++) { | 2227 for (int i = 0; i < style.quotes()->size(); i++) { |
2220 list->append(*CSSStringValue::create(style.quotes()->getOpenQuot
e(i))); | 2228 list->append(*CSSStringValue::create(style.quotes()->getOpenQuot
e(i))); |
2221 list->append(*CSSStringValue::create(style.quotes()->getCloseQuo
te(i))); | 2229 list->append(*CSSStringValue::create(style.quotes()->getCloseQuo
te(i))); |
2222 } | 2230 } |
2223 return list; | 2231 return list; |
2224 } | 2232 } |
2225 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2233 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2226 case CSSPropertyRight: | 2234 case CSSPropertyRight: |
2227 return valueForPositionOffset(style, CSSPropertyRight, layoutObject); | 2235 return valueForPositionOffset(style, CSSPropertyRight, layoutObject); |
2228 case CSSPropertyWebkitRubyPosition: | 2236 case CSSPropertyWebkitRubyPosition: |
2229 return CSSPrimitiveValue::create(style.getRubyPosition()); | 2237 return CSSIdentifierValue::create(style.getRubyPosition()); |
2230 case CSSPropertyScrollBehavior: | 2238 case CSSPropertyScrollBehavior: |
2231 return CSSPrimitiveValue::create(style.getScrollBehavior()); | 2239 return CSSIdentifierValue::create(style.getScrollBehavior()); |
2232 case CSSPropertyTableLayout: | 2240 case CSSPropertyTableLayout: |
2233 return CSSPrimitiveValue::create(style.tableLayout()); | 2241 return CSSIdentifierValue::create(style.tableLayout()); |
2234 case CSSPropertyTextAlign: | 2242 case CSSPropertyTextAlign: |
2235 return CSSPrimitiveValue::create(style.textAlign()); | 2243 return CSSIdentifierValue::create(style.textAlign()); |
2236 case CSSPropertyTextAlignLast: | 2244 case CSSPropertyTextAlignLast: |
2237 return CSSPrimitiveValue::create(style.getTextAlignLast()); | 2245 return CSSIdentifierValue::create(style.getTextAlignLast()); |
2238 case CSSPropertyTextDecoration: | 2246 case CSSPropertyTextDecoration: |
2239 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) | 2247 if (RuntimeEnabledFeatures::css3TextDecorationsEnabled()) |
2240 return valuesForShorthandProperty(textDecorationShorthand(), style,
layoutObject, styledNode, allowVisitedStyle); | 2248 return valuesForShorthandProperty(textDecorationShorthand(), style,
layoutObject, styledNode, allowVisitedStyle); |
2241 // Fall through. | 2249 // Fall through. |
2242 case CSSPropertyTextDecorationLine: | 2250 case CSSPropertyTextDecorationLine: |
2243 return renderTextDecorationFlagsToCSSValue(style.getTextDecoration()); | 2251 return renderTextDecorationFlagsToCSSValue(style.getTextDecoration()); |
2244 case CSSPropertyTextDecorationStyle: | 2252 case CSSPropertyTextDecorationStyle: |
2245 return valueForTextDecorationStyle(style.getTextDecorationStyle()); | 2253 return valueForTextDecorationStyle(style.getTextDecorationStyle()); |
2246 case CSSPropertyTextDecorationColor: | 2254 case CSSPropertyTextDecorationColor: |
2247 return currentColorOrValidColor(style, style.textDecorationColor()); | 2255 return currentColorOrValidColor(style, style.textDecorationColor()); |
2248 case CSSPropertyTextJustify: | 2256 case CSSPropertyTextJustify: |
2249 return CSSPrimitiveValue::create(style.getTextJustify()); | 2257 return CSSIdentifierValue::create(style.getTextJustify()); |
2250 case CSSPropertyTextUnderlinePosition: | 2258 case CSSPropertyTextUnderlinePosition: |
2251 return CSSPrimitiveValue::create(style.getTextUnderlinePosition()); | 2259 return CSSIdentifierValue::create(style.getTextUnderlinePosition()); |
2252 case CSSPropertyWebkitTextDecorationsInEffect: | 2260 case CSSPropertyWebkitTextDecorationsInEffect: |
2253 return renderTextDecorationFlagsToCSSValue(style.textDecorationsInEffect
()); | 2261 return renderTextDecorationFlagsToCSSValue(style.textDecorationsInEffect
()); |
2254 case CSSPropertyWebkitTextFillColor: | 2262 case CSSPropertyWebkitTextFillColor: |
2255 return currentColorOrValidColor(style, style.textFillColor()); | 2263 return currentColorOrValidColor(style, style.textFillColor()); |
2256 case CSSPropertyWebkitTextEmphasisColor: | 2264 case CSSPropertyWebkitTextEmphasisColor: |
2257 return currentColorOrValidColor(style, style.textEmphasisColor()); | 2265 return currentColorOrValidColor(style, style.textEmphasisColor()); |
2258 case CSSPropertyWebkitTextEmphasisPosition: | 2266 case CSSPropertyWebkitTextEmphasisPosition: |
2259 return CSSPrimitiveValue::create(style.getTextEmphasisPosition()); | 2267 return CSSIdentifierValue::create(style.getTextEmphasisPosition()); |
2260 case CSSPropertyWebkitTextEmphasisStyle: | 2268 case CSSPropertyWebkitTextEmphasisStyle: |
2261 switch (style.getTextEmphasisMark()) { | 2269 switch (style.getTextEmphasisMark()) { |
2262 case TextEmphasisMarkNone: | 2270 case TextEmphasisMarkNone: |
2263 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2271 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2264 case TextEmphasisMarkCustom: | 2272 case TextEmphasisMarkCustom: |
2265 return CSSStringValue::create(style.textEmphasisCustomMark()); | 2273 return CSSStringValue::create(style.textEmphasisCustomMark()); |
2266 case TextEmphasisMarkAuto: | 2274 case TextEmphasisMarkAuto: |
2267 ASSERT_NOT_REACHED(); | 2275 ASSERT_NOT_REACHED(); |
2268 // Fall through | 2276 // Fall through |
2269 case TextEmphasisMarkDot: | 2277 case TextEmphasisMarkDot: |
2270 case TextEmphasisMarkCircle: | 2278 case TextEmphasisMarkCircle: |
2271 case TextEmphasisMarkDoubleCircle: | 2279 case TextEmphasisMarkDoubleCircle: |
2272 case TextEmphasisMarkTriangle: | 2280 case TextEmphasisMarkTriangle: |
2273 case TextEmphasisMarkSesame: { | 2281 case TextEmphasisMarkSesame: { |
2274 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2282 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2275 list->append(*CSSPrimitiveValue::create(style.getTextEmphasisFill())
); | 2283 list->append(*CSSIdentifierValue::create(style.getTextEmphasisFill()
)); |
2276 list->append(*CSSPrimitiveValue::create(style.getTextEmphasisMark())
); | 2284 list->append(*CSSIdentifierValue::create(style.getTextEmphasisMark()
)); |
2277 return list; | 2285 return list; |
2278 } | 2286 } |
2279 } | 2287 } |
2280 case CSSPropertyTextIndent: { | 2288 case CSSPropertyTextIndent: { |
2281 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2289 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2282 list->append(*zoomAdjustedPixelValueForLength(style.textIndent(), style)
); | 2290 list->append(*zoomAdjustedPixelValueForLength(style.textIndent(), style)
); |
2283 if (RuntimeEnabledFeatures::css3TextEnabled() && (style.getTextIndentLin
e() == TextIndentEachLine || style.getTextIndentType() == TextIndentHanging)) { | 2291 if (RuntimeEnabledFeatures::css3TextEnabled() && (style.getTextIndentLin
e() == TextIndentEachLine || style.getTextIndentType() == TextIndentHanging)) { |
2284 if (style.getTextIndentLine() == TextIndentEachLine) | 2292 if (style.getTextIndentLine() == TextIndentEachLine) |
2285 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueEachLi
ne)); | 2293 list->append(*CSSIdentifierValue::createIdentifier(CSSValueEachL
ine)); |
2286 if (style.getTextIndentType() == TextIndentHanging) | 2294 if (style.getTextIndentType() == TextIndentHanging) |
2287 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueHangin
g)); | 2295 list->append(*CSSIdentifierValue::createIdentifier(CSSValueHangi
ng)); |
2288 } | 2296 } |
2289 return list; | 2297 return list; |
2290 } | 2298 } |
2291 case CSSPropertyTextShadow: | 2299 case CSSPropertyTextShadow: |
2292 return valueForShadowList(style.textShadow(), style, false); | 2300 return valueForShadowList(style.textShadow(), style, false); |
2293 case CSSPropertyTextRendering: | 2301 case CSSPropertyTextRendering: |
2294 return CSSPrimitiveValue::create(style.getFontDescription().textRenderin
g()); | 2302 return CSSIdentifierValue::create(style.getFontDescription().textRenderi
ng()); |
2295 case CSSPropertyTextOverflow: | 2303 case CSSPropertyTextOverflow: |
2296 if (style.getTextOverflow()) | 2304 if (style.getTextOverflow()) |
2297 return CSSPrimitiveValue::createIdentifier(CSSValueEllipsis); | 2305 return CSSIdentifierValue::createIdentifier(CSSValueEllipsis); |
2298 return CSSPrimitiveValue::createIdentifier(CSSValueClip); | 2306 return CSSIdentifierValue::createIdentifier(CSSValueClip); |
2299 case CSSPropertyWebkitTextSecurity: | 2307 case CSSPropertyWebkitTextSecurity: |
2300 return CSSPrimitiveValue::create(style.textSecurity()); | 2308 return CSSIdentifierValue::create(style.textSecurity()); |
2301 case CSSPropertyWebkitTextStrokeColor: | 2309 case CSSPropertyWebkitTextStrokeColor: |
2302 return currentColorOrValidColor(style, style.textStrokeColor()); | 2310 return currentColorOrValidColor(style, style.textStrokeColor()); |
2303 case CSSPropertyWebkitTextStrokeWidth: | 2311 case CSSPropertyWebkitTextStrokeWidth: |
2304 return zoomAdjustedPixelValue(style.textStrokeWidth(), style); | 2312 return zoomAdjustedPixelValue(style.textStrokeWidth(), style); |
2305 case CSSPropertyTextTransform: | 2313 case CSSPropertyTextTransform: |
2306 return CSSPrimitiveValue::create(style.textTransform()); | 2314 return CSSIdentifierValue::create(style.textTransform()); |
2307 case CSSPropertyTop: | 2315 case CSSPropertyTop: |
2308 return valueForPositionOffset(style, CSSPropertyTop, layoutObject); | 2316 return valueForPositionOffset(style, CSSPropertyTop, layoutObject); |
2309 case CSSPropertyTouchAction: | 2317 case CSSPropertyTouchAction: |
2310 return touchActionFlagsToCSSValue(style.getTouchAction()); | 2318 return touchActionFlagsToCSSValue(style.getTouchAction()); |
2311 case CSSPropertyUnicodeBidi: | 2319 case CSSPropertyUnicodeBidi: |
2312 return CSSPrimitiveValue::create(style.unicodeBidi()); | 2320 return CSSIdentifierValue::create(style.unicodeBidi()); |
2313 case CSSPropertyVerticalAlign: | 2321 case CSSPropertyVerticalAlign: |
2314 switch (style.verticalAlign()) { | 2322 switch (style.verticalAlign()) { |
2315 case VerticalAlignBaseline: | 2323 case VerticalAlignBaseline: |
2316 return CSSPrimitiveValue::createIdentifier(CSSValueBaseline); | 2324 return CSSIdentifierValue::createIdentifier(CSSValueBaseline); |
2317 case VerticalAlignMiddle: | 2325 case VerticalAlignMiddle: |
2318 return CSSPrimitiveValue::createIdentifier(CSSValueMiddle); | 2326 return CSSIdentifierValue::createIdentifier(CSSValueMiddle); |
2319 case VerticalAlignSub: | 2327 case VerticalAlignSub: |
2320 return CSSPrimitiveValue::createIdentifier(CSSValueSub); | 2328 return CSSIdentifierValue::createIdentifier(CSSValueSub); |
2321 case VerticalAlignSuper: | 2329 case VerticalAlignSuper: |
2322 return CSSPrimitiveValue::createIdentifier(CSSValueSuper); | 2330 return CSSIdentifierValue::createIdentifier(CSSValueSuper); |
2323 case VerticalAlignTextTop: | 2331 case VerticalAlignTextTop: |
2324 return CSSPrimitiveValue::createIdentifier(CSSValueTextTop); | 2332 return CSSIdentifierValue::createIdentifier(CSSValueTextTop); |
2325 case VerticalAlignTextBottom: | 2333 case VerticalAlignTextBottom: |
2326 return CSSPrimitiveValue::createIdentifier(CSSValueTextBottom); | 2334 return CSSIdentifierValue::createIdentifier(CSSValueTextBottom); |
2327 case VerticalAlignTop: | 2335 case VerticalAlignTop: |
2328 return CSSPrimitiveValue::createIdentifier(CSSValueTop); | 2336 return CSSIdentifierValue::createIdentifier(CSSValueTop); |
2329 case VerticalAlignBottom: | 2337 case VerticalAlignBottom: |
2330 return CSSPrimitiveValue::createIdentifier(CSSValueBottom); | 2338 return CSSIdentifierValue::createIdentifier(CSSValueBottom); |
2331 case VerticalAlignBaselineMiddle: | 2339 case VerticalAlignBaselineMiddle: |
2332 return CSSPrimitiveValue::createIdentifier(CSSValueWebkitBaselineMid
dle); | 2340 return CSSIdentifierValue::createIdentifier(CSSValueWebkitBaselineMi
ddle); |
2333 case VerticalAlignLength: | 2341 case VerticalAlignLength: |
2334 return zoomAdjustedPixelValueForLength(style.getVerticalAlignLength(
), style); | 2342 return zoomAdjustedPixelValueForLength(style.getVerticalAlignLength(
), style); |
2335 } | 2343 } |
2336 ASSERT_NOT_REACHED(); | 2344 ASSERT_NOT_REACHED(); |
2337 return nullptr; | 2345 return nullptr; |
2338 case CSSPropertyVisibility: | 2346 case CSSPropertyVisibility: |
2339 return CSSPrimitiveValue::create(style.visibility()); | 2347 return CSSIdentifierValue::create(style.visibility()); |
2340 case CSSPropertyWhiteSpace: | 2348 case CSSPropertyWhiteSpace: |
2341 return CSSPrimitiveValue::create(style.whiteSpace()); | 2349 return CSSIdentifierValue::create(style.whiteSpace()); |
2342 case CSSPropertyWidows: | 2350 case CSSPropertyWidows: |
2343 return CSSPrimitiveValue::create(style.widows(), CSSPrimitiveValue::Unit
Type::Number); | 2351 return CSSPrimitiveValue::create(style.widows(), CSSPrimitiveValue::Unit
Type::Number); |
2344 case CSSPropertyWidth: | 2352 case CSSPropertyWidth: |
2345 if (layoutObject) { | 2353 if (layoutObject) { |
2346 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width-pro
perty, | 2354 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width-pro
perty, |
2347 // the "width" property does not apply for non-atomic inline element
s. | 2355 // the "width" property does not apply for non-atomic inline element
s. |
2348 if (!layoutObject->isAtomicInlineLevel() && layoutObject->isInline()
) | 2356 if (!layoutObject->isAtomicInlineLevel() && layoutObject->isInline()
) |
2349 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2357 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2350 return zoomAdjustedPixelValue(sizingBox(layoutObject).width(), style
); | 2358 return zoomAdjustedPixelValue(sizingBox(layoutObject).width(), style
); |
2351 } | 2359 } |
2352 return zoomAdjustedPixelValueForLength(style.width(), style); | 2360 return zoomAdjustedPixelValueForLength(style.width(), style); |
2353 case CSSPropertyWillChange: | 2361 case CSSPropertyWillChange: |
2354 return valueForWillChange(style.willChangeProperties(), style.willChange
Contents(), style.willChangeScrollPosition()); | 2362 return valueForWillChange(style.willChangeProperties(), style.willChange
Contents(), style.willChangeScrollPosition()); |
2355 case CSSPropertyWordBreak: | 2363 case CSSPropertyWordBreak: |
2356 return CSSPrimitiveValue::create(style.wordBreak()); | 2364 return CSSIdentifierValue::create(style.wordBreak()); |
2357 case CSSPropertyWordSpacing: | 2365 case CSSPropertyWordSpacing: |
2358 return zoomAdjustedPixelValue(style.wordSpacing(), style); | 2366 return zoomAdjustedPixelValue(style.wordSpacing(), style); |
2359 case CSSPropertyWordWrap: | 2367 case CSSPropertyWordWrap: |
2360 return CSSPrimitiveValue::create(style.overflowWrap()); | 2368 return CSSIdentifierValue::create(style.overflowWrap()); |
2361 case CSSPropertyWebkitLineBreak: | 2369 case CSSPropertyWebkitLineBreak: |
2362 return CSSPrimitiveValue::create(style.getLineBreak()); | 2370 return CSSIdentifierValue::create(style.getLineBreak()); |
2363 case CSSPropertyResize: | 2371 case CSSPropertyResize: |
2364 return CSSPrimitiveValue::create(style.resize()); | 2372 return CSSIdentifierValue::create(style.resize()); |
2365 case CSSPropertyFontKerning: | 2373 case CSSPropertyFontKerning: |
2366 return CSSPrimitiveValue::create(style.getFontDescription().getKerning()
); | 2374 return CSSIdentifierValue::create(style.getFontDescription().getKerning(
)); |
2367 case CSSPropertyWebkitFontSmoothing: | 2375 case CSSPropertyWebkitFontSmoothing: |
2368 return CSSPrimitiveValue::create(style.getFontDescription().fontSmoothin
g()); | 2376 return CSSIdentifierValue::create(style.getFontDescription().fontSmoothi
ng()); |
2369 case CSSPropertyFontVariantLigatures: | 2377 case CSSPropertyFontVariantLigatures: |
2370 return valueForFontVariantLigatures(style); | 2378 return valueForFontVariantLigatures(style); |
2371 case CSSPropertyFontVariantCaps: | 2379 case CSSPropertyFontVariantCaps: |
2372 return valueForFontVariantCaps(style); | 2380 return valueForFontVariantCaps(style); |
2373 case CSSPropertyFontVariantNumeric: | 2381 case CSSPropertyFontVariantNumeric: |
2374 return valueForFontVariantNumeric(style); | 2382 return valueForFontVariantNumeric(style); |
2375 case CSSPropertyZIndex: | 2383 case CSSPropertyZIndex: |
2376 if (style.hasAutoZIndex()) | 2384 if (style.hasAutoZIndex()) |
2377 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2385 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2378 return CSSPrimitiveValue::create(style.zIndex(), CSSPrimitiveValue::Unit
Type::Integer); | 2386 return CSSPrimitiveValue::create(style.zIndex(), CSSPrimitiveValue::Unit
Type::Integer); |
2379 case CSSPropertyZoom: | 2387 case CSSPropertyZoom: |
2380 return CSSPrimitiveValue::create(style.zoom(), CSSPrimitiveValue::UnitTy
pe::Number); | 2388 return CSSPrimitiveValue::create(style.zoom(), CSSPrimitiveValue::UnitTy
pe::Number); |
2381 case CSSPropertyBoxSizing: | 2389 case CSSPropertyBoxSizing: |
2382 if (style.boxSizing() == BoxSizingContentBox) | 2390 if (style.boxSizing() == BoxSizingContentBox) |
2383 return CSSPrimitiveValue::createIdentifier(CSSValueContentBox); | 2391 return CSSIdentifierValue::createIdentifier(CSSValueContentBox); |
2384 return CSSPrimitiveValue::createIdentifier(CSSValueBorderBox); | 2392 return CSSIdentifierValue::createIdentifier(CSSValueBorderBox); |
2385 case CSSPropertyWebkitAppRegion: | 2393 case CSSPropertyWebkitAppRegion: |
2386 return CSSPrimitiveValue::createIdentifier(style.getDraggableRegionMode(
) == DraggableRegionDrag ? CSSValueDrag : CSSValueNoDrag); | 2394 return CSSIdentifierValue::createIdentifier(style.getDraggableRegionMode
() == DraggableRegionDrag ? CSSValueDrag : CSSValueNoDrag); |
2387 case CSSPropertyAnimationDelay: | 2395 case CSSPropertyAnimationDelay: |
2388 return valueForAnimationDelay(style.animations()); | 2396 return valueForAnimationDelay(style.animations()); |
2389 case CSSPropertyAnimationDirection: { | 2397 case CSSPropertyAnimationDirection: { |
2390 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2398 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2391 const CSSAnimationData* animationData = style.animations(); | 2399 const CSSAnimationData* animationData = style.animations(); |
2392 if (animationData) { | 2400 if (animationData) { |
2393 for (size_t i = 0; i < animationData->directionList().size(); ++i) | 2401 for (size_t i = 0; i < animationData->directionList().size(); ++i) |
2394 list->append(*valueForAnimationDirection(animationData->directio
nList()[i])); | 2402 list->append(*valueForAnimationDirection(animationData->directio
nList()[i])); |
2395 } else { | 2403 } else { |
2396 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNormal)); | 2404 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNormal)); |
2397 } | 2405 } |
2398 return list; | 2406 return list; |
2399 } | 2407 } |
2400 case CSSPropertyAnimationDuration: | 2408 case CSSPropertyAnimationDuration: |
2401 return valueForAnimationDuration(style.animations()); | 2409 return valueForAnimationDuration(style.animations()); |
2402 case CSSPropertyAnimationFillMode: { | 2410 case CSSPropertyAnimationFillMode: { |
2403 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2411 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2404 const CSSAnimationData* animationData = style.animations(); | 2412 const CSSAnimationData* animationData = style.animations(); |
2405 if (animationData) { | 2413 if (animationData) { |
2406 for (size_t i = 0; i < animationData->fillModeList().size(); ++i) | 2414 for (size_t i = 0; i < animationData->fillModeList().size(); ++i) |
2407 list->append(*valueForAnimationFillMode(animationData->fillModeL
ist()[i])); | 2415 list->append(*valueForAnimationFillMode(animationData->fillModeL
ist()[i])); |
2408 } else { | 2416 } else { |
2409 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 2417 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)); |
2410 } | 2418 } |
2411 return list; | 2419 return list; |
2412 } | 2420 } |
2413 case CSSPropertyAnimationIterationCount: { | 2421 case CSSPropertyAnimationIterationCount: { |
2414 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2422 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2415 const CSSAnimationData* animationData = style.animations(); | 2423 const CSSAnimationData* animationData = style.animations(); |
2416 if (animationData) { | 2424 if (animationData) { |
2417 for (size_t i = 0; i < animationData->iterationCountList().size(); +
+i) | 2425 for (size_t i = 0; i < animationData->iterationCountList().size(); +
+i) |
2418 list->append(*valueForAnimationIterationCount(animationData->ite
rationCountList()[i])); | 2426 list->append(*valueForAnimationIterationCount(animationData->ite
rationCountList()[i])); |
2419 } else { | 2427 } else { |
2420 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialIte
rationCount(), CSSPrimitiveValue::UnitType::Number)); | 2428 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialIte
rationCount(), CSSPrimitiveValue::UnitType::Number)); |
2421 } | 2429 } |
2422 return list; | 2430 return list; |
2423 } | 2431 } |
2424 case CSSPropertyAnimationName: { | 2432 case CSSPropertyAnimationName: { |
2425 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2433 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2426 const CSSAnimationData* animationData = style.animations(); | 2434 const CSSAnimationData* animationData = style.animations(); |
2427 if (animationData) { | 2435 if (animationData) { |
2428 for (size_t i = 0; i < animationData->nameList().size(); ++i) | 2436 for (size_t i = 0; i < animationData->nameList().size(); ++i) |
2429 list->append(*CSSCustomIdentValue::create(animationData->nameLis
t()[i])); | 2437 list->append(*CSSCustomIdentValue::create(animationData->nameLis
t()[i])); |
2430 } else { | 2438 } else { |
2431 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 2439 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)); |
2432 } | 2440 } |
2433 return list; | 2441 return list; |
2434 } | 2442 } |
2435 case CSSPropertyAnimationPlayState: { | 2443 case CSSPropertyAnimationPlayState: { |
2436 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2444 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2437 const CSSAnimationData* animationData = style.animations(); | 2445 const CSSAnimationData* animationData = style.animations(); |
2438 if (animationData) { | 2446 if (animationData) { |
2439 for (size_t i = 0; i < animationData->playStateList().size(); ++i) | 2447 for (size_t i = 0; i < animationData->playStateList().size(); ++i) |
2440 list->append(*valueForAnimationPlayState(animationData->playStat
eList()[i])); | 2448 list->append(*valueForAnimationPlayState(animationData->playStat
eList()[i])); |
2441 } else { | 2449 } else { |
2442 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueRunning)); | 2450 list->append(*CSSIdentifierValue::createIdentifier(CSSValueRunning))
; |
2443 } | 2451 } |
2444 return list; | 2452 return list; |
2445 } | 2453 } |
2446 case CSSPropertyAnimationTimingFunction: | 2454 case CSSPropertyAnimationTimingFunction: |
2447 return valueForAnimationTimingFunction(style.animations()); | 2455 return valueForAnimationTimingFunction(style.animations()); |
2448 case CSSPropertyAnimation: { | 2456 case CSSPropertyAnimation: { |
2449 const CSSAnimationData* animationData = style.animations(); | 2457 const CSSAnimationData* animationData = style.animations(); |
2450 if (animationData) { | 2458 if (animationData) { |
2451 CSSValueList* animationsList = CSSValueList::createCommaSeparated(); | 2459 CSSValueList* animationsList = CSSValueList::createCommaSeparated(); |
2452 for (size_t i = 0; i < animationData->nameList().size(); ++i) { | 2460 for (size_t i = 0; i < animationData->nameList().size(); ++i) { |
2453 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2461 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2454 list->append(*CSSCustomIdentValue::create(animationData->nameLis
t()[i])); | 2462 list->append(*CSSCustomIdentValue::create(animationData->nameLis
t()[i])); |
2455 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(animationData->durationList(), i), CSSPrimitiveValue::UnitType::Seconds)); | 2463 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(animationData->durationList(), i), CSSPrimitiveValue::UnitType::Seconds)); |
2456 list->append(*createTimingFunctionValue(CSSTimingData::getRepeat
ed(animationData->timingFunctionList(), i).get())); | 2464 list->append(*createTimingFunctionValue(CSSTimingData::getRepeat
ed(animationData->timingFunctionList(), i).get())); |
2457 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(animationData->delayList(), i), CSSPrimitiveValue::UnitType::Seconds)); | 2465 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(animationData->delayList(), i), CSSPrimitiveValue::UnitType::Seconds)); |
2458 list->append(*valueForAnimationIterationCount(CSSTimingData::get
Repeated(animationData->iterationCountList(), i))); | 2466 list->append(*valueForAnimationIterationCount(CSSTimingData::get
Repeated(animationData->iterationCountList(), i))); |
2459 list->append(*valueForAnimationDirection(CSSTimingData::getRepea
ted(animationData->directionList(), i))); | 2467 list->append(*valueForAnimationDirection(CSSTimingData::getRepea
ted(animationData->directionList(), i))); |
2460 list->append(*valueForAnimationFillMode(CSSTimingData::getRepeat
ed(animationData->fillModeList(), i))); | 2468 list->append(*valueForAnimationFillMode(CSSTimingData::getRepeat
ed(animationData->fillModeList(), i))); |
2461 list->append(*valueForAnimationPlayState(CSSTimingData::getRepea
ted(animationData->playStateList(), i))); | 2469 list->append(*valueForAnimationPlayState(CSSTimingData::getRepea
ted(animationData->playStateList(), i))); |
2462 animationsList->append(*list); | 2470 animationsList->append(*list); |
2463 } | 2471 } |
2464 return animationsList; | 2472 return animationsList; |
2465 } | 2473 } |
2466 | 2474 |
2467 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2475 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2468 // animation-name default value. | 2476 // animation-name default value. |
2469 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueNone)); | 2477 list->append(*CSSIdentifierValue::createIdentifier(CSSValueNone)); |
2470 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialDuratio
n(), CSSPrimitiveValue::UnitType::Seconds)); | 2478 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialDuratio
n(), CSSPrimitiveValue::UnitType::Seconds)); |
2471 list->append(*createTimingFunctionValue(CSSAnimationData::initialTimingF
unction().get())); | 2479 list->append(*createTimingFunctionValue(CSSAnimationData::initialTimingF
unction().get())); |
2472 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialDelay()
, CSSPrimitiveValue::UnitType::Seconds)); | 2480 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialDelay()
, CSSPrimitiveValue::UnitType::Seconds)); |
2473 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialIterati
onCount(), CSSPrimitiveValue::UnitType::Number)); | 2481 list->append(*CSSPrimitiveValue::create(CSSAnimationData::initialIterati
onCount(), CSSPrimitiveValue::UnitType::Number)); |
2474 list->append(*valueForAnimationDirection(CSSAnimationData::initialDirect
ion())); | 2482 list->append(*valueForAnimationDirection(CSSAnimationData::initialDirect
ion())); |
2475 list->append(*valueForAnimationFillMode(CSSAnimationData::initialFillMod
e())); | 2483 list->append(*valueForAnimationFillMode(CSSAnimationData::initialFillMod
e())); |
2476 // Initial animation-play-state. | 2484 // Initial animation-play-state. |
2477 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueRunning)); | 2485 list->append(*CSSIdentifierValue::createIdentifier(CSSValueRunning)); |
2478 return list; | 2486 return list; |
2479 } | 2487 } |
2480 case CSSPropertyWebkitAppearance: | 2488 case CSSPropertyWebkitAppearance: |
2481 return CSSPrimitiveValue::create(style.appearance()); | 2489 return CSSIdentifierValue::create(style.appearance()); |
2482 case CSSPropertyBackfaceVisibility: | 2490 case CSSPropertyBackfaceVisibility: |
2483 return CSSPrimitiveValue::createIdentifier((style.backfaceVisibility() =
= BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); | 2491 return CSSIdentifierValue::createIdentifier((style.backfaceVisibility()
== BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); |
2484 case CSSPropertyWebkitBorderImage: | 2492 case CSSPropertyWebkitBorderImage: |
2485 return valueForNinePieceImage(style.borderImage(), style); | 2493 return valueForNinePieceImage(style.borderImage(), style); |
2486 case CSSPropertyBorderImageOutset: | 2494 case CSSPropertyBorderImageOutset: |
2487 return valueForNinePieceImageQuad(style.borderImage().outset(), style); | 2495 return valueForNinePieceImageQuad(style.borderImage().outset(), style); |
2488 case CSSPropertyBorderImageRepeat: | 2496 case CSSPropertyBorderImageRepeat: |
2489 return valueForNinePieceImageRepeat(style.borderImage()); | 2497 return valueForNinePieceImageRepeat(style.borderImage()); |
2490 case CSSPropertyBorderImageSlice: | 2498 case CSSPropertyBorderImageSlice: |
2491 return valueForNinePieceImageSlice(style.borderImage()); | 2499 return valueForNinePieceImageSlice(style.borderImage()); |
2492 case CSSPropertyBorderImageWidth: | 2500 case CSSPropertyBorderImageWidth: |
2493 return valueForNinePieceImageQuad(style.borderImage().borderSlices(), st
yle); | 2501 return valueForNinePieceImageQuad(style.borderImage().borderSlices(), st
yle); |
2494 case CSSPropertyWebkitMaskBoxImage: | 2502 case CSSPropertyWebkitMaskBoxImage: |
2495 return valueForNinePieceImage(style.maskBoxImage(), style); | 2503 return valueForNinePieceImage(style.maskBoxImage(), style); |
2496 case CSSPropertyWebkitMaskBoxImageOutset: | 2504 case CSSPropertyWebkitMaskBoxImageOutset: |
2497 return valueForNinePieceImageQuad(style.maskBoxImage().outset(), style); | 2505 return valueForNinePieceImageQuad(style.maskBoxImage().outset(), style); |
2498 case CSSPropertyWebkitMaskBoxImageRepeat: | 2506 case CSSPropertyWebkitMaskBoxImageRepeat: |
2499 return valueForNinePieceImageRepeat(style.maskBoxImage()); | 2507 return valueForNinePieceImageRepeat(style.maskBoxImage()); |
2500 case CSSPropertyWebkitMaskBoxImageSlice: | 2508 case CSSPropertyWebkitMaskBoxImageSlice: |
2501 return valueForNinePieceImageSlice(style.maskBoxImage()); | 2509 return valueForNinePieceImageSlice(style.maskBoxImage()); |
2502 case CSSPropertyWebkitMaskBoxImageWidth: | 2510 case CSSPropertyWebkitMaskBoxImageWidth: |
2503 return valueForNinePieceImageQuad(style.maskBoxImage().borderSlices(), s
tyle); | 2511 return valueForNinePieceImageQuad(style.maskBoxImage().borderSlices(), s
tyle); |
2504 case CSSPropertyWebkitMaskBoxImageSource: | 2512 case CSSPropertyWebkitMaskBoxImageSource: |
2505 if (style.maskBoxImageSource()) | 2513 if (style.maskBoxImageSource()) |
2506 return style.maskBoxImageSource()->computedCSSValue(); | 2514 return style.maskBoxImageSource()->computedCSSValue(); |
2507 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2515 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2508 case CSSPropertyWebkitFontSizeDelta: | 2516 case CSSPropertyWebkitFontSizeDelta: |
2509 // Not a real style property -- used by the editing engine -- so has no
computed value. | 2517 // Not a real style property -- used by the editing engine -- so has no
computed value. |
2510 return nullptr; | 2518 return nullptr; |
2511 case CSSPropertyWebkitMarginBottomCollapse: | 2519 case CSSPropertyWebkitMarginBottomCollapse: |
2512 case CSSPropertyWebkitMarginAfterCollapse: | 2520 case CSSPropertyWebkitMarginAfterCollapse: |
2513 return CSSPrimitiveValue::create(style.marginAfterCollapse()); | 2521 return CSSIdentifierValue::create(style.marginAfterCollapse()); |
2514 case CSSPropertyWebkitMarginTopCollapse: | 2522 case CSSPropertyWebkitMarginTopCollapse: |
2515 case CSSPropertyWebkitMarginBeforeCollapse: | 2523 case CSSPropertyWebkitMarginBeforeCollapse: |
2516 return CSSPrimitiveValue::create(style.marginBeforeCollapse()); | 2524 return CSSIdentifierValue::create(style.marginBeforeCollapse()); |
2517 case CSSPropertyPerspective: | 2525 case CSSPropertyPerspective: |
2518 if (!style.hasPerspective()) | 2526 if (!style.hasPerspective()) |
2519 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2527 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2520 return zoomAdjustedPixelValue(style.perspective(), style); | 2528 return zoomAdjustedPixelValue(style.perspective(), style); |
2521 case CSSPropertyPerspectiveOrigin: { | 2529 case CSSPropertyPerspectiveOrigin: { |
2522 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2530 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2523 if (layoutObject) { | 2531 if (layoutObject) { |
2524 LayoutRect box; | 2532 LayoutRect box; |
2525 if (layoutObject->isBox()) | 2533 if (layoutObject->isBox()) |
2526 box = toLayoutBox(layoutObject)->borderBoxRect(); | 2534 box = toLayoutBox(layoutObject)->borderBoxRect(); |
2527 | 2535 |
2528 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.per
spectiveOriginX(), box.width()), style)); | 2536 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.per
spectiveOriginX(), box.width()), style)); |
2529 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.per
spectiveOriginY(), box.height()), style)); | 2537 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.per
spectiveOriginY(), box.height()), style)); |
2530 } else { | 2538 } else { |
2531 list->append(*zoomAdjustedPixelValueForLength(style.perspectiveOrigi
nX(), style)); | 2539 list->append(*zoomAdjustedPixelValueForLength(style.perspectiveOrigi
nX(), style)); |
2532 list->append(*zoomAdjustedPixelValueForLength(style.perspectiveOrigi
nY(), style)); | 2540 list->append(*zoomAdjustedPixelValueForLength(style.perspectiveOrigi
nY(), style)); |
2533 } | 2541 } |
2534 return list; | 2542 return list; |
2535 } | 2543 } |
2536 case CSSPropertyWebkitRtlOrdering: | 2544 case CSSPropertyWebkitRtlOrdering: |
2537 return CSSPrimitiveValue::createIdentifier(style.rtlOrdering() ? CSSValu
eVisual : CSSValueLogical); | 2545 return CSSIdentifierValue::createIdentifier(style.rtlOrdering() ? CSSVal
ueVisual : CSSValueLogical); |
2538 case CSSPropertyWebkitTapHighlightColor: | 2546 case CSSPropertyWebkitTapHighlightColor: |
2539 return currentColorOrValidColor(style, style.tapHighlightColor()); | 2547 return currentColorOrValidColor(style, style.tapHighlightColor()); |
2540 case CSSPropertyWebkitUserDrag: | 2548 case CSSPropertyWebkitUserDrag: |
2541 return CSSPrimitiveValue::create(style.userDrag()); | 2549 return CSSIdentifierValue::create(style.userDrag()); |
2542 case CSSPropertyUserSelect: | 2550 case CSSPropertyUserSelect: |
2543 return CSSPrimitiveValue::create(style.userSelect()); | 2551 return CSSIdentifierValue::create(style.userSelect()); |
2544 case CSSPropertyBorderBottomLeftRadius: | 2552 case CSSPropertyBorderBottomLeftRadius: |
2545 return &valueForBorderRadiusCorner(style.borderBottomLeftRadius(), style
); | 2553 return &valueForBorderRadiusCorner(style.borderBottomLeftRadius(), style
); |
2546 case CSSPropertyBorderBottomRightRadius: | 2554 case CSSPropertyBorderBottomRightRadius: |
2547 return &valueForBorderRadiusCorner(style.borderBottomRightRadius(), styl
e); | 2555 return &valueForBorderRadiusCorner(style.borderBottomRightRadius(), styl
e); |
2548 case CSSPropertyBorderTopLeftRadius: | 2556 case CSSPropertyBorderTopLeftRadius: |
2549 return &valueForBorderRadiusCorner(style.borderTopLeftRadius(), style); | 2557 return &valueForBorderRadiusCorner(style.borderTopLeftRadius(), style); |
2550 case CSSPropertyBorderTopRightRadius: | 2558 case CSSPropertyBorderTopRightRadius: |
2551 return &valueForBorderRadiusCorner(style.borderTopRightRadius(), style); | 2559 return &valueForBorderRadiusCorner(style.borderTopRightRadius(), style); |
2552 case CSSPropertyClip: { | 2560 case CSSPropertyClip: { |
2553 if (style.hasAutoClip()) | 2561 if (style.hasAutoClip()) |
2554 return CSSPrimitiveValue::createIdentifier(CSSValueAuto); | 2562 return CSSIdentifierValue::createIdentifier(CSSValueAuto); |
2555 CSSPrimitiveValue* top = style.clip().top().isAuto() | 2563 CSSValue* top = zoomAdjustedPixelValueOrAuto(style.clip().top(), style); |
2556 ? CSSPrimitiveValue::createIdentifier(CSSValueAuto) | 2564 CSSValue* right = zoomAdjustedPixelValueOrAuto(style.clip().right(), sty
le); |
2557 : zoomAdjustedPixelValue(style.clip().top().value(), style); | 2565 CSSValue* bottom = zoomAdjustedPixelValueOrAuto(style.clip().bottom(), s
tyle); |
2558 CSSPrimitiveValue* right = style.clip().right().isAuto() | 2566 CSSValue* left = zoomAdjustedPixelValueOrAuto(style.clip().left(), style
); |
2559 ? CSSPrimitiveValue::createIdentifier(CSSValueAuto) | |
2560 : zoomAdjustedPixelValue(style.clip().right().value(), style); | |
2561 CSSPrimitiveValue* bottom = style.clip().bottom().isAuto() | |
2562 ? CSSPrimitiveValue::createIdentifier(CSSValueAuto) | |
2563 : zoomAdjustedPixelValue(style.clip().bottom().value(), style); | |
2564 CSSPrimitiveValue* left = style.clip().left().isAuto() | |
2565 ? CSSPrimitiveValue::createIdentifier(CSSValueAuto) | |
2566 : zoomAdjustedPixelValue(style.clip().left().value(), style); | |
2567 return CSSQuadValue::create(top, right, bottom, left, CSSQuadValue::Seri
alizeAsRect); | 2567 return CSSQuadValue::create(top, right, bottom, left, CSSQuadValue::Seri
alizeAsRect); |
2568 } | 2568 } |
2569 case CSSPropertySpeak: | 2569 case CSSPropertySpeak: |
2570 return CSSPrimitiveValue::create(style.speak()); | 2570 return CSSIdentifierValue::create(style.speak()); |
2571 case CSSPropertyTransform: | 2571 case CSSPropertyTransform: |
2572 return computedTransform(layoutObject, style); | 2572 return computedTransform(layoutObject, style); |
2573 case CSSPropertyTransformOrigin: { | 2573 case CSSPropertyTransformOrigin: { |
2574 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2574 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2575 if (layoutObject) { | 2575 if (layoutObject) { |
2576 LayoutRect box; | 2576 LayoutRect box; |
2577 if (layoutObject->isBox()) | 2577 if (layoutObject->isBox()) |
2578 box = toLayoutBox(layoutObject)->borderBoxRect(); | 2578 box = toLayoutBox(layoutObject)->borderBoxRect(); |
2579 | 2579 |
2580 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.tra
nsformOriginX(), box.width()), style)); | 2580 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.tra
nsformOriginX(), box.width()), style)); |
2581 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.tra
nsformOriginY(), box.height()), style)); | 2581 list->append(*zoomAdjustedPixelValue(minimumValueForLength(style.tra
nsformOriginY(), box.height()), style)); |
2582 if (style.transformOriginZ() != 0) | 2582 if (style.transformOriginZ() != 0) |
2583 list->append(*zoomAdjustedPixelValue(style.transformOriginZ(), s
tyle)); | 2583 list->append(*zoomAdjustedPixelValue(style.transformOriginZ(), s
tyle)); |
2584 } else { | 2584 } else { |
2585 list->append(*zoomAdjustedPixelValueForLength(style.transformOriginX
(), style)); | 2585 list->append(*zoomAdjustedPixelValueForLength(style.transformOriginX
(), style)); |
2586 list->append(*zoomAdjustedPixelValueForLength(style.transformOriginY
(), style)); | 2586 list->append(*zoomAdjustedPixelValueForLength(style.transformOriginY
(), style)); |
2587 if (style.transformOriginZ() != 0) | 2587 if (style.transformOriginZ() != 0) |
2588 list->append(*zoomAdjustedPixelValue(style.transformOriginZ(), s
tyle)); | 2588 list->append(*zoomAdjustedPixelValue(style.transformOriginZ(), s
tyle)); |
2589 } | 2589 } |
2590 return list; | 2590 return list; |
2591 } | 2591 } |
2592 case CSSPropertyTransformStyle: | 2592 case CSSPropertyTransformStyle: |
2593 return CSSPrimitiveValue::createIdentifier((style.transformStyle3D() ==
TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); | 2593 return CSSIdentifierValue::createIdentifier((style.transformStyle3D() ==
TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); |
2594 case CSSPropertyTransitionDelay: | 2594 case CSSPropertyTransitionDelay: |
2595 return valueForAnimationDelay(style.transitions()); | 2595 return valueForAnimationDelay(style.transitions()); |
2596 case CSSPropertyTransitionDuration: | 2596 case CSSPropertyTransitionDuration: |
2597 return valueForAnimationDuration(style.transitions()); | 2597 return valueForAnimationDuration(style.transitions()); |
2598 case CSSPropertyTransitionProperty: | 2598 case CSSPropertyTransitionProperty: |
2599 return valueForTransitionProperty(style.transitions()); | 2599 return valueForTransitionProperty(style.transitions()); |
2600 case CSSPropertyTransitionTimingFunction: | 2600 case CSSPropertyTransitionTimingFunction: |
2601 return valueForAnimationTimingFunction(style.transitions()); | 2601 return valueForAnimationTimingFunction(style.transitions()); |
2602 case CSSPropertyTransition: { | 2602 case CSSPropertyTransition: { |
2603 const CSSTransitionData* transitionData = style.transitions(); | 2603 const CSSTransitionData* transitionData = style.transitions(); |
2604 if (transitionData) { | 2604 if (transitionData) { |
2605 CSSValueList* transitionsList = CSSValueList::createCommaSeparated()
; | 2605 CSSValueList* transitionsList = CSSValueList::createCommaSeparated()
; |
2606 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { | 2606 for (size_t i = 0; i < transitionData->propertyList().size(); ++i) { |
2607 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2607 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2608 list->append(*createTransitionPropertyValue(transitionData->prop
ertyList()[i])); | 2608 list->append(*createTransitionPropertyValue(transitionData->prop
ertyList()[i])); |
2609 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(transitionData->durationList(), i), CSSPrimitiveValue::UnitType::Seconds)); | 2609 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(transitionData->durationList(), i), CSSPrimitiveValue::UnitType::Seconds)); |
2610 list->append(*createTimingFunctionValue(CSSTimingData::getRepeat
ed(transitionData->timingFunctionList(), i).get())); | 2610 list->append(*createTimingFunctionValue(CSSTimingData::getRepeat
ed(transitionData->timingFunctionList(), i).get())); |
2611 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(transitionData->delayList(), i), CSSPrimitiveValue::UnitType::Seconds)); | 2611 list->append(*CSSPrimitiveValue::create(CSSTimingData::getRepeat
ed(transitionData->delayList(), i), CSSPrimitiveValue::UnitType::Seconds)); |
2612 transitionsList->append(*list); | 2612 transitionsList->append(*list); |
2613 } | 2613 } |
2614 return transitionsList; | 2614 return transitionsList; |
2615 } | 2615 } |
2616 | 2616 |
2617 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2617 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2618 // transition-property default value. | 2618 // transition-property default value. |
2619 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueAll)); | 2619 list->append(*CSSIdentifierValue::createIdentifier(CSSValueAll)); |
2620 list->append(*CSSPrimitiveValue::create(CSSTransitionData::initialDurati
on(), CSSPrimitiveValue::UnitType::Seconds)); | 2620 list->append(*CSSPrimitiveValue::create(CSSTransitionData::initialDurati
on(), CSSPrimitiveValue::UnitType::Seconds)); |
2621 list->append(*createTimingFunctionValue(CSSTransitionData::initialTiming
Function().get())); | 2621 list->append(*createTimingFunctionValue(CSSTransitionData::initialTiming
Function().get())); |
2622 list->append(*CSSPrimitiveValue::create(CSSTransitionData::initialDelay(
), CSSPrimitiveValue::UnitType::Seconds)); | 2622 list->append(*CSSPrimitiveValue::create(CSSTransitionData::initialDelay(
), CSSPrimitiveValue::UnitType::Seconds)); |
2623 return list; | 2623 return list; |
2624 } | 2624 } |
2625 case CSSPropertyPointerEvents: | 2625 case CSSPropertyPointerEvents: |
2626 return CSSPrimitiveValue::create(style.pointerEvents()); | 2626 return CSSIdentifierValue::create(style.pointerEvents()); |
2627 case CSSPropertyWritingMode: | 2627 case CSSPropertyWritingMode: |
2628 case CSSPropertyWebkitWritingMode: | 2628 case CSSPropertyWebkitWritingMode: |
2629 return CSSPrimitiveValue::create(style.getWritingMode()); | 2629 return CSSIdentifierValue::create(style.getWritingMode()); |
2630 case CSSPropertyWebkitTextCombine: | 2630 case CSSPropertyWebkitTextCombine: |
2631 if (style.getTextCombine() == TextCombineAll) | 2631 if (style.getTextCombine() == TextCombineAll) |
2632 return CSSPrimitiveValue::createIdentifier(CSSValueHorizontal); | 2632 return CSSIdentifierValue::createIdentifier(CSSValueHorizontal); |
2633 case CSSPropertyTextCombineUpright: | 2633 case CSSPropertyTextCombineUpright: |
2634 return CSSPrimitiveValue::create(style.getTextCombine()); | 2634 return CSSIdentifierValue::create(style.getTextCombine()); |
2635 case CSSPropertyWebkitTextOrientation: | 2635 case CSSPropertyWebkitTextOrientation: |
2636 if (style.getTextOrientation() == TextOrientationMixed) | 2636 if (style.getTextOrientation() == TextOrientationMixed) |
2637 return CSSPrimitiveValue::createIdentifier(CSSValueVerticalRight); | 2637 return CSSIdentifierValue::createIdentifier(CSSValueVerticalRight); |
2638 case CSSPropertyTextOrientation: | 2638 case CSSPropertyTextOrientation: |
2639 return CSSPrimitiveValue::create(style.getTextOrientation()); | 2639 return CSSIdentifierValue::create(style.getTextOrientation()); |
2640 case CSSPropertyContent: | 2640 case CSSPropertyContent: |
2641 return valueForContentData(style); | 2641 return valueForContentData(style); |
2642 case CSSPropertyCounterIncrement: | 2642 case CSSPropertyCounterIncrement: |
2643 return valueForCounterDirectives(style, propertyID); | 2643 return valueForCounterDirectives(style, propertyID); |
2644 case CSSPropertyCounterReset: | 2644 case CSSPropertyCounterReset: |
2645 return valueForCounterDirectives(style, propertyID); | 2645 return valueForCounterDirectives(style, propertyID); |
2646 case CSSPropertyClipPath: | 2646 case CSSPropertyClipPath: |
2647 if (ClipPathOperation* operation = style.clipPath()) { | 2647 if (ClipPathOperation* operation = style.clipPath()) { |
2648 if (operation->type() == ClipPathOperation::SHAPE) | 2648 if (operation->type() == ClipPathOperation::SHAPE) |
2649 return valueForBasicShape(style, toShapeClipPathOperation(operat
ion)->basicShape()); | 2649 return valueForBasicShape(style, toShapeClipPathOperation(operat
ion)->basicShape()); |
2650 if (operation->type() == ClipPathOperation::REFERENCE) | 2650 if (operation->type() == ClipPathOperation::REFERENCE) |
2651 return CSSURIValue::create(toReferenceClipPathOperation(operatio
n)->url()); | 2651 return CSSURIValue::create(toReferenceClipPathOperation(operatio
n)->url()); |
2652 } | 2652 } |
2653 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2653 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2654 case CSSPropertyShapeMargin: | 2654 case CSSPropertyShapeMargin: |
2655 return CSSPrimitiveValue::create(style.shapeMargin(), style.effectiveZoo
m()); | 2655 return CSSValue::create(style.shapeMargin(), style.effectiveZoom()); |
2656 case CSSPropertyShapeImageThreshold: | 2656 case CSSPropertyShapeImageThreshold: |
2657 return CSSPrimitiveValue::create(style.shapeImageThreshold(), CSSPrimiti
veValue::UnitType::Number); | 2657 return CSSPrimitiveValue::create(style.shapeImageThreshold(), CSSPrimiti
veValue::UnitType::Number); |
2658 case CSSPropertyShapeOutside: | 2658 case CSSPropertyShapeOutside: |
2659 return valueForShape(style, style.shapeOutside()); | 2659 return valueForShape(style, style.shapeOutside()); |
2660 case CSSPropertyFilter: | 2660 case CSSPropertyFilter: |
2661 return valueForFilter(style, style.filter()); | 2661 return valueForFilter(style, style.filter()); |
2662 case CSSPropertyBackdropFilter: | 2662 case CSSPropertyBackdropFilter: |
2663 return valueForFilter(style, style.backdropFilter()); | 2663 return valueForFilter(style, style.backdropFilter()); |
2664 case CSSPropertyMixBlendMode: | 2664 case CSSPropertyMixBlendMode: |
2665 return CSSPrimitiveValue::create(style.blendMode()); | 2665 return CSSIdentifierValue::create(style.blendMode()); |
2666 | 2666 |
2667 case CSSPropertyBackgroundBlendMode: { | 2667 case CSSPropertyBackgroundBlendMode: { |
2668 CSSValueList* list = CSSValueList::createCommaSeparated(); | 2668 CSSValueList* list = CSSValueList::createCommaSeparated(); |
2669 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer;
currLayer = currLayer->next()) | 2669 for (const FillLayer* currLayer = &style.backgroundLayers(); currLayer;
currLayer = currLayer->next()) |
2670 list->append(*CSSPrimitiveValue::create(currLayer->blendMode())); | 2670 list->append(*CSSIdentifierValue::create(currLayer->blendMode())); |
2671 return list; | 2671 return list; |
2672 } | 2672 } |
2673 case CSSPropertyBackground: | 2673 case CSSPropertyBackground: |
2674 return valuesForBackgroundShorthand(style, layoutObject, styledNode, all
owVisitedStyle); | 2674 return valuesForBackgroundShorthand(style, layoutObject, styledNode, all
owVisitedStyle); |
2675 case CSSPropertyBorder: { | 2675 case CSSPropertyBorder: { |
2676 const CSSValue* value = get(CSSPropertyBorderTop, style, layoutObject, s
tyledNode, allowVisitedStyle); | 2676 const CSSValue* value = get(CSSPropertyBorderTop, style, layoutObject, s
tyledNode, allowVisitedStyle); |
2677 const CSSPropertyID properties[] = { | 2677 const CSSPropertyID properties[] = { |
2678 CSSPropertyBorderRight, | 2678 CSSPropertyBorderRight, |
2679 CSSPropertyBorderBottom, | 2679 CSSPropertyBorderBottom, |
2680 CSSPropertyBorderLeft | 2680 CSSPropertyBorderLeft |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2719 case CSSPropertyBackgroundRepeatX: | 2719 case CSSPropertyBackgroundRepeatX: |
2720 case CSSPropertyBackgroundRepeatY: | 2720 case CSSPropertyBackgroundRepeatY: |
2721 return nullptr; | 2721 return nullptr; |
2722 | 2722 |
2723 case CSSPropertyMotion: | 2723 case CSSPropertyMotion: |
2724 return valuesForShorthandProperty(motionShorthand(), style, layoutObject
, styledNode, allowVisitedStyle); | 2724 return valuesForShorthandProperty(motionShorthand(), style, layoutObject
, styledNode, allowVisitedStyle); |
2725 | 2725 |
2726 case CSSPropertyMotionPath: | 2726 case CSSPropertyMotionPath: |
2727 if (const StylePath* styleMotionPath = style.motionPath()) | 2727 if (const StylePath* styleMotionPath = style.motionPath()) |
2728 return styleMotionPath->computedCSSValue(); | 2728 return styleMotionPath->computedCSSValue(); |
2729 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2729 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2730 | 2730 |
2731 case CSSPropertyMotionOffset: | 2731 case CSSPropertyMotionOffset: |
2732 return zoomAdjustedPixelValueForLength(style.motionOffset(), style); | 2732 return zoomAdjustedPixelValueForLength(style.motionOffset(), style); |
2733 | 2733 |
2734 case CSSPropertyMotionRotation: { | 2734 case CSSPropertyMotionRotation: { |
2735 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2735 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2736 if (style.motionRotation().type == MotionRotationAuto) | 2736 if (style.motionRotation().type == MotionRotationAuto) |
2737 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueAuto)); | 2737 list->append(*CSSIdentifierValue::createIdentifier(CSSValueAuto)); |
2738 list->append(*CSSPrimitiveValue::create(style.motionRotation().angle, CS
SPrimitiveValue::UnitType::Degrees)); | 2738 list->append(*CSSPrimitiveValue::create(style.motionRotation().angle, CS
SPrimitiveValue::UnitType::Degrees)); |
2739 return list; | 2739 return list; |
2740 } | 2740 } |
2741 | 2741 |
2742 // Unimplemented CSS 3 properties (including CSS3 shorthand properties). | 2742 // Unimplemented CSS 3 properties (including CSS3 shorthand properties). |
2743 case CSSPropertyWebkitTextEmphasis: | 2743 case CSSPropertyWebkitTextEmphasis: |
2744 return nullptr; | 2744 return nullptr; |
2745 | 2745 |
2746 // Directional properties are resolved by resolveDirectionAwareProperty() be
fore the switch. | 2746 // Directional properties are resolved by resolveDirectionAwareProperty() be
fore the switch. |
2747 case CSSPropertyWebkitBorderEnd: | 2747 case CSSPropertyWebkitBorderEnd: |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2802 | 2802 |
2803 // @viewport rule properties. | 2803 // @viewport rule properties. |
2804 case CSSPropertyMaxZoom: | 2804 case CSSPropertyMaxZoom: |
2805 case CSSPropertyMinZoom: | 2805 case CSSPropertyMinZoom: |
2806 case CSSPropertyOrientation: | 2806 case CSSPropertyOrientation: |
2807 case CSSPropertyUserZoom: | 2807 case CSSPropertyUserZoom: |
2808 return nullptr; | 2808 return nullptr; |
2809 | 2809 |
2810 // SVG properties. | 2810 // SVG properties. |
2811 case CSSPropertyClipRule: | 2811 case CSSPropertyClipRule: |
2812 return CSSPrimitiveValue::create(svgStyle.clipRule()); | 2812 return CSSIdentifierValue::create(svgStyle.clipRule()); |
2813 case CSSPropertyFloodOpacity: | 2813 case CSSPropertyFloodOpacity: |
2814 return CSSPrimitiveValue::create(svgStyle.floodOpacity(), CSSPrimitiveVa
lue::UnitType::Number); | 2814 return CSSPrimitiveValue::create(svgStyle.floodOpacity(), CSSPrimitiveVa
lue::UnitType::Number); |
2815 case CSSPropertyStopOpacity: | 2815 case CSSPropertyStopOpacity: |
2816 return CSSPrimitiveValue::create(svgStyle.stopOpacity(), CSSPrimitiveVal
ue::UnitType::Number); | 2816 return CSSPrimitiveValue::create(svgStyle.stopOpacity(), CSSPrimitiveVal
ue::UnitType::Number); |
2817 case CSSPropertyColorInterpolation: | 2817 case CSSPropertyColorInterpolation: |
2818 return CSSPrimitiveValue::create(svgStyle.colorInterpolation()); | 2818 return CSSIdentifierValue::create(svgStyle.colorInterpolation()); |
2819 case CSSPropertyColorInterpolationFilters: | 2819 case CSSPropertyColorInterpolationFilters: |
2820 return CSSPrimitiveValue::create(svgStyle.colorInterpolationFilters()); | 2820 return CSSIdentifierValue::create(svgStyle.colorInterpolationFilters()); |
2821 case CSSPropertyFillOpacity: | 2821 case CSSPropertyFillOpacity: |
2822 return CSSPrimitiveValue::create(svgStyle.fillOpacity(), CSSPrimitiveVal
ue::UnitType::Number); | 2822 return CSSPrimitiveValue::create(svgStyle.fillOpacity(), CSSPrimitiveVal
ue::UnitType::Number); |
2823 case CSSPropertyFillRule: | 2823 case CSSPropertyFillRule: |
2824 return CSSPrimitiveValue::create(svgStyle.fillRule()); | 2824 return CSSIdentifierValue::create(svgStyle.fillRule()); |
2825 case CSSPropertyColorRendering: | 2825 case CSSPropertyColorRendering: |
2826 return CSSPrimitiveValue::create(svgStyle.colorRendering()); | 2826 return CSSIdentifierValue::create(svgStyle.colorRendering()); |
2827 case CSSPropertyShapeRendering: | 2827 case CSSPropertyShapeRendering: |
2828 return CSSPrimitiveValue::create(svgStyle.shapeRendering()); | 2828 return CSSIdentifierValue::create(svgStyle.shapeRendering()); |
2829 case CSSPropertyStrokeLinecap: | 2829 case CSSPropertyStrokeLinecap: |
2830 return CSSPrimitiveValue::create(svgStyle.capStyle()); | 2830 return CSSIdentifierValue::create(svgStyle.capStyle()); |
2831 case CSSPropertyStrokeLinejoin: | 2831 case CSSPropertyStrokeLinejoin: |
2832 return CSSPrimitiveValue::create(svgStyle.joinStyle()); | 2832 return CSSIdentifierValue::create(svgStyle.joinStyle()); |
2833 case CSSPropertyStrokeMiterlimit: | 2833 case CSSPropertyStrokeMiterlimit: |
2834 return CSSPrimitiveValue::create(svgStyle.strokeMiterLimit(), CSSPrimiti
veValue::UnitType::Number); | 2834 return CSSPrimitiveValue::create(svgStyle.strokeMiterLimit(), CSSPrimiti
veValue::UnitType::Number); |
2835 case CSSPropertyStrokeOpacity: | 2835 case CSSPropertyStrokeOpacity: |
2836 return CSSPrimitiveValue::create(svgStyle.strokeOpacity(), CSSPrimitiveV
alue::UnitType::Number); | 2836 return CSSPrimitiveValue::create(svgStyle.strokeOpacity(), CSSPrimitiveV
alue::UnitType::Number); |
2837 case CSSPropertyAlignmentBaseline: | 2837 case CSSPropertyAlignmentBaseline: |
2838 return CSSPrimitiveValue::create(svgStyle.alignmentBaseline()); | 2838 return CSSIdentifierValue::create(svgStyle.alignmentBaseline()); |
2839 case CSSPropertyDominantBaseline: | 2839 case CSSPropertyDominantBaseline: |
2840 return CSSPrimitiveValue::create(svgStyle.dominantBaseline()); | 2840 return CSSIdentifierValue::create(svgStyle.dominantBaseline()); |
2841 case CSSPropertyTextAnchor: | 2841 case CSSPropertyTextAnchor: |
2842 return CSSPrimitiveValue::create(svgStyle.textAnchor()); | 2842 return CSSIdentifierValue::create(svgStyle.textAnchor()); |
2843 case CSSPropertyMask: | 2843 case CSSPropertyMask: |
2844 if (!svgStyle.maskerResource().isEmpty()) | 2844 if (!svgStyle.maskerResource().isEmpty()) |
2845 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
skerResource())); | 2845 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
skerResource())); |
2846 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2846 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2847 case CSSPropertyFloodColor: | 2847 case CSSPropertyFloodColor: |
2848 return currentColorOrValidColor(style, svgStyle.floodColor()); | 2848 return currentColorOrValidColor(style, svgStyle.floodColor()); |
2849 case CSSPropertyLightingColor: | 2849 case CSSPropertyLightingColor: |
2850 return currentColorOrValidColor(style, svgStyle.lightingColor()); | 2850 return currentColorOrValidColor(style, svgStyle.lightingColor()); |
2851 case CSSPropertyStopColor: | 2851 case CSSPropertyStopColor: |
2852 return currentColorOrValidColor(style, svgStyle.stopColor()); | 2852 return currentColorOrValidColor(style, svgStyle.stopColor()); |
2853 case CSSPropertyFill: | 2853 case CSSPropertyFill: |
2854 return adjustSVGPaintForCurrentColor(svgStyle.fillPaintType(), svgStyle.
fillPaintUri(), svgStyle.fillPaintColor(), style.color()); | 2854 return adjustSVGPaintForCurrentColor(svgStyle.fillPaintType(), svgStyle.
fillPaintUri(), svgStyle.fillPaintColor(), style.color()); |
2855 case CSSPropertyMarkerEnd: | 2855 case CSSPropertyMarkerEnd: |
2856 if (!svgStyle.markerEndResource().isEmpty()) | 2856 if (!svgStyle.markerEndResource().isEmpty()) |
2857 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerEndResource())); | 2857 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerEndResource())); |
2858 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2858 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2859 case CSSPropertyMarkerMid: | 2859 case CSSPropertyMarkerMid: |
2860 if (!svgStyle.markerMidResource().isEmpty()) | 2860 if (!svgStyle.markerMidResource().isEmpty()) |
2861 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerMidResource())); | 2861 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerMidResource())); |
2862 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2862 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2863 case CSSPropertyMarkerStart: | 2863 case CSSPropertyMarkerStart: |
2864 if (!svgStyle.markerStartResource().isEmpty()) | 2864 if (!svgStyle.markerStartResource().isEmpty()) |
2865 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerStartResource())); | 2865 return CSSURIValue::create(serializeAsFragmentIdentifier(svgStyle.ma
rkerStartResource())); |
2866 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2866 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2867 case CSSPropertyStroke: | 2867 case CSSPropertyStroke: |
2868 return adjustSVGPaintForCurrentColor(svgStyle.strokePaintType(), svgStyl
e.strokePaintUri(), svgStyle.strokePaintColor(), style.color()); | 2868 return adjustSVGPaintForCurrentColor(svgStyle.strokePaintType(), svgStyl
e.strokePaintUri(), svgStyle.strokePaintColor(), style.color()); |
2869 case CSSPropertyStrokeDasharray: | 2869 case CSSPropertyStrokeDasharray: |
2870 return strokeDashArrayToCSSValueList(*svgStyle.strokeDashArray(), style)
; | 2870 return strokeDashArrayToCSSValueList(*svgStyle.strokeDashArray(), style)
; |
2871 case CSSPropertyStrokeDashoffset: | 2871 case CSSPropertyStrokeDashoffset: |
2872 return zoomAdjustedPixelValueForLength(svgStyle.strokeDashOffset(), styl
e); | 2872 return zoomAdjustedPixelValueForLength(svgStyle.strokeDashOffset(), styl
e); |
2873 case CSSPropertyStrokeWidth: | 2873 case CSSPropertyStrokeWidth: |
2874 return pixelValueForUnzoomedLength(svgStyle.strokeWidth(), style); | 2874 return pixelValueForUnzoomedLength(svgStyle.strokeWidth(), style); |
2875 case CSSPropertyBaselineShift: { | 2875 case CSSPropertyBaselineShift: { |
2876 switch (svgStyle.baselineShift()) { | 2876 switch (svgStyle.baselineShift()) { |
2877 case BS_SUPER: | 2877 case BS_SUPER: |
2878 return CSSPrimitiveValue::createIdentifier(CSSValueSuper); | 2878 return CSSIdentifierValue::createIdentifier(CSSValueSuper); |
2879 case BS_SUB: | 2879 case BS_SUB: |
2880 return CSSPrimitiveValue::createIdentifier(CSSValueSub); | 2880 return CSSIdentifierValue::createIdentifier(CSSValueSub); |
2881 case BS_LENGTH: | 2881 case BS_LENGTH: |
2882 return zoomAdjustedPixelValueForLength(svgStyle.baselineShiftValue()
, style); | 2882 return zoomAdjustedPixelValueForLength(svgStyle.baselineShiftValue()
, style); |
2883 } | 2883 } |
2884 ASSERT_NOT_REACHED(); | 2884 ASSERT_NOT_REACHED(); |
2885 return nullptr; | 2885 return nullptr; |
2886 } | 2886 } |
2887 case CSSPropertyBufferedRendering: | 2887 case CSSPropertyBufferedRendering: |
2888 return CSSPrimitiveValue::create(svgStyle.bufferedRendering()); | 2888 return CSSIdentifierValue::create(svgStyle.bufferedRendering()); |
2889 case CSSPropertyPaintOrder: | 2889 case CSSPropertyPaintOrder: |
2890 return paintOrderToCSSValueList(svgStyle); | 2890 return paintOrderToCSSValueList(svgStyle); |
2891 case CSSPropertyVectorEffect: | 2891 case CSSPropertyVectorEffect: |
2892 return CSSPrimitiveValue::create(svgStyle.vectorEffect()); | 2892 return CSSIdentifierValue::create(svgStyle.vectorEffect()); |
2893 case CSSPropertyMaskType: | 2893 case CSSPropertyMaskType: |
2894 return CSSPrimitiveValue::create(svgStyle.maskType()); | 2894 return CSSIdentifierValue::create(svgStyle.maskType()); |
2895 case CSSPropertyMarker: | 2895 case CSSPropertyMarker: |
2896 // the above properties are not yet implemented in the engine | 2896 // the above properties are not yet implemented in the engine |
2897 return nullptr; | 2897 return nullptr; |
2898 case CSSPropertyD: | 2898 case CSSPropertyD: |
2899 if (const StylePath* stylePath = svgStyle.d()) | 2899 if (const StylePath* stylePath = svgStyle.d()) |
2900 return stylePath->computedCSSValue(); | 2900 return stylePath->computedCSSValue(); |
2901 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2901 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2902 case CSSPropertyCx: | 2902 case CSSPropertyCx: |
2903 return zoomAdjustedPixelValueForLength(svgStyle.cx(), style); | 2903 return zoomAdjustedPixelValueForLength(svgStyle.cx(), style); |
2904 case CSSPropertyCy: | 2904 case CSSPropertyCy: |
2905 return zoomAdjustedPixelValueForLength(svgStyle.cy(), style); | 2905 return zoomAdjustedPixelValueForLength(svgStyle.cy(), style); |
2906 case CSSPropertyX: | 2906 case CSSPropertyX: |
2907 return zoomAdjustedPixelValueForLength(svgStyle.x(), style); | 2907 return zoomAdjustedPixelValueForLength(svgStyle.x(), style); |
2908 case CSSPropertyY: | 2908 case CSSPropertyY: |
2909 return zoomAdjustedPixelValueForLength(svgStyle.y(), style); | 2909 return zoomAdjustedPixelValueForLength(svgStyle.y(), style); |
2910 case CSSPropertyR: | 2910 case CSSPropertyR: |
2911 return zoomAdjustedPixelValueForLength(svgStyle.r(), style); | 2911 return zoomAdjustedPixelValueForLength(svgStyle.r(), style); |
2912 case CSSPropertyRx: | 2912 case CSSPropertyRx: |
2913 return zoomAdjustedPixelValueForLength(svgStyle.rx(), style); | 2913 return zoomAdjustedPixelValueForLength(svgStyle.rx(), style); |
2914 case CSSPropertyRy: | 2914 case CSSPropertyRy: |
2915 return zoomAdjustedPixelValueForLength(svgStyle.ry(), style); | 2915 return zoomAdjustedPixelValueForLength(svgStyle.ry(), style); |
2916 case CSSPropertyScrollSnapType: | 2916 case CSSPropertyScrollSnapType: |
2917 return CSSPrimitiveValue::create(style.getScrollSnapType()); | 2917 return CSSIdentifierValue::create(style.getScrollSnapType()); |
2918 case CSSPropertyScrollSnapPointsX: | 2918 case CSSPropertyScrollSnapPointsX: |
2919 return valueForScrollSnapPoints(style.scrollSnapPointsX(), style); | 2919 return valueForScrollSnapPoints(style.scrollSnapPointsX(), style); |
2920 case CSSPropertyScrollSnapPointsY: | 2920 case CSSPropertyScrollSnapPointsY: |
2921 return valueForScrollSnapPoints(style.scrollSnapPointsY(), style); | 2921 return valueForScrollSnapPoints(style.scrollSnapPointsY(), style); |
2922 case CSSPropertyScrollSnapCoordinate: | 2922 case CSSPropertyScrollSnapCoordinate: |
2923 return valueForScrollSnapCoordinate(style.scrollSnapCoordinate(), style)
; | 2923 return valueForScrollSnapCoordinate(style.scrollSnapCoordinate(), style)
; |
2924 case CSSPropertyScrollSnapDestination: | 2924 case CSSPropertyScrollSnapDestination: |
2925 return valueForScrollSnapDestination(style.scrollSnapDestination(), styl
e); | 2925 return valueForScrollSnapDestination(style.scrollSnapDestination(), styl
e); |
2926 case CSSPropertyTranslate: { | 2926 case CSSPropertyTranslate: { |
2927 if (!style.translate()) | 2927 if (!style.translate()) |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2968 list->append(*CSSPrimitiveValue::create(style.scale()->x(), CSSPrimitive
Value::UnitType::Number)); | 2968 list->append(*CSSPrimitiveValue::create(style.scale()->x(), CSSPrimitive
Value::UnitType::Number)); |
2969 if (style.scale()->y() == 1 && style.scale()->z() == 1) | 2969 if (style.scale()->y() == 1 && style.scale()->z() == 1) |
2970 return list; | 2970 return list; |
2971 list->append(*CSSPrimitiveValue::create(style.scale()->y(), CSSPrimitive
Value::UnitType::Number)); | 2971 list->append(*CSSPrimitiveValue::create(style.scale()->y(), CSSPrimitive
Value::UnitType::Number)); |
2972 if (style.scale()->z() != 1) | 2972 if (style.scale()->z() != 1) |
2973 list->append(*CSSPrimitiveValue::create(style.scale()->z(), CSSPrimi
tiveValue::UnitType::Number)); | 2973 list->append(*CSSPrimitiveValue::create(style.scale()->z(), CSSPrimi
tiveValue::UnitType::Number)); |
2974 return list; | 2974 return list; |
2975 } | 2975 } |
2976 case CSSPropertyContain: { | 2976 case CSSPropertyContain: { |
2977 if (!style.contain()) | 2977 if (!style.contain()) |
2978 return CSSPrimitiveValue::createIdentifier(CSSValueNone); | 2978 return CSSIdentifierValue::createIdentifier(CSSValueNone); |
2979 if (style.contain() == ContainsStrict) | 2979 if (style.contain() == ContainsStrict) |
2980 return CSSPrimitiveValue::createIdentifier(CSSValueStrict); | 2980 return CSSIdentifierValue::createIdentifier(CSSValueStrict); |
2981 if (style.contain() == ContainsContent) | 2981 if (style.contain() == ContainsContent) |
2982 return CSSPrimitiveValue::createIdentifier(CSSValueContent); | 2982 return CSSIdentifierValue::createIdentifier(CSSValueContent); |
2983 | 2983 |
2984 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2984 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
2985 if (style.containsStyle()) | 2985 if (style.containsStyle()) |
2986 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueStyle)); | 2986 list->append(*CSSIdentifierValue::createIdentifier(CSSValueStyle)); |
2987 if (style.contain() & ContainsLayout) | 2987 if (style.contain() & ContainsLayout) |
2988 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueLayout)); | 2988 list->append(*CSSIdentifierValue::createIdentifier(CSSValueLayout)); |
2989 if (style.containsPaint()) | 2989 if (style.containsPaint()) |
2990 list->append(*CSSPrimitiveValue::createIdentifier(CSSValuePaint)); | 2990 list->append(*CSSIdentifierValue::createIdentifier(CSSValuePaint)); |
2991 if (style.containsSize()) | 2991 if (style.containsSize()) |
2992 list->append(*CSSPrimitiveValue::createIdentifier(CSSValueSize)); | 2992 list->append(*CSSIdentifierValue::createIdentifier(CSSValueSize)); |
2993 ASSERT(list->length()); | 2993 ASSERT(list->length()); |
2994 return list; | 2994 return list; |
2995 } | 2995 } |
2996 case CSSPropertySnapHeight: { | 2996 case CSSPropertySnapHeight: { |
2997 if (!style.snapHeightUnit()) | 2997 if (!style.snapHeightUnit()) |
2998 return CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pix
els); | 2998 return CSSPrimitiveValue::create(0, CSSPrimitiveValue::UnitType::Pix
els); |
2999 CSSValueList* list = CSSValueList::createSpaceSeparated(); | 2999 CSSValueList* list = CSSValueList::createSpaceSeparated(); |
3000 list->append(*CSSPrimitiveValue::create(style.snapHeightUnit(), CSSPrimi
tiveValue::UnitType::Pixels)); | 3000 list->append(*CSSPrimitiveValue::create(style.snapHeightUnit(), CSSPrimi
tiveValue::UnitType::Pixels)); |
3001 if (style.snapHeightPosition()) | 3001 if (style.snapHeightPosition()) |
3002 list->append(*CSSPrimitiveValue::create(style.snapHeightPosition(),
CSSPrimitiveValue::UnitType::Integer)); | 3002 list->append(*CSSPrimitiveValue::create(style.snapHeightPosition(),
CSSPrimitiveValue::UnitType::Integer)); |
3003 return list; | 3003 return list; |
3004 } | 3004 } |
3005 case CSSPropertyVariable: | 3005 case CSSPropertyVariable: |
3006 // Variables are retrieved via get(AtomicString). | 3006 // Variables are retrieved via get(AtomicString). |
3007 ASSERT_NOT_REACHED(); | 3007 ASSERT_NOT_REACHED(); |
3008 return nullptr; | 3008 return nullptr; |
3009 case CSSPropertyAll: | 3009 case CSSPropertyAll: |
3010 return nullptr; | 3010 return nullptr; |
3011 default: | 3011 default: |
3012 break; | 3012 break; |
3013 } | 3013 } |
3014 ASSERT_NOT_REACHED(); | 3014 ASSERT_NOT_REACHED(); |
3015 return nullptr; | 3015 return nullptr; |
3016 } | 3016 } |
3017 | 3017 |
3018 } // namespace blink | 3018 } // namespace blink |
OLD | NEW |