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 5e73636bd1576a31f28c0d11de605832f177bce7..cf7095038d1d273068007209f0fe23ba98046f6c 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -37,6 +37,7 @@ |
#include "core/css/FontFace.h" |
#include "core/css/HashTools.h" |
#include "core/css/parser/CSSParserFastPaths.h" |
+#include "core/css/parser/CSSParserIdioms.h" |
#include "core/css/parser/CSSPropertyParserHelpers.h" |
#include "core/css/parser/CSSVariableParser.h" |
#include "core/frame/UseCounter.h" |
@@ -3172,10 +3173,7 @@ static Vector<String> parseGridTemplateAreasColumnNames(const String& gridRowNam |
StringBuilder areaName; |
for (unsigned i = 0; i < text.length(); ++i) { |
- // TODO(rob.buis): this whitespace check misses \n and \t. |
- // https://drafts.csswg.org/css-grid/#valdef-grid-template-areas-string |
- // https://drafts.csswg.org/css-syntax-3/#whitespace |
- if (text[i] == ' ') { |
+ if (isCSSSpace(text[i])) { |
if (!areaName.isEmpty()) { |
columnNames.append(areaName.toString()); |
areaName.clear(); |
@@ -3190,7 +3188,8 @@ static Vector<String> parseGridTemplateAreasColumnNames(const String& gridRowNam |
areaName.clear(); |
} |
} else { |
- // TODO(rob.buis): only allow name code points here. |
+ if (!isNameCodePoint(text[i])) |
+ return Vector<String>(); |
if (areaName == ".") { |
columnNames.append(areaName.toString()); |
areaName.clear(); |
@@ -3214,7 +3213,8 @@ static bool parseGridTemplateAreasRow(const String& gridRowNames, NamedGridAreaM |
Vector<String> columnNames = parseGridTemplateAreasColumnNames(gridRowNames); |
if (rowCount == 0) { |
columnCount = columnNames.size(); |
- ASSERT(columnCount); |
+ if (columnCount == 0) |
+ return false; |
} else if (columnCount != columnNames.size()) { |
// The declaration is invalid if all the rows don't have the number of columns. |
return false; |