OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 9 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
10 * | 10 * |
(...skipping 3071 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3082 lval = list; | 3082 lval = list; |
3083 } | 3083 } |
3084 } | 3084 } |
3085 else | 3085 else |
3086 lval = rval; | 3086 lval = rval; |
3087 } | 3087 } |
3088 | 3088 |
3089 bool CSSParser::parseAnimationShorthand(CSSPropertyID propId, bool important) | 3089 bool CSSParser::parseAnimationShorthand(CSSPropertyID propId, bool important) |
3090 { | 3090 { |
3091 const StylePropertyShorthand& animationProperties = parsingShorthandForPrope
rty(propId); | 3091 const StylePropertyShorthand& animationProperties = parsingShorthandForPrope
rty(propId); |
3092 const unsigned numProperties = 7; | 3092 const unsigned numProperties = 8; |
3093 | 3093 |
3094 // The list of properties in the shorthand should be the same | 3094 // The list of properties in the shorthand should be the same |
3095 // length as the list with animation name in last position, even though they
are | 3095 // length as the list with animation name in last position, even though they
are |
3096 // in a different order. | 3096 // in a different order. |
3097 ASSERT(numProperties == animationProperties.length()); | 3097 ASSERT(numProperties == animationProperties.length()); |
3098 ASSERT(numProperties == shorthandForProperty(propId).length()); | 3098 ASSERT(numProperties == shorthandForProperty(propId).length()); |
3099 | 3099 |
3100 ShorthandScope scope(this, propId); | 3100 ShorthandScope scope(this, propId); |
3101 | 3101 |
3102 bool parsedProperty[numProperties] = { false }; | 3102 bool parsedProperty[numProperties] = { false }; |
(...skipping 19 matching lines...) Expand all Loading... |
3122 bool found = false; | 3122 bool found = false; |
3123 for (i = 0; i < numProperties; ++i) { | 3123 for (i = 0; i < numProperties; ++i) { |
3124 if (!parsedProperty[i]) { | 3124 if (!parsedProperty[i]) { |
3125 RefPtr<CSSValue> val; | 3125 RefPtr<CSSValue> val; |
3126 if (parseAnimationProperty(animationProperties.properties()[i],
val, context)) { | 3126 if (parseAnimationProperty(animationProperties.properties()[i],
val, context)) { |
3127 parsedProperty[i] = found = true; | 3127 parsedProperty[i] = found = true; |
3128 addAnimationValue(values[i], val.release()); | 3128 addAnimationValue(values[i], val.release()); |
3129 break; | 3129 break; |
3130 } | 3130 } |
3131 } | 3131 } |
3132 | |
3133 // There are more values to process but 'none' or 'all' were already
defined as the animation property, the declaration becomes invalid. | |
3134 if (!context.animationPropertyKeywordAllowed() && context.hasCommitt
edFirstAnimation()) | |
3135 return false; | |
3136 } | 3132 } |
3137 | 3133 |
3138 // if we didn't find at least one match, this is an | 3134 // if we didn't find at least one match, this is an |
3139 // invalid shorthand and we have to ignore it | 3135 // invalid shorthand and we have to ignore it |
3140 if (!found) | 3136 if (!found) |
3141 return false; | 3137 return false; |
3142 } | 3138 } |
3143 | 3139 |
3144 for (i = 0; i < numProperties; ++i) { | 3140 for (i = 0; i < numProperties; ++i) { |
3145 // If we didn't find the property, set an intial value. | 3141 // If we didn't find the property, set an intial value. |
(...skipping 8798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11944 { | 11940 { |
11945 // The tokenizer checks for the construct of an+b. | 11941 // The tokenizer checks for the construct of an+b. |
11946 // However, since the {ident} rule precedes the {nth} rule, some of those | 11942 // However, since the {ident} rule precedes the {nth} rule, some of those |
11947 // tokens are identified as string literal. Furthermore we need to accept | 11943 // tokens are identified as string literal. Furthermore we need to accept |
11948 // "odd" and "even" which does not match to an+b. | 11944 // "odd" and "even" which does not match to an+b. |
11949 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") | 11945 return equalIgnoringCase(token, "odd") || equalIgnoringCase(token, "even") |
11950 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); | 11946 || equalIgnoringCase(token, "n") || equalIgnoringCase(token, "-n"); |
11951 } | 11947 } |
11952 | 11948 |
11953 } | 11949 } |
OLD | NEW |