OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "core/animation/animatable/AnimatableLengthSize.h" | 45 #include "core/animation/animatable/AnimatableLengthSize.h" |
46 #include "core/animation/animatable/AnimatableRepeatable.h" | 46 #include "core/animation/animatable/AnimatableRepeatable.h" |
47 #include "core/animation/animatable/AnimatableSVGPaint.h" | 47 #include "core/animation/animatable/AnimatableSVGPaint.h" |
48 #include "core/animation/animatable/AnimatableShadow.h" | 48 #include "core/animation/animatable/AnimatableShadow.h" |
49 #include "core/animation/animatable/AnimatableShapeValue.h" | 49 #include "core/animation/animatable/AnimatableShapeValue.h" |
50 #include "core/animation/animatable/AnimatableStrokeDasharrayList.h" | 50 #include "core/animation/animatable/AnimatableStrokeDasharrayList.h" |
51 #include "core/animation/animatable/AnimatableTransform.h" | 51 #include "core/animation/animatable/AnimatableTransform.h" |
52 #include "core/animation/animatable/AnimatableUnknown.h" | 52 #include "core/animation/animatable/AnimatableUnknown.h" |
53 #include "core/animation/animatable/AnimatableValue.h" | 53 #include "core/animation/animatable/AnimatableValue.h" |
54 #include "core/animation/animatable/AnimatableVisibility.h" | 54 #include "core/animation/animatable/AnimatableVisibility.h" |
| 55 #include "core/css/CSSPrimitiveValue.h" |
55 #include "core/css/CSSPrimitiveValueMappings.h" | 56 #include "core/css/CSSPrimitiveValueMappings.h" |
56 #include "core/css/CSSPropertyMetadata.h" | 57 #include "core/css/CSSPropertyMetadata.h" |
57 #include "core/css/resolver/StyleBuilder.h" | 58 #include "core/css/resolver/StyleBuilder.h" |
58 #include "core/css/resolver/StyleResolverState.h" | 59 #include "core/css/resolver/StyleResolverState.h" |
59 #include "core/style/ComputedStyle.h" | 60 #include "core/style/ComputedStyle.h" |
60 #include "wtf/MathExtras.h" | 61 #include "wtf/MathExtras.h" |
61 #include "wtf/TypeTraits.h" | 62 #include "wtf/TypeTraits.h" |
62 | 63 |
63 namespace blink { | 64 namespace blink { |
64 | 65 |
(...skipping 20 matching lines...) Expand all Loading... |
85 BorderImageLength animatableValueToBorderImageLength(const AnimatableValue* valu
e, const StyleResolverState& state) | 86 BorderImageLength animatableValueToBorderImageLength(const AnimatableValue* valu
e, const StyleResolverState& state) |
86 { | 87 { |
87 if (value->isLength()) | 88 if (value->isLength()) |
88 return BorderImageLength(toAnimatableLength(value)->length(state.style()
->effectiveZoom(), ValueRangeNonNegative)); | 89 return BorderImageLength(toAnimatableLength(value)->length(state.style()
->effectiveZoom(), ValueRangeNonNegative)); |
89 if (value->isDouble()) | 90 if (value->isDouble()) |
90 return BorderImageLength(clampTo<double>(toAnimatableDouble(value)->toDo
uble(), 0)); | 91 return BorderImageLength(clampTo<double>(toAnimatableDouble(value)->toDo
uble(), 0)); |
91 ASSERT(toAnimatableUnknown(value)->toCSSValueID() == CSSValueAuto); | 92 ASSERT(toAnimatableUnknown(value)->toCSSValueID() == CSSValueAuto); |
92 return Length(Auto); | 93 return Length(Auto); |
93 } | 94 } |
94 | 95 |
95 template<typename T> T animatableValueRoundClampTo(const AnimatableValue* value,
T min = defaultMinimumForClamp<T>(), T max = defaultMaximumForClamp<T>()) | 96 template<typename T> T animatableValueClampTo(const AnimatableValue* value, T mi
n = defaultMinimumForClamp<T>(), T max = defaultMaximumForClamp<T>()) |
96 { | 97 { |
97 static_assert(WTF::IsInteger<T>::value, "should use integral type T when rou
nding values"); | 98 static_assert(WTF::IsInteger<T>::value, "should use integral type T when rou
nding values"); |
98 return clampTo<T>(round(toAnimatableDouble(value)->toDouble()), min, max); | 99 return clampTo<T>(roundForImpreciseConversion<T>(toAnimatableDouble(value)->
toDouble()), min, max); |
99 } | 100 } |
100 | 101 |
101 LengthBox animatableValueToLengthBox(const AnimatableValue* value, const StyleRe
solverState& state, ValueRange range = ValueRangeAll) | 102 LengthBox animatableValueToLengthBox(const AnimatableValue* value, const StyleRe
solverState& state, ValueRange range = ValueRangeAll) |
102 { | 103 { |
103 const AnimatableLengthBox* animatableLengthBox = toAnimatableLengthBox(value
); | 104 const AnimatableLengthBox* animatableLengthBox = toAnimatableLengthBox(value
); |
104 return LengthBox( | 105 return LengthBox( |
105 animatableValueToLength(animatableLengthBox->top(), state, range), | 106 animatableValueToLength(animatableLengthBox->top(), state, range), |
106 animatableValueToLength(animatableLengthBox->right(), state, range), | 107 animatableValueToLength(animatableLengthBox->right(), state, range), |
107 animatableValueToLength(animatableLengthBox->bottom(), state, range), | 108 animatableValueToLength(animatableLengthBox->bottom(), state, range), |
108 animatableValueToLength(animatableLengthBox->left(), state, range)); | 109 animatableValueToLength(animatableLengthBox->left(), state, range)); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 style->setBorderBottomColor(toAnimatableColor(value)->color()); | 308 style->setBorderBottomColor(toAnimatableColor(value)->color()); |
308 style->setVisitedLinkBorderBottomColor(toAnimatableColor(value)->visited
LinkColor()); | 309 style->setVisitedLinkBorderBottomColor(toAnimatableColor(value)->visited
LinkColor()); |
309 return; | 310 return; |
310 case CSSPropertyBorderBottomLeftRadius: | 311 case CSSPropertyBorderBottomLeftRadius: |
311 style->setBorderBottomLeftRadius(animatableValueToLengthSize(value, stat
e, ValueRangeNonNegative)); | 312 style->setBorderBottomLeftRadius(animatableValueToLengthSize(value, stat
e, ValueRangeNonNegative)); |
312 return; | 313 return; |
313 case CSSPropertyBorderBottomRightRadius: | 314 case CSSPropertyBorderBottomRightRadius: |
314 style->setBorderBottomRightRadius(animatableValueToLengthSize(value, sta
te, ValueRangeNonNegative)); | 315 style->setBorderBottomRightRadius(animatableValueToLengthSize(value, sta
te, ValueRangeNonNegative)); |
315 return; | 316 return; |
316 case CSSPropertyBorderBottomWidth: | 317 case CSSPropertyBorderBottomWidth: |
317 style->setBorderBottomWidth(animatableValueRoundClampTo<unsigned>(value)
); | 318 style->setBorderBottomWidth(animatableValueClampTo<unsigned>(value)); |
318 return; | 319 return; |
319 case CSSPropertyBorderImageOutset: | 320 case CSSPropertyBorderImageOutset: |
320 style->setBorderImageOutset(animatableValueToBorderImageLengthBox(value,
state)); | 321 style->setBorderImageOutset(animatableValueToBorderImageLengthBox(value,
state)); |
321 return; | 322 return; |
322 case CSSPropertyBorderImageSlice: | 323 case CSSPropertyBorderImageSlice: |
323 style->setBorderImageSlices(animatableValueToLengthBox(toAnimatableLengt
hBoxAndBool(value)->box(), state, ValueRangeNonNegative)); | 324 style->setBorderImageSlices(animatableValueToLengthBox(toAnimatableLengt
hBoxAndBool(value)->box(), state, ValueRangeNonNegative)); |
324 style->setBorderImageSlicesFill(toAnimatableLengthBoxAndBool(value)->fla
g()); | 325 style->setBorderImageSlicesFill(toAnimatableLengthBoxAndBool(value)->fla
g()); |
325 return; | 326 return; |
326 case CSSPropertyBorderImageSource: | 327 case CSSPropertyBorderImageSource: |
327 style->setBorderImageSource(state.styleImage(property, toAnimatableImage
(value)->toCSSValue())); | 328 style->setBorderImageSource(state.styleImage(property, toAnimatableImage
(value)->toCSSValue())); |
328 return; | 329 return; |
329 case CSSPropertyBorderImageWidth: | 330 case CSSPropertyBorderImageWidth: |
330 style->setBorderImageWidth(animatableValueToBorderImageLengthBox(value,
state)); | 331 style->setBorderImageWidth(animatableValueToBorderImageLengthBox(value,
state)); |
331 return; | 332 return; |
332 case CSSPropertyBorderLeftColor: | 333 case CSSPropertyBorderLeftColor: |
333 style->setBorderLeftColor(toAnimatableColor(value)->color()); | 334 style->setBorderLeftColor(toAnimatableColor(value)->color()); |
334 style->setVisitedLinkBorderLeftColor(toAnimatableColor(value)->visitedLi
nkColor()); | 335 style->setVisitedLinkBorderLeftColor(toAnimatableColor(value)->visitedLi
nkColor()); |
335 return; | 336 return; |
336 case CSSPropertyBorderLeftWidth: | 337 case CSSPropertyBorderLeftWidth: |
337 style->setBorderLeftWidth(animatableValueRoundClampTo<unsigned>(value)); | 338 style->setBorderLeftWidth(animatableValueClampTo<unsigned>(value)); |
338 return; | 339 return; |
339 case CSSPropertyBorderRightColor: | 340 case CSSPropertyBorderRightColor: |
340 style->setBorderRightColor(toAnimatableColor(value)->color()); | 341 style->setBorderRightColor(toAnimatableColor(value)->color()); |
341 style->setVisitedLinkBorderRightColor(toAnimatableColor(value)->visitedL
inkColor()); | 342 style->setVisitedLinkBorderRightColor(toAnimatableColor(value)->visitedL
inkColor()); |
342 return; | 343 return; |
343 case CSSPropertyBorderRightWidth: | 344 case CSSPropertyBorderRightWidth: |
344 style->setBorderRightWidth(animatableValueRoundClampTo<unsigned>(value))
; | 345 style->setBorderRightWidth(animatableValueClampTo<unsigned>(value)); |
345 return; | 346 return; |
346 case CSSPropertyBorderTopColor: | 347 case CSSPropertyBorderTopColor: |
347 style->setBorderTopColor(toAnimatableColor(value)->color()); | 348 style->setBorderTopColor(toAnimatableColor(value)->color()); |
348 style->setVisitedLinkBorderTopColor(toAnimatableColor(value)->visitedLin
kColor()); | 349 style->setVisitedLinkBorderTopColor(toAnimatableColor(value)->visitedLin
kColor()); |
349 return; | 350 return; |
350 case CSSPropertyBorderTopLeftRadius: | 351 case CSSPropertyBorderTopLeftRadius: |
351 style->setBorderTopLeftRadius(animatableValueToLengthSize(value, state,
ValueRangeNonNegative)); | 352 style->setBorderTopLeftRadius(animatableValueToLengthSize(value, state,
ValueRangeNonNegative)); |
352 return; | 353 return; |
353 case CSSPropertyBorderTopRightRadius: | 354 case CSSPropertyBorderTopRightRadius: |
354 style->setBorderTopRightRadius(animatableValueToLengthSize(value, state,
ValueRangeNonNegative)); | 355 style->setBorderTopRightRadius(animatableValueToLengthSize(value, state,
ValueRangeNonNegative)); |
355 return; | 356 return; |
356 case CSSPropertyBorderTopWidth: | 357 case CSSPropertyBorderTopWidth: |
357 style->setBorderTopWidth(animatableValueRoundClampTo<unsigned>(value)); | 358 style->setBorderTopWidth(animatableValueClampTo<unsigned>(value)); |
358 return; | 359 return; |
359 case CSSPropertyBottom: | 360 case CSSPropertyBottom: |
360 style->setBottom(animatableValueToLength(value, state)); | 361 style->setBottom(animatableValueToLength(value, state)); |
361 return; | 362 return; |
362 case CSSPropertyBoxShadow: | 363 case CSSPropertyBoxShadow: |
363 style->setBoxShadow(toAnimatableShadow(value)->shadowList()); | 364 style->setBoxShadow(toAnimatableShadow(value)->shadowList()); |
364 return; | 365 return; |
365 case CSSPropertyClip: | 366 case CSSPropertyClip: |
366 style->setClip(animatableValueToLengthBox(value, state)); | 367 style->setClip(animatableValueToLengthBox(value, state)); |
367 return; | 368 return; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 style->setMinWidth(animatableValueToLength(value, state, ValueRangeNonNe
gative)); | 453 style->setMinWidth(animatableValueToLength(value, state, ValueRangeNonNe
gative)); |
453 return; | 454 return; |
454 case CSSPropertyObjectPosition: | 455 case CSSPropertyObjectPosition: |
455 style->setObjectPosition(animatableValueToLengthPoint(value, state)); | 456 style->setObjectPosition(animatableValueToLengthPoint(value, state)); |
456 return; | 457 return; |
457 case CSSPropertyOpacity: | 458 case CSSPropertyOpacity: |
458 // Avoiding a value of 1 forces a layer to be created. | 459 // Avoiding a value of 1 forces a layer to be created. |
459 style->setOpacity(clampTo<float>(toAnimatableDouble(value)->toDouble(),
0, nextafterf(1, 0))); | 460 style->setOpacity(clampTo<float>(toAnimatableDouble(value)->toDouble(),
0, nextafterf(1, 0))); |
460 return; | 461 return; |
461 case CSSPropertyOrphans: | 462 case CSSPropertyOrphans: |
462 style->setOrphans(animatableValueRoundClampTo<unsigned short>(value, 1))
; | 463 style->setOrphans(clampTo<unsigned short>(round(toAnimatableDouble(value
)->toDouble()), 1)); |
463 return; | 464 return; |
464 case CSSPropertyOutlineColor: | 465 case CSSPropertyOutlineColor: |
465 style->setOutlineColor(toAnimatableColor(value)->color()); | 466 style->setOutlineColor(toAnimatableColor(value)->color()); |
466 style->setVisitedLinkOutlineColor(toAnimatableColor(value)->visitedLinkC
olor()); | 467 style->setVisitedLinkOutlineColor(toAnimatableColor(value)->visitedLinkC
olor()); |
467 return; | 468 return; |
468 case CSSPropertyOutlineOffset: | 469 case CSSPropertyOutlineOffset: |
469 style->setOutlineOffset(animatableValueRoundClampTo<int>(value)); | 470 style->setOutlineOffset(animatableValueClampTo<int>(value)); |
470 return; | 471 return; |
471 case CSSPropertyOutlineWidth: | 472 case CSSPropertyOutlineWidth: |
472 style->setOutlineWidth(animatableValueRoundClampTo<unsigned short>(value
)); | 473 style->setOutlineWidth(animatableValueClampTo<unsigned short>(value)); |
473 return; | 474 return; |
474 case CSSPropertyPaddingBottom: | 475 case CSSPropertyPaddingBottom: |
475 style->setPaddingBottom(animatableValueToLength(value, state, ValueRange
NonNegative)); | 476 style->setPaddingBottom(animatableValueToLength(value, state, ValueRange
NonNegative)); |
476 return; | 477 return; |
477 case CSSPropertyPaddingLeft: | 478 case CSSPropertyPaddingLeft: |
478 style->setPaddingLeft(animatableValueToLength(value, state, ValueRangeNo
nNegative)); | 479 style->setPaddingLeft(animatableValueToLength(value, state, ValueRangeNo
nNegative)); |
479 return; | 480 return; |
480 case CSSPropertyPaddingRight: | 481 case CSSPropertyPaddingRight: |
481 style->setPaddingRight(animatableValueToLength(value, state, ValueRangeN
onNegative)); | 482 style->setPaddingRight(animatableValueToLength(value, state, ValueRangeN
onNegative)); |
482 return; | 483 return; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 case CSSPropertyTextIndent: | 522 case CSSPropertyTextIndent: |
522 style->setTextIndent(animatableValueToLength(value, state)); | 523 style->setTextIndent(animatableValueToLength(value, state)); |
523 return; | 524 return; |
524 case CSSPropertyTextShadow: | 525 case CSSPropertyTextShadow: |
525 style->setTextShadow(toAnimatableShadow(value)->shadowList()); | 526 style->setTextShadow(toAnimatableShadow(value)->shadowList()); |
526 return; | 527 return; |
527 case CSSPropertyTop: | 528 case CSSPropertyTop: |
528 style->setTop(animatableValueToLength(value, state)); | 529 style->setTop(animatableValueToLength(value, state)); |
529 return; | 530 return; |
530 case CSSPropertyWebkitBorderHorizontalSpacing: | 531 case CSSPropertyWebkitBorderHorizontalSpacing: |
531 style->setHorizontalBorderSpacing(animatableValueRoundClampTo<unsigned s
hort>(value)); | 532 style->setHorizontalBorderSpacing(animatableValueClampTo<unsigned short>
(value)); |
532 return; | 533 return; |
533 case CSSPropertyWebkitBorderVerticalSpacing: | 534 case CSSPropertyWebkitBorderVerticalSpacing: |
534 style->setVerticalBorderSpacing(animatableValueRoundClampTo<unsigned sho
rt>(value)); | 535 style->setVerticalBorderSpacing(animatableValueClampTo<unsigned short>(v
alue)); |
535 return; | 536 return; |
536 case CSSPropertyWebkitClipPath: | 537 case CSSPropertyWebkitClipPath: |
537 style->setClipPath(toAnimatableClipPathOperation(value)->clipPathOperati
on()); | 538 style->setClipPath(toAnimatableClipPathOperation(value)->clipPathOperati
on()); |
538 return; | 539 return; |
539 case CSSPropertyWebkitColumnCount: | 540 case CSSPropertyWebkitColumnCount: |
540 style->setColumnCount(animatableValueRoundClampTo<unsigned short>(value,
1)); | 541 style->setColumnCount(clampTo<unsigned short>(toAnimatableDouble(value)-
>toDouble(), 1)); |
541 return; | 542 return; |
542 case CSSPropertyWebkitColumnGap: | 543 case CSSPropertyWebkitColumnGap: |
543 style->setColumnGap(clampTo(toAnimatableDouble(value)->toDouble(), 0)); | 544 style->setColumnGap(clampTo(toAnimatableDouble(value)->toDouble(), 0)); |
544 return; | 545 return; |
545 case CSSPropertyWebkitColumnRuleColor: | 546 case CSSPropertyWebkitColumnRuleColor: |
546 style->setColumnRuleColor(toAnimatableColor(value)->color()); | 547 style->setColumnRuleColor(toAnimatableColor(value)->color()); |
547 style->setVisitedLinkColumnRuleColor(toAnimatableColor(value)->visitedLi
nkColor()); | 548 style->setVisitedLinkColumnRuleColor(toAnimatableColor(value)->visitedLi
nkColor()); |
548 return; | 549 return; |
549 case CSSPropertyWebkitColumnWidth: | 550 case CSSPropertyWebkitColumnWidth: |
550 style->setColumnWidth(clampTo(toAnimatableDouble(value)->toDouble(), std
::numeric_limits<float>::epsilon())); | 551 style->setColumnWidth(clampTo(toAnimatableDouble(value)->toDouble(), std
::numeric_limits<float>::epsilon())); |
551 return; | 552 return; |
552 case CSSPropertyWebkitColumnRuleWidth: | 553 case CSSPropertyWebkitColumnRuleWidth: |
553 style->setColumnRuleWidth(animatableValueRoundClampTo<unsigned short>(va
lue)); | 554 style->setColumnRuleWidth(clampTo<unsigned short>(toAnimatableDouble(val
ue)->toDouble())); |
554 return; | 555 return; |
555 case CSSPropertyWebkitFilter: | 556 case CSSPropertyWebkitFilter: |
556 style->setFilter(toAnimatableFilterOperations(value)->operations()); | 557 style->setFilter(toAnimatableFilterOperations(value)->operations()); |
557 return; | 558 return; |
558 case CSSPropertyWebkitMaskBoxImageOutset: | 559 case CSSPropertyWebkitMaskBoxImageOutset: |
559 style->setMaskBoxImageOutset(animatableValueToBorderImageLengthBox(value
, state)); | 560 style->setMaskBoxImageOutset(animatableValueToBorderImageLengthBox(value
, state)); |
560 return; | 561 return; |
561 case CSSPropertyWebkitMaskBoxImageSlice: | 562 case CSSPropertyWebkitMaskBoxImageSlice: |
562 style->setMaskBoxImageSlices(animatableValueToLengthBox(toAnimatableLeng
thBoxAndBool(value)->box(), state, ValueRangeNonNegative)); | 563 style->setMaskBoxImageSlices(animatableValueToLengthBox(toAnimatableLeng
thBoxAndBool(value)->box(), state, ValueRangeNonNegative)); |
563 style->setMaskBoxImageSlicesFill(toAnimatableLengthBoxAndBool(value)->fl
ag()); | 564 style->setMaskBoxImageSlicesFill(toAnimatableLengthBoxAndBool(value)->fl
ag()); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 case CSSPropertyWebkitTransformOriginX: | 637 case CSSPropertyWebkitTransformOriginX: |
637 style->setTransformOriginX(animatableValueToLength(value, state)); | 638 style->setTransformOriginX(animatableValueToLength(value, state)); |
638 return; | 639 return; |
639 case CSSPropertyWebkitTransformOriginY: | 640 case CSSPropertyWebkitTransformOriginY: |
640 style->setTransformOriginY(animatableValueToLength(value, state)); | 641 style->setTransformOriginY(animatableValueToLength(value, state)); |
641 return; | 642 return; |
642 case CSSPropertyWebkitTransformOriginZ: | 643 case CSSPropertyWebkitTransformOriginZ: |
643 style->setTransformOriginZ(toAnimatableDouble(value)->toDouble()); | 644 style->setTransformOriginZ(toAnimatableDouble(value)->toDouble()); |
644 return; | 645 return; |
645 case CSSPropertyWidows: | 646 case CSSPropertyWidows: |
646 style->setWidows(animatableValueRoundClampTo<unsigned short>(value, 1)); | 647 style->setWidows(clampTo<unsigned short>(round(toAnimatableDouble(value)
->toDouble()), 1)); |
647 return; | 648 return; |
648 case CSSPropertyWidth: | 649 case CSSPropertyWidth: |
649 style->setWidth(animatableValueToLength(value, state, ValueRangeNonNegat
ive)); | 650 style->setWidth(animatableValueToLength(value, state, ValueRangeNonNegat
ive)); |
650 return; | 651 return; |
651 case CSSPropertyWordSpacing: | 652 case CSSPropertyWordSpacing: |
652 style->setWordSpacing(clampTo<float>(toAnimatableDouble(value)->toDouble
())); | 653 style->setWordSpacing(clampTo<float>(toAnimatableDouble(value)->toDouble
())); |
653 return; | 654 return; |
654 case CSSPropertyVerticalAlign: | 655 case CSSPropertyVerticalAlign: |
655 style->setVerticalAlignLength(animatableValueToLength(value, state)); | 656 style->setVerticalAlignLength(animatableValueToLength(value, state)); |
656 return; | 657 return; |
657 case CSSPropertyVisibility: | 658 case CSSPropertyVisibility: |
658 style->setVisibility(toAnimatableVisibility(value)->visibility()); | 659 style->setVisibility(toAnimatableVisibility(value)->visibility()); |
659 return; | 660 return; |
660 case CSSPropertyZIndex: | 661 case CSSPropertyZIndex: |
661 style->setZIndex(animatableValueRoundClampTo<int>(value)); | 662 style->setZIndex(clampTo<int>(round(toAnimatableDouble(value)->toDouble(
)))); |
662 return; | 663 return; |
663 case CSSPropertyCx: | 664 case CSSPropertyCx: |
664 style->setCx(animatableValueToLength(value, state)); | 665 style->setCx(animatableValueToLength(value, state)); |
665 return; | 666 return; |
666 case CSSPropertyCy: | 667 case CSSPropertyCy: |
667 style->setCy(animatableValueToLength(value, state)); | 668 style->setCy(animatableValueToLength(value, state)); |
668 return; | 669 return; |
669 case CSSPropertyX: | 670 case CSSPropertyX: |
670 style->setX(animatableValueToLength(value, state)); | 671 style->setX(animatableValueToLength(value, state)); |
671 return; | 672 return; |
672 case CSSPropertyY: | 673 case CSSPropertyY: |
673 style->setY(animatableValueToLength(value, state)); | 674 style->setY(animatableValueToLength(value, state)); |
674 return; | 675 return; |
675 case CSSPropertyR: | 676 case CSSPropertyR: |
676 style->setR(animatableValueToLength(value, state, ValueRangeNonNegative)
); | 677 style->setR(animatableValueToLength(value, state, ValueRangeNonNegative)
); |
677 return; | 678 return; |
678 case CSSPropertyRx: | 679 case CSSPropertyRx: |
679 style->setRx(animatableValueToLength(value, state, ValueRangeNonNegative
)); | 680 style->setRx(animatableValueToLength(value, state, ValueRangeNonNegative
)); |
680 return; | 681 return; |
681 case CSSPropertyRy: | 682 case CSSPropertyRy: |
682 style->setRy(animatableValueToLength(value, state, ValueRangeNonNegative
)); | 683 style->setRy(animatableValueToLength(value, state, ValueRangeNonNegative
)); |
683 return; | 684 return; |
684 | 685 |
685 default: | 686 default: |
686 ASSERT_NOT_REACHED(); | 687 ASSERT_NOT_REACHED(); |
687 } | 688 } |
688 } | 689 } |
689 | 690 |
690 } // namespace blink | 691 } // namespace blink |
OLD | NEW |