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, |