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

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

Issue 2824993002: Implemented CSSPropertyAPI for transform property. (Closed)
Patch Set: fixed if braces Created 3 years, 8 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/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 eaab6a2eab3df1328813551186e7158ba6212f1c..9823aeef58723a66dc74c502712150565a352117 100644
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
@@ -799,180 +799,6 @@ static CSSValue* ConsumeBorderWidth(CSSParserTokenRange& range,
return ConsumeLineWidth(range, css_parser_mode, unitless);
}
-static bool ConsumeTranslate3d(CSSParserTokenRange& args,
- CSSParserMode css_parser_mode,
- CSSFunctionValue*& transform_value) {
- unsigned number_of_arguments = 2;
- CSSValue* parsed_value = nullptr;
- do {
- parsed_value =
- ConsumeLengthOrPercent(args, css_parser_mode, kValueRangeAll);
- if (!parsed_value)
- return false;
- transform_value->Append(*parsed_value);
- if (!ConsumeCommaIncludingWhitespace(args))
- return false;
- } while (--number_of_arguments);
- parsed_value = ConsumeLength(args, css_parser_mode, kValueRangeAll);
- if (!parsed_value)
- return false;
- transform_value->Append(*parsed_value);
- return true;
-}
-
-static bool ConsumeNumbers(CSSParserTokenRange& args,
- CSSFunctionValue*& transform_value,
- unsigned number_of_arguments) {
- do {
- CSSValue* parsed_value = ConsumeNumber(args, kValueRangeAll);
- if (!parsed_value)
- return false;
- transform_value->Append(*parsed_value);
- if (--number_of_arguments && !ConsumeCommaIncludingWhitespace(args))
- return false;
- } while (number_of_arguments);
- return true;
-}
-
-static bool ConsumePerspective(CSSParserTokenRange& args,
- const CSSParserContext* context,
- CSSFunctionValue*& transform_value,
- bool use_legacy_parsing) {
- CSSPrimitiveValue* parsed_value =
- ConsumeLength(args, context->Mode(), kValueRangeNonNegative);
- if (!parsed_value && use_legacy_parsing) {
- double perspective;
- if (!ConsumeNumberRaw(args, perspective) || perspective < 0)
- return false;
- context->Count(UseCounter::kUnitlessPerspectiveInTransformProperty);
- parsed_value = CSSPrimitiveValue::Create(
- perspective, CSSPrimitiveValue::UnitType::kPixels);
- }
- if (!parsed_value)
- return false;
- transform_value->Append(*parsed_value);
- return true;
-}
-
-static CSSValue* ConsumeTransformValue(CSSParserTokenRange& range,
- const CSSParserContext* context,
- bool use_legacy_parsing) {
- CSSValueID function_id = range.Peek().FunctionId();
- if (function_id == CSSValueInvalid)
- return nullptr;
- CSSParserTokenRange args = ConsumeFunction(range);
- if (args.AtEnd())
- return nullptr;
- CSSFunctionValue* transform_value = CSSFunctionValue::Create(function_id);
- CSSValue* parsed_value = nullptr;
- switch (function_id) {
- case CSSValueRotate:
- case CSSValueRotateX:
- case CSSValueRotateY:
- case CSSValueRotateZ:
- case CSSValueSkewX:
- case CSSValueSkewY:
- case CSSValueSkew:
- parsed_value = ConsumeAngle(args);
- if (!parsed_value)
- return nullptr;
- if (function_id == CSSValueSkew &&
- ConsumeCommaIncludingWhitespace(args)) {
- transform_value->Append(*parsed_value);
- parsed_value = ConsumeAngle(args);
- if (!parsed_value)
- return nullptr;
- }
- break;
- case CSSValueScaleX:
- case CSSValueScaleY:
- case CSSValueScaleZ:
- case CSSValueScale:
- parsed_value = ConsumeNumber(args, kValueRangeAll);
- if (!parsed_value)
- return nullptr;
- if (function_id == CSSValueScale &&
- ConsumeCommaIncludingWhitespace(args)) {
- transform_value->Append(*parsed_value);
- parsed_value = ConsumeNumber(args, kValueRangeAll);
- if (!parsed_value)
- return nullptr;
- }
- break;
- case CSSValuePerspective:
- if (!ConsumePerspective(args, context, transform_value,
- use_legacy_parsing))
- return nullptr;
- break;
- case CSSValueTranslateX:
- case CSSValueTranslateY:
- case CSSValueTranslate:
- parsed_value =
- ConsumeLengthOrPercent(args, context->Mode(), kValueRangeAll);
- if (!parsed_value)
- return nullptr;
- if (function_id == CSSValueTranslate &&
- ConsumeCommaIncludingWhitespace(args)) {
- transform_value->Append(*parsed_value);
- parsed_value =
- ConsumeLengthOrPercent(args, context->Mode(), kValueRangeAll);
- if (!parsed_value)
- return nullptr;
- }
- break;
- case CSSValueTranslateZ:
- parsed_value = ConsumeLength(args, context->Mode(), kValueRangeAll);
- break;
- case CSSValueMatrix:
- case CSSValueMatrix3d:
- if (!ConsumeNumbers(args, transform_value,
- (function_id == CSSValueMatrix3d) ? 16 : 6))
- return nullptr;
- break;
- case CSSValueScale3d:
- if (!ConsumeNumbers(args, transform_value, 3))
- return nullptr;
- break;
- case CSSValueRotate3d:
- if (!ConsumeNumbers(args, transform_value, 3) ||
- !ConsumeCommaIncludingWhitespace(args))
- return nullptr;
- parsed_value = ConsumeAngle(args);
- if (!parsed_value)
- return nullptr;
- break;
- case CSSValueTranslate3d:
- if (!ConsumeTranslate3d(args, context->Mode(), transform_value))
- return nullptr;
- break;
- default:
- return nullptr;
- }
- if (parsed_value)
- transform_value->Append(*parsed_value);
- if (!args.AtEnd())
- return nullptr;
- return transform_value;
-}
-
-static CSSValue* ConsumeTransform(CSSParserTokenRange& range,
- const CSSParserContext* context,
- bool use_legacy_parsing) {
- if (range.Peek().Id() == CSSValueNone)
- return ConsumeIdent(range);
-
- CSSValueList* list = CSSValueList::CreateSpaceSeparated();
- do {
- CSSValue* parsed_transform_value =
- ConsumeTransformValue(range, context, use_legacy_parsing);
- if (!parsed_transform_value)
- return nullptr;
- list->Append(*parsed_transform_value);
- } while (!range.AtEnd());
-
- return list;
-}
-
static CSSValue* ConsumeNoneOrURI(CSSParserTokenRange& range,
const CSSParserContext* context) {
if (range.Peek().Id() == CSSValueNone)
@@ -1959,10 +1785,6 @@ const CSSValue* CSSPropertyParser::ParseSingleValue(
case CSSPropertyOffsetRotate:
case CSSPropertyOffsetRotation:
return ConsumeOffsetRotate(range_);
- case CSSPropertyTransform:
- return ConsumeTransform(
- range_, context_,
- unresolved_property == CSSPropertyAliasWebkitTransform);
case CSSPropertyWebkitTransformOriginX:
case CSSPropertyWebkitPerspectiveOriginX:
return CSSPropertyPositionUtils::ConsumePositionLonghand<CSSValueLeft,

Powered by Google App Engine
This is Rietveld 408576698