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

Unified Diff: third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp

Issue 2632083002: Provide a CSSParserContext to CSSSyntaxDescriptor (Closed)
Patch Set: Fix parser context in PropertyRegistration Created 3 years, 11 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: third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
diff --git a/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp b/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
index 4dc999a0e4e6225c021bcea2f32c943897b21be5..71eedf70702354a7f6c496b12bcf453014edfe86 100644
--- a/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
+++ b/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
@@ -8,7 +8,6 @@
#include "core/css/CSSURIValue.h"
#include "core/css/CSSValueList.h"
#include "core/css/CSSVariableReferenceValue.h"
-#include "core/css/parser/CSSParserContext.h"
#include "core/css/parser/CSSParserIdioms.h"
#include "core/css/parser/CSSPropertyParserHelpers.h"
#include "core/css/parser/CSSVariableParser.h"
@@ -130,7 +129,8 @@ CSSSyntaxDescriptor::CSSSyntaxDescriptor(String input) {
}
const CSSValue* consumeSingleType(const CSSSyntaxComponent& syntax,
- CSSParserTokenRange& range) {
+ CSSParserTokenRange& range,
+ const CSSParserContext* context) {
using namespace CSSPropertyParserHelpers;
switch (syntax.m_type) {
@@ -153,9 +153,7 @@ const CSSValue* consumeSingleType(const CSSSyntaxComponent& syntax,
case CSSSyntaxType::Color:
return consumeColor(range, HTMLStandardMode);
case CSSSyntaxType::Image:
- // TODO(timloh): This probably needs a proper parser context for relative
- // URL resolution.
- return consumeImage(range, strictCSSParserContext());
+ return consumeImage(range, context);
case CSSSyntaxType::Url:
return consumeUrl(range);
case CSSSyntaxType::Integer:
@@ -177,25 +175,27 @@ const CSSValue* consumeSingleType(const CSSSyntaxComponent& syntax,
}
const CSSValue* consumeSyntaxComponent(const CSSSyntaxComponent& syntax,
- CSSParserTokenRange range) {
+ CSSParserTokenRange range,
+ const CSSParserContext* context) {
// CSS-wide keywords are already handled by the CSSPropertyParser
if (syntax.m_repeatable) {
CSSValueList* list = CSSValueList::createSpaceSeparated();
while (!range.atEnd()) {
- const CSSValue* value = consumeSingleType(syntax, range);
+ const CSSValue* value = consumeSingleType(syntax, range, context);
if (!value)
return nullptr;
list->append(*value);
}
return list;
}
- const CSSValue* result = consumeSingleType(syntax, range);
+ const CSSValue* result = consumeSingleType(syntax, range, context);
if (!range.atEnd())
return nullptr;
return result;
}
const CSSValue* CSSSyntaxDescriptor::parse(CSSParserTokenRange range,
+ const CSSParserContext* context,
bool isAnimationTainted) const {
if (isTokenStream()) {
return CSSVariableParser::parseRegisteredPropertyValue(range, false,
@@ -203,7 +203,8 @@ const CSSValue* CSSSyntaxDescriptor::parse(CSSParserTokenRange range,
}
range.consumeWhitespace();
for (const CSSSyntaxComponent& component : m_syntaxComponents) {
- if (const CSSValue* result = consumeSyntaxComponent(component, range))
+ if (const CSSValue* result =
+ consumeSyntaxComponent(component, range, context))
return result;
}
return CSSVariableParser::parseRegisteredPropertyValue(range, true,
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h ('k') | third_party/WebKit/Source/core/css/CSSVariableData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698