OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> | 2 * Copyright (C) 2004 Zack Rusin <zack@kde.org> |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. | 6 * Copyright (C) 2011 Sencha, Inc. All rights reserved. |
7 * | 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 #include "core/platform/graphics/filters/custom/CustomFilterTransformParameter.h
" | 76 #include "core/platform/graphics/filters/custom/CustomFilterTransformParameter.h
" |
77 | 77 |
78 #include "core/rendering/style/StyleCustomFilterProgram.h" | 78 #include "core/rendering/style/StyleCustomFilterProgram.h" |
79 | 79 |
80 namespace WebCore { | 80 namespace WebCore { |
81 | 81 |
82 // List of all properties we know how to compute, omitting shorthands. | 82 // List of all properties we know how to compute, omitting shorthands. |
83 // NOTE: Do not use this list, use computableProperties() instead | 83 // NOTE: Do not use this list, use computableProperties() instead |
84 // to respect runtime enabling of CSS properties. | 84 // to respect runtime enabling of CSS properties. |
85 static const CSSPropertyID staticComputableProperties[] = { | 85 static const CSSPropertyID staticComputableProperties[] = { |
| 86 CSSPropertyAnimationDelay, |
| 87 CSSPropertyAnimationDirection, |
| 88 CSSPropertyAnimationDuration, |
| 89 CSSPropertyAnimationFillMode, |
| 90 CSSPropertyAnimationIterationCount, |
| 91 CSSPropertyAnimationName, |
| 92 CSSPropertyAnimationPlayState, |
| 93 CSSPropertyAnimationTimingFunction, |
86 CSSPropertyBackgroundAttachment, | 94 CSSPropertyBackgroundAttachment, |
87 CSSPropertyBackgroundBlendMode, | 95 CSSPropertyBackgroundBlendMode, |
88 CSSPropertyBackgroundClip, | 96 CSSPropertyBackgroundClip, |
89 CSSPropertyBackgroundColor, | 97 CSSPropertyBackgroundColor, |
90 CSSPropertyBackgroundImage, | 98 CSSPropertyBackgroundImage, |
91 CSSPropertyBackgroundOrigin, | 99 CSSPropertyBackgroundOrigin, |
92 CSSPropertyBackgroundPosition, // more-specific background-position-x/y are
non-standard | 100 CSSPropertyBackgroundPosition, // more-specific background-position-x/y are
non-standard |
93 CSSPropertyBackgroundRepeat, | 101 CSSPropertyBackgroundRepeat, |
94 CSSPropertyBackgroundSize, | 102 CSSPropertyBackgroundSize, |
95 CSSPropertyBorderBottomColor, | 103 CSSPropertyBorderBottomColor, |
(...skipping 2227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2323 return cssValuePool().createIdentifierValue(CSSValueAuto); | 2331 return cssValuePool().createIdentifierValue(CSSValueAuto); |
2324 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue
::CSS_NUMBER); | 2332 return cssValuePool().createValue(style->zIndex(), CSSPrimitiveValue
::CSS_NUMBER); |
2325 case CSSPropertyZoom: | 2333 case CSSPropertyZoom: |
2326 return cssValuePool().createValue(style->zoom(), CSSPrimitiveValue::
CSS_NUMBER); | 2334 return cssValuePool().createValue(style->zoom(), CSSPrimitiveValue::
CSS_NUMBER); |
2327 case CSSPropertyBoxSizing: | 2335 case CSSPropertyBoxSizing: |
2328 if (style->boxSizing() == CONTENT_BOX) | 2336 if (style->boxSizing() == CONTENT_BOX) |
2329 return cssValuePool().createIdentifierValue(CSSValueContentBox); | 2337 return cssValuePool().createIdentifierValue(CSSValueContentBox); |
2330 return cssValuePool().createIdentifierValue(CSSValueBorderBox); | 2338 return cssValuePool().createIdentifierValue(CSSValueBorderBox); |
2331 case CSSPropertyWebkitAppRegion: | 2339 case CSSPropertyWebkitAppRegion: |
2332 return cssValuePool().createIdentifierValue(style->getDraggableRegio
nMode() == DraggableRegionDrag ? CSSValueDrag : CSSValueNoDrag); | 2340 return cssValuePool().createIdentifierValue(style->getDraggableRegio
nMode() == DraggableRegionDrag ? CSSValueDrag : CSSValueNoDrag); |
| 2341 case CSSPropertyAnimationDelay: |
| 2342 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2343 break; |
2333 case CSSPropertyWebkitAnimationDelay: | 2344 case CSSPropertyWebkitAnimationDelay: |
2334 return getDelayValue(style->animations()); | 2345 return getDelayValue(style->animations()); |
| 2346 case CSSPropertyAnimationDirection: |
| 2347 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2348 break; |
2335 case CSSPropertyWebkitAnimationDirection: { | 2349 case CSSPropertyWebkitAnimationDirection: { |
2336 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2350 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
2337 const CSSAnimationDataList* t = style->animations(); | 2351 const CSSAnimationDataList* t = style->animations(); |
2338 if (t) { | 2352 if (t) { |
2339 for (size_t i = 0; i < t->size(); ++i) { | 2353 for (size_t i = 0; i < t->size(); ++i) { |
2340 if (t->animation(i)->direction()) | 2354 if (t->animation(i)->direction()) |
2341 list->append(cssValuePool().createIdentifierValue(CSSVal
ueAlternate)); | 2355 list->append(cssValuePool().createIdentifierValue(CSSVal
ueAlternate)); |
2342 else | 2356 else |
2343 list->append(cssValuePool().createIdentifierValue(CSSVal
ueNormal)); | 2357 list->append(cssValuePool().createIdentifierValue(CSSVal
ueNormal)); |
2344 } | 2358 } |
2345 } else | 2359 } else |
2346 list->append(cssValuePool().createIdentifierValue(CSSValueNormal
)); | 2360 list->append(cssValuePool().createIdentifierValue(CSSValueNormal
)); |
2347 return list.release(); | 2361 return list.release(); |
2348 } | 2362 } |
| 2363 case CSSPropertyAnimationDuration: |
| 2364 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2365 break; |
2349 case CSSPropertyWebkitAnimationDuration: | 2366 case CSSPropertyWebkitAnimationDuration: |
2350 return getDurationValue(style->animations()); | 2367 return getDurationValue(style->animations()); |
| 2368 case CSSPropertyAnimationFillMode: |
| 2369 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2370 break; |
2351 case CSSPropertyWebkitAnimationFillMode: { | 2371 case CSSPropertyWebkitAnimationFillMode: { |
2352 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2372 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
2353 const CSSAnimationDataList* t = style->animations(); | 2373 const CSSAnimationDataList* t = style->animations(); |
2354 if (t) { | 2374 if (t) { |
2355 for (size_t i = 0; i < t->size(); ++i) { | 2375 for (size_t i = 0; i < t->size(); ++i) { |
2356 switch (t->animation(i)->fillMode()) { | 2376 switch (t->animation(i)->fillMode()) { |
2357 case AnimationFillModeNone: | 2377 case AnimationFillModeNone: |
2358 list->append(cssValuePool().createIdentifierValue(CSSVal
ueNone)); | 2378 list->append(cssValuePool().createIdentifierValue(CSSVal
ueNone)); |
2359 break; | 2379 break; |
2360 case AnimationFillModeForwards: | 2380 case AnimationFillModeForwards: |
2361 list->append(cssValuePool().createIdentifierValue(CSSVal
ueForwards)); | 2381 list->append(cssValuePool().createIdentifierValue(CSSVal
ueForwards)); |
2362 break; | 2382 break; |
2363 case AnimationFillModeBackwards: | 2383 case AnimationFillModeBackwards: |
2364 list->append(cssValuePool().createIdentifierValue(CSSVal
ueBackwards)); | 2384 list->append(cssValuePool().createIdentifierValue(CSSVal
ueBackwards)); |
2365 break; | 2385 break; |
2366 case AnimationFillModeBoth: | 2386 case AnimationFillModeBoth: |
2367 list->append(cssValuePool().createIdentifierValue(CSSVal
ueBoth)); | 2387 list->append(cssValuePool().createIdentifierValue(CSSVal
ueBoth)); |
2368 break; | 2388 break; |
2369 } | 2389 } |
2370 } | 2390 } |
2371 } else | 2391 } else |
2372 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; | 2392 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; |
2373 return list.release(); | 2393 return list.release(); |
2374 } | 2394 } |
| 2395 case CSSPropertyAnimationIterationCount: |
| 2396 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2397 break; |
2375 case CSSPropertyWebkitAnimationIterationCount: { | 2398 case CSSPropertyWebkitAnimationIterationCount: { |
2376 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2399 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
2377 const CSSAnimationDataList* t = style->animations(); | 2400 const CSSAnimationDataList* t = style->animations(); |
2378 if (t) { | 2401 if (t) { |
2379 for (size_t i = 0; i < t->size(); ++i) { | 2402 for (size_t i = 0; i < t->size(); ++i) { |
2380 double iterationCount = t->animation(i)->iterationCount(); | 2403 double iterationCount = t->animation(i)->iterationCount(); |
2381 if (iterationCount == CSSAnimationData::IterationCountInfini
te) | 2404 if (iterationCount == CSSAnimationData::IterationCountInfini
te) |
2382 list->append(cssValuePool().createIdentifierValue(CSSVal
ueInfinite)); | 2405 list->append(cssValuePool().createIdentifierValue(CSSVal
ueInfinite)); |
2383 else | 2406 else |
2384 list->append(cssValuePool().createValue(iterationCount,
CSSPrimitiveValue::CSS_NUMBER)); | 2407 list->append(cssValuePool().createValue(iterationCount,
CSSPrimitiveValue::CSS_NUMBER)); |
2385 } | 2408 } |
2386 } else | 2409 } else |
2387 list->append(cssValuePool().createValue(CSSAnimationData::initia
lAnimationIterationCount(), CSSPrimitiveValue::CSS_NUMBER)); | 2410 list->append(cssValuePool().createValue(CSSAnimationData::initia
lAnimationIterationCount(), CSSPrimitiveValue::CSS_NUMBER)); |
2388 return list.release(); | 2411 return list.release(); |
2389 } | 2412 } |
| 2413 case CSSPropertyAnimationName: |
| 2414 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2415 break; |
2390 case CSSPropertyWebkitAnimationName: { | 2416 case CSSPropertyWebkitAnimationName: { |
2391 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2417 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
2392 const CSSAnimationDataList* t = style->animations(); | 2418 const CSSAnimationDataList* t = style->animations(); |
2393 if (t) { | 2419 if (t) { |
2394 for (size_t i = 0; i < t->size(); ++i) | 2420 for (size_t i = 0; i < t->size(); ++i) |
2395 list->append(cssValuePool().createValue(t->animation(i)->nam
e(), CSSPrimitiveValue::CSS_STRING)); | 2421 list->append(cssValuePool().createValue(t->animation(i)->nam
e(), CSSPrimitiveValue::CSS_STRING)); |
2396 } else | 2422 } else |
2397 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; | 2423 list->append(cssValuePool().createIdentifierValue(CSSValueNone))
; |
2398 return list.release(); | 2424 return list.release(); |
2399 } | 2425 } |
| 2426 case CSSPropertyAnimationPlayState: |
| 2427 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2428 break; |
2400 case CSSPropertyWebkitAnimationPlayState: { | 2429 case CSSPropertyWebkitAnimationPlayState: { |
2401 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); | 2430 RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
2402 const CSSAnimationDataList* t = style->animations(); | 2431 const CSSAnimationDataList* t = style->animations(); |
2403 if (t) { | 2432 if (t) { |
2404 for (size_t i = 0; i < t->size(); ++i) { | 2433 for (size_t i = 0; i < t->size(); ++i) { |
2405 int prop = t->animation(i)->playState(); | 2434 int prop = t->animation(i)->playState(); |
2406 if (prop == AnimPlayStatePlaying) | 2435 if (prop == AnimPlayStatePlaying) |
2407 list->append(cssValuePool().createIdentifierValue(CSSVal
ueRunning)); | 2436 list->append(cssValuePool().createIdentifierValue(CSSVal
ueRunning)); |
2408 else | 2437 else |
2409 list->append(cssValuePool().createIdentifierValue(CSSVal
uePaused)); | 2438 list->append(cssValuePool().createIdentifierValue(CSSVal
uePaused)); |
2410 } | 2439 } |
2411 } else | 2440 } else |
2412 list->append(cssValuePool().createIdentifierValue(CSSValueRunnin
g)); | 2441 list->append(cssValuePool().createIdentifierValue(CSSValueRunnin
g)); |
2413 return list.release(); | 2442 return list.release(); |
2414 } | 2443 } |
| 2444 case CSSPropertyAnimationTimingFunction: |
| 2445 if (!RuntimeEnabledFeatures::cssAnimationUnprefixedEnabled()) |
| 2446 break; |
2415 case CSSPropertyWebkitAnimationTimingFunction: | 2447 case CSSPropertyWebkitAnimationTimingFunction: |
2416 return getTimingFunctionValue(style->animations()); | 2448 return getTimingFunctionValue(style->animations()); |
2417 case CSSPropertyWebkitAppearance: | 2449 case CSSPropertyWebkitAppearance: |
2418 return cssValuePool().createValue(style->appearance()); | 2450 return cssValuePool().createValue(style->appearance()); |
2419 case CSSPropertyWebkitAspectRatio: | 2451 case CSSPropertyWebkitAspectRatio: |
2420 if (!style->hasAspectRatio()) | 2452 if (!style->hasAspectRatio()) |
2421 return cssValuePool().createIdentifierValue(CSSValueNone); | 2453 return cssValuePool().createIdentifierValue(CSSValueNone); |
2422 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st
yle->aspectRatioDenominator()); | 2454 return CSSAspectRatioValue::create(style->aspectRatioNumerator(), st
yle->aspectRatioDenominator()); |
2423 case CSSPropertyWebkitBackfaceVisibility: | 2455 case CSSPropertyWebkitBackfaceVisibility: |
2424 return cssValuePool().createIdentifierValue((style->backfaceVisibili
ty() == BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); | 2456 return cssValuePool().createIdentifierValue((style->backfaceVisibili
ty() == BackfaceVisibilityHidden) ? CSSValueHidden : CSSValueVisible); |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2759 case CSSPropertyUnicodeRange: | 2791 case CSSPropertyUnicodeRange: |
2760 break; | 2792 break; |
2761 | 2793 |
2762 /* Other unimplemented properties */ | 2794 /* Other unimplemented properties */ |
2763 case CSSPropertyPage: // for @page | 2795 case CSSPropertyPage: // for @page |
2764 case CSSPropertyQuotes: // FIXME: needs implementation | 2796 case CSSPropertyQuotes: // FIXME: needs implementation |
2765 case CSSPropertySize: // for @page | 2797 case CSSPropertySize: // for @page |
2766 break; | 2798 break; |
2767 | 2799 |
2768 /* Unimplemented -webkit- properties */ | 2800 /* Unimplemented -webkit- properties */ |
| 2801 case CSSPropertyAnimation: |
2769 case CSSPropertyWebkitAnimation: | 2802 case CSSPropertyWebkitAnimation: |
2770 case CSSPropertyWebkitBorderRadius: | 2803 case CSSPropertyWebkitBorderRadius: |
2771 case CSSPropertyWebkitMarginCollapse: | 2804 case CSSPropertyWebkitMarginCollapse: |
2772 case CSSPropertyWebkitMarquee: | 2805 case CSSPropertyWebkitMarquee: |
2773 case CSSPropertyWebkitMarqueeSpeed: | 2806 case CSSPropertyWebkitMarqueeSpeed: |
2774 case CSSPropertyWebkitMask: | 2807 case CSSPropertyWebkitMask: |
2775 case CSSPropertyWebkitMaskRepeatX: | 2808 case CSSPropertyWebkitMaskRepeatX: |
2776 case CSSPropertyWebkitMaskRepeatY: | 2809 case CSSPropertyWebkitMaskRepeatY: |
2777 case CSSPropertyWebkitPerspectiveOriginX: | 2810 case CSSPropertyWebkitPerspectiveOriginX: |
2778 case CSSPropertyWebkitPerspectiveOriginY: | 2811 case CSSPropertyWebkitPerspectiveOriginY: |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3071 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, | 3104 static const CSSPropertyID propertiesAfterSlashSeperator[3] = { CSSPropertyB
ackgroundSize, CSSPropertyBackgroundOrigin, |
3072 CSSPropertyB
ackgroundClip }; | 3105 CSSPropertyB
ackgroundClip }; |
3073 | 3106 |
3074 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); | 3107 RefPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
3075 list->append(getCSSPropertyValuesForShorthandProperties(StylePropertyShortha
nd(CSSPropertyBackground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(prope
rtiesBeforeSlashSeperator)))); | 3108 list->append(getCSSPropertyValuesForShorthandProperties(StylePropertyShortha
nd(CSSPropertyBackground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(prope
rtiesBeforeSlashSeperator)))); |
3076 list->append(getCSSPropertyValuesForShorthandProperties(StylePropertyShortha
nd(CSSPropertyBackground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(proper
tiesAfterSlashSeperator)))); | 3109 list->append(getCSSPropertyValuesForShorthandProperties(StylePropertyShortha
nd(CSSPropertyBackground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(proper
tiesAfterSlashSeperator)))); |
3077 return list.release(); | 3110 return list.release(); |
3078 } | 3111 } |
3079 | 3112 |
3080 } // namespace WebCore | 3113 } // namespace WebCore |
OLD | NEW |