summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc650
1 files changed, 339 insertions, 311 deletions
diff --git a/chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc b/chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
index b686b57582a..b7c96bbf4ae 100644
--- a/chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
+++ b/chromium/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
@@ -19,6 +19,7 @@
#include "third_party/blink/renderer/core/css/css_initial_value.h"
#include "third_party/blink/renderer/core/css/css_path_value.h"
#include "third_party/blink/renderer/core/css/css_primitive_value.h"
+#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css/css_ray_value.h"
#include "third_party/blink/renderer/core/css/css_shadow_value.h"
#include "third_party/blink/renderer/core/css/css_timing_function_value.h"
@@ -34,7 +35,6 @@
#include "third_party/blink/renderer/core/css/parser/css_property_parser_helpers.h"
#include "third_party/blink/renderer/core/css/properties/css_property.h"
#include "third_party/blink/renderer/core/css/properties/longhand.h"
-#include "third_party/blink/renderer/core/css_property_names.h"
#include "third_party/blink/renderer/core/css_value_keywords.h"
#include "third_party/blink/renderer/core/frame/use_counter.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
@@ -42,7 +42,7 @@
#include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
#include "third_party/blink/renderer/core/svg/svg_path_utilities.h"
#include "third_party/blink/renderer/platform/animation/timing_function.h"
-#include "third_party/blink/renderer/platform/length.h"
+#include "third_party/blink/renderer/platform/geometry/length.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
@@ -50,43 +50,43 @@ namespace blink {
using namespace cssvalue;
-namespace CSSParsingUtils {
+namespace css_parsing_utils {
namespace {
bool IsLeftOrRightKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<CSSValueLeft, CSSValueRight>(
+ return css_property_parser_helpers::IdentMatches<CSSValueLeft, CSSValueRight>(
id);
}
bool IsAuto(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<CSSValueAuto>(id);
+ return css_property_parser_helpers::IdentMatches<CSSValueAuto>(id);
}
bool IsNormalOrStretch(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<CSSValueNormal,
- CSSValueStretch>(id);
+ return css_property_parser_helpers::IdentMatches<CSSValueNormal,
+ CSSValueStretch>(id);
}
bool IsContentDistributionKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<
+ return css_property_parser_helpers::IdentMatches<
CSSValueSpaceBetween, CSSValueSpaceAround, CSSValueSpaceEvenly,
CSSValueStretch>(id);
}
bool IsOverflowKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<CSSValueUnsafe, CSSValueSafe>(
- id);
+ return css_property_parser_helpers::IdentMatches<CSSValueUnsafe,
+ CSSValueSafe>(id);
}
CSSIdentifierValue* ConsumeOverflowPositionKeyword(CSSParserTokenRange& range) {
return IsOverflowKeyword(range.Peek().Id())
- ? CSSPropertyParserHelpers::ConsumeIdent(range)
+ ? css_property_parser_helpers::ConsumeIdent(range)
: nullptr;
}
bool IsBaselineKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<CSSValueFirst, CSSValueLast,
- CSSValueBaseline>(id);
+ return css_property_parser_helpers::IdentMatches<CSSValueFirst, CSSValueLast,
+ CSSValueBaseline>(id);
}
CSSValueID GetBaselineKeyword(CSSValue& value) {
@@ -104,10 +104,10 @@ CSSValueID GetBaselineKeyword(CSSValue& value) {
CSSValue* ConsumeBaselineKeyword(CSSParserTokenRange& range) {
CSSIdentifierValue* preference =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueFirst, CSSValueLast>(
+ css_property_parser_helpers::ConsumeIdent<CSSValueFirst, CSSValueLast>(
range);
CSSIdentifierValue* baseline =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueBaseline>(range);
+ css_property_parser_helpers::ConsumeIdent<CSSValueBaseline>(range);
if (!baseline)
return nullptr;
if (preference && preference->GetValueID() == CSSValueLast) {
@@ -121,16 +121,16 @@ CSSValue* ConsumeSteps(CSSParserTokenRange& range) {
DCHECK_EQ(range.Peek().FunctionId(), CSSValueSteps);
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
CSSPrimitiveValue* steps =
- CSSPropertyParserHelpers::ConsumePositiveInteger(args);
+ css_property_parser_helpers::ConsumePositiveInteger(args);
if (!steps)
return nullptr;
StepsTimingFunction::StepPosition position =
StepsTimingFunction::StepPosition::END;
- if (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ if (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
switch (args.ConsumeIncludingWhitespace().Id()) {
case CSSValueMiddle:
if (!RuntimeEnabledFeatures::WebAnimationsAPIEnabled())
@@ -159,10 +159,10 @@ CSSValue* ConsumeFrames(CSSParserTokenRange& range) {
DCHECK_EQ(range.Peek().FunctionId(), CSSValueFrames);
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
CSSPrimitiveValue* frames =
- CSSPropertyParserHelpers::ConsumePositiveInteger(args);
+ css_property_parser_helpers::ConsumePositiveInteger(args);
if (!frames)
return nullptr;
@@ -181,18 +181,18 @@ CSSValue* ConsumeCubicBezier(CSSParserTokenRange& range) {
DCHECK_EQ(range.Peek().FunctionId(), CSSValueCubicBezier);
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
double x1, y1, x2, y2;
- if (CSSPropertyParserHelpers::ConsumeNumberRaw(args, x1) && x1 >= 0 &&
+ if (css_property_parser_helpers::ConsumeNumberRaw(args, x1) && x1 >= 0 &&
x1 <= 1 &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args) &&
- CSSPropertyParserHelpers::ConsumeNumberRaw(args, y1) &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args) &&
- CSSPropertyParserHelpers::ConsumeNumberRaw(args, x2) && x2 >= 0 &&
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args) &&
+ css_property_parser_helpers::ConsumeNumberRaw(args, y1) &&
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args) &&
+ css_property_parser_helpers::ConsumeNumberRaw(args, x2) && x2 >= 0 &&
x2 <= 1 &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args) &&
- CSSPropertyParserHelpers::ConsumeNumberRaw(args, y2) && args.AtEnd()) {
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args) &&
+ css_property_parser_helpers::ConsumeNumberRaw(args, y2) && args.AtEnd()) {
range = range_copy;
return CSSCubicBezierTimingFunctionValue::Create(x1, y1, x2, y2);
}
@@ -202,13 +202,13 @@ CSSValue* ConsumeCubicBezier(CSSParserTokenRange& range) {
CSSIdentifierValue* ConsumeBorderImageRepeatKeyword(
CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdent<CSSValueStretch, CSSValueRepeat,
- CSSValueSpace, CSSValueRound>(
- range);
+ return css_property_parser_helpers::ConsumeIdent<
+ CSSValueStretch, CSSValueRepeat, CSSValueSpace, CSSValueRound>(range);
}
bool ConsumeCSSValueId(CSSParserTokenRange& range, CSSValueID& value) {
- CSSIdentifierValue* keyword = CSSPropertyParserHelpers::ConsumeIdent(range);
+ CSSIdentifierValue* keyword =
+ css_property_parser_helpers::ConsumeIdent(range);
if (!keyword || !range.AtEnd())
return false;
value = keyword->GetValueID();
@@ -217,11 +217,11 @@ bool ConsumeCSSValueId(CSSParserTokenRange& range, CSSValueID& value) {
CSSValue* ConsumeShapeRadius(CSSParserTokenRange& args,
CSSParserMode css_parser_mode) {
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueClosestSide,
- CSSValueFarthestSide>(
+ if (css_property_parser_helpers::IdentMatches<CSSValueClosestSide,
+ CSSValueFarthestSide>(
args.Peek().Id()))
- return CSSPropertyParserHelpers::ConsumeIdent(args);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(args);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
args, css_parser_mode, kValueRangeNonNegative);
}
@@ -233,11 +233,11 @@ CSSBasicShapeCircleValue* ConsumeBasicShapeCircle(
CSSBasicShapeCircleValue* shape = CSSBasicShapeCircleValue::Create();
if (CSSValue* radius = ConsumeShapeRadius(args, context.Mode()))
shape->SetRadius(radius);
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueAt>(args)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueAt>(args)) {
CSSValue* center_x = nullptr;
CSSValue* center_y = nullptr;
if (!ConsumePosition(args, context,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid,
+ css_property_parser_helpers::UnitlessQuirk::kForbid,
base::Optional<WebFeature>(), center_x, center_y))
return nullptr;
shape->SetCenterX(center_x);
@@ -261,11 +261,11 @@ CSSBasicShapeEllipseValue* ConsumeBasicShapeEllipse(
feature = WebFeature::kBasicShapeEllipseTwoRadius;
}
}
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueAt>(args)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueAt>(args)) {
CSSValue* center_x = nullptr;
CSSValue* center_y = nullptr;
if (!ConsumePosition(args, context,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid,
+ css_property_parser_helpers::UnitlessQuirk::kForbid,
base::Optional<WebFeature>(), center_x, center_y))
return nullptr;
shape->SetCenterX(center_x);
@@ -279,28 +279,29 @@ CSSBasicShapePolygonValue* ConsumeBasicShapePolygon(
CSSParserTokenRange& args,
const CSSParserContext& context) {
CSSBasicShapePolygonValue* shape = CSSBasicShapePolygonValue::Create();
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueEvenodd, CSSValueNonzero>(
+ if (css_property_parser_helpers::IdentMatches<CSSValueEvenodd,
+ CSSValueNonzero>(
args.Peek().Id())) {
shape->SetWindRule(args.ConsumeIncludingWhitespace().Id() == CSSValueEvenodd
? RULE_EVENODD
: RULE_NONZERO);
- if (!CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args))
+ if (!css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args))
return nullptr;
}
do {
CSSPrimitiveValue* x_length =
- CSSPropertyParserHelpers::ConsumeLengthOrPercent(args, context.Mode(),
- kValueRangeAll);
+ css_property_parser_helpers::ConsumeLengthOrPercent(
+ args, context.Mode(), kValueRangeAll);
if (!x_length)
return nullptr;
CSSPrimitiveValue* y_length =
- CSSPropertyParserHelpers::ConsumeLengthOrPercent(args, context.Mode(),
- kValueRangeAll);
+ css_property_parser_helpers::ConsumeLengthOrPercent(
+ args, context.Mode(), kValueRangeAll);
if (!y_length)
return nullptr;
shape->AppendPoint(x_length, y_length);
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args));
return shape;
}
@@ -308,19 +309,20 @@ CSSBasicShapeInsetValue* ConsumeBasicShapeInset(
CSSParserTokenRange& args,
const CSSParserContext& context) {
CSSBasicShapeInsetValue* shape = CSSBasicShapeInsetValue::Create();
- CSSPrimitiveValue* top = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ CSSPrimitiveValue* top = css_property_parser_helpers::ConsumeLengthOrPercent(
args, context.Mode(), kValueRangeAll);
if (!top)
return nullptr;
- CSSPrimitiveValue* right = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
- args, context.Mode(), kValueRangeAll);
+ CSSPrimitiveValue* right =
+ css_property_parser_helpers::ConsumeLengthOrPercent(args, context.Mode(),
+ kValueRangeAll);
CSSPrimitiveValue* bottom = nullptr;
CSSPrimitiveValue* left = nullptr;
if (right) {
- bottom = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ bottom = css_property_parser_helpers::ConsumeLengthOrPercent(
args, context.Mode(), kValueRangeAll);
if (bottom) {
- left = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ left = css_property_parser_helpers::ConsumeLengthOrPercent(
args, context.Mode(), kValueRangeAll);
}
}
@@ -333,7 +335,7 @@ CSSBasicShapeInsetValue* ConsumeBasicShapeInset(
else
shape->UpdateShapeSize1Value(top);
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueRound>(args)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueRound>(args)) {
CSSValue* horizontal_radii[4] = {nullptr};
CSSValue* vertical_radii[4] = {nullptr};
if (!ConsumeRadii(horizontal_radii, vertical_radii, args, context.Mode(),
@@ -360,12 +362,12 @@ bool ConsumeNumbers(CSSParserTokenRange& args,
unsigned number_of_arguments) {
do {
CSSValue* parsed_value =
- CSSPropertyParserHelpers::ConsumeNumber(args, kValueRangeAll);
+ css_property_parser_helpers::ConsumeNumber(args, kValueRangeAll);
if (!parsed_value)
return false;
transform_value->Append(*parsed_value);
if (--number_of_arguments &&
- !CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ !css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
return false;
}
} while (number_of_arguments);
@@ -376,11 +378,11 @@ bool ConsumePerspective(CSSParserTokenRange& args,
const CSSParserContext& context,
CSSFunctionValue*& transform_value,
bool use_legacy_parsing) {
- CSSPrimitiveValue* parsed_value = CSSPropertyParserHelpers::ConsumeLength(
+ CSSPrimitiveValue* parsed_value = css_property_parser_helpers::ConsumeLength(
args, context.Mode(), kValueRangeNonNegative);
if (!parsed_value && use_legacy_parsing) {
double perspective;
- if (!CSSPropertyParserHelpers::ConsumeNumberRaw(args, perspective) ||
+ if (!css_property_parser_helpers::ConsumeNumberRaw(args, perspective) ||
perspective < 0) {
return false;
}
@@ -400,16 +402,16 @@ bool ConsumeTranslate3d(CSSParserTokenRange& args,
unsigned number_of_arguments = 2;
CSSValue* parsed_value = nullptr;
do {
- parsed_value = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ parsed_value = css_property_parser_helpers::ConsumeLengthOrPercent(
args, css_parser_mode, kValueRangeAll);
if (!parsed_value)
return false;
transform_value->Append(*parsed_value);
- if (!CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args))
+ if (!css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args))
return false;
} while (--number_of_arguments);
- parsed_value = CSSPropertyParserHelpers::ConsumeLength(args, css_parser_mode,
- kValueRangeAll);
+ parsed_value = css_property_parser_helpers::ConsumeLength(
+ args, css_parser_mode, kValueRangeAll);
if (!parsed_value)
return false;
transform_value->Append(*parsed_value);
@@ -419,7 +421,7 @@ bool ConsumeTranslate3d(CSSParserTokenRange& args,
} // namespace
bool IsSelfPositionKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<
+ return css_property_parser_helpers::IdentMatches<
CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueSelfStart,
CSSValueSelfEnd, CSSValueFlexStart, CSSValueFlexEnd>(id);
}
@@ -429,7 +431,7 @@ bool IsSelfPositionOrLeftOrRightKeyword(CSSValueID id) {
}
bool IsContentPositionKeyword(CSSValueID id) {
- return CSSPropertyParserHelpers::IdentMatches<
+ return css_property_parser_helpers::IdentMatches<
CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueFlexStart,
CSSValueFlexEnd>(id);
}
@@ -440,9 +442,10 @@ bool IsContentPositionOrLeftOrRightKeyword(CSSValueID id) {
CSSValue* ConsumeScrollOffset(CSSParserTokenRange& range) {
range.ConsumeWhitespace();
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueAuto>(range.Peek().Id()))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- CSSValue* value = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ if (css_property_parser_helpers::IdentMatches<CSSValueAuto>(
+ range.Peek().Id()))
+ return css_property_parser_helpers::ConsumeIdent(range);
+ CSSValue* value = css_property_parser_helpers::ConsumeLengthOrPercent(
range, kHTMLStandardMode, kValueRangeNonNegative);
if (!range.AtEnd())
return nullptr;
@@ -455,7 +458,7 @@ CSSValue* ConsumeSelfPositionOverflowPosition(
DCHECK(is_position_keyword);
CSSValueID id = range.Peek().Id();
if (IsAuto(id) || IsNormalOrStretch(id))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
if (IsBaselineKeyword(id))
return ConsumeBaselineKeyword(range);
@@ -464,7 +467,7 @@ CSSValue* ConsumeSelfPositionOverflowPosition(
if (!is_position_keyword(range.Peek().Id()))
return nullptr;
CSSIdentifierValue* self_position =
- CSSPropertyParserHelpers::ConsumeIdent(range);
+ css_property_parser_helpers::ConsumeIdent(range);
if (overflow_position) {
return CSSValuePair::Create(overflow_position, self_position,
CSSValuePair::kDropIdenticalValues);
@@ -477,7 +480,7 @@ CSSValue* ConsumeContentDistributionOverflowPosition(
IsPositionKeyword is_position_keyword) {
DCHECK(is_position_keyword);
CSSValueID id = range.Peek().Id();
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueNormal>(id)) {
+ if (css_property_parser_helpers::IdentMatches<CSSValueNormal>(id)) {
return CSSContentDistributionValue::Create(
CSSValueInvalid, range.ConsumeIncludingWhitespace().Id(),
CSSValueInvalid);
@@ -510,15 +513,16 @@ CSSValue* ConsumeContentDistributionOverflowPosition(
CSSValue* ConsumeAnimationIterationCount(CSSParserTokenRange& range) {
if (range.Peek().Id() == CSSValueInfinite)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeNumber(range,
+ kValueRangeNonNegative);
}
CSSValue* ConsumeAnimationName(CSSParserTokenRange& range,
const CSSParserContext& context,
bool allow_quoted_name) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
if (allow_quoted_name && range.Peek().GetType() == kStringToken) {
// Legacy support for strings in prefixed animations.
@@ -530,7 +534,7 @@ CSSValue* ConsumeAnimationName(CSSParserTokenRange& range,
return CSSCustomIdentValue::Create(token.Value().ToAtomicString());
}
- return CSSPropertyParserHelpers::ConsumeCustomIdent(range);
+ return css_property_parser_helpers::ConsumeCustomIdent(range, context);
}
CSSValue* ConsumeAnimationTimingFunction(CSSParserTokenRange& range) {
@@ -539,7 +543,7 @@ CSSValue* ConsumeAnimationTimingFunction(CSSParserTokenRange& range) {
id == CSSValueEaseOut || id == CSSValueEaseInOut ||
id == CSSValueStepStart || id == CSSValueStepEnd ||
id == CSSValueStepMiddle)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSValueID function = range.Peek().FunctionId();
if (function == CSSValueSteps)
@@ -596,7 +600,7 @@ bool ConsumeAnimationShorthand(
}
parsed_longhand[i] = false;
}
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
return true;
}
@@ -616,41 +620,41 @@ void AddBackgroundValue(CSSValue*& list, CSSValue* value) {
}
CSSValue* ConsumeBackgroundAttachment(CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdent<CSSValueScroll, CSSValueFixed,
- CSSValueLocal>(range);
+ return css_property_parser_helpers::ConsumeIdent<
+ CSSValueScroll, CSSValueFixed, CSSValueLocal>(range);
}
CSSValue* ConsumeBackgroundBlendMode(CSSParserTokenRange& range) {
CSSValueID id = range.Peek().Id();
if (id == CSSValueNormal || id == CSSValueOverlay ||
(id >= CSSValueMultiply && id <= CSSValueLuminosity))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
return nullptr;
}
CSSValue* ConsumeBackgroundBox(CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdent<
+ return css_property_parser_helpers::ConsumeIdent<
CSSValueBorderBox, CSSValuePaddingBox, CSSValueContentBox>(range);
}
CSSValue* ConsumeBackgroundComposite(CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdentRange(range, CSSValueClear,
- CSSValuePlusLighter);
+ return css_property_parser_helpers::ConsumeIdentRange(range, CSSValueClear,
+ CSSValuePlusLighter);
}
CSSValue* ConsumeMaskSourceType(CSSParserTokenRange& range) {
DCHECK(RuntimeEnabledFeatures::CSSMaskSourceTypeEnabled());
- return CSSPropertyParserHelpers::ConsumeIdent<CSSValueAuto, CSSValueAlpha,
- CSSValueLuminance>(range);
+ return css_property_parser_helpers::ConsumeIdent<CSSValueAuto, CSSValueAlpha,
+ CSSValueLuminance>(range);
}
CSSPrimitiveValue* ConsumeLengthOrPercentCountNegative(
CSSParserTokenRange& range,
const CSSParserContext& context,
base::Optional<WebFeature> negative_size) {
- CSSPrimitiveValue* result =
- ConsumeLengthOrPercent(range, context.Mode(), kValueRangeNonNegative,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid);
+ CSSPrimitiveValue* result = ConsumeLengthOrPercent(
+ range, context.Mode(), kValueRangeNonNegative,
+ css_property_parser_helpers::UnitlessQuirk::kForbid);
if (!result && negative_size)
context.Count(*negative_size);
return result;
@@ -660,13 +664,13 @@ CSSValue* ConsumeBackgroundSize(CSSParserTokenRange& range,
const CSSParserContext& context,
base::Optional<WebFeature> negative_size,
ParsingStyle parsing_style) {
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueContain, CSSValueCover>(
+ if (css_property_parser_helpers::IdentMatches<CSSValueContain, CSSValueCover>(
range.Peek().Id())) {
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
}
CSSValue* horizontal =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueAuto>(range);
+ css_property_parser_helpers::ConsumeIdent<CSSValueAuto>(range);
if (!horizontal) {
horizontal =
ConsumeLengthOrPercentCountNegative(range, context, negative_size);
@@ -693,21 +697,22 @@ CSSValue* ConsumeBackgroundSize(CSSParserTokenRange& range,
CSSValuePair::kKeepIdenticalValues);
}
-bool ConsumeBackgroundPosition(CSSParserTokenRange& range,
- const CSSParserContext& context,
- CSSPropertyParserHelpers::UnitlessQuirk unitless,
- CSSValue*& result_x,
- CSSValue*& result_y) {
+bool ConsumeBackgroundPosition(
+ CSSParserTokenRange& range,
+ const CSSParserContext& context,
+ css_property_parser_helpers::UnitlessQuirk unitless,
+ CSSValue*& result_x,
+ CSSValue*& result_y) {
do {
CSSValue* position_x = nullptr;
CSSValue* position_y = nullptr;
- if (!CSSPropertyParserHelpers::ConsumePosition(
+ if (!css_property_parser_helpers::ConsumePosition(
range, context, unitless,
WebFeature::kThreeValuedPositionBackground, position_x, position_y))
return false;
AddBackgroundValue(result_x, position_x);
AddBackgroundValue(result_y, position_y);
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
return true;
}
@@ -715,12 +720,12 @@ CSSValue* ConsumePrefixedBackgroundBox(CSSParserTokenRange& range,
AllowTextValue allow_text_value) {
// The values 'border', 'padding' and 'content' are deprecated and do not
// apply to the version of the property that has the -webkit- prefix removed.
- if (CSSValue* value = CSSPropertyParserHelpers::ConsumeIdentRange(
+ if (CSSValue* value = css_property_parser_helpers::ConsumeIdentRange(
range, CSSValueBorder, CSSValuePaddingBox))
return value;
if (allow_text_value == AllowTextValue::kAllow &&
range.Peek().Id() == CSSValueText)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
return nullptr;
}
@@ -729,10 +734,10 @@ CSSValue* ParseBackgroundBox(CSSParserTokenRange& range,
AllowTextValue alias_allow_text_value) {
// This is legacy behavior that does not match spec, see crbug.com/604023
if (local_context.UseAliasParsing()) {
- return CSSPropertyParserHelpers::ConsumeCommaSeparatedList(
+ return css_property_parser_helpers::ConsumeCommaSeparatedList(
ConsumePrefixedBackgroundBox, range, alias_allow_text_value);
}
- return CSSPropertyParserHelpers::ConsumeCommaSeparatedList(
+ return css_property_parser_helpers::ConsumeCommaSeparatedList(
ConsumeBackgroundBox, range);
}
@@ -740,7 +745,7 @@ CSSValue* ParseBackgroundOrMaskSize(CSSParserTokenRange& range,
const CSSParserContext& context,
const CSSParserLocalContext& local_context,
base::Optional<WebFeature> negative_size) {
- return CSSPropertyParserHelpers::ConsumeCommaSeparatedList(
+ return css_property_parser_helpers::ConsumeCommaSeparatedList(
ConsumeBackgroundSize, range, context, negative_size,
local_context.UseAliasParsing() ? ParsingStyle::kLegacy
: ParsingStyle::kNotLegacy);
@@ -760,7 +765,7 @@ CSSValue* ConsumeBackgroundComponent(CSSPropertyID resolved_property,
return ConsumeBackgroundBox(range);
case CSSPropertyBackgroundImage:
case CSSPropertyWebkitMaskImage:
- return CSSPropertyParserHelpers::ConsumeImageOrNone(range, &context);
+ return css_property_parser_helpers::ConsumeImageOrNone(range, &context);
case CSSPropertyBackgroundPositionX:
case CSSPropertyWebkitMaskPositionX:
return ConsumePositionLonghand<CSSValueLeft, CSSValueRight>(
@@ -778,7 +783,7 @@ CSSValue* ConsumeBackgroundComponent(CSSPropertyID resolved_property,
WebFeature::kNegativeMaskSize,
ParsingStyle::kNotLegacy);
case CSSPropertyBackgroundColor:
- return CSSPropertyParserHelpers::ConsumeColor(range, context.Mode());
+ return css_property_parser_helpers::ConsumeColor(range, context.Mode());
case CSSPropertyWebkitMaskClip:
return ConsumePrefixedBackgroundBox(range, AllowTextValue::kAllow);
case CSSPropertyWebkitMaskOrigin:
@@ -833,14 +838,15 @@ bool ParseBackgroundOrMask(bool important,
ConsumeRepeatStyleComponent(range, value, value_y, implicit);
} else if (property.IDEquals(CSSPropertyBackgroundPositionX) ||
property.IDEquals(CSSPropertyWebkitMaskPositionX)) {
- if (!CSSPropertyParserHelpers::ConsumePosition(
+ if (!css_property_parser_helpers::ConsumePosition(
range, context,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid,
+ css_property_parser_helpers::UnitlessQuirk::kForbid,
WebFeature::kThreeValuedPositionBackground, value, value_y))
continue;
} else if (property.IDEquals(CSSPropertyBackgroundSize) ||
property.IDEquals(CSSPropertyWebkitMaskSize)) {
- if (!CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range))
+ if (!css_property_parser_helpers::ConsumeSlashIncludingWhitespace(
+ range))
continue;
value =
ConsumeBackgroundSize(range, context,
@@ -899,7 +905,7 @@ bool ParseBackgroundOrMask(bool important,
AddBackgroundValue(longhands[i], CSSInitialValue::Create());
}
}
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
if (!range.AtEnd())
return false;
@@ -908,10 +914,11 @@ bool ParseBackgroundOrMask(bool important,
if (property.IDEquals(CSSPropertyBackgroundSize) && longhands[i] &&
context.UseLegacyBackgroundSizeShorthandBehavior())
continue;
- CSSPropertyParserHelpers::AddProperty(
+ css_property_parser_helpers::AddProperty(
property.PropertyID(), shorthand.id(), *longhands[i], important,
- implicit ? CSSPropertyParserHelpers::IsImplicitProperty::kImplicit
- : CSSPropertyParserHelpers::IsImplicitProperty::kNotImplicit,
+ implicit
+ ? css_property_parser_helpers::IsImplicitProperty::kImplicit
+ : css_property_parser_helpers::IsImplicitProperty::kNotImplicit,
properties);
}
return true;
@@ -921,24 +928,24 @@ bool ConsumeRepeatStyleComponent(CSSParserTokenRange& range,
CSSValue*& value1,
CSSValue*& value2,
bool& implicit) {
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueRepeatX>(range)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueRepeatX>(range)) {
value1 = CSSIdentifierValue::Create(CSSValueRepeat);
value2 = CSSIdentifierValue::Create(CSSValueNoRepeat);
implicit = true;
return true;
}
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueRepeatY>(range)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueRepeatY>(range)) {
value1 = CSSIdentifierValue::Create(CSSValueNoRepeat);
value2 = CSSIdentifierValue::Create(CSSValueRepeat);
implicit = true;
return true;
}
- value1 = CSSPropertyParserHelpers::ConsumeIdent<
+ value1 = css_property_parser_helpers::ConsumeIdent<
CSSValueRepeat, CSSValueNoRepeat, CSSValueRound, CSSValueSpace>(range);
if (!value1)
return false;
- value2 = CSSPropertyParserHelpers::ConsumeIdent<
+ value2 = css_property_parser_helpers::ConsumeIdent<
CSSValueRepeat, CSSValueNoRepeat, CSSValueRound, CSSValueSpace>(range);
if (!value2) {
value2 = value1;
@@ -958,7 +965,7 @@ bool ConsumeRepeatStyle(CSSParserTokenRange& range,
return false;
AddBackgroundValue(result_x, repeat_x);
AddBackgroundValue(result_y, repeat_y);
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
return true;
}
@@ -985,7 +992,7 @@ bool ConsumeBorderImageComponents(CSSParserTokenRange& range,
DefaultFill default_fill) {
do {
if (!source) {
- source = CSSPropertyParserHelpers::ConsumeImageOrNone(range, &context);
+ source = css_property_parser_helpers::ConsumeImageOrNone(range, &context);
if (source)
continue;
}
@@ -999,9 +1006,10 @@ bool ConsumeBorderImageComponents(CSSParserTokenRange& range,
if (slice) {
DCHECK(!width);
DCHECK(!outset);
- if (CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range)) {
+ if (css_property_parser_helpers::ConsumeSlashIncludingWhitespace(
+ range)) {
width = ConsumeBorderImageWidth(range);
- if (CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(
+ if (css_property_parser_helpers::ConsumeSlashIncludingWhitespace(
range)) {
outset = ConsumeBorderImageOutset(range);
if (!outset)
@@ -1033,15 +1041,15 @@ CSSValue* ConsumeBorderImageRepeat(CSSParserTokenRange& range) {
CSSValue* ConsumeBorderImageSlice(CSSParserTokenRange& range,
DefaultFill default_fill) {
- bool fill = CSSPropertyParserHelpers::ConsumeIdent<CSSValueFill>(range);
+ bool fill = css_property_parser_helpers::ConsumeIdent<CSSValueFill>(range);
CSSValue* slices[4] = {nullptr};
for (size_t index = 0; index < 4; ++index) {
- CSSPrimitiveValue* value =
- CSSPropertyParserHelpers::ConsumePercent(range, kValueRangeNonNegative);
+ CSSPrimitiveValue* value = css_property_parser_helpers::ConsumePercent(
+ range, kValueRangeNonNegative);
if (!value) {
- value = CSSPropertyParserHelpers::ConsumeNumber(range,
- kValueRangeNonNegative);
+ value = css_property_parser_helpers::ConsumeNumber(
+ range, kValueRangeNonNegative);
}
if (!value)
break;
@@ -1049,12 +1057,12 @@ CSSValue* ConsumeBorderImageSlice(CSSParserTokenRange& range,
}
if (!slices[0])
return nullptr;
- if (CSSPropertyParserHelpers::ConsumeIdent<CSSValueFill>(range)) {
+ if (css_property_parser_helpers::ConsumeIdent<CSSValueFill>(range)) {
if (fill)
return nullptr;
fill = true;
}
- CSSPropertyParserHelpers::Complete4Sides(slices);
+ css_property_parser_helpers::Complete4Sides(slices);
if (default_fill == DefaultFill::kFill)
fill = true;
return CSSBorderImageSliceValue::Create(
@@ -1068,22 +1076,22 @@ CSSValue* ConsumeBorderImageWidth(CSSParserTokenRange& range) {
CSSValue* value = nullptr;
for (size_t index = 0; index < 4; ++index) {
- value =
- CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ value = css_property_parser_helpers::ConsumeNumber(range,
+ kValueRangeNonNegative);
if (!value) {
- value = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ value = css_property_parser_helpers::ConsumeLengthOrPercent(
range, kHTMLStandardMode, kValueRangeNonNegative,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid);
+ css_property_parser_helpers::UnitlessQuirk::kForbid);
}
if (!value)
- value = CSSPropertyParserHelpers::ConsumeIdent<CSSValueAuto>(range);
+ value = css_property_parser_helpers::ConsumeIdent<CSSValueAuto>(range);
if (!value)
break;
widths[index] = value;
}
if (!widths[0])
return nullptr;
- CSSPropertyParserHelpers::Complete4Sides(widths);
+ css_property_parser_helpers::Complete4Sides(widths);
return CSSQuadValue::Create(widths[0], widths[1], widths[2], widths[3],
CSSQuadValue::kSerializeAsQuad);
}
@@ -1093,11 +1101,11 @@ CSSValue* ConsumeBorderImageOutset(CSSParserTokenRange& range) {
CSSValue* value = nullptr;
for (size_t index = 0; index < 4; ++index) {
- value =
- CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ value = css_property_parser_helpers::ConsumeNumber(range,
+ kValueRangeNonNegative);
if (!value) {
- value = CSSPropertyParserHelpers::ConsumeLength(range, kHTMLStandardMode,
- kValueRangeNonNegative);
+ value = css_property_parser_helpers::ConsumeLength(
+ range, kHTMLStandardMode, kValueRangeNonNegative);
}
if (!value)
break;
@@ -1105,18 +1113,18 @@ CSSValue* ConsumeBorderImageOutset(CSSParserTokenRange& range) {
}
if (!outsets[0])
return nullptr;
- CSSPropertyParserHelpers::Complete4Sides(outsets);
+ css_property_parser_helpers::Complete4Sides(outsets);
return CSSQuadValue::Create(outsets[0], outsets[1], outsets[2], outsets[3],
CSSQuadValue::kSerializeAsQuad);
}
CSSValue* ParseBorderRadiusCorner(CSSParserTokenRange& range,
const CSSParserContext& context) {
- CSSValue* parsed_value1 = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ CSSValue* parsed_value1 = css_property_parser_helpers::ConsumeLengthOrPercent(
range, context.Mode(), kValueRangeNonNegative);
if (!parsed_value1)
return nullptr;
- CSSValue* parsed_value2 = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ CSSValue* parsed_value2 = css_property_parser_helpers::ConsumeLengthOrPercent(
range, context.Mode(), kValueRangeNonNegative);
if (!parsed_value2)
parsed_value2 = parsed_value1;
@@ -1131,9 +1139,10 @@ CSSValue* ParseBorderWidthSide(CSSParserTokenRange& range,
bool allow_quirky_lengths =
IsQuirksModeBehavior(context.Mode()) &&
(shorthand == CSSPropertyInvalid || shorthand == CSSPropertyBorderWidth);
- CSSPropertyParserHelpers::UnitlessQuirk unitless =
- allow_quirky_lengths ? CSSPropertyParserHelpers::UnitlessQuirk::kAllow
- : CSSPropertyParserHelpers::UnitlessQuirk::kForbid;
+ css_property_parser_helpers::UnitlessQuirk unitless =
+ allow_quirky_lengths
+ ? css_property_parser_helpers::UnitlessQuirk::kAllow
+ : css_property_parser_helpers::UnitlessQuirk::kForbid;
return ConsumeBorderWidth(range, context.Mode(), unitless);
}
@@ -1141,8 +1150,8 @@ CSSValue* ConsumeShadow(CSSParserTokenRange& range,
CSSParserMode css_parser_mode,
AllowInsetAndSpread inset_and_spread) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeCommaSeparatedList(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeCommaSeparatedList(
ParseSingleShadow, range, css_parser_mode, inset_and_spread);
}
@@ -1155,27 +1164,28 @@ CSSShadowValue* ParseSingleShadow(CSSParserTokenRange& range,
if (range.AtEnd())
return nullptr;
- color = CSSPropertyParserHelpers::ConsumeColor(range, css_parser_mode);
+ color = css_property_parser_helpers::ConsumeColor(range, css_parser_mode);
if (range.Peek().Id() == CSSValueInset) {
if (inset_and_spread != AllowInsetAndSpread::kAllow)
return nullptr;
- style = CSSPropertyParserHelpers::ConsumeIdent(range);
+ style = css_property_parser_helpers::ConsumeIdent(range);
if (!color)
- color = CSSPropertyParserHelpers::ConsumeColor(range, css_parser_mode);
+ color = css_property_parser_helpers::ConsumeColor(range, css_parser_mode);
}
CSSPrimitiveValue* horizontal_offset =
- CSSPropertyParserHelpers::ConsumeLength(range, css_parser_mode,
- kValueRangeAll);
+ css_property_parser_helpers::ConsumeLength(range, css_parser_mode,
+ kValueRangeAll);
if (!horizontal_offset)
return nullptr;
- CSSPrimitiveValue* vertical_offset = CSSPropertyParserHelpers::ConsumeLength(
- range, css_parser_mode, kValueRangeAll);
+ CSSPrimitiveValue* vertical_offset =
+ css_property_parser_helpers::ConsumeLength(range, css_parser_mode,
+ kValueRangeAll);
if (!vertical_offset)
return nullptr;
- CSSPrimitiveValue* blur_radius = CSSPropertyParserHelpers::ConsumeLength(
+ CSSPrimitiveValue* blur_radius = css_property_parser_helpers::ConsumeLength(
range, css_parser_mode, kValueRangeAll);
CSSPrimitiveValue* spread_distance = nullptr;
if (blur_radius) {
@@ -1183,20 +1193,22 @@ CSSShadowValue* ParseSingleShadow(CSSParserTokenRange& range,
if (blur_radius->GetDoubleValue() < 0)
return nullptr;
if (inset_and_spread == AllowInsetAndSpread::kAllow) {
- spread_distance = CSSPropertyParserHelpers::ConsumeLength(
+ spread_distance = css_property_parser_helpers::ConsumeLength(
range, css_parser_mode, kValueRangeAll);
}
}
if (!range.AtEnd()) {
if (!color)
- color = CSSPropertyParserHelpers::ConsumeColor(range, css_parser_mode);
+ color = css_property_parser_helpers::ConsumeColor(range, css_parser_mode);
if (range.Peek().Id() == CSSValueInset) {
if (inset_and_spread != AllowInsetAndSpread::kAllow || style)
return nullptr;
- style = CSSPropertyParserHelpers::ConsumeIdent(range);
- if (!color)
- color = CSSPropertyParserHelpers::ConsumeColor(range, css_parser_mode);
+ style = css_property_parser_helpers::ConsumeIdent(range);
+ if (!color) {
+ color =
+ css_property_parser_helpers::ConsumeColor(range, css_parser_mode);
+ }
}
}
return CSSShadowValue::Create(horizontal_offset, vertical_offset, blur_radius,
@@ -1205,16 +1217,16 @@ CSSShadowValue* ParseSingleShadow(CSSParserTokenRange& range,
CSSValue* ConsumeColumnCount(CSSParserTokenRange& range) {
if (range.Peek().Id() == CSSValueAuto)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumePositiveInteger(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumePositiveInteger(range);
}
CSSValue* ConsumeColumnWidth(CSSParserTokenRange& range) {
if (range.Peek().Id() == CSSValueAuto)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
// Always parse lengths in strict mode here, since it would be ambiguous
// otherwise when used in the 'columns' shorthand property.
- CSSPrimitiveValue* column_width = CSSPropertyParserHelpers::ConsumeLength(
+ CSSPrimitiveValue* column_width = css_property_parser_helpers::ConsumeLength(
range, kHTMLStandardMode, kValueRangeNonNegative);
if (!column_width)
return nullptr;
@@ -1225,7 +1237,7 @@ bool ConsumeColumnWidthOrCount(CSSParserTokenRange& range,
CSSValue*& column_width,
CSSValue*& column_count) {
if (range.Peek().Id() == CSSValueAuto) {
- CSSPropertyParserHelpers::ConsumeIdent(range);
+ css_property_parser_helpers::ConsumeIdent(range);
return true;
}
if (!column_width) {
@@ -1241,24 +1253,26 @@ bool ConsumeColumnWidthOrCount(CSSParserTokenRange& range,
CSSValue* ConsumeGapLength(CSSParserTokenRange& range,
const CSSParserContext& context) {
if (range.Peek().Id() == CSSValueNormal)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, context.Mode(), kValueRangeNonNegative);
}
-CSSValue* ConsumeCounter(CSSParserTokenRange& range, int default_value) {
+CSSValue* ConsumeCounter(CSSParserTokenRange& range,
+ const CSSParserContext& context,
+ int default_value) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSValueList* list = CSSValueList::CreateSpaceSeparated();
do {
CSSCustomIdentValue* counter_name =
- CSSPropertyParserHelpers::ConsumeCustomIdent(range);
+ css_property_parser_helpers::ConsumeCustomIdent(range, context);
if (!counter_name)
return nullptr;
int value = default_value;
if (CSSPrimitiveValue* counter_value =
- CSSPropertyParserHelpers::ConsumeInteger(range))
+ css_property_parser_helpers::ConsumeInteger(range))
value = clampTo<int>(counter_value->GetDoubleValue());
list->Append(*CSSValuePair::Create(
counter_name,
@@ -1270,24 +1284,24 @@ CSSValue* ConsumeCounter(CSSParserTokenRange& range, int default_value) {
CSSValue* ConsumeFontSize(CSSParserTokenRange& range,
CSSParserMode css_parser_mode,
- CSSPropertyParserHelpers::UnitlessQuirk unitless) {
+ css_property_parser_helpers::UnitlessQuirk unitless) {
if (range.Peek().Id() >= CSSValueXxSmall &&
range.Peek().Id() <= CSSValueLarger)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeNonNegative, unitless);
}
CSSValue* ConsumeLineHeight(CSSParserTokenRange& range,
CSSParserMode css_parser_mode) {
if (range.Peek().Id() == CSSValueNormal)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSPrimitiveValue* line_height =
- CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ css_property_parser_helpers::ConsumeNumber(range, kValueRangeNonNegative);
if (line_height)
return line_height;
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeNonNegative);
}
@@ -1305,13 +1319,13 @@ CSSValueList* ConsumeFontFamily(CSSParserTokenRange& range) {
return nullptr;
}
}
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
return list;
}
CSSValue* ConsumeGenericFamily(CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdentRange(range, CSSValueSerif,
- CSSValueWebkitBody);
+ return css_property_parser_helpers::ConsumeIdentRange(range, CSSValueSerif,
+ CSSValueWebkitBody);
}
CSSValue* ConsumeFamilyName(CSSParserTokenRange& range) {
@@ -1339,7 +1353,7 @@ String ConcatenateFamilyName(CSSParserTokenRange& range) {
builder.Append(range.ConsumeIncludingWhitespace().Value());
}
if (!added_space &&
- (CSSPropertyParserHelpers::IsCSSWideKeyword(first_token.Value()) ||
+ (css_property_parser_helpers::IsCSSWideKeyword(first_token.Value()) ||
EqualIgnoringASCIICase(first_token.Value(), "default"))) {
return String();
}
@@ -1368,16 +1382,16 @@ CSSValue* ConsumeFontStyle(CSSParserTokenRange& range,
const CSSParserMode& parser_mode) {
if (range.Peek().Id() == CSSValueNormal ||
range.Peek().Id() == CSSValueItalic)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
if (range.Peek().Id() != CSSValueOblique)
return nullptr;
CSSIdentifierValue* oblique_identifier =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueOblique>(range);
+ css_property_parser_helpers::ConsumeIdent<CSSValueOblique>(range);
CSSPrimitiveValue* start_angle =
- CSSPropertyParserHelpers::ConsumeAngle(range, nullptr, base::nullopt);
+ css_property_parser_helpers::ConsumeAngle(range, nullptr, base::nullopt);
if (!start_angle)
return oblique_identifier;
if (!IsAngleWithinLimits(start_angle))
@@ -1390,7 +1404,7 @@ CSSValue* ConsumeFontStyle(CSSParserTokenRange& range,
}
CSSPrimitiveValue* end_angle =
- CSSPropertyParserHelpers::ConsumeAngle(range, nullptr, base::nullopt);
+ css_property_parser_helpers::ConsumeAngle(range, nullptr, base::nullopt);
if (!end_angle || !IsAngleWithinLimits(end_angle))
return nullptr;
@@ -1404,7 +1418,7 @@ CSSIdentifierValue* ConsumeFontStretchKeywordOnly(CSSParserTokenRange& range) {
const CSSParserToken& token = range.Peek();
if (token.Id() == CSSValueNormal || (token.Id() >= CSSValueUltraCondensed &&
token.Id() <= CSSValueUltraExpanded))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
return nullptr;
}
@@ -1415,7 +1429,8 @@ CSSValue* ConsumeFontStretch(CSSParserTokenRange& range,
return parsed_keyword;
CSSPrimitiveValue* start_percent =
- CSSPropertyParserHelpers::ConsumePercent(range, kValueRangeNonNegative);
+ css_property_parser_helpers::ConsumePercent(range,
+ kValueRangeNonNegative);
if (!start_percent)
return nullptr;
@@ -1423,8 +1438,8 @@ CSSValue* ConsumeFontStretch(CSSParserTokenRange& range,
if (parser_mode != kCSSFontFaceRuleMode || range.AtEnd())
return start_percent;
- CSSPrimitiveValue* end_percent =
- CSSPropertyParserHelpers::ConsumePercent(range, kValueRangeNonNegative);
+ CSSPrimitiveValue* end_percent = css_property_parser_helpers::ConsumePercent(
+ range, kValueRangeNonNegative);
if (!end_percent)
return nullptr;
@@ -1435,7 +1450,7 @@ CSSValue* ConsumeFontWeight(CSSParserTokenRange& range,
const CSSParserMode& parser_mode) {
const CSSParserToken& token = range.Peek();
if (token.Id() >= CSSValueNormal && token.Id() <= CSSValueLighter)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
// Avoid consuming the first zero of font: 0/0; e.g. in the Acid3 test. In
// font:0/0; the first zero is the font size, the second is the line height.
@@ -1449,7 +1464,7 @@ CSSValue* ConsumeFontWeight(CSSParserTokenRange& range,
return nullptr;
CSSPrimitiveValue* start_weight =
- CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ css_property_parser_helpers::ConsumeNumber(range, kValueRangeNonNegative);
if (!start_weight || start_weight->GetFloatValue() < 1 ||
start_weight->GetFloatValue() > 1000)
return nullptr;
@@ -1461,7 +1476,7 @@ CSSValue* ConsumeFontWeight(CSSParserTokenRange& range,
return start_weight;
CSSPrimitiveValue* end_weight =
- CSSPropertyParserHelpers::ConsumeNumber(range, kValueRangeNonNegative);
+ css_property_parser_helpers::ConsumeNumber(range, kValueRangeNonNegative);
if (!end_weight || end_weight->GetFloatValue() < 1 ||
end_weight->GetFloatValue() > 1000)
return nullptr;
@@ -1471,14 +1486,14 @@ CSSValue* ConsumeFontWeight(CSSParserTokenRange& range,
CSSValue* ConsumeFontFeatureSettings(CSSParserTokenRange& range) {
if (range.Peek().Id() == CSSValueNormal)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSValueList* settings = CSSValueList::CreateCommaSeparated();
do {
CSSFontFeatureValue* font_feature_value = ConsumeFontFeatureTag(range);
if (!font_feature_value)
return nullptr;
settings->Append(*font_feature_value);
- } while (CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(range));
+ } while (css_property_parser_helpers::ConsumeCommaIncludingWhitespace(range));
return settings;
}
@@ -1504,7 +1519,7 @@ CSSFontFeatureValue* ConsumeFontFeatureTag(CSSParserTokenRange& range) {
int tag_value = 1;
// Feature tag values could follow: <integer> | on | off
if (CSSPrimitiveValue* value =
- CSSPropertyParserHelpers::ConsumeInteger(range, 0)) {
+ css_property_parser_helpers::ConsumeInteger(range, 0)) {
tag_value = clampTo<int>(value->GetDoubleValue());
} else if (range.Peek().Id() == CSSValueOn ||
range.Peek().Id() == CSSValueOff) {
@@ -1514,8 +1529,8 @@ CSSFontFeatureValue* ConsumeFontFeatureTag(CSSParserTokenRange& range) {
}
CSSIdentifierValue* ConsumeFontVariantCSS21(CSSParserTokenRange& range) {
- return CSSPropertyParserHelpers::ConsumeIdent<CSSValueNormal,
- CSSValueSmallCaps>(range);
+ return css_property_parser_helpers::ConsumeIdent<CSSValueNormal,
+ CSSValueSmallCaps>(range);
}
Vector<String> ParseGridTemplateAreasColumnNames(const String& grid_row_names) {
@@ -1562,10 +1577,9 @@ Vector<String> ParseGridTemplateAreasColumnNames(const String& grid_row_names) {
CSSValue* ConsumeGridBreadth(CSSParserTokenRange& range,
CSSParserMode css_parser_mode) {
const CSSParserToken& token = range.Peek();
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueMinContent,
- CSSValueMaxContent, CSSValueAuto>(
- token.Id()))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ if (css_property_parser_helpers::IdentMatches<
+ CSSValueMinContent, CSSValueMaxContent, CSSValueAuto>(token.Id()))
+ return css_property_parser_helpers::ConsumeIdent(range);
if (token.GetType() == kDimensionToken &&
token.GetUnitType() == CSSPrimitiveValue::UnitType::kFraction) {
if (range.Peek().NumericValue() < 0)
@@ -1574,19 +1588,20 @@ CSSValue* ConsumeGridBreadth(CSSParserTokenRange& range,
range.ConsumeIncludingWhitespace().NumericValue(),
CSSPrimitiveValue::UnitType::kFraction);
}
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeNonNegative,
- CSSPropertyParserHelpers::UnitlessQuirk::kForbid);
+ css_property_parser_helpers::UnitlessQuirk::kForbid);
}
CSSValue* ConsumeFitContent(CSSParserTokenRange& range,
CSSParserMode css_parser_mode) {
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
- CSSPrimitiveValue* length = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
- args, css_parser_mode, kValueRangeNonNegative,
- CSSPropertyParserHelpers::UnitlessQuirk::kAllow);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
+ CSSPrimitiveValue* length =
+ css_property_parser_helpers::ConsumeLengthOrPercent(
+ args, css_parser_mode, kValueRangeNonNegative,
+ css_property_parser_helpers::UnitlessQuirk::kAllow);
if (!length || !args.AtEnd())
return nullptr;
range = range_copy;
@@ -1628,18 +1643,18 @@ bool IsGridTrackFixedSized(const CSSValue& value) {
CSSValue* ConsumeGridTrackSize(CSSParserTokenRange& range,
CSSParserMode css_parser_mode) {
const CSSParserToken& token = range.Peek();
- if (CSSPropertyParserHelpers::IdentMatches<CSSValueAuto>(token.Id()))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ if (css_property_parser_helpers::IdentMatches<CSSValueAuto>(token.Id()))
+ return css_property_parser_helpers::ConsumeIdent(range);
if (token.FunctionId() == CSSValueMinmax) {
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
CSSValue* min_track_breadth = ConsumeGridBreadth(args, css_parser_mode);
if (!min_track_breadth ||
(min_track_breadth->IsPrimitiveValue() &&
ToCSSPrimitiveValue(min_track_breadth)->IsFlex()) ||
- !CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args))
+ !css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args))
return nullptr;
CSSValue* max_track_breadth = ConsumeGridBreadth(args, css_parser_mode);
if (!max_track_breadth || !args.AtEnd())
@@ -1657,17 +1672,20 @@ CSSValue* ConsumeGridTrackSize(CSSParserTokenRange& range,
return ConsumeGridBreadth(range, css_parser_mode);
}
-CSSCustomIdentValue* ConsumeCustomIdentForGridLine(CSSParserTokenRange& range) {
+CSSCustomIdentValue* ConsumeCustomIdentForGridLine(
+ CSSParserTokenRange& range,
+ const CSSParserContext& context) {
if (range.Peek().Id() == CSSValueAuto || range.Peek().Id() == CSSValueSpan ||
range.Peek().Id() == CSSValueDefault)
return nullptr;
- return CSSPropertyParserHelpers::ConsumeCustomIdent(range);
+ return css_property_parser_helpers::ConsumeCustomIdent(range, context);
}
// Appends to the passed in CSSGridLineNamesValue if any, otherwise creates a
// new one.
CSSGridLineNamesValue* ConsumeGridLineNames(
CSSParserTokenRange& range,
+ const CSSParserContext& context,
CSSGridLineNamesValue* line_names = nullptr) {
CSSParserTokenRange range_copy = range;
if (range_copy.ConsumeIncludingWhitespace().GetType() != kLeftBracketToken)
@@ -1675,7 +1693,7 @@ CSSGridLineNamesValue* ConsumeGridLineNames(
if (!line_names)
line_names = CSSGridLineNamesValue::Create();
while (CSSCustomIdentValue* line_name =
- ConsumeCustomIdentForGridLine(range_copy))
+ ConsumeCustomIdentForGridLine(range_copy, context))
line_names->Append(*line_name);
if (range_copy.ConsumeIncludingWhitespace().GetType() != kRightBracketToken)
return nullptr;
@@ -1684,17 +1702,19 @@ CSSGridLineNamesValue* ConsumeGridLineNames(
}
bool ConsumeGridTrackRepeatFunction(CSSParserTokenRange& range,
+ const CSSParserContext& context,
CSSParserMode css_parser_mode,
CSSValueList& list,
bool& is_auto_repeat,
bool& all_tracks_are_fixed_sized) {
- CSSParserTokenRange args = CSSPropertyParserHelpers::ConsumeFunction(range);
+ CSSParserTokenRange args =
+ css_property_parser_helpers::ConsumeFunction(range);
// The number of repetitions for <auto-repeat> is not important at parsing
// level because it will be computed later, let's set it to 1.
size_t repetitions = 1;
- is_auto_repeat =
- CSSPropertyParserHelpers::IdentMatches<CSSValueAutoFill, CSSValueAutoFit>(
- args.Peek().Id());
+ is_auto_repeat = css_property_parser_helpers::IdentMatches<CSSValueAutoFill,
+ CSSValueAutoFit>(
+ args.Peek().Id());
CSSValueList* repeated_values;
if (is_auto_repeat) {
repeated_values =
@@ -1702,16 +1722,16 @@ bool ConsumeGridTrackRepeatFunction(CSSParserTokenRange& range,
} else {
// TODO(rob.buis): a consumeIntegerRaw would be more efficient here.
CSSPrimitiveValue* repetition =
- CSSPropertyParserHelpers::ConsumePositiveInteger(args);
+ css_property_parser_helpers::ConsumePositiveInteger(args);
if (!repetition)
return false;
repetitions =
clampTo<size_t>(repetition->GetDoubleValue(), 0, kGridMaxTracks);
repeated_values = CSSValueList::CreateSpaceSeparated();
}
- if (!CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args))
+ if (!css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args))
return false;
- CSSGridLineNamesValue* line_names = ConsumeGridLineNames(args);
+ CSSGridLineNamesValue* line_names = ConsumeGridLineNames(args, context);
if (line_names)
repeated_values->Append(*line_names);
@@ -1724,7 +1744,7 @@ bool ConsumeGridTrackRepeatFunction(CSSParserTokenRange& range,
all_tracks_are_fixed_sized = IsGridTrackFixedSized(*track_size);
repeated_values->Append(*track_size);
++number_of_tracks;
- line_names = ConsumeGridLineNames(args);
+ line_names = ConsumeGridLineNames(args, context);
if (line_names)
repeated_values->Append(*line_names);
}
@@ -1769,7 +1789,7 @@ bool ConsumeGridTemplateRowsAndAreasAndColumns(bool important,
do {
// Handle leading <custom-ident>*.
bool has_previous_line_names = line_names;
- line_names = ConsumeGridLineNames(range, line_names);
+ line_names = ConsumeGridLineNames(range, context, line_names);
if (line_names && !has_previous_line_names)
template_rows_value_list->Append(*line_names);
@@ -1788,17 +1808,17 @@ bool ConsumeGridTemplateRowsAndAreasAndColumns(bool important,
template_rows_value_list->Append(*value);
// This will handle the trailing/leading <custom-ident>* in the grammar.
- line_names = ConsumeGridLineNames(range);
+ line_names = ConsumeGridLineNames(range, context);
if (line_names)
template_rows_value_list->Append(*line_names);
} while (!range.AtEnd() && !(range.Peek().GetType() == kDelimiterToken &&
range.Peek().Delimiter() == '/'));
if (!range.AtEnd()) {
- if (!CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range))
+ if (!css_property_parser_helpers::ConsumeSlashIncludingWhitespace(range))
return false;
template_columns = ConsumeGridTrackList(
- range, context.Mode(), TrackListType::kGridTemplateNoRepeat);
+ range, context, context.Mode(), TrackListType::kGridTemplateNoRepeat);
if (!template_columns || !range.AtEnd())
return false;
} else {
@@ -1811,30 +1831,31 @@ bool ConsumeGridTemplateRowsAndAreasAndColumns(bool important,
return true;
}
-CSSValue* ConsumeGridLine(CSSParserTokenRange& range) {
+CSSValue* ConsumeGridLine(CSSParserTokenRange& range,
+ const CSSParserContext& context) {
if (range.Peek().Id() == CSSValueAuto)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSIdentifierValue* span_value = nullptr;
CSSCustomIdentValue* grid_line_name = nullptr;
CSSPrimitiveValue* numeric_value =
- CSSPropertyParserHelpers::ConsumeInteger(range);
+ css_property_parser_helpers::ConsumeInteger(range);
if (numeric_value) {
- grid_line_name = ConsumeCustomIdentForGridLine(range);
- span_value = CSSPropertyParserHelpers::ConsumeIdent<CSSValueSpan>(range);
+ grid_line_name = ConsumeCustomIdentForGridLine(range, context);
+ span_value = css_property_parser_helpers::ConsumeIdent<CSSValueSpan>(range);
} else {
- span_value = CSSPropertyParserHelpers::ConsumeIdent<CSSValueSpan>(range);
+ span_value = css_property_parser_helpers::ConsumeIdent<CSSValueSpan>(range);
if (span_value) {
- numeric_value = CSSPropertyParserHelpers::ConsumeInteger(range);
- grid_line_name = ConsumeCustomIdentForGridLine(range);
+ numeric_value = css_property_parser_helpers::ConsumeInteger(range);
+ grid_line_name = ConsumeCustomIdentForGridLine(range, context);
if (!numeric_value)
- numeric_value = CSSPropertyParserHelpers::ConsumeInteger(range);
+ numeric_value = css_property_parser_helpers::ConsumeInteger(range);
} else {
- grid_line_name = ConsumeCustomIdentForGridLine(range);
+ grid_line_name = ConsumeCustomIdentForGridLine(range, context);
if (grid_line_name) {
- numeric_value = CSSPropertyParserHelpers::ConsumeInteger(range);
+ numeric_value = css_property_parser_helpers::ConsumeInteger(range);
span_value =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueSpan>(range);
+ css_property_parser_helpers::ConsumeIdent<CSSValueSpan>(range);
if (!span_value && !numeric_value)
return grid_line_name;
} else {
@@ -1869,11 +1890,12 @@ CSSValue* ConsumeGridLine(CSSParserTokenRange& range) {
}
CSSValue* ConsumeGridTrackList(CSSParserTokenRange& range,
+ const CSSParserContext& context,
CSSParserMode css_parser_mode,
TrackListType track_list_type) {
bool allow_grid_line_names = track_list_type != TrackListType::kGridAuto;
CSSValueList* values = CSSValueList::CreateSpaceSeparated();
- CSSGridLineNamesValue* line_names = ConsumeGridLineNames(range);
+ CSSGridLineNamesValue* line_names = ConsumeGridLineNames(range, context);
if (line_names) {
if (!allow_grid_line_names)
return nullptr;
@@ -1888,8 +1910,8 @@ CSSValue* ConsumeGridTrackList(CSSParserTokenRange& range,
if (range.Peek().FunctionId() == CSSValueRepeat) {
if (!allow_repeat)
return nullptr;
- if (!ConsumeGridTrackRepeatFunction(range, css_parser_mode, *values,
- is_auto_repeat,
+ if (!ConsumeGridTrackRepeatFunction(range, context, css_parser_mode,
+ *values, is_auto_repeat,
all_tracks_are_fixed_sized))
return nullptr;
if (is_auto_repeat && seen_auto_repeat)
@@ -1904,7 +1926,7 @@ CSSValue* ConsumeGridTrackList(CSSParserTokenRange& range,
}
if (seen_auto_repeat && !all_tracks_are_fixed_sized)
return nullptr;
- line_names = ConsumeGridLineNames(range);
+ line_names = ConsumeGridLineNames(range, context);
if (line_names) {
if (!allow_grid_line_names)
return nullptr;
@@ -1918,7 +1940,7 @@ bool ParseGridTemplateAreasRow(const String& grid_row_names,
NamedGridAreaMap& grid_area_map,
const size_t row_count,
size_t& column_count) {
- if (grid_row_names.IsEmpty() || grid_row_names.ContainsOnlyWhitespace())
+ if (grid_row_names.ContainsOnlyWhitespaceOrEmpty())
return false;
Vector<String> column_names =
@@ -1983,27 +2005,29 @@ bool ParseGridTemplateAreasRow(const String& grid_row_names,
}
CSSValue* ConsumeGridTemplatesRowsOrColumns(CSSParserTokenRange& range,
+ const CSSParserContext& context,
CSSParserMode css_parser_mode) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return ConsumeGridTrackList(range, css_parser_mode,
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return ConsumeGridTrackList(range, context, css_parser_mode,
TrackListType::kGridTemplate);
}
bool ConsumeGridItemPositionShorthand(bool important,
CSSParserTokenRange& range,
+ const CSSParserContext& context,
CSSValue*& start_value,
CSSValue*& end_value) {
// Input should be nullptrs.
DCHECK(!start_value);
DCHECK(!end_value);
- start_value = ConsumeGridLine(range);
+ start_value = ConsumeGridLine(range, context);
if (!start_value)
return false;
- if (CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range)) {
- end_value = ConsumeGridLine(range);
+ if (css_property_parser_helpers::ConsumeSlashIncludingWhitespace(range)) {
+ end_value = ConsumeGridLine(range, context);
if (!end_value)
return false;
} else {
@@ -2028,7 +2052,8 @@ bool ConsumeGridTemplateShorthand(bool important,
DCHECK_EQ(gridTemplateShorthand().length(), 3u);
CSSParserTokenRange range_copy = range;
- template_rows = CSSPropertyParserHelpers::ConsumeIdent<CSSValueNone>(range);
+ template_rows =
+ css_property_parser_helpers::ConsumeIdent<CSSValueNone>(range);
// 1- 'none' case.
if (template_rows && range.AtEnd()) {
@@ -2040,14 +2065,15 @@ bool ConsumeGridTemplateShorthand(bool important,
// 2- <grid-template-rows> / <grid-template-columns>
if (!template_rows) {
- template_rows = ConsumeGridTrackList(range, context.Mode(),
+ template_rows = ConsumeGridTrackList(range, context, context.Mode(),
TrackListType::kGridTemplate);
}
if (template_rows) {
- if (!CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range))
+ if (!css_property_parser_helpers::ConsumeSlashIncludingWhitespace(range))
return false;
- template_columns = ConsumeGridTemplatesRowsOrColumns(range, context.Mode());
+ template_columns =
+ ConsumeGridTemplatesRowsOrColumns(range, context, context.Mode());
if (!template_columns || !range.AtEnd())
return false;
@@ -2131,7 +2157,7 @@ CSSValue* ConsumePath(CSSParserTokenRange& range) {
CSSParserTokenRange function_range = range;
CSSParserTokenRange function_args =
- CSSPropertyParserHelpers::ConsumeFunction(function_range);
+ css_property_parser_helpers::ConsumeFunction(function_range);
if (function_args.Peek().GetType() != kStringToken)
return nullptr;
@@ -2156,27 +2182,27 @@ CSSValue* ConsumeRay(CSSParserTokenRange& range,
DCHECK_EQ(range.Peek().FunctionId(), CSSValueRay);
CSSParserTokenRange function_range = range;
CSSParserTokenRange function_args =
- CSSPropertyParserHelpers::ConsumeFunction(function_range);
+ css_property_parser_helpers::ConsumeFunction(function_range);
CSSPrimitiveValue* angle = nullptr;
CSSIdentifierValue* size = nullptr;
CSSIdentifierValue* contain = nullptr;
while (!function_args.AtEnd()) {
if (!angle) {
- angle = CSSPropertyParserHelpers::ConsumeAngle(
+ angle = css_property_parser_helpers::ConsumeAngle(
function_args, &context, base::Optional<WebFeature>());
if (angle)
continue;
}
if (!size) {
- size = CSSPropertyParserHelpers::ConsumeIdent<
+ size = css_property_parser_helpers::ConsumeIdent<
CSSValueClosestSide, CSSValueClosestCorner, CSSValueFarthestSide,
CSSValueFarthestCorner, CSSValueSides>(function_args);
if (size)
continue;
}
if (RuntimeEnabledFeatures::CSSOffsetPathRayContainEnabled() && !contain) {
- contain = CSSPropertyParserHelpers::ConsumeIdent<CSSValueContain>(
+ contain = css_property_parser_helpers::ConsumeIdent<CSSValueContain>(
function_args);
if (contain)
continue;
@@ -2192,32 +2218,32 @@ CSSValue* ConsumeRay(CSSParserTokenRange& range,
CSSValue* ConsumeMaxWidthOrHeight(
CSSParserTokenRange& range,
const CSSParserContext& context,
- CSSPropertyParserHelpers::UnitlessQuirk unitless) {
+ css_property_parser_helpers::UnitlessQuirk unitless) {
if (range.Peek().Id() == CSSValueNone ||
ValidWidthOrHeightKeyword(range.Peek().Id(), context))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, context.Mode(), kValueRangeNonNegative, unitless);
}
CSSValue* ConsumeWidthOrHeight(
CSSParserTokenRange& range,
const CSSParserContext& context,
- CSSPropertyParserHelpers::UnitlessQuirk unitless) {
+ css_property_parser_helpers::UnitlessQuirk unitless) {
if (range.Peek().Id() == CSSValueAuto ||
ValidWidthOrHeightKeyword(range.Peek().Id(), context))
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, context.Mode(), kValueRangeNonNegative, unitless);
}
CSSValue* ConsumeMarginOrOffset(
CSSParserTokenRange& range,
CSSParserMode css_parser_mode,
- CSSPropertyParserHelpers::UnitlessQuirk unitless) {
+ css_property_parser_helpers::UnitlessQuirk unitless) {
if (range.Peek().Id() == CSSValueAuto)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- return CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ return css_property_parser_helpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeAll, unitless);
}
@@ -2239,23 +2265,23 @@ CSSValue* ConsumeOffsetPath(CSSParserTokenRange& range,
CSSValue* ConsumePathOrNone(CSSParserTokenRange& range) {
CSSValueID id = range.Peek().Id();
if (id == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
return ConsumePath(range);
}
CSSValue* ConsumeOffsetRotate(CSSParserTokenRange& range,
const CSSParserContext& context) {
- CSSValue* angle = CSSPropertyParserHelpers::ConsumeAngle(
+ CSSValue* angle = css_property_parser_helpers::ConsumeAngle(
range, &context, base::Optional<WebFeature>());
CSSValue* keyword =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueAuto, CSSValueReverse>(
+ css_property_parser_helpers::ConsumeIdent<CSSValueAuto, CSSValueReverse>(
range);
if (!angle && !keyword)
return nullptr;
if (!angle) {
- angle = CSSPropertyParserHelpers::ConsumeAngle(
+ angle = css_property_parser_helpers::ConsumeAngle(
range, &context, base::Optional<WebFeature>());
}
@@ -2275,7 +2301,7 @@ bool ConsumeRadii(CSSValue* horizontal_radii[4],
unsigned i = 0;
for (; i < 4 && !range.AtEnd() && range.Peek().GetType() != kDelimiterToken;
++i) {
- horizontal_radii[i] = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ horizontal_radii[i] = css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeNonNegative);
if (!horizontal_radii[i])
return false;
@@ -2289,16 +2315,16 @@ bool ConsumeRadii(CSSValue* horizontal_radii[4],
vertical_radii[0] = horizontal_radii[1];
horizontal_radii[1] = nullptr;
} else {
- CSSPropertyParserHelpers::Complete4Sides(horizontal_radii);
+ css_property_parser_helpers::Complete4Sides(horizontal_radii);
for (unsigned i = 0; i < 4; ++i)
vertical_radii[i] = horizontal_radii[i];
return true;
}
} else {
- if (!CSSPropertyParserHelpers::ConsumeSlashIncludingWhitespace(range))
+ if (!css_property_parser_helpers::ConsumeSlashIncludingWhitespace(range))
return false;
for (i = 0; i < 4 && !range.AtEnd(); ++i) {
- vertical_radii[i] = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ vertical_radii[i] = css_property_parser_helpers::ConsumeLengthOrPercent(
range, css_parser_mode, kValueRangeNonNegative);
if (!vertical_radii[i])
return false;
@@ -2306,8 +2332,8 @@ bool ConsumeRadii(CSSValue* horizontal_radii[4],
if (!vertical_radii[0] || !range.AtEnd())
return false;
}
- CSSPropertyParserHelpers::Complete4Sides(horizontal_radii);
- CSSPropertyParserHelpers::Complete4Sides(vertical_radii);
+ css_property_parser_helpers::Complete4Sides(horizontal_radii);
+ css_property_parser_helpers::Complete4Sides(vertical_radii);
return true;
}
@@ -2319,7 +2345,7 @@ CSSValue* ConsumeBasicShape(CSSParserTokenRange& range,
CSSValueID id = range.Peek().FunctionId();
CSSParserTokenRange range_copy = range;
CSSParserTokenRange args =
- CSSPropertyParserHelpers::ConsumeFunction(range_copy);
+ css_property_parser_helpers::ConsumeFunction(range_copy);
if (id == CSSValueCircle)
shape = ConsumeBasicShapeCircle(args, context);
else if (id == CSSValueEllipse)
@@ -2339,14 +2365,13 @@ CSSValue* ConsumeBasicShape(CSSParserTokenRange& range,
CSSValue* ConsumeTextDecorationLine(CSSParserTokenRange& range) {
CSSValueID id = range.Peek().Id();
if (id == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSValueList* list = CSSValueList::CreateSpaceSeparated();
while (true) {
- CSSIdentifierValue* ident =
- CSSPropertyParserHelpers::ConsumeIdent<CSSValueBlink, CSSValueUnderline,
- CSSValueOverline,
- CSSValueLineThrough>(range);
+ CSSIdentifierValue* ident = css_property_parser_helpers::ConsumeIdent<
+ CSSValueBlink, CSSValueUnderline, CSSValueOverline,
+ CSSValueLineThrough>(range);
if (!ident)
break;
if (list->HasValue(*ident))
@@ -2365,7 +2390,8 @@ CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
CSSValueID function_id = range.Peek().FunctionId();
if (function_id == CSSValueInvalid)
return nullptr;
- CSSParserTokenRange args = CSSPropertyParserHelpers::ConsumeFunction(range);
+ CSSParserTokenRange args =
+ css_property_parser_helpers::ConsumeFunction(range);
if (args.AtEnd())
return nullptr;
CSSFunctionValue* transform_value = CSSFunctionValue::Create(function_id);
@@ -2378,14 +2404,14 @@ CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
case CSSValueSkewX:
case CSSValueSkewY:
case CSSValueSkew:
- parsed_value = CSSPropertyParserHelpers::ConsumeAngle(
+ parsed_value = css_property_parser_helpers::ConsumeAngle(
args, &context, WebFeature::kUnitlessZeroAngleTransform);
if (!parsed_value)
return nullptr;
if (function_id == CSSValueSkew &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
transform_value->Append(*parsed_value);
- parsed_value = CSSPropertyParserHelpers::ConsumeAngle(
+ parsed_value = css_property_parser_helpers::ConsumeAngle(
args, &context, WebFeature::kUnitlessZeroAngleTransform);
if (!parsed_value)
return nullptr;
@@ -2396,14 +2422,14 @@ CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
case CSSValueScaleZ:
case CSSValueScale:
parsed_value =
- CSSPropertyParserHelpers::ConsumeNumber(args, kValueRangeAll);
+ css_property_parser_helpers::ConsumeNumber(args, kValueRangeAll);
if (!parsed_value)
return nullptr;
if (function_id == CSSValueScale &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
transform_value->Append(*parsed_value);
parsed_value =
- CSSPropertyParserHelpers::ConsumeNumber(args, kValueRangeAll);
+ css_property_parser_helpers::ConsumeNumber(args, kValueRangeAll);
if (!parsed_value)
return nullptr;
}
@@ -2417,21 +2443,21 @@ CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
case CSSValueTranslateX:
case CSSValueTranslateY:
case CSSValueTranslate:
- parsed_value = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ parsed_value = css_property_parser_helpers::ConsumeLengthOrPercent(
args, context.Mode(), kValueRangeAll);
if (!parsed_value)
return nullptr;
if (function_id == CSSValueTranslate &&
- CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
transform_value->Append(*parsed_value);
- parsed_value = CSSPropertyParserHelpers::ConsumeLengthOrPercent(
+ parsed_value = css_property_parser_helpers::ConsumeLengthOrPercent(
args, context.Mode(), kValueRangeAll);
if (!parsed_value)
return nullptr;
}
break;
case CSSValueTranslateZ:
- parsed_value = CSSPropertyParserHelpers::ConsumeLength(
+ parsed_value = css_property_parser_helpers::ConsumeLength(
args, context.Mode(), kValueRangeAll);
break;
case CSSValueMatrix:
@@ -2447,10 +2473,10 @@ CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
break;
case CSSValueRotate3d:
if (!ConsumeNumbers(args, transform_value, 3) ||
- !CSSPropertyParserHelpers::ConsumeCommaIncludingWhitespace(args)) {
+ !css_property_parser_helpers::ConsumeCommaIncludingWhitespace(args)) {
return nullptr;
}
- parsed_value = CSSPropertyParserHelpers::ConsumeAngle(
+ parsed_value = css_property_parser_helpers::ConsumeAngle(
args, &context, WebFeature::kUnitlessZeroAngleTransform);
if (!parsed_value)
return nullptr;
@@ -2473,7 +2499,7 @@ CSSValue* ConsumeTransformList(CSSParserTokenRange& range,
const CSSParserContext& context,
const CSSParserLocalContext& local_context) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSValueList* list = CSSValueList::CreateSpaceSeparated();
do {
@@ -2487,12 +2513,13 @@ CSSValue* ConsumeTransformList(CSSParserTokenRange& range,
return list;
}
-CSSValue* ConsumeTransitionProperty(CSSParserTokenRange& range) {
+CSSValue* ConsumeTransitionProperty(CSSParserTokenRange& range,
+ const CSSParserContext& context) {
const CSSParserToken& token = range.Peek();
if (token.GetType() != kIdentToken)
return nullptr;
if (token.Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
CSSPropertyID unresolved_property = token.ParseAsUnresolvedCSSPropertyID();
if (unresolved_property != CSSPropertyInvalid &&
unresolved_property != CSSPropertyVariable) {
@@ -2503,7 +2530,7 @@ CSSValue* ConsumeTransitionProperty(CSSParserTokenRange& range) {
range.ConsumeIncludingWhitespace();
return CSSCustomIdentValue::Create(unresolved_property);
}
- return CSSPropertyParserHelpers::ConsumeCustomIdent(range);
+ return css_property_parser_helpers::ConsumeCustomIdent(range, context);
}
bool IsValidPropertyList(const CSSValueList& value_list) {
@@ -2524,39 +2551,40 @@ CSSValue* ConsumeBorderColorSide(CSSParserTokenRange& range,
bool allow_quirky_colors =
IsQuirksModeBehavior(context.Mode()) &&
(shorthand == CSSPropertyInvalid || shorthand == CSSPropertyBorderColor);
- return CSSPropertyParserHelpers::ConsumeColor(range, context.Mode(),
- allow_quirky_colors);
+ return css_property_parser_helpers::ConsumeColor(range, context.Mode(),
+ allow_quirky_colors);
}
-CSSValue* ConsumeBorderWidth(CSSParserTokenRange& range,
- CSSParserMode css_parser_mode,
- CSSPropertyParserHelpers::UnitlessQuirk unitless) {
- return CSSPropertyParserHelpers::ConsumeLineWidth(range, css_parser_mode,
- unitless);
+CSSValue* ConsumeBorderWidth(
+ CSSParserTokenRange& range,
+ CSSParserMode css_parser_mode,
+ css_property_parser_helpers::UnitlessQuirk unitless) {
+ return css_property_parser_helpers::ConsumeLineWidth(range, css_parser_mode,
+ unitless);
}
CSSValue* ParseSpacing(CSSParserTokenRange& range,
const CSSParserContext& context) {
if (range.Peek().Id() == CSSValueNormal)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
+ return css_property_parser_helpers::ConsumeIdent(range);
// TODO(timloh): allow <percentage>s in word-spacing.
- return CSSPropertyParserHelpers::ConsumeLength(
+ return css_property_parser_helpers::ConsumeLength(
range, context.Mode(), kValueRangeAll,
- CSSPropertyParserHelpers::UnitlessQuirk::kAllow);
+ css_property_parser_helpers::UnitlessQuirk::kAllow);
}
CSSValue* ParsePaintStroke(CSSParserTokenRange& range,
const CSSParserContext& context) {
if (range.Peek().Id() == CSSValueNone)
- return CSSPropertyParserHelpers::ConsumeIdent(range);
- CSSURIValue* url = CSSPropertyParserHelpers::ConsumeUrl(range, &context);
+ return css_property_parser_helpers::ConsumeIdent(range);
+ CSSURIValue* url = css_property_parser_helpers::ConsumeUrl(range, &context);
if (url) {
CSSValue* parsed_value = nullptr;
if (range.Peek().Id() == CSSValueNone) {
- parsed_value = CSSPropertyParserHelpers::ConsumeIdent(range);
+ parsed_value = css_property_parser_helpers::ConsumeIdent(range);
} else {
parsed_value =
- CSSPropertyParserHelpers::ConsumeColor(range, context.Mode());
+ css_property_parser_helpers::ConsumeColor(range, context.Mode());
}
if (parsed_value) {
CSSValueList* values = CSSValueList::CreateSpaceSeparated();
@@ -2566,8 +2594,8 @@ CSSValue* ParsePaintStroke(CSSParserTokenRange& range,
}
return url;
}
- return CSSPropertyParserHelpers::ConsumeColor(range, context.Mode());
+ return css_property_parser_helpers::ConsumeColor(range, context.Mode());
}
-} // namespace CSSParsingUtils
+} // namespace css_parsing_utils
} // namespace blink