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

Side by Side Diff: Source/core/animation/css/CSSAnimatableValueFactory.cpp

Issue 57643004: Pass RenderStyle / RenderObject by reference in more places (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase on master Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 #include "core/animation/css/CSSAnimations.h" 54 #include "core/animation/css/CSSAnimations.h"
55 #include "core/css/CSSCalculationValue.h" 55 #include "core/css/CSSCalculationValue.h"
56 #include "core/css/CSSPrimitiveValue.h" 56 #include "core/css/CSSPrimitiveValue.h"
57 #include "core/css/CSSPrimitiveValueMappings.h" 57 #include "core/css/CSSPrimitiveValueMappings.h"
58 #include "core/rendering/style/RenderStyle.h" 58 #include "core/rendering/style/RenderStyle.h"
59 #include "platform/Length.h" 59 #include "platform/Length.h"
60 #include "platform/LengthBox.h" 60 #include "platform/LengthBox.h"
61 61
62 namespace WebCore { 62 namespace WebCore {
63 63
64 static PassRefPtr<AnimatableValue> createFromLength(const Length& length, const RenderStyle* style) 64 static PassRefPtr<AnimatableValue> createFromLength(const Length& length, const RenderStyle& style)
65 { 65 {
66 switch (length.type()) { 66 switch (length.type()) {
67 case Fixed: 67 case Fixed:
68 return AnimatableLength::create(adjustFloatForAbsoluteZoom(length.value( ), style), AnimatableLength::UnitTypePixels); 68 return AnimatableLength::create(adjustFloatForAbsoluteZoom(length.value( ), style), AnimatableLength::UnitTypePixels);
69 case Percent: 69 case Percent:
70 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy pePercentage); 70 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy pePercentage);
71 case ViewportPercentageWidth: 71 case ViewportPercentageWidth:
72 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportWidth); 72 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportWidth);
73 case ViewportPercentageHeight: 73 case ViewportPercentageHeight:
74 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportHeight); 74 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportHeight);
75 case ViewportPercentageMin: 75 case ViewportPercentageMin:
76 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportMin); 76 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportMin);
77 case ViewportPercentageMax: 77 case ViewportPercentageMax:
78 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportMax); 78 return AnimatableLength::create(length.value(), AnimatableLength::UnitTy peViewportMax);
79 case Calculated: 79 case Calculated:
80 return AnimatableLength::create(CSSCalcValue::createExpressionNode(lengt h.calculationValue()->expression(), style->effectiveZoom())); 80 return AnimatableLength::create(CSSCalcValue::createExpressionNode(lengt h.calculationValue()->expression(), style.effectiveZoom()));
81 case Auto: 81 case Auto:
82 case Intrinsic: 82 case Intrinsic:
83 case MinIntrinsic: 83 case MinIntrinsic:
84 case MinContent: 84 case MinContent:
85 case MaxContent: 85 case MaxContent:
86 case FillAvailable: 86 case FillAvailable:
87 case FitContent: 87 case FitContent:
88 return AnimatableUnknown::create(CSSPrimitiveValue::create(length)); 88 return AnimatableUnknown::create(CSSPrimitiveValue::create(length));
89 case Undefined: 89 case Undefined:
90 return AnimatableUnknown::create(CSSValueNone); 90 return AnimatableUnknown::create(CSSValueNone);
91 case ExtendToZoom: // Does not apply to elements. 91 case ExtendToZoom: // Does not apply to elements.
92 case Relative: // Does not get used by interpolable properties. 92 case Relative: // Does not get used by interpolable properties.
93 ASSERT_NOT_REACHED(); 93 ASSERT_NOT_REACHED();
94 return 0; 94 return 0;
95 } 95 }
96 ASSERT_NOT_REACHED(); 96 ASSERT_NOT_REACHED();
97 return 0; 97 return 0;
98 } 98 }
99 99
100 static PassRefPtr<AnimatableValue> createFromLineHeight(const Length& length, co nst RenderStyle* style) 100 static PassRefPtr<AnimatableValue> createFromLineHeight(const Length& length, co nst RenderStyle& style)
101 { 101 {
102 double value = length.value(); 102 double value = length.value();
103 switch (length.type()) { 103 switch (length.type()) {
104 case Fixed: 104 case Fixed:
105 return AnimatableLength::create(adjustFloatForAbsoluteZoom(value, style) , AnimatableLength::UnitTypePixels); 105 return AnimatableLength::create(adjustFloatForAbsoluteZoom(value, style) , AnimatableLength::UnitTypePixels);
106 case Percent: 106 case Percent:
107 // -100% is used to represent "normal" line height. 107 // -100% is used to represent "normal" line height.
108 if (value == -100) 108 if (value == -100)
109 return AnimatableUnknown::create(CSSValueNormal); 109 return AnimatableUnknown::create(CSSValueNormal);
110 return AnimatableDouble::create(value); 110 return AnimatableDouble::create(value);
111 default: 111 default:
112 ASSERT_NOT_REACHED(); 112 ASSERT_NOT_REACHED();
113 return 0; 113 return 0;
114 } 114 }
115 } 115 }
116 116
117 inline static PassRefPtr<AnimatableValue> createFromDouble(double value, Animata bleDouble::Constraint constraint = AnimatableDouble::Unconstrained) 117 inline static PassRefPtr<AnimatableValue> createFromDouble(double value, Animata bleDouble::Constraint constraint = AnimatableDouble::Unconstrained)
118 { 118 {
119 return AnimatableDouble::create(value, constraint); 119 return AnimatableDouble::create(value, constraint);
120 } 120 }
121 121
122 inline static PassRefPtr<AnimatableValue> createFromLengthBox(const LengthBox& l engthBox, const RenderStyle* style) 122 inline static PassRefPtr<AnimatableValue> createFromLengthBox(const LengthBox& l engthBox, const RenderStyle& style)
123 { 123 {
124 return AnimatableLengthBox::create( 124 return AnimatableLengthBox::create(
125 createFromLength(lengthBox.left(), style), 125 createFromLength(lengthBox.left(), style),
126 createFromLength(lengthBox.right(), style), 126 createFromLength(lengthBox.right(), style),
127 createFromLength(lengthBox.top(), style), 127 createFromLength(lengthBox.top(), style),
128 createFromLength(lengthBox.bottom(), style)); 128 createFromLength(lengthBox.bottom(), style));
129 } 129 }
130 130
131 inline static PassRefPtr<AnimatableValue> createFromLengthBoxAndBool(const Lengt hBox lengthBox, const bool flag, const RenderStyle *style) 131 inline static PassRefPtr<AnimatableValue> createFromLengthBoxAndBool(const Lengt hBox lengthBox, const bool flag, const RenderStyle& style)
132 { 132 {
133 return AnimatableLengthBoxAndBool::create( 133 return AnimatableLengthBoxAndBool::create(
134 createFromLengthBox(lengthBox, style), 134 createFromLengthBox(lengthBox, style),
135 flag); 135 flag);
136 } 136 }
137 137
138 inline static PassRefPtr<AnimatableValue> createFromLengthPoint(const LengthPoin t& lengthPoint, const RenderStyle* style) 138 inline static PassRefPtr<AnimatableValue> createFromLengthPoint(const LengthPoin t& lengthPoint, const RenderStyle& style)
139 { 139 {
140 return AnimatableLengthPoint::create( 140 return AnimatableLengthPoint::create(
141 createFromLength(lengthPoint.x(), style), 141 createFromLength(lengthPoint.x(), style),
142 createFromLength(lengthPoint.y(), style)); 142 createFromLength(lengthPoint.y(), style));
143 } 143 }
144 144
145 inline static PassRefPtr<AnimatableValue> createFromLengthSize(const LengthSize& lengthSize, const RenderStyle* style) 145 inline static PassRefPtr<AnimatableValue> createFromLengthSize(const LengthSize& lengthSize, const RenderStyle& style)
146 { 146 {
147 return AnimatableLengthSize::create( 147 return AnimatableLengthSize::create(
148 createFromLength(lengthSize.width(), style), 148 createFromLength(lengthSize.width(), style),
149 createFromLength(lengthSize.height(), style)); 149 createFromLength(lengthSize.height(), style));
150 } 150 }
151 151
152 inline static PassRefPtr<AnimatableValue> createFromStyleImage(StyleImage* image ) 152 inline static PassRefPtr<AnimatableValue> createFromStyleImage(StyleImage* image )
153 { 153 {
154 if (image) 154 if (image)
155 return AnimatableImage::create(image); 155 return AnimatableImage::create(image);
156 return AnimatableUnknown::create(CSSValueNone); 156 return AnimatableUnknown::create(CSSValueNone);
157 } 157 }
158 158
159 inline static PassRefPtr<AnimatableValue> createFromFillSize(const FillSize& fil lSize, const RenderStyle* style) 159 inline static PassRefPtr<AnimatableValue> createFromFillSize(const FillSize& fil lSize, const RenderStyle& style)
160 { 160 {
161 switch (fillSize.type) { 161 switch (fillSize.type) {
162 case SizeLength: 162 case SizeLength:
163 return createFromLengthSize(fillSize.size, style); 163 return createFromLengthSize(fillSize.size, style);
164 case Contain: 164 case Contain:
165 case Cover: 165 case Cover:
166 case SizeNone: 166 case SizeNone:
167 return AnimatableUnknown::create(CSSPrimitiveValue::create(fillSize.type )); 167 return AnimatableUnknown::create(CSSPrimitiveValue::create(fillSize.type ));
168 default: 168 default:
169 ASSERT_NOT_REACHED(); 169 ASSERT_NOT_REACHED();
170 return 0; 170 return 0;
171 } 171 }
172 } 172 }
173 173
174 template<CSSPropertyID property> 174 template<CSSPropertyID property>
175 inline static PassRefPtr<AnimatableValue> createFromFillLayers(const FillLayer* fillLayer, const RenderStyle* style) 175 inline static PassRefPtr<AnimatableValue> createFromFillLayers(const FillLayer* fillLayer, const RenderStyle& style)
176 { 176 {
177 ASSERT(fillLayer); 177 ASSERT(fillLayer);
178 Vector<RefPtr<AnimatableValue> > values; 178 Vector<RefPtr<AnimatableValue> > values;
179 while (fillLayer) { 179 while (fillLayer) {
180 if (property == CSSPropertyBackgroundImage || property == CSSPropertyWeb kitMaskImage) { 180 if (property == CSSPropertyBackgroundImage || property == CSSPropertyWeb kitMaskImage) {
181 if (!fillLayer->isImageSet()) 181 if (!fillLayer->isImageSet())
182 break; 182 break;
183 values.append(createFromStyleImage(fillLayer->image())); 183 values.append(createFromStyleImage(fillLayer->image()));
184 } else if (property == CSSPropertyBackgroundPositionX || property == CSS PropertyWebkitMaskPositionX) { 184 } else if (property == CSSPropertyBackgroundPositionX || property == CSS PropertyWebkitMaskPositionX) {
185 if (!fillLayer->isXPositionSet()) 185 if (!fillLayer->isXPositionSet())
186 break; 186 break;
187 values.append(createFromLength(fillLayer->xPosition(), style)); 187 values.append(createFromLength(fillLayer->xPosition(), style));
188 } else if (property == CSSPropertyBackgroundPositionY || property == CSS PropertyWebkitMaskPositionY) { 188 } else if (property == CSSPropertyBackgroundPositionY || property == CSS PropertyWebkitMaskPositionY) {
189 if (!fillLayer->isYPositionSet()) 189 if (!fillLayer->isYPositionSet())
190 break; 190 break;
191 values.append(createFromLength(fillLayer->yPosition(), style)); 191 values.append(createFromLength(fillLayer->yPosition(), style));
192 } else if (property == CSSPropertyBackgroundSize || property == CSSPrope rtyWebkitMaskSize) { 192 } else if (property == CSSPropertyBackgroundSize || property == CSSPrope rtyWebkitMaskSize) {
193 if (!fillLayer->isSizeSet()) 193 if (!fillLayer->isSizeSet())
194 break; 194 break;
195 values.append(createFromFillSize(fillLayer->size(), style)); 195 values.append(createFromFillSize(fillLayer->size(), style));
196 } else { 196 } else {
197 ASSERT_NOT_REACHED(); 197 ASSERT_NOT_REACHED();
198 } 198 }
199 fillLayer = fillLayer->next(); 199 fillLayer = fillLayer->next();
200 } 200 }
201 return AnimatableRepeatable::create(values); 201 return AnimatableRepeatable::create(values);
202 } 202 }
203 203
204 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::createFromColor(CSSProper tyID property, const RenderStyle* style) 204 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::createFromColor(CSSProper tyID property, const RenderStyle& style)
205 { 205 {
206 Color color = style->colorIncludingFallback(property, false); 206 Color color = style.colorIncludingFallback(property, false);
207 Color visitedLinkColor = style->colorIncludingFallback(property, true); 207 Color visitedLinkColor = style.colorIncludingFallback(property, true);
208 Color fallbackColor = style->color(); 208 Color fallbackColor = style.color();
209 Color fallbackVisitedLinkColor = style->visitedLinkColor(); 209 Color fallbackVisitedLinkColor = style.visitedLinkColor();
210 Color resolvedColor; 210 Color resolvedColor;
211 if (color.isValid()) 211 if (color.isValid())
212 resolvedColor = color; 212 resolvedColor = color;
213 else 213 else
214 resolvedColor = fallbackColor; 214 resolvedColor = fallbackColor;
215 Color resolvedVisitedLinkColor; 215 Color resolvedVisitedLinkColor;
216 if (visitedLinkColor.isValid()) 216 if (visitedLinkColor.isValid())
217 resolvedVisitedLinkColor = visitedLinkColor; 217 resolvedVisitedLinkColor = visitedLinkColor;
218 else 218 else
219 resolvedVisitedLinkColor = fallbackVisitedLinkColor; 219 resolvedVisitedLinkColor = fallbackVisitedLinkColor;
220 return AnimatableColor::create(resolvedColor, resolvedVisitedLinkColor); 220 return AnimatableColor::create(resolvedColor, resolvedVisitedLinkColor);
221 } 221 }
222 222
223 // FIXME: Generate this function. 223 // FIXME: Generate this function.
224 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::create(CSSPropertyID prop erty, const RenderStyle* style) 224 PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::create(CSSPropertyID prop erty, const RenderStyle& style)
225 { 225 {
226 switch (property) { 226 switch (property) {
227 case CSSPropertyBackgroundColor: 227 case CSSPropertyBackgroundColor:
228 return createFromColor(property, style); 228 return createFromColor(property, style);
229 case CSSPropertyBackgroundImage: 229 case CSSPropertyBackgroundImage:
230 return createFromFillLayers<CSSPropertyBackgroundImage>(style->backgroun dLayers(), style); 230 return createFromFillLayers<CSSPropertyBackgroundImage>(style.background Layers(), style);
231 case CSSPropertyBackgroundPositionX: 231 case CSSPropertyBackgroundPositionX:
232 return createFromFillLayers<CSSPropertyBackgroundPositionX>(style->backg roundLayers(), style); 232 return createFromFillLayers<CSSPropertyBackgroundPositionX>(style.backgr oundLayers(), style);
233 case CSSPropertyBackgroundPositionY: 233 case CSSPropertyBackgroundPositionY:
234 return createFromFillLayers<CSSPropertyBackgroundPositionY>(style->backg roundLayers(), style); 234 return createFromFillLayers<CSSPropertyBackgroundPositionY>(style.backgr oundLayers(), style);
235 case CSSPropertyBackgroundSize: 235 case CSSPropertyBackgroundSize:
236 case CSSPropertyWebkitBackgroundSize: 236 case CSSPropertyWebkitBackgroundSize:
237 return createFromFillLayers<CSSPropertyBackgroundSize>(style->background Layers(), style); 237 return createFromFillLayers<CSSPropertyBackgroundSize>(style.backgroundL ayers(), style);
238 case CSSPropertyBaselineShift: 238 case CSSPropertyBaselineShift:
239 return AnimatableSVGLength::create(style->baselineShiftValue()); 239 return AnimatableSVGLength::create(style.baselineShiftValue());
240 case CSSPropertyBorderBottomColor: 240 case CSSPropertyBorderBottomColor:
241 return createFromColor(property, style); 241 return createFromColor(property, style);
242 case CSSPropertyBorderBottomLeftRadius: 242 case CSSPropertyBorderBottomLeftRadius:
243 return createFromLengthSize(style->borderBottomLeftRadius(), style); 243 return createFromLengthSize(style.borderBottomLeftRadius(), style);
244 case CSSPropertyBorderBottomRightRadius: 244 case CSSPropertyBorderBottomRightRadius:
245 return createFromLengthSize(style->borderBottomRightRadius(), style); 245 return createFromLengthSize(style.borderBottomRightRadius(), style);
246 case CSSPropertyBorderBottomWidth: 246 case CSSPropertyBorderBottomWidth:
247 return createFromDouble(style->borderBottomWidth()); 247 return createFromDouble(style.borderBottomWidth());
248 case CSSPropertyBorderImageOutset: 248 case CSSPropertyBorderImageOutset:
249 return createFromLengthBox(style->borderImageOutset(), style); 249 return createFromLengthBox(style.borderImageOutset(), style);
250 case CSSPropertyBorderImageSlice: 250 case CSSPropertyBorderImageSlice:
251 return createFromLengthBox(style->borderImageSlices(), style); 251 return createFromLengthBox(style.borderImageSlices(), style);
252 case CSSPropertyBorderImageSource: 252 case CSSPropertyBorderImageSource:
253 return createFromStyleImage(style->borderImageSource()); 253 return createFromStyleImage(style.borderImageSource());
254 case CSSPropertyBorderImageWidth: 254 case CSSPropertyBorderImageWidth:
255 return createFromLengthBox(style->borderImageWidth(), style); 255 return createFromLengthBox(style.borderImageWidth(), style);
256 case CSSPropertyBorderLeftColor: 256 case CSSPropertyBorderLeftColor:
257 return createFromColor(property, style); 257 return createFromColor(property, style);
258 case CSSPropertyBorderLeftWidth: 258 case CSSPropertyBorderLeftWidth:
259 return createFromDouble(style->borderLeftWidth()); 259 return createFromDouble(style.borderLeftWidth());
260 case CSSPropertyBorderRightColor: 260 case CSSPropertyBorderRightColor:
261 return createFromColor(property, style); 261 return createFromColor(property, style);
262 case CSSPropertyBorderRightWidth: 262 case CSSPropertyBorderRightWidth:
263 return createFromDouble(style->borderRightWidth()); 263 return createFromDouble(style.borderRightWidth());
264 case CSSPropertyBorderTopColor: 264 case CSSPropertyBorderTopColor:
265 return createFromColor(property, style); 265 return createFromColor(property, style);
266 case CSSPropertyBorderTopLeftRadius: 266 case CSSPropertyBorderTopLeftRadius:
267 return createFromLengthSize(style->borderTopLeftRadius(), style); 267 return createFromLengthSize(style.borderTopLeftRadius(), style);
268 case CSSPropertyBorderTopRightRadius: 268 case CSSPropertyBorderTopRightRadius:
269 return createFromLengthSize(style->borderTopRightRadius(), style); 269 return createFromLengthSize(style.borderTopRightRadius(), style);
270 case CSSPropertyBorderTopWidth: 270 case CSSPropertyBorderTopWidth:
271 return createFromDouble(style->borderTopWidth()); 271 return createFromDouble(style.borderTopWidth());
272 case CSSPropertyBottom: 272 case CSSPropertyBottom:
273 return createFromLength(style->bottom(), style); 273 return createFromLength(style.bottom(), style);
274 case CSSPropertyBoxShadow: 274 case CSSPropertyBoxShadow:
275 case CSSPropertyWebkitBoxShadow: 275 case CSSPropertyWebkitBoxShadow:
276 return AnimatableShadow::create(style->boxShadow()); 276 return AnimatableShadow::create(style.boxShadow());
277 case CSSPropertyClip: 277 case CSSPropertyClip:
278 if (style->hasClip()) 278 if (style.hasClip())
279 return createFromLengthBox(style->clip(), style); 279 return createFromLengthBox(style.clip(), style);
280 return AnimatableUnknown::create(CSSPrimitiveValue::create(CSSValueAuto) ); 280 return AnimatableUnknown::create(CSSPrimitiveValue::create(CSSValueAuto) );
281 case CSSPropertyColor: 281 case CSSPropertyColor:
282 return createFromColor(property, style); 282 return createFromColor(property, style);
283 case CSSPropertyFillOpacity: 283 case CSSPropertyFillOpacity:
284 return createFromDouble(style->fillOpacity()); 284 return createFromDouble(style.fillOpacity());
285 case CSSPropertyFill: 285 case CSSPropertyFill:
286 return AnimatableSVGPaint::create(style->svgStyle()->fillPaintType(), st yle->svgStyle()->fillPaintColor(), style->svgStyle()->fillPaintUri()); 286 return AnimatableSVGPaint::create(style.svgStyle()->fillPaintType(), sty le.svgStyle()->fillPaintColor(), style.svgStyle()->fillPaintUri());
287 case CSSPropertyFlexGrow: 287 case CSSPropertyFlexGrow:
288 return createFromDouble(style->flexGrow(), AnimatableDouble::Interpolati onIsNonContinuousWithZero); 288 return createFromDouble(style.flexGrow(), AnimatableDouble::Interpolatio nIsNonContinuousWithZero);
289 case CSSPropertyFlexShrink: 289 case CSSPropertyFlexShrink:
290 return createFromDouble(style->flexShrink(), AnimatableDouble::Interpola tionIsNonContinuousWithZero); 290 return createFromDouble(style.flexShrink(), AnimatableDouble::Interpolat ionIsNonContinuousWithZero);
291 case CSSPropertyFlexBasis: 291 case CSSPropertyFlexBasis:
292 return createFromLength(style->flexBasis(), style); 292 return createFromLength(style.flexBasis(), style);
293 case CSSPropertyFloodColor: 293 case CSSPropertyFloodColor:
294 return createFromColor(property, style); 294 return createFromColor(property, style);
295 case CSSPropertyFloodOpacity: 295 case CSSPropertyFloodOpacity:
296 return createFromDouble(style->floodOpacity()); 296 return createFromDouble(style.floodOpacity());
297 case CSSPropertyFontSize: 297 case CSSPropertyFontSize:
298 // Must pass a specified size to setFontSize if Text Autosizing is enabl ed, but a computed size 298 // Must pass a specified size to setFontSize if Text Autosizing is enabl ed, but a computed size
299 // if text zoom is enabled (if neither is enabled it's irrelevant as the y're probably the same). 299 // if text zoom is enabled (if neither is enabled it's irrelevant as the y're probably the same).
300 // FIXME: Should we introduce an option to pass the computed font size h ere, allowing consumers to 300 // FIXME: Should we introduce an option to pass the computed font size h ere, allowing consumers to
301 // enable text zoom rather than Text Autosizing? See http://crbug.com/22 7545. 301 // enable text zoom rather than Text Autosizing? See http://crbug.com/22 7545.
302 return createFromDouble(style->specifiedFontSize()); 302 return createFromDouble(style.specifiedFontSize());
303 case CSSPropertyHeight: 303 case CSSPropertyHeight:
304 return createFromLength(style->height(), style); 304 return createFromLength(style.height(), style);
305 case CSSPropertyKerning: 305 case CSSPropertyKerning:
306 return AnimatableSVGLength::create(style->kerning()); 306 return AnimatableSVGLength::create(style.kerning());
307 case CSSPropertyLightingColor: 307 case CSSPropertyLightingColor:
308 return createFromColor(property, style); 308 return createFromColor(property, style);
309 case CSSPropertyListStyleImage: 309 case CSSPropertyListStyleImage:
310 return createFromStyleImage(style->listStyleImage()); 310 return createFromStyleImage(style.listStyleImage());
311 case CSSPropertyLeft: 311 case CSSPropertyLeft:
312 return createFromLength(style->left(), style); 312 return createFromLength(style.left(), style);
313 case CSSPropertyLetterSpacing: 313 case CSSPropertyLetterSpacing:
314 return createFromDouble(style->letterSpacing()); 314 return createFromDouble(style.letterSpacing());
315 case CSSPropertyLineHeight: 315 case CSSPropertyLineHeight:
316 return createFromLineHeight(style->specifiedLineHeight(), style); 316 return createFromLineHeight(style.specifiedLineHeight(), style);
317 case CSSPropertyMarginBottom: 317 case CSSPropertyMarginBottom:
318 return createFromLength(style->marginBottom(), style); 318 return createFromLength(style.marginBottom(), style);
319 case CSSPropertyMarginLeft: 319 case CSSPropertyMarginLeft:
320 return createFromLength(style->marginLeft(), style); 320 return createFromLength(style.marginLeft(), style);
321 case CSSPropertyMarginRight: 321 case CSSPropertyMarginRight:
322 return createFromLength(style->marginRight(), style); 322 return createFromLength(style.marginRight(), style);
323 case CSSPropertyMarginTop: 323 case CSSPropertyMarginTop:
324 return createFromLength(style->marginTop(), style); 324 return createFromLength(style.marginTop(), style);
325 case CSSPropertyMaxHeight: 325 case CSSPropertyMaxHeight:
326 return createFromLength(style->maxHeight(), style); 326 return createFromLength(style.maxHeight(), style);
327 case CSSPropertyMaxWidth: 327 case CSSPropertyMaxWidth:
328 return createFromLength(style->maxWidth(), style); 328 return createFromLength(style.maxWidth(), style);
329 case CSSPropertyMinHeight: 329 case CSSPropertyMinHeight:
330 return createFromLength(style->minHeight(), style); 330 return createFromLength(style.minHeight(), style);
331 case CSSPropertyMinWidth: 331 case CSSPropertyMinWidth:
332 return createFromLength(style->minWidth(), style); 332 return createFromLength(style.minWidth(), style);
333 case CSSPropertyObjectPosition: 333 case CSSPropertyObjectPosition:
334 return createFromLengthPoint(style->objectPosition(), style); 334 return createFromLengthPoint(style.objectPosition(), style);
335 case CSSPropertyOpacity: 335 case CSSPropertyOpacity:
336 return createFromDouble(style->opacity()); 336 return createFromDouble(style.opacity());
337 case CSSPropertyOrphans: 337 case CSSPropertyOrphans:
338 return createFromDouble(style->orphans()); 338 return createFromDouble(style.orphans());
339 case CSSPropertyOutlineColor: 339 case CSSPropertyOutlineColor:
340 return createFromColor(property, style); 340 return createFromColor(property, style);
341 case CSSPropertyOutlineOffset: 341 case CSSPropertyOutlineOffset:
342 return createFromDouble(style->outlineOffset()); 342 return createFromDouble(style.outlineOffset());
343 case CSSPropertyOutlineWidth: 343 case CSSPropertyOutlineWidth:
344 return createFromDouble(style->outlineWidth()); 344 return createFromDouble(style.outlineWidth());
345 case CSSPropertyPaddingBottom: 345 case CSSPropertyPaddingBottom:
346 return createFromLength(style->paddingBottom(), style); 346 return createFromLength(style.paddingBottom(), style);
347 case CSSPropertyPaddingLeft: 347 case CSSPropertyPaddingLeft:
348 return createFromLength(style->paddingLeft(), style); 348 return createFromLength(style.paddingLeft(), style);
349 case CSSPropertyPaddingRight: 349 case CSSPropertyPaddingRight:
350 return createFromLength(style->paddingRight(), style); 350 return createFromLength(style.paddingRight(), style);
351 case CSSPropertyPaddingTop: 351 case CSSPropertyPaddingTop:
352 return createFromLength(style->paddingTop(), style); 352 return createFromLength(style.paddingTop(), style);
353 case CSSPropertyRight: 353 case CSSPropertyRight:
354 return createFromLength(style->right(), style); 354 return createFromLength(style.right(), style);
355 case CSSPropertyStrokeWidth: 355 case CSSPropertyStrokeWidth:
356 return AnimatableSVGLength::create(style->strokeWidth()); 356 return AnimatableSVGLength::create(style.strokeWidth());
357 case CSSPropertyStopColor: 357 case CSSPropertyStopColor:
358 return createFromColor(property, style); 358 return createFromColor(property, style);
359 case CSSPropertyStopOpacity: 359 case CSSPropertyStopOpacity:
360 return createFromDouble(style->stopOpacity()); 360 return createFromDouble(style.stopOpacity());
361 case CSSPropertyStrokeDasharray: 361 case CSSPropertyStrokeDasharray:
362 return AnimatableStrokeDasharrayList::create(style->strokeDashArray()); 362 return AnimatableStrokeDasharrayList::create(style.strokeDashArray());
363 case CSSPropertyStrokeDashoffset: 363 case CSSPropertyStrokeDashoffset:
364 return AnimatableSVGLength::create(style->strokeDashOffset()); 364 return AnimatableSVGLength::create(style.strokeDashOffset());
365 case CSSPropertyStrokeMiterlimit: 365 case CSSPropertyStrokeMiterlimit:
366 return createFromDouble(style->strokeMiterLimit()); 366 return createFromDouble(style.strokeMiterLimit());
367 case CSSPropertyStrokeOpacity: 367 case CSSPropertyStrokeOpacity:
368 return createFromDouble(style->strokeOpacity()); 368 return createFromDouble(style.strokeOpacity());
369 case CSSPropertyStroke: 369 case CSSPropertyStroke:
370 return AnimatableSVGPaint::create(style->svgStyle()->strokePaintType(), style->svgStyle()->strokePaintColor(), style->svgStyle()->strokePaintUri()); 370 return AnimatableSVGPaint::create(style.svgStyle()->strokePaintType(), s tyle.svgStyle()->strokePaintColor(), style.svgStyle()->strokePaintUri());
371 case CSSPropertyTextDecorationColor: 371 case CSSPropertyTextDecorationColor:
372 return createFromColor(property, style); 372 return createFromColor(property, style);
373 case CSSPropertyTextIndent: 373 case CSSPropertyTextIndent:
374 return createFromLength(style->textIndent(), style); 374 return createFromLength(style.textIndent(), style);
375 case CSSPropertyTextShadow: 375 case CSSPropertyTextShadow:
376 return AnimatableShadow::create(style->textShadow()); 376 return AnimatableShadow::create(style.textShadow());
377 case CSSPropertyTop: 377 case CSSPropertyTop:
378 return createFromLength(style->top(), style); 378 return createFromLength(style.top(), style);
379 case CSSPropertyWebkitBorderHorizontalSpacing: 379 case CSSPropertyWebkitBorderHorizontalSpacing:
380 return createFromDouble(style->horizontalBorderSpacing()); 380 return createFromDouble(style.horizontalBorderSpacing());
381 case CSSPropertyWebkitBorderVerticalSpacing: 381 case CSSPropertyWebkitBorderVerticalSpacing:
382 return createFromDouble(style->verticalBorderSpacing()); 382 return createFromDouble(style.verticalBorderSpacing());
383 case CSSPropertyWebkitClipPath: 383 case CSSPropertyWebkitClipPath:
384 return AnimatableClipPathOperation::create(style->clipPath()); 384 return AnimatableClipPathOperation::create(style.clipPath());
385 case CSSPropertyWebkitColumnCount: 385 case CSSPropertyWebkitColumnCount:
386 return createFromDouble(style->columnCount()); 386 return createFromDouble(style.columnCount());
387 case CSSPropertyWebkitColumnGap: 387 case CSSPropertyWebkitColumnGap:
388 return createFromDouble(style->columnGap()); 388 return createFromDouble(style.columnGap());
389 case CSSPropertyWebkitColumnRuleColor: 389 case CSSPropertyWebkitColumnRuleColor:
390 return createFromColor(property, style); 390 return createFromColor(property, style);
391 case CSSPropertyWebkitColumnRuleWidth: 391 case CSSPropertyWebkitColumnRuleWidth:
392 return createFromDouble(style->columnRuleWidth()); 392 return createFromDouble(style.columnRuleWidth());
393 case CSSPropertyWebkitColumnWidth: 393 case CSSPropertyWebkitColumnWidth:
394 return createFromDouble(style->columnWidth()); 394 return createFromDouble(style.columnWidth());
395 case CSSPropertyWebkitFilter: 395 case CSSPropertyWebkitFilter:
396 return AnimatableFilterOperations::create(style->filter()); 396 return AnimatableFilterOperations::create(style.filter());
397 case CSSPropertyWebkitMaskBoxImageOutset: 397 case CSSPropertyWebkitMaskBoxImageOutset:
398 return createFromLengthBox(style->maskBoxImageOutset(), style); 398 return createFromLengthBox(style.maskBoxImageOutset(), style);
399 case CSSPropertyWebkitMaskBoxImageSlice: 399 case CSSPropertyWebkitMaskBoxImageSlice:
400 return createFromLengthBoxAndBool(style->maskBoxImageSlices(), style->ma skBoxImageSlicesFill(), style); 400 return createFromLengthBoxAndBool(style.maskBoxImageSlices(), style.mask BoxImageSlicesFill(), style);
401 case CSSPropertyWebkitMaskBoxImageSource: 401 case CSSPropertyWebkitMaskBoxImageSource:
402 return createFromStyleImage(style->maskBoxImageSource()); 402 return createFromStyleImage(style.maskBoxImageSource());
403 case CSSPropertyWebkitMaskBoxImageWidth: 403 case CSSPropertyWebkitMaskBoxImageWidth:
404 return createFromLengthBox(style->maskBoxImageWidth(), style); 404 return createFromLengthBox(style.maskBoxImageWidth(), style);
405 case CSSPropertyWebkitMaskImage: 405 case CSSPropertyWebkitMaskImage:
406 return createFromFillLayers<CSSPropertyWebkitMaskImage>(style->maskLayer s(), style); 406 return createFromFillLayers<CSSPropertyWebkitMaskImage>(style.maskLayers (), style);
407 case CSSPropertyWebkitMaskPositionX: 407 case CSSPropertyWebkitMaskPositionX:
408 return createFromFillLayers<CSSPropertyWebkitMaskPositionX>(style->maskL ayers(), style); 408 return createFromFillLayers<CSSPropertyWebkitMaskPositionX>(style.maskLa yers(), style);
409 case CSSPropertyWebkitMaskPositionY: 409 case CSSPropertyWebkitMaskPositionY:
410 return createFromFillLayers<CSSPropertyWebkitMaskPositionY>(style->maskL ayers(), style); 410 return createFromFillLayers<CSSPropertyWebkitMaskPositionY>(style.maskLa yers(), style);
411 case CSSPropertyWebkitMaskSize: 411 case CSSPropertyWebkitMaskSize:
412 return createFromFillLayers<CSSPropertyWebkitMaskSize>(style->maskLayers (), style); 412 return createFromFillLayers<CSSPropertyWebkitMaskSize>(style.maskLayers( ), style);
413 case CSSPropertyWebkitPerspective: 413 case CSSPropertyWebkitPerspective:
414 return createFromDouble(style->perspective()); 414 return createFromDouble(style.perspective());
415 case CSSPropertyWebkitPerspectiveOriginX: 415 case CSSPropertyWebkitPerspectiveOriginX:
416 return createFromLength(style->perspectiveOriginX(), style); 416 return createFromLength(style.perspectiveOriginX(), style);
417 case CSSPropertyWebkitPerspectiveOriginY: 417 case CSSPropertyWebkitPerspectiveOriginY:
418 return createFromLength(style->perspectiveOriginY(), style); 418 return createFromLength(style.perspectiveOriginY(), style);
419 case CSSPropertyShapeInside: 419 case CSSPropertyShapeInside:
420 return AnimatableShapeValue::create(style->shapeInside()); 420 return AnimatableShapeValue::create(style.shapeInside());
421 case CSSPropertyShapeOutside: 421 case CSSPropertyShapeOutside:
422 return AnimatableShapeValue::create(style->shapeOutside()); 422 return AnimatableShapeValue::create(style.shapeOutside());
423 case CSSPropertyShapeMargin: 423 case CSSPropertyShapeMargin:
424 return createFromLength(style->shapeMargin(), style); 424 return createFromLength(style.shapeMargin(), style);
425 case CSSPropertyWebkitTextStrokeColor: 425 case CSSPropertyWebkitTextStrokeColor:
426 return createFromColor(property, style); 426 return createFromColor(property, style);
427 case CSSPropertyWebkitTransform: 427 case CSSPropertyWebkitTransform:
428 return AnimatableTransform::create(style->transform()); 428 return AnimatableTransform::create(style.transform());
429 case CSSPropertyWebkitTransformOriginX: 429 case CSSPropertyWebkitTransformOriginX:
430 return createFromLength(style->transformOriginX(), style); 430 return createFromLength(style.transformOriginX(), style);
431 case CSSPropertyWebkitTransformOriginY: 431 case CSSPropertyWebkitTransformOriginY:
432 return createFromLength(style->transformOriginY(), style); 432 return createFromLength(style.transformOriginY(), style);
433 case CSSPropertyWebkitTransformOriginZ: 433 case CSSPropertyWebkitTransformOriginZ:
434 return createFromDouble(style->transformOriginZ()); 434 return createFromDouble(style.transformOriginZ());
435 case CSSPropertyWidows: 435 case CSSPropertyWidows:
436 return createFromDouble(style->widows()); 436 return createFromDouble(style.widows());
437 case CSSPropertyWidth: 437 case CSSPropertyWidth:
438 return createFromLength(style->width(), style); 438 return createFromLength(style.width(), style);
439 case CSSPropertyWordSpacing: 439 case CSSPropertyWordSpacing:
440 return createFromDouble(style->wordSpacing()); 440 return createFromDouble(style.wordSpacing());
441 case CSSPropertyVisibility: 441 case CSSPropertyVisibility:
442 return AnimatableVisibility::create(style->visibility()); 442 return AnimatableVisibility::create(style.visibility());
443 case CSSPropertyZIndex: 443 case CSSPropertyZIndex:
444 return createFromDouble(style->zIndex()); 444 return createFromDouble(style.zIndex());
445 case CSSPropertyZoom: 445 case CSSPropertyZoom:
446 return createFromDouble(style->zoom()); 446 return createFromDouble(style.zoom());
447 default: 447 default:
448 ASSERT_WITH_MESSAGE(!CSSAnimations::isAnimatableProperty(property), "Web Animations not yet implemented: Create AnimatableValue from render style: %s", getPropertyNameString(property).utf8().data()); 448 ASSERT_WITH_MESSAGE(!CSSAnimations::isAnimatableProperty(property), "Web Animations not yet implemented: Create AnimatableValue from render style: %s", getPropertyNameString(property).utf8().data());
449 ASSERT_NOT_REACHED(); 449 ASSERT_NOT_REACHED();
450 // This return value is to avoid a release crash if possible. 450 // This return value is to avoid a release crash if possible.
451 return AnimatableUnknown::create(0); 451 return AnimatableUnknown::create(0);
452 } 452 }
453 } 453 }
454 454
455 } // namespace WebCore 455 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/css/CSSAnimatableValueFactory.h ('k') | Source/core/animation/css/CSSAnimations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698