Index: third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
index 6ad5b1c4e2d4b13fed9eaac5c9cba9fc914378b1..ed725ad262c0fd08f41491273ce5be89300e6a9a 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -1296,10 +1296,9 @@ bool CSSPropertyParser::consumeAnimationShorthand(const StylePropertyShorthand& |
return false; |
} while (!m_range.atEnd() && m_range.peek().type() != CommaToken); |
- // TODO(timloh): This will make invalid longhands, see crbug.com/386459 |
for (size_t i = 0; i < longhandCount; ++i) { |
if (!parsedLonghand[i]) |
- longhands[i]->append(*CSSInitialValue::createLegacyImplicit()); |
+ longhands[i]->append(*CSSPropertyMetadata::initialValue(shorthand.properties()[i])); |
parsedLonghand[i] = false; |
} |
} while (consumeCommaIncludingWhitespace(m_range)); |
@@ -3930,7 +3929,7 @@ bool CSSPropertyParser::consumeShorthandGreedily(const StylePropertyShorthand& s |
if (longhands[i]) |
addProperty(shorthandProperties[i], shorthand.id(), *longhands[i], important); |
else |
- addProperty(shorthandProperties[i], shorthand.id(), *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(shorthandProperties[i], shorthand.id(), *CSSPropertyMetadata::initialValue(shorthandProperties[i]), important); |
} |
return true; |
} |
@@ -4018,17 +4017,20 @@ bool CSSPropertyParser::consumeBorder(bool important) |
return false; |
if (!width) |
- width = CSSInitialValue::createLegacyImplicit(); |
+ width = CSSPropertyMetadata::initialValue(CSSPropertyBorderWidth); |
if (!style) |
- style = CSSInitialValue::createLegacyImplicit(); |
+ style = CSSPropertyMetadata::initialValue(CSSPropertyBorderStyle); |
if (!color) |
- color = CSSInitialValue::createLegacyImplicit(); |
+ color = CSSPropertyMetadata::initialValue(CSSPropertyBorderColor); |
addExpandedPropertyForValue(CSSPropertyBorderWidth, *width, important); |
addExpandedPropertyForValue(CSSPropertyBorderStyle, *style, important); |
addExpandedPropertyForValue(CSSPropertyBorderColor, *color, important); |
- addExpandedPropertyForValue(CSSPropertyBorderImage, *CSSInitialValue::createLegacyImplicit(), important); |
- |
+ addProperty(CSSPropertyBorderImageSource, CSSPropertyBorderImage, *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageSource), important); |
+ addProperty(CSSPropertyBorderImageSlice, CSSPropertyBorderImage, *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageSlice), important); |
+ addProperty(CSSPropertyBorderImageWidth, CSSPropertyBorderImage, *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageWidth), important); |
+ addProperty(CSSPropertyBorderImageOutset, CSSPropertyBorderImage, *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageOutset), important); |
+ addProperty(CSSPropertyBorderImageRepeat, CSSPropertyBorderImage, *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageRepeat), important); |
return m_range.atEnd(); |
} |
@@ -4074,18 +4076,18 @@ bool CSSPropertyParser::consumeBorderImage(CSSPropertyID property, bool importan |
if (consumeBorderImageComponents(property, m_range, m_context, source, slice, width, outset, repeat)) { |
switch (property) { |
case CSSPropertyWebkitMaskBoxImage: |
- addProperty(CSSPropertyWebkitMaskBoxImageSource, CSSPropertyWebkitMaskBoxImage, source ? *source : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyWebkitMaskBoxImageSlice, CSSPropertyWebkitMaskBoxImage, slice ? *slice : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyWebkitMaskBoxImageWidth, CSSPropertyWebkitMaskBoxImage, width ? *width : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyWebkitMaskBoxImageOutset, CSSPropertyWebkitMaskBoxImage, outset ? *outset : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyWebkitMaskBoxImageRepeat, CSSPropertyWebkitMaskBoxImage, repeat ? *repeat : *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(CSSPropertyWebkitMaskBoxImageSource, CSSPropertyWebkitMaskBoxImage, source ? *source : *CSSPropertyMetadata::initialValue(CSSPropertyWebkitMaskBoxImageSource), important); |
+ addProperty(CSSPropertyWebkitMaskBoxImageSlice, CSSPropertyWebkitMaskBoxImage, slice ? *slice : *CSSPropertyMetadata::initialValue(CSSPropertyWebkitMaskBoxImageSlice), important); |
+ addProperty(CSSPropertyWebkitMaskBoxImageWidth, CSSPropertyWebkitMaskBoxImage, width ? *width : *CSSPropertyMetadata::initialValue(CSSPropertyWebkitMaskBoxImageWidth), important); |
+ addProperty(CSSPropertyWebkitMaskBoxImageOutset, CSSPropertyWebkitMaskBoxImage, outset ? *outset : *CSSPropertyMetadata::initialValue(CSSPropertyWebkitMaskBoxImageOutset), important); |
+ addProperty(CSSPropertyWebkitMaskBoxImageRepeat, CSSPropertyWebkitMaskBoxImage, repeat ? *repeat : *CSSPropertyMetadata::initialValue(CSSPropertyWebkitMaskBoxImageRepeat), important); |
return true; |
case CSSPropertyBorderImage: |
- addProperty(CSSPropertyBorderImageSource, CSSPropertyBorderImage, source ? *source : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyBorderImageSlice, CSSPropertyBorderImage, slice ? *slice : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyBorderImageWidth, CSSPropertyBorderImage, width ? *width : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyBorderImageOutset, CSSPropertyBorderImage, outset ? *outset : *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyBorderImageRepeat, CSSPropertyBorderImage, repeat ? *repeat : *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(CSSPropertyBorderImageSource, CSSPropertyBorderImage, source ? *source : *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageSource), important); |
+ addProperty(CSSPropertyBorderImageSlice, CSSPropertyBorderImage, slice ? *slice : *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageSlice), important); |
+ addProperty(CSSPropertyBorderImageWidth, CSSPropertyBorderImage, width ? *width : *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageWidth), important); |
+ addProperty(CSSPropertyBorderImageOutset, CSSPropertyBorderImage, outset ? *outset : *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageOutset), important); |
+ addProperty(CSSPropertyBorderImageRepeat, CSSPropertyBorderImage, repeat ? *repeat : *CSSPropertyMetadata::initialValue(CSSPropertyBorderImageRepeat), important); |
return true; |
default: |
ASSERT_NOT_REACHED(); |
@@ -4273,7 +4275,6 @@ bool CSSPropertyParser::consumeBackgroundShorthand(const StylePropertyShorthand& |
return false; |
} while (!m_range.atEnd() && m_range.peek().type() != CommaToken); |
- // TODO(timloh): This will make invalid longhands, see crbug.com/386459 |
for (size_t i = 0; i < longhandCount; ++i) { |
CSSPropertyID property = shorthand.properties()[i]; |
if (property == CSSPropertyBackgroundColor && !m_range.atEnd()) { |
@@ -4286,7 +4287,7 @@ bool CSSPropertyParser::consumeBackgroundShorthand(const StylePropertyShorthand& |
continue; |
} |
if (!parsedLonghand[i]) |
- addBackgroundValue(longhands[i], CSSInitialValue::createLegacyImplicit()); |
+ addBackgroundValue(longhands[i], CSSPropertyMetadata::initialValue(property)); |
} |
} while (consumeCommaIncludingWhitespace(m_range)); |
if (!m_range.atEnd()) |
@@ -4466,11 +4467,11 @@ bool CSSPropertyParser::consumeGridShorthand(bool important) |
if (consumeGridTemplateShorthand(CSSPropertyGrid, important)) { |
// It can only be specified the explicit or the implicit grid properties in a single grid declaration. |
// The sub-properties not specified are set to their initial value, as normal for shorthands. |
- addProperty(CSSPropertyGridAutoFlow, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridAutoColumns, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridAutoRows, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(CSSPropertyGridAutoFlow, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridAutoFlow), important); |
+ addProperty(CSSPropertyGridAutoColumns, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridAutoColumns), important); |
+ addProperty(CSSPropertyGridAutoRows, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridAutoRows), important); |
+ addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridColumnGap), important); |
+ addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridRowGap), important); |
return true; |
} |
@@ -4497,8 +4498,8 @@ bool CSSPropertyParser::consumeGridShorthand(bool important) |
return false; |
} else { |
// Other omitted values are set to their initial values. |
- autoColumnsValue = CSSInitialValue::createLegacyImplicit(); |
- autoRowsValue = CSSInitialValue::createLegacyImplicit(); |
+ autoColumnsValue = CSSPropertyMetadata::initialValue(CSSPropertyGridAutoColumns); |
+ autoRowsValue = CSSPropertyMetadata::initialValue(CSSPropertyGridAutoRows); |
} |
// if <grid-auto-columns> value is omitted, it is set to the value specified for grid-auto-rows. |
@@ -4507,14 +4508,14 @@ bool CSSPropertyParser::consumeGridShorthand(bool important) |
// It can only be specified the explicit or the implicit grid properties in a single grid declaration. |
// The sub-properties not specified are set to their initial value, as normal for shorthands. |
- addProperty(CSSPropertyGridTemplateColumns, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridTemplateRows, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridTemplateAreas, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(CSSPropertyGridTemplateColumns, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridTemplateColumns), important); |
+ addProperty(CSSPropertyGridTemplateRows, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridTemplateRows), important); |
+ addProperty(CSSPropertyGridTemplateAreas, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridTemplateAreas), important); |
addProperty(CSSPropertyGridAutoFlow, CSSPropertyGrid, *gridAutoFlow, important); |
addProperty(CSSPropertyGridAutoColumns, CSSPropertyGrid, *autoColumnsValue, important); |
addProperty(CSSPropertyGridAutoRows, CSSPropertyGrid, *autoRowsValue, important); |
- addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
- addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, *CSSInitialValue::createLegacyImplicit(), important); |
+ addProperty(CSSPropertyGridColumnGap, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridColumnGap), important); |
+ addProperty(CSSPropertyGridRowGap, CSSPropertyGrid, *CSSPropertyMetadata::initialValue(CSSPropertyGridRowGap), important); |
return true; |
} |