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

Unified Diff: Source/core/css/parser/CSSPropertyParser.cpp

Issue 973623002: Fix serialization of content property to always quote (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix charset test Created 5 years, 10 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
Index: Source/core/css/parser/CSSPropertyParser.cpp
diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp
index 4f8ceae0b1b6f04cb0775b25d85c895c2ef9a53c..8d9038fc3d6f24a47a9bb905551b09477644ef0d 100644
--- a/Source/core/css/parser/CSSPropertyParser.cpp
+++ b/Source/core/css/parser/CSSPropertyParser.cpp
@@ -320,10 +320,10 @@ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::createPrimitiveNume
return cssValuePool().createValue(value->fValue, static_cast<CSSPrimitiveValue::UnitType>(value->unit));
}
-inline PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::createPrimitiveStringValue(CSSParserValue* value)
+inline PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::createPrimitiveStringValue(CSSParserValue* value, CSSPrimitiveValue::UnitType type)
{
- ASSERT(value->unit == CSSPrimitiveValue::CSS_STRING || value->unit == CSSPrimitiveValue::CSS_IDENT);
- return cssValuePool().createValue(value->string, CSSPrimitiveValue::CSS_STRING);
+ ASSERT(value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT || value->unit == CSSPrimitiveValue::CSS_IDENT);
Timothy Loh 2015/03/03 23:20:15 I guess this check should stay as CSS_STRING || CS
+ return cssValuePool().createValue(value->string, type);
}
inline PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::createCSSImageValueWithReferrer(const String& rawValue, const KURL& url)
@@ -385,7 +385,7 @@ inline PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::parseValidPr
{
if (identifier)
return cssValuePool().createIdentifierValue(identifier);
- if (value->unit == CSSPrimitiveValue::CSS_STRING)
+ if (value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return createPrimitiveStringValue(value);
if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimitiveValue::CSS_KHZ)
return createPrimitiveNumericValue(value);
@@ -523,7 +523,7 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important)
// left | right | center | justify | -webkit-left | -webkit-right | -webkit-center | -webkit-match-parent
// | start | end | <string> | inherit | -webkit-auto (converted to start)
if ((id >= CSSValueWebkitAuto && id <= CSSValueWebkitMatchParent) || id == CSSValueStart || id == CSSValueEnd
- || value->unit == CSSPrimitiveValue::CSS_STRING)
+ || value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
validPrimitive = true;
break;
@@ -1329,17 +1329,17 @@ bool CSSPropertyParser::parseValue(CSSPropertyID propId, bool important)
break;
case CSSPropertyWebkitHighlight:
- if (id == CSSValueNone || value->unit == CSSPrimitiveValue::CSS_STRING)
+ if (id == CSSValueNone || value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
validPrimitive = true;
break;
case CSSPropertyWebkitHyphenateCharacter:
- if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_STRING)
+ if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
validPrimitive = true;
break;
case CSSPropertyWebkitLocale:
- if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_STRING)
+ if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
validPrimitive = true;
break;
@@ -2155,9 +2155,9 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseQuotes()
RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createCommaSeparated();
while (CSSParserValue* val = m_valueList->current()) {
RefPtrWillBeRawPtr<CSSValue> parsedValue = nullptr;
- if (val->unit != CSSPrimitiveValue::CSS_STRING)
+ if (val->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return nullptr;
- parsedValue = CSSPrimitiveValue::create(val->string, CSSPrimitiveValue::CSS_STRING);
+ parsedValue = CSSPrimitiveValue::create(val->string, CSSPrimitiveValue::CSS_CUSTOM_IDENT);
Timothy Loh 2015/03/03 23:20:15 CSS_STRING
values->append(parsedValue.release());
m_valueList->next();
}
@@ -2216,8 +2216,8 @@ bool CSSPropertyParser::parseContent(CSSPropertyID propId, bool important)
default:
break;
}
- } else if (val->unit == CSSPrimitiveValue::CSS_STRING) {
- parsedValue = createPrimitiveStringValue(val);
+ } else if (val->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT) {
+ parsedValue = createPrimitiveStringValue(val, CSSPrimitiveValue::CSS_STRING);
}
if (!parsedValue)
break;
@@ -2963,7 +2963,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseAnimationName(bool allo
if (value->unit == CSSPrimitiveValue::CSS_IDENT)
return createPrimitiveStringValue(value);
- if (allowQuotedName && value->unit == CSSPrimitiveValue::CSS_STRING) {
+ if (allowQuotedName && value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT) {
// Legacy support for strings in prefixed animations
if (m_context.useCounter())
m_context.useCounter()->count(UseCounter::QuotedAnimationName);
@@ -3259,7 +3259,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseGridPosition()
// For the <custom-ident> case.
if (gridLineName && !numericValue && !hasSeenSpanKeyword)
- return cssValuePool().createValue(gridLineName->getStringValue(), CSSPrimitiveValue::CSS_STRING);
+ return cssValuePool().createValue(gridLineName->getStringValue(), CSSPrimitiveValue::CSS_CUSTOM_IDENT);
RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSeparated();
if (hasSeenSpanKeyword)
@@ -3337,7 +3337,7 @@ bool CSSPropertyParser::parseGridTemplateRowsAndAreas(PassRefPtrWillBeRawPtr<CSS
++rowCount;
// Handle template-rows's track-size.
- if (m_valueList->current() && m_valueList->current()->unit != CSSParserValue::ValueList && m_valueList->current()->unit != CSSPrimitiveValue::CSS_STRING) {
+ if (m_valueList->current() && m_valueList->current()->unit != CSSParserValue::ValueList && m_valueList->current()->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT) {
RefPtrWillBeRawPtr<CSSValue> value = parseGridTrackSize(*m_valueList);
if (!value)
return false;
@@ -3714,7 +3714,7 @@ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::parseGridBreadth(CS
bool CSSPropertyParser::parseGridTemplateAreasRow(NamedGridAreaMap& gridAreaMap, const size_t rowCount, size_t& columnCount)
{
CSSParserValue* currentValue = m_valueList->current();
- if (!currentValue || currentValue->unit != CSSPrimitiveValue::CSS_STRING)
+ if (!currentValue || currentValue->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return false;
String gridRowNames = currentValue->string;
@@ -3847,14 +3847,14 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseCounterContent(CSSParse
RefPtrWillBeRawPtr<CSSPrimitiveValue> separator = nullptr;
if (!counters)
- separator = cssValuePool().createValue(String(), CSSPrimitiveValue::CSS_STRING);
+ separator = cssValuePool().createValue(String(), CSSPrimitiveValue::CSS_CUSTOM_IDENT);
else {
args->next();
if (!consumeComma(args))
return nullptr;
i = args->current();
- if (i->unit != CSSPrimitiveValue::CSS_STRING)
+ if (i->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return nullptr;
separator = createPrimitiveStringValue(i);
@@ -4616,7 +4616,7 @@ PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseFontFamily()
bool nextValBreaksFont = !nextValue || isComma(nextValue);
bool nextValIsFontName = nextValue &&
((nextValue->id >= CSSValueSerif && nextValue->id <= CSSValueWebkitBody) ||
- (nextValue->unit == CSSPrimitiveValue::CSS_STRING || nextValue->unit == CSSPrimitiveValue::CSS_IDENT));
+ (nextValue->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT || nextValue->unit == CSSPrimitiveValue::CSS_IDENT));
if (isCSSWideKeyword(*value) && !inFamily) {
if (nextValBreaksFont)
@@ -4636,7 +4636,7 @@ PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseFontFamily()
familyBuilder.add(value->string);
inFamily = true;
}
- } else if (value->unit == CSSPrimitiveValue::CSS_STRING) {
+ } else if (value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT) {
// Strings never share in a family name.
inFamily = false;
familyBuilder.commit();
@@ -4791,7 +4791,7 @@ bool CSSPropertyParser::parseFontFaceSrcURI(CSSValueList* valueList)
// FIXME: http://www.w3.org/TR/2011/WD-css3-fonts-20111004/ says that format() contains a comma-separated list of strings,
// but CSSFontFaceSrcValue stores only one format. Allowing one format for now.
CSSParserValueList* args = value->function->args.get();
- if (!args || args->size() != 1 || (args->current()->unit != CSSPrimitiveValue::CSS_STRING && args->current()->unit != CSSPrimitiveValue::CSS_IDENT))
+ if (!args || args->size() != 1 || (args->current()->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT && args->current()->unit != CSSPrimitiveValue::CSS_IDENT))
return false;
uriValue->setFormat(args->current()->string);
valueList->append(uriValue.release());
@@ -4807,7 +4807,7 @@ bool CSSPropertyParser::parseFontFaceSrcLocal(CSSValueList* valueList)
m_valueList->next();
ContentSecurityPolicyDisposition shouldCheckContentSecurityPolicy = m_context.shouldCheckContentSecurityPolicy();
- if (args->size() == 1 && args->current()->unit == CSSPrimitiveValue::CSS_STRING)
+ if (args->size() == 1 && args->current()->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
valueList->append(CSSFontFaceSrcValue::createLocal(args->current()->string, shouldCheckContentSecurityPolicy));
else if (args->current()->unit == CSSPrimitiveValue::CSS_IDENT) {
StringBuilder builder;
@@ -7485,7 +7485,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseTextEmphasisStyle()
RefPtrWillBeRawPtr<CSSPrimitiveValue> shape = nullptr;
for (CSSParserValue* value = m_valueList->current(); value; value = m_valueList->next()) {
- if (value->unit == CSSPrimitiveValue::CSS_STRING) {
+ if (value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT) {
if (fill || shape)
return nullptr;
m_valueList->next();
@@ -7602,7 +7602,7 @@ bool CSSPropertyParser::parseFontFeatureTag(CSSValueList* settings)
CSSParserValue* value = m_valueList->current();
// Feature tag name comes first
- if (value->unit != CSSPrimitiveValue::CSS_STRING)
+ if (value->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return false;
if (value->string.length() != tagNameLength)
return false;
@@ -8137,7 +8137,7 @@ bool CSSPropertyParser::parseSVGValue(CSSPropertyID propId, bool important)
if (validPrimitive) {
if (id)
parsedValue = CSSPrimitiveValue::createIdentifier(id);
- else if (value->unit == CSSPrimitiveValue::CSS_STRING)
+ else if (value->unit == CSSPrimitiveValue::CSS_CUSTOM_IDENT)
parsedValue = CSSPrimitiveValue::create(value->string, (CSSPrimitiveValue::UnitType) value->unit);
else if (value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimitiveValue::CSS_KHZ)
parsedValue = CSSPrimitiveValue::create(value->fValue, (CSSPrimitiveValue::UnitType) value->unit);
@@ -8443,7 +8443,7 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseMotionPath()
return nullptr;
CSSParserValue* arg = functionArgs->current();
- if (arg->unit != CSSPrimitiveValue::CSS_STRING)
+ if (arg->unit != CSSPrimitiveValue::CSS_CUSTOM_IDENT)
return nullptr;
String pathString = arg->string;
« Source/core/css/parser/CSSPropertyParser.h ('K') | « Source/core/css/parser/CSSPropertyParser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698