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

Unified Diff: Source/WebCore/css/CSSParser.cpp

Issue 12470005: Merge 144626 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1410/
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/WebCore/css/CSSParser.h ('k') | Source/WebCore/css/CSSProperty.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/css/CSSParser.cpp
===================================================================
--- Source/WebCore/css/CSSParser.cpp (revision 145343)
+++ Source/WebCore/css/CSSParser.cpp (working copy)
@@ -1475,6 +1475,17 @@
return StylePropertySet::createImmutable(results.data(), results.size(), m_context.mode);
}
+void CSSParser::addPropertyWithPrefixingVariant(CSSPropertyID propId, PassRefPtr<CSSValue> value, bool important, bool implicit)
+{
+ RefPtr<CSSValue> val = value.get();
+ addProperty(propId, value, important, implicit);
+
+ CSSPropertyID prefixingVariant = prefixingVariantForPropertyId(propId);
+ if (prefixingVariant == propId)
+ return;
+ addProperty(prefixingVariant, val.release(), important, implicit);
+}
+
void CSSParser::addProperty(CSSPropertyID propId, PassRefPtr<CSSValue> value, bool important, bool implicit)
{
m_parsedProperties.append(CSSProperty(propId, value, important, m_currentShorthand, m_implicitShorthand || implicit));
@@ -2499,13 +2510,17 @@
case CSSPropertyWebkitAnimationPlayState:
case CSSPropertyWebkitAnimationIterationCount:
case CSSPropertyWebkitAnimationTimingFunction:
+ case CSSPropertyTransitionDelay:
+ case CSSPropertyTransitionDuration:
+ case CSSPropertyTransitionTimingFunction:
+ case CSSPropertyTransitionProperty:
case CSSPropertyWebkitTransitionDelay:
case CSSPropertyWebkitTransitionDuration:
case CSSPropertyWebkitTransitionTimingFunction:
case CSSPropertyWebkitTransitionProperty: {
RefPtr<CSSValue> val;
if (parseAnimationProperty(propId, val)) {
- addProperty(propId, val.release(), important);
+ addPropertyWithPrefixingVariant(propId, val.release(), important);
return true;
}
return false;
@@ -2744,8 +2759,9 @@
return parseShorthand(propId, webkitTextStrokeShorthand(), important);
case CSSPropertyWebkitAnimation:
return parseAnimationShorthand(important);
+ case CSSPropertyTransition:
case CSSPropertyWebkitTransition:
- return parseTransitionShorthand(important);
+ return parseTransitionShorthand(propId, important);
case CSSPropertyInvalid:
return false;
case CSSPropertyPage:
@@ -3256,12 +3272,13 @@
return true;
}
-bool CSSParser::parseTransitionShorthand(bool important)
+bool CSSParser::parseTransitionShorthand(CSSPropertyID propId, bool important)
{
const unsigned numProperties = 4;
- ASSERT(numProperties == webkitTransitionShorthand().length());
+ const StylePropertyShorthand& shorthand = shorthandForProperty(propId);
+ ASSERT(numProperties == shorthand.length());
- ShorthandScope scope(this, CSSPropertyWebkitTransition);
+ ShorthandScope scope(this, propId);
bool parsedProperty[numProperties] = { false };
RefPtr<CSSValue> values[numProperties];
@@ -3285,7 +3302,7 @@
for (i = 0; !found && i < numProperties; ++i) {
if (!parsedProperty[i]) {
RefPtr<CSSValue> val;
- if (parseAnimationProperty(webkitTransitionShorthand().properties()[i], val)) {
+ if (parseAnimationProperty(shorthand.properties()[i], val)) {
parsedProperty[i] = found = true;
addAnimationValue(values[i], val.release());
}
@@ -3306,7 +3323,7 @@
// Now add all of the properties we found.
for (i = 0; i < numProperties; i++)
- addProperty(webkitTransitionShorthand().properties()[i], values[i].release(), important);
+ addPropertyWithPrefixingVariant(shorthand.properties()[i], values[i].release(), important);
return true;
}
@@ -4481,6 +4498,7 @@
else {
switch (propId) {
case CSSPropertyWebkitAnimationDelay:
+ case CSSPropertyTransitionDelay:
case CSSPropertyWebkitTransitionDelay:
currValue = parseAnimationDelay();
if (currValue)
@@ -4492,6 +4510,7 @@
m_valueList->next();
break;
case CSSPropertyWebkitAnimationDuration:
+ case CSSPropertyTransitionDuration:
case CSSPropertyWebkitTransitionDuration:
currValue = parseAnimationDuration();
if (currValue)
@@ -4517,6 +4536,7 @@
if (currValue)
m_valueList->next();
break;
+ case CSSPropertyTransitionProperty:
case CSSPropertyWebkitTransitionProperty:
if (allowAnimationProperty)
currValue = parseAnimationProperty(allowAnimationProperty);
@@ -4526,6 +4546,7 @@
m_valueList->next();
break;
case CSSPropertyWebkitAnimationTimingFunction:
+ case CSSPropertyTransitionTimingFunction:
case CSSPropertyWebkitTransitionTimingFunction:
currValue = parseAnimationTimingFunction();
if (currValue)
« no previous file with comments | « Source/WebCore/css/CSSParser.h ('k') | Source/WebCore/css/CSSProperty.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698