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

Side by Side Diff: sky/engine/core/css/CSSComputedStyleDeclaration.cpp

Issue 1229273004: Remove Animations and Transitions. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/engine/core/core.gni ('k') | sky/engine/core/css/CSSProperties.in » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 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 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 10 matching lines...) Expand all
21 * 02110-1301 USA 21 * 02110-1301 USA
22 */ 22 */
23 23
24 #include "sky/engine/core/css/CSSComputedStyleDeclaration.h" 24 #include "sky/engine/core/css/CSSComputedStyleDeclaration.h"
25 25
26 #include "gen/sky/core/CSSPropertyNames.h" 26 #include "gen/sky/core/CSSPropertyNames.h"
27 #include "gen/sky/core/StylePropertyShorthand.h" 27 #include "gen/sky/core/StylePropertyShorthand.h"
28 #include "gen/sky/platform/FontFamilyNames.h" 28 #include "gen/sky/platform/FontFamilyNames.h"
29 #include "gen/sky/platform/RuntimeEnabledFeatures.h" 29 #include "gen/sky/platform/RuntimeEnabledFeatures.h"
30 #include "sky/engine/bindings/exception_state.h" 30 #include "sky/engine/bindings/exception_state.h"
31 #include "sky/engine/core/animation/DocumentAnimations.h"
32 #include "sky/engine/core/css/BasicShapeFunctions.h" 31 #include "sky/engine/core/css/BasicShapeFunctions.h"
33 #include "sky/engine/core/css/CSSAspectRatioValue.h" 32 #include "sky/engine/core/css/CSSAspectRatioValue.h"
34 #include "sky/engine/core/css/CSSBorderImage.h" 33 #include "sky/engine/core/css/CSSBorderImage.h"
35 #include "sky/engine/core/css/CSSFilterValue.h" 34 #include "sky/engine/core/css/CSSFilterValue.h"
36 #include "sky/engine/core/css/CSSFontFeatureValue.h" 35 #include "sky/engine/core/css/CSSFontFeatureValue.h"
37 #include "sky/engine/core/css/CSSFontValue.h" 36 #include "sky/engine/core/css/CSSFontValue.h"
38 #include "sky/engine/core/css/CSSFunctionValue.h" 37 #include "sky/engine/core/css/CSSFunctionValue.h"
39 #include "sky/engine/core/css/CSSLineBoxContainValue.h" 38 #include "sky/engine/core/css/CSSLineBoxContainValue.h"
40 #include "sky/engine/core/css/CSSPrimitiveValue.h" 39 #include "sky/engine/core/css/CSSPrimitiveValue.h"
41 #include "sky/engine/core/css/CSSPrimitiveValueMappings.h" 40 #include "sky/engine/core/css/CSSPrimitiveValueMappings.h"
42 #include "sky/engine/core/css/CSSPropertyMetadata.h" 41 #include "sky/engine/core/css/CSSPropertyMetadata.h"
43 #include "sky/engine/core/css/CSSSelector.h" 42 #include "sky/engine/core/css/CSSSelector.h"
44 #include "sky/engine/core/css/CSSShadowValue.h" 43 #include "sky/engine/core/css/CSSShadowValue.h"
45 #include "sky/engine/core/css/CSSTimingFunctionValue.h"
46 #include "sky/engine/core/css/CSSTransformValue.h" 44 #include "sky/engine/core/css/CSSTransformValue.h"
47 #include "sky/engine/core/css/CSSValueList.h" 45 #include "sky/engine/core/css/CSSValueList.h"
48 #include "sky/engine/core/css/CSSValuePool.h" 46 #include "sky/engine/core/css/CSSValuePool.h"
49 #include "sky/engine/core/css/Pair.h" 47 #include "sky/engine/core/css/Pair.h"
50 #include "sky/engine/core/css/Rect.h" 48 #include "sky/engine/core/css/Rect.h"
51 #include "sky/engine/core/css/StylePropertySet.h" 49 #include "sky/engine/core/css/StylePropertySet.h"
52 #include "sky/engine/core/css/parser/BisonCSSParser.h" 50 #include "sky/engine/core/css/parser/BisonCSSParser.h"
53 #include "sky/engine/core/css/resolver/StyleResolver.h" 51 #include "sky/engine/core/css/resolver/StyleResolver.h"
54 #include "sky/engine/core/dom/Document.h" 52 #include "sky/engine/core/dom/Document.h"
55 #include "sky/engine/core/dom/ExceptionCode.h" 53 #include "sky/engine/core/dom/ExceptionCode.h"
56 #include "sky/engine/core/rendering/RenderBox.h" 54 #include "sky/engine/core/rendering/RenderBox.h"
57 #include "sky/engine/core/rendering/style/RenderStyle.h" 55 #include "sky/engine/core/rendering/style/RenderStyle.h"
58 #include "sky/engine/core/rendering/style/ShadowList.h" 56 #include "sky/engine/core/rendering/style/ShadowList.h"
59 #include "sky/engine/core/rendering/style/ShapeValue.h" 57 #include "sky/engine/core/rendering/style/ShapeValue.h"
60 #include "sky/engine/platform/fonts/FontFeatureSettings.h" 58 #include "sky/engine/platform/fonts/FontFeatureSettings.h"
61 #include "sky/engine/wtf/text/StringBuilder.h" 59 #include "sky/engine/wtf/text/StringBuilder.h"
62 60
63 namespace blink { 61 namespace blink {
64 62
65 // List of all properties we know how to compute, omitting shorthands. 63 // List of all properties we know how to compute, omitting shorthands.
66 // NOTE: Do not use this list, use computableProperties() instead 64 // NOTE: Do not use this list, use computableProperties() instead
67 // to respect runtime enabling of CSS properties. 65 // to respect runtime enabling of CSS properties.
68 static const CSSPropertyID staticComputableProperties[] = { 66 static const CSSPropertyID staticComputableProperties[] = {
69 CSSPropertyAnimationDelay,
70 CSSPropertyAnimationDirection,
71 CSSPropertyAnimationDuration,
72 CSSPropertyAnimationFillMode,
73 CSSPropertyAnimationIterationCount,
74 CSSPropertyAnimationName,
75 CSSPropertyAnimationPlayState,
76 CSSPropertyAnimationTimingFunction,
77 CSSPropertyBackgroundAttachment, 67 CSSPropertyBackgroundAttachment,
78 CSSPropertyBackgroundClip, 68 CSSPropertyBackgroundClip,
79 CSSPropertyBackgroundColor, 69 CSSPropertyBackgroundColor,
80 CSSPropertyBackgroundImage, 70 CSSPropertyBackgroundImage,
81 CSSPropertyBackgroundOrigin, 71 CSSPropertyBackgroundOrigin,
82 CSSPropertyBackgroundPosition, // more-specific background-position-x/y are non-standard 72 CSSPropertyBackgroundPosition, // more-specific background-position-x/y are non-standard
83 CSSPropertyBackgroundRepeat, 73 CSSPropertyBackgroundRepeat,
84 CSSPropertyBackgroundSize, 74 CSSPropertyBackgroundSize,
85 CSSPropertyBorderBottomColor, 75 CSSPropertyBorderBottomColor,
86 CSSPropertyBorderBottomLeftRadius, 76 CSSPropertyBorderBottomLeftRadius,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 CSSPropertyTextDecorationColor, 147 CSSPropertyTextDecorationColor,
158 CSSPropertyTextJustify, 148 CSSPropertyTextJustify,
159 CSSPropertyTextUnderlinePosition, 149 CSSPropertyTextUnderlinePosition,
160 CSSPropertyTextIndent, 150 CSSPropertyTextIndent,
161 CSSPropertyTextRendering, 151 CSSPropertyTextRendering,
162 CSSPropertyTextShadow, 152 CSSPropertyTextShadow,
163 CSSPropertyTextOverflow, 153 CSSPropertyTextOverflow,
164 CSSPropertyTop, 154 CSSPropertyTop,
165 CSSPropertyTouchAction, 155 CSSPropertyTouchAction,
166 CSSPropertyTouchActionDelay, 156 CSSPropertyTouchActionDelay,
167 CSSPropertyTransitionDelay,
168 CSSPropertyTransitionDuration,
169 CSSPropertyTransitionProperty,
170 CSSPropertyTransitionTimingFunction,
171 CSSPropertyUnicodeBidi, 157 CSSPropertyUnicodeBidi,
172 CSSPropertyVerticalAlign, 158 CSSPropertyVerticalAlign,
173 CSSPropertyWhiteSpace, 159 CSSPropertyWhiteSpace,
174 CSSPropertyWidth, 160 CSSPropertyWidth,
175 CSSPropertyWillChange,
176 CSSPropertyWordBreak, 161 CSSPropertyWordBreak,
177 CSSPropertyWordSpacing, 162 CSSPropertyWordSpacing,
178 CSSPropertyWordWrap, 163 CSSPropertyWordWrap,
179 CSSPropertyZIndex, 164 CSSPropertyZIndex,
180 165
181 CSSPropertyWebkitBackgroundClip, 166 CSSPropertyWebkitBackgroundClip,
182 CSSPropertyWebkitBackgroundComposite, 167 CSSPropertyWebkitBackgroundComposite,
183 CSSPropertyWebkitBackgroundOrigin, 168 CSSPropertyWebkitBackgroundOrigin,
184 CSSPropertyWebkitBackgroundSize, 169 CSSPropertyWebkitBackgroundSize,
185 CSSPropertyWebkitBorderHorizontalSpacing, 170 CSSPropertyWebkitBorderHorizontalSpacing,
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 default: 646 default:
662 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp eration); 647 filterValue = CSSFilterValue::create(CSSFilterValue::UnknownFilterOp eration);
663 break; 648 break;
664 } 649 }
665 list->append(filterValue.release()); 650 list->append(filterValue.release());
666 } 651 }
667 652
668 return list.release(); 653 return list.release();
669 } 654 }
670 655
671 static PassRefPtr<CSSValue> createTransitionPropertyValue(const CSSTransitionDat a::TransitionProperty& property)
672 {
673 if (property.propertyType == CSSTransitionData::TransitionNone)
674 return cssValuePool().createIdentifierValue(CSSValueNone);
675 if (property.propertyType == CSSTransitionData::TransitionAll)
676 return cssValuePool().createIdentifierValue(CSSValueAll);
677 if (property.propertyType == CSSTransitionData::TransitionUnknown)
678 return cssValuePool().createValue(property.propertyString, CSSPrimitiveV alue::CSS_STRING);
679 ASSERT(property.propertyType == CSSTransitionData::TransitionSingleProperty) ;
680 return cssValuePool().createValue(getPropertyNameString(property.propertyId) , CSSPrimitiveValue::CSS_STRING);
681 }
682
683 static PassRefPtr<CSSValue> valueForTransitionProperty(const CSSTransitionData* transitionData)
684 {
685 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
686 if (transitionData) {
687 for (size_t i = 0; i < transitionData->propertyList().size(); ++i)
688 list->append(createTransitionPropertyValue(transitionData->propertyL ist()[i]));
689 } else {
690 list->append(cssValuePool().createIdentifierValue(CSSValueAll));
691 }
692 return list.release();
693 }
694
695 static PassRefPtr<CSSValue> valueForAnimationDelay(const CSSTimingData* timingDa ta)
696 {
697 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
698 if (timingData) {
699 for (size_t i = 0; i < timingData->delayList().size(); ++i)
700 list->append(cssValuePool().createValue(timingData->delayList()[i], CSSPrimitiveValue::CSS_S));
701 } else {
702 list->append(cssValuePool().createValue(CSSTimingData::initialDelay(), C SSPrimitiveValue::CSS_S));
703 }
704 return list.release();
705 }
706
707 static PassRefPtr<CSSValue> valueForAnimationDuration(const CSSTimingData* timin gData)
708 {
709 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
710 if (timingData) {
711 for (size_t i = 0; i < timingData->durationList().size(); ++i)
712 list->append(cssValuePool().createValue(timingData->durationList()[i ], CSSPrimitiveValue::CSS_S));
713 } else {
714 list->append(cssValuePool().createValue(CSSTimingData::initialDuration() , CSSPrimitiveValue::CSS_S));
715 }
716 return list.release();
717 }
718
719 static PassRefPtr<CSSValue> valueForAnimationIterationCount(double iterationCoun t)
720 {
721 if (iterationCount == std::numeric_limits<double>::infinity())
722 return cssValuePool().createIdentifierValue(CSSValueInfinite);
723 return cssValuePool().createValue(iterationCount, CSSPrimitiveValue::CSS_NUM BER);
724 }
725
726 static PassRefPtr<CSSValue> valueForAnimationPlayState(EAnimPlayState playState)
727 {
728 if (playState == AnimPlayStatePlaying)
729 return cssValuePool().createIdentifierValue(CSSValueRunning);
730 ASSERT(playState == AnimPlayStatePaused);
731 return cssValuePool().createIdentifierValue(CSSValuePaused);
732 }
733
734 static PassRefPtr<CSSValue> createTimingFunctionValue(const TimingFunction* timi ngFunction)
735 {
736 switch (timingFunction->type()) {
737 case TimingFunction::CubicBezierFunction:
738 {
739 const CubicBezierTimingFunction* bezierTimingFunction = toCubicBezie rTimingFunction(timingFunction);
740 if (bezierTimingFunction->subType() != CubicBezierTimingFunction::Cu stom) {
741 CSSValueID valueId = CSSValueInvalid;
742 switch (bezierTimingFunction->subType()) {
743 case CubicBezierTimingFunction::Ease:
744 valueId = CSSValueEase;
745 break;
746 case CubicBezierTimingFunction::EaseIn:
747 valueId = CSSValueEaseIn;
748 break;
749 case CubicBezierTimingFunction::EaseOut:
750 valueId = CSSValueEaseOut;
751 break;
752 case CubicBezierTimingFunction::EaseInOut:
753 valueId = CSSValueEaseInOut;
754 break;
755 default:
756 ASSERT_NOT_REACHED();
757 return nullptr;
758 }
759 return cssValuePool().createIdentifierValue(valueId);
760 }
761 return CSSCubicBezierTimingFunctionValue::create(bezierTimingFunctio n->x1(), bezierTimingFunction->y1(), bezierTimingFunction->x2(), bezierTimingFun ction->y2());
762 }
763
764 case TimingFunction::StepsFunction:
765 {
766 const StepsTimingFunction* stepsTimingFunction = toStepsTimingFuncti on(timingFunction);
767 if (stepsTimingFunction->subType() == StepsTimingFunction::Custom)
768 return CSSStepsTimingFunctionValue::create(stepsTimingFunction-> numberOfSteps(), stepsTimingFunction->stepAtPosition());
769
770 CSSValueID valueId;
771 switch (stepsTimingFunction->subType()) {
772 case StepsTimingFunction::Start:
773 valueId = CSSValueStepStart;
774 break;
775 case StepsTimingFunction::End:
776 valueId = CSSValueStepEnd;
777 break;
778 default:
779 ASSERT_NOT_REACHED();
780 return nullptr;
781 }
782 return cssValuePool().createIdentifierValue(valueId);
783 }
784
785 default:
786 return cssValuePool().createIdentifierValue(CSSValueLinear);
787 }
788 }
789
790 static PassRefPtr<CSSValue> valueForAnimationTimingFunction(const CSSTimingData* timingData)
791 {
792 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
793 if (timingData) {
794 for (size_t i = 0; i < timingData->timingFunctionList().size(); ++i)
795 list->append(createTimingFunctionValue(timingData->timingFunctionLis t()[i].get()));
796 } else {
797 list->append(createTimingFunctionValue(CSSTimingData::initialTimingFunct ion().get()));
798 }
799 return list.release();
800 }
801
802 static PassRefPtr<CSSValue> valueForAnimationFillMode(Timing::FillMode fillMode)
803 {
804 switch (fillMode) {
805 case Timing::FillModeNone:
806 return cssValuePool().createIdentifierValue(CSSValueNone);
807 case Timing::FillModeForwards:
808 return cssValuePool().createIdentifierValue(CSSValueForwards);
809 case Timing::FillModeBackwards:
810 return cssValuePool().createIdentifierValue(CSSValueBackwards);
811 case Timing::FillModeBoth:
812 return cssValuePool().createIdentifierValue(CSSValueBoth);
813 default:
814 ASSERT_NOT_REACHED();
815 return nullptr;
816 }
817 }
818
819 static PassRefPtr<CSSValue> valueForAnimationDirection(Timing::PlaybackDirection direction)
820 {
821 switch (direction) {
822 case Timing::PlaybackDirectionNormal:
823 return cssValuePool().createIdentifierValue(CSSValueNormal);
824 case Timing::PlaybackDirectionAlternate:
825 return cssValuePool().createIdentifierValue(CSSValueAlternate);
826 case Timing::PlaybackDirectionReverse:
827 return cssValuePool().createIdentifierValue(CSSValueReverse);
828 case Timing::PlaybackDirectionAlternateReverse:
829 return cssValuePool().createIdentifierValue(CSSValueAlternateReverse);
830 default:
831 ASSERT_NOT_REACHED();
832 return nullptr;
833 }
834 }
835
836 static PassRefPtr<CSSValue> valueForWillChange(const Vector<CSSPropertyID>& will ChangeProperties, bool willChangeContents)
837 {
838 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
839 if (willChangeContents)
840 list->append(cssValuePool().createIdentifierValue(CSSValueContents));
841 for (size_t i = 0; i < willChangeProperties.size(); ++i)
842 list->append(cssValuePool().createIdentifierValue(willChangeProperties[i ]));
843 if (!list->length())
844 list->append(cssValuePool().createIdentifierValue(CSSValueAuto));
845 return list.release();
846 }
847
848 static PassRefPtr<CSSValue> createLineBoxContainValue(unsigned lineBoxContain) 656 static PassRefPtr<CSSValue> createLineBoxContainValue(unsigned lineBoxContain)
849 { 657 {
850 if (!lineBoxContain) 658 if (!lineBoxContain)
851 return cssValuePool().createIdentifierValue(CSSValueNone); 659 return cssValuePool().createIdentifierValue(CSSValueNone);
852 return CSSLineBoxContainValue::create(lineBoxContain); 660 return CSSLineBoxContainValue::create(lineBoxContain);
853 } 661 }
854 662
855 CSSComputedStyleDeclaration::CSSComputedStyleDeclaration(PassRefPtr<Node> n, boo l allowVisitedStyle) 663 CSSComputedStyleDeclaration::CSSComputedStyleDeclaration(PassRefPtr<Node> n, boo l allowVisitedStyle)
856 : m_node(n) 664 : m_node(n)
857 , m_allowVisitedStyle(allowVisitedStyle) 665 , m_allowVisitedStyle(allowVisitedStyle)
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1681 return cssValuePool().createValue(style->whiteSpace()); 1489 return cssValuePool().createValue(style->whiteSpace());
1682 case CSSPropertyWidth: 1490 case CSSPropertyWidth:
1683 if (renderer) { 1491 if (renderer) {
1684 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width -property, 1492 // According to http://www.w3.org/TR/CSS2/visudet.html#the-width -property,
1685 // the "width" property does not apply for non-replaced inline e lements. 1493 // the "width" property does not apply for non-replaced inline e lements.
1686 if (!renderer->isReplaced() && renderer->isInline()) 1494 if (!renderer->isReplaced() && renderer->isInline())
1687 return cssValuePool().createIdentifierValue(CSSValueAuto); 1495 return cssValuePool().createIdentifierValue(CSSValueAuto);
1688 return pixelValue(sizingBox(renderer).width(), *style); 1496 return pixelValue(sizingBox(renderer).width(), *style);
1689 } 1497 }
1690 return pixelValueForLength(style->width(), *style); 1498 return pixelValueForLength(style->width(), *style);
1691 case CSSPropertyWillChange:
1692 return valueForWillChange(style->willChangeProperties(), style->will ChangeContents());
1693 case CSSPropertyWordBreak: 1499 case CSSPropertyWordBreak:
1694 return cssValuePool().createValue(style->wordBreak()); 1500 return cssValuePool().createValue(style->wordBreak());
1695 case CSSPropertyWordSpacing: 1501 case CSSPropertyWordSpacing:
1696 return pixelValue(style->wordSpacing(), *style); 1502 return pixelValue(style->wordSpacing(), *style);
1697 case CSSPropertyWordWrap: 1503 case CSSPropertyWordWrap:
1698 return cssValuePool().createValue(style->overflowWrap()); 1504 return cssValuePool().createValue(style->overflowWrap());
1699 case CSSPropertyWebkitLineBreak: 1505 case CSSPropertyWebkitLineBreak:
1700 return cssValuePool().createValue(style->lineBreak()); 1506 return cssValuePool().createValue(style->lineBreak());
1701 case CSSPropertyFontKerning: 1507 case CSSPropertyFontKerning:
1702 return cssValuePool().createValue(style->fontDescription().kerning() ); 1508 return cssValuePool().createValue(style->fontDescription().kerning() );
(...skipping 20 matching lines...) Expand all
1723 return valueList; 1529 return valueList;
1724 } 1530 }
1725 case CSSPropertyZIndex: 1531 case CSSPropertyZIndex:
1726 if (style->hasAutoZIndex()) 1532 if (style->hasAutoZIndex())
1727 return cssValuePool().createIdentifierValue(CSSValueAuto); 1533 return cssValuePool().createIdentifierValue(CSSValueAuto);
1728 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue ::CSS_NUMBER); 1534 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue ::CSS_NUMBER);
1729 case CSSPropertyBoxSizing: 1535 case CSSPropertyBoxSizing:
1730 if (style->boxSizing() == CONTENT_BOX) 1536 if (style->boxSizing() == CONTENT_BOX)
1731 return cssValuePool().createIdentifierValue(CSSValueContentBox); 1537 return cssValuePool().createIdentifierValue(CSSValueContentBox);
1732 return cssValuePool().createIdentifierValue(CSSValueBorderBox); 1538 return cssValuePool().createIdentifierValue(CSSValueBorderBox);
1733 case CSSPropertyAnimationDelay:
1734 return valueForAnimationDelay(style->animations());
1735 case CSSPropertyAnimationDirection: {
1736 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
1737 const CSSAnimationData* animationData = style->animations();
1738 if (animationData) {
1739 for (size_t i = 0; i < animationData->directionList().size(); ++ i)
1740 list->append(valueForAnimationDirection(animationData->direc tionList()[i]));
1741 } else {
1742 list->append(cssValuePool().createIdentifierValue(CSSValueNormal ));
1743 }
1744 return list.release();
1745 }
1746 case CSSPropertyAnimationDuration:
1747 return valueForAnimationDuration(style->animations());
1748 case CSSPropertyAnimationFillMode: {
1749 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
1750 const CSSAnimationData* animationData = style->animations();
1751 if (animationData) {
1752 for (size_t i = 0; i < animationData->fillModeList().size(); ++i )
1753 list->append(valueForAnimationFillMode(animationData->fillMo deList()[i]));
1754 } else {
1755 list->append(cssValuePool().createIdentifierValue(CSSValueNone)) ;
1756 }
1757 return list.release();
1758 }
1759 case CSSPropertyAnimationIterationCount: {
1760 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
1761 const CSSAnimationData* animationData = style->animations();
1762 if (animationData) {
1763 for (size_t i = 0; i < animationData->iterationCountList().size( ); ++i)
1764 list->append(valueForAnimationIterationCount(animationData-> iterationCountList()[i]));
1765 } else {
1766 list->append(cssValuePool().createValue(CSSAnimationData::initia lIterationCount(), CSSPrimitiveValue::CSS_NUMBER));
1767 }
1768 return list.release();
1769 }
1770 case CSSPropertyAnimationName: {
1771 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
1772 const CSSAnimationData* animationData = style->animations();
1773 if (animationData) {
1774 for (size_t i = 0; i < animationData->nameList().size(); ++i)
1775 list->append(cssValuePool().createValue(animationData->nameL ist()[i], CSSPrimitiveValue::CSS_STRING));
1776 } else {
1777 list->append(cssValuePool().createIdentifierValue(CSSValueNone)) ;
1778 }
1779 return list.release();
1780 }
1781 case CSSPropertyAnimationPlayState: {
1782 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
1783 const CSSAnimationData* animationData = style->animations();
1784 if (animationData) {
1785 for (size_t i = 0; i < animationData->playStateList().size(); ++ i)
1786 list->append(valueForAnimationPlayState(animationData->playS tateList()[i]));
1787 } else {
1788 list->append(cssValuePool().createIdentifierValue(CSSValueRunnin g));
1789 }
1790 return list.release();
1791 }
1792 case CSSPropertyAnimationTimingFunction:
1793 return valueForAnimationTimingFunction(style->animations());
1794 case CSSPropertyAnimation: {
1795 const CSSAnimationData* animationData = style->animations();
1796 if (animationData) {
1797 RefPtr<CSSValueList> animationsList = CSSValueList::createCommaS eparated();
1798 for (size_t i = 0; i < animationData->nameList().size(); ++i) {
1799 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed();
1800 list->append(cssValuePool().createValue(animationData->nameL ist()[i], CSSPrimitiveValue::CSS_STRING));
1801 list->append(cssValuePool().createValue(CSSTimingData::getRe peated(animationData->durationList(), i), CSSPrimitiveValue::CSS_S));
1802 list->append(createTimingFunctionValue(CSSTimingData::getRep eated(animationData->timingFunctionList(), i).get()));
1803 list->append(cssValuePool().createValue(CSSTimingData::getRe peated(animationData->delayList(), i), CSSPrimitiveValue::CSS_S));
1804 list->append(valueForAnimationIterationCount(CSSTimingData:: getRepeated(animationData->iterationCountList(), i)));
1805 list->append(valueForAnimationDirection(CSSTimingData::getRe peated(animationData->directionList(), i)));
1806 list->append(valueForAnimationFillMode(CSSTimingData::getRep eated(animationData->fillModeList(), i)));
1807 list->append(valueForAnimationPlayState(CSSTimingData::getRe peated(animationData->playStateList(), i)));
1808 animationsList->append(list);
1809 }
1810 return animationsList.release();
1811 }
1812
1813 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
1814 // animation-name default value.
1815 list->append(cssValuePool().createIdentifierValue(CSSValueNone));
1816 list->append(cssValuePool().createValue(CSSAnimationData::initialDur ation(), CSSPrimitiveValue::CSS_S));
1817 list->append(createTimingFunctionValue(CSSAnimationData::initialTimi ngFunction().get()));
1818 list->append(cssValuePool().createValue(CSSAnimationData::initialDel ay(), CSSPrimitiveValue::CSS_S));
1819 list->append(cssValuePool().createValue(CSSAnimationData::initialIte rationCount(), CSSPrimitiveValue::CSS_NUMBER));
1820 list->append(valueForAnimationDirection(CSSAnimationData::initialDir ection()));
1821 list->append(valueForAnimationFillMode(CSSAnimationData::initialFill Mode()));
1822 // Initial animation-play-state.
1823 list->append(cssValuePool().createIdentifierValue(CSSValueRunning));
1824 return list.release();
1825 }
1826 case CSSPropertyWebkitAspectRatio: 1539 case CSSPropertyWebkitAspectRatio:
1827 if (!style->hasAspectRatio()) 1540 if (!style->hasAspectRatio())
1828 return cssValuePool().createIdentifierValue(CSSValueNone); 1541 return cssValuePool().createIdentifierValue(CSSValueNone);
1829 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st yle->aspectRatioDenominator()); 1542 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st yle->aspectRatioDenominator());
1830 case CSSPropertyWebkitBorderImage: 1543 case CSSPropertyWebkitBorderImage:
1831 return valueForNinePieceImage(style->borderImage(), *style); 1544 return valueForNinePieceImage(style->borderImage(), *style);
1832 case CSSPropertyBorderImageOutset: 1545 case CSSPropertyBorderImageOutset:
1833 return valueForNinePieceImageQuad(style->borderImage().outset(), *st yle); 1546 return valueForNinePieceImageQuad(style->borderImage().outset(), *st yle);
1834 case CSSPropertyBorderImageRepeat: 1547 case CSSPropertyBorderImageRepeat:
1835 return valueForNinePieceImageRepeat(style->borderImage()); 1548 return valueForNinePieceImageRepeat(style->borderImage());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1906 list->append(pixelValueForLength(style->transformOriginX(), *sty le)); 1619 list->append(pixelValueForLength(style->transformOriginX(), *sty le));
1907 list->append(pixelValueForLength(style->transformOriginY(), *sty le)); 1620 list->append(pixelValueForLength(style->transformOriginY(), *sty le));
1908 if (style->transformOriginZ() != 0) 1621 if (style->transformOriginZ() != 0)
1909 list->append(pixelValue(style->transformOriginZ(), *style)); 1622 list->append(pixelValue(style->transformOriginZ(), *style));
1910 } 1623 }
1911 return list.release(); 1624 return list.release();
1912 } 1625 }
1913 case CSSPropertyTransformStyle: 1626 case CSSPropertyTransformStyle:
1914 case CSSPropertyWebkitTransformStyle: 1627 case CSSPropertyWebkitTransformStyle:
1915 return cssValuePool().createIdentifierValue((style->transformStyle3D () == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat); 1628 return cssValuePool().createIdentifierValue((style->transformStyle3D () == TransformStyle3DPreserve3D) ? CSSValuePreserve3d : CSSValueFlat);
1916 case CSSPropertyTransitionDelay:
1917 return valueForAnimationDelay(style->transitions());
1918 case CSSPropertyTransitionDuration:
1919 return valueForAnimationDuration(style->transitions());
1920 case CSSPropertyTransitionProperty:
1921 return valueForTransitionProperty(style->transitions());
1922 case CSSPropertyTransitionTimingFunction:
1923 return valueForAnimationTimingFunction(style->transitions());
1924 case CSSPropertyTransition: {
1925 const CSSTransitionData* transitionData = style->transitions();
1926 if (transitionData) {
1927 RefPtr<CSSValueList> transitionsList = CSSValueList::createComma Separated();
1928 for (size_t i = 0; i < transitionData->propertyList().size(); ++ i) {
1929 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparat ed();
1930 list->append(createTransitionPropertyValue(transitionData->p ropertyList()[i]));
1931 list->append(cssValuePool().createValue(CSSTimingData::getRe peated(transitionData->durationList(), i), CSSPrimitiveValue::CSS_S));
1932 list->append(createTimingFunctionValue(CSSTimingData::getRep eated(transitionData->timingFunctionList(), i).get()));
1933 list->append(cssValuePool().createValue(CSSTimingData::getRe peated(transitionData->delayList(), i), CSSPrimitiveValue::CSS_S));
1934 transitionsList->append(list);
1935 }
1936 return transitionsList.release();
1937 }
1938
1939 RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
1940 // transition-property default value.
1941 list->append(cssValuePool().createIdentifierValue(CSSValueAll));
1942 list->append(cssValuePool().createValue(CSSTransitionData::initialDu ration(), CSSPrimitiveValue::CSS_S));
1943 list->append(createTimingFunctionValue(CSSTransitionData::initialTim ingFunction().get()));
1944 list->append(cssValuePool().createValue(CSSTransitionData::initialDe lay(), CSSPrimitiveValue::CSS_S));
1945 return list.release();
1946 }
1947 case CSSPropertyPointerEvents: 1629 case CSSPropertyPointerEvents:
1948 return cssValuePool().createValue(style->pointerEvents()); 1630 return cssValuePool().createValue(style->pointerEvents());
1949 case CSSPropertyWebkitTextOrientation: 1631 case CSSPropertyWebkitTextOrientation:
1950 return CSSPrimitiveValue::create(style->textOrientation()); 1632 return CSSPrimitiveValue::create(style->textOrientation());
1951 case CSSPropertyWebkitLineBoxContain: 1633 case CSSPropertyWebkitLineBoxContain:
1952 return createLineBoxContainValue(style->lineBoxContain()); 1634 return createLineBoxContainValue(style->lineBoxContain());
1953 case CSSPropertyWebkitClipPath: 1635 case CSSPropertyWebkitClipPath:
1954 if (ClipPathOperation* operation = style->clipPath()) { 1636 if (ClipPathOperation* operation = style->clipPath()) {
1955 if (operation->type() == ClipPathOperation::SHAPE) 1637 if (operation->type() == ClipPathOperation::SHAPE)
1956 return valueForBasicShape(*style, toShapeClipPathOperation(o peration)->basicShape()); 1638 return valueForBasicShape(*style, toShapeClipPathOperation(o peration)->basicShape());
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB ackgroundSize, CSSPropertyBackgroundOrigin, 1907 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB ackgroundSize, CSSPropertyBackgroundOrigin,
2226 CSSPropertyB ackgroundClip }; 1908 CSSPropertyB ackgroundClip };
2227 1909
2228 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); 1910 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated();
2229 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash Seperator)))); 1911 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa ckground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlash Seperator))));
2230 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe perator)))); 1912 list->append(valuesForShorthandProperty(StylePropertyShorthand(CSSPropertyBa ckground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSe perator))));
2231 return list.release(); 1913 return list.release();
2232 } 1914 }
2233 1915
2234 } // namespace blink 1916 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/core.gni ('k') | sky/engine/core/css/CSSProperties.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698