Bug 1357295 - Rename LengthParsingMode to ParsingMode and LengthParsingMode::SVG to PasingMode::AllowUnitlessLength. r?emilio
We need another flag that represents allow-negative-number for SMIL, so
this enum will also comprise the another parsing mode that allows negative number.
MozReview-Commit-ID: IDFNppjGeB
--- a/dom/animation/KeyframeUtils.cpp
+++ b/dom/animation/KeyframeUtils.cpp
@@ -740,17 +740,17 @@ KeyframeUtils::ParseProperty(nsCSSProper
NS_ConvertUTF16toUTF8 value(aValue);
// FIXME this is using the wrong base uri (bug 1343919)
RefPtr<URLExtraData> data = new URLExtraData(aDocument->GetDocumentURI(),
aDocument->GetDocumentURI(),
aDocument->NodePrincipal());
return Servo_ParseProperty(aProperty,
&value,
data,
- LengthParsingMode::Default).Consume();
+ ParsingMode::Default).Consume();
}
// ------------------------------------------------------------------
//
// Internal helpers
//
// ------------------------------------------------------------------
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -2806,33 +2806,33 @@ CreateDeclarationForServo(nsCSSPropertyI
aDocument->NodePrincipal());
NS_ConvertUTF16toUTF8 value(aPropertyValue);
RefPtr<RawServoDeclarationBlock> servoDeclarations =
Servo_ParseProperty(aProperty,
&value,
data,
- LengthParsingMode::Default).Consume();
+ ParsingMode::Default).Consume();
if (!servoDeclarations) {
// We got a syntax error. The spec says this value must be ignored.
return nullptr;
}
// From canvas spec, force to set line-height property to 'normal' font
// property.
if (aProperty == eCSSProperty_font) {
const nsCString normalString = NS_LITERAL_CSTRING("normal");
Servo_DeclarationBlock_SetPropertyById(servoDeclarations,
eCSSProperty_line_height,
&normalString,
false,
data,
- LengthParsingMode::Default);
+ ParsingMode::Default);
}
return servoDeclarations.forget();
}
static already_AddRefed<RawServoDeclarationBlock>
CreateFontDeclarationForServo(const nsAString& aFont,
nsIDocument* aDocument)
--- a/dom/smil/nsSMILCSSValueType.cpp
+++ b/dom/smil/nsSMILCSSValueType.cpp
@@ -499,17 +499,17 @@ ValueFromStringHelper(nsCSSPropertyID aP
RefPtr<URLExtraData> data = new URLExtraData(doc->GetDocumentURI(),
doc->GetDocumentURI(),
doc->NodePrincipal());
NS_ConvertUTF16toUTF8 value(aString);
RefPtr<RawServoDeclarationBlock> servoDeclarationBlock =
Servo_ParseProperty(aPropID,
&value,
data,
- LengthParsingMode::SVG).Consume();
+ ParsingMode::AllowUnitlessLength).Consume();
if (!servoDeclarationBlock) {
return nullptr;
}
// Compute value
PropertyValuePair propValuePair;
propValuePair.mProperty = aPropID;
propValuePair.mServoDeclarationBlock = servoDeclarationBlock;
--- a/dom/svg/nsSVGElement.cpp
+++ b/dom/svg/nsSVGElement.cpp
@@ -1231,20 +1231,19 @@ MappedAttrParser::ParseMappedAttrValue(n
if (mBackend == StyleBackendType::Gecko) {
mParser.ParseProperty(propertyID, aMappedAttrValue, mDocURI, mBaseURI,
mElement->NodePrincipal(), mDecl->AsGecko(), &changed, false, true);
} else {
NS_ConvertUTF16toUTF8 value(aMappedAttrValue);
// FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
RefPtr<URLExtraData> data = new URLExtraData(mBaseURI, mDocURI,
mElement->NodePrincipal());
- // FIXME (bug 1342559): Set SVG parsing mode for lengths
changed = Servo_DeclarationBlock_SetPropertyById(
mDecl->AsServo()->Raw(), propertyID, &value, false, data,
- LengthParsingMode::SVG);
+ ParsingMode::AllowUnitlessLength);
}
if (changed) {
// The normal reporting of use counters by the nsCSSParser won't happen
// since it doesn't have a sheet.
if (nsCSSProps::IsShorthand(propertyID)) {
CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(subprop, propertyID,
CSSEnabledState::eForAllContent) {
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -142,17 +142,17 @@ SERVO_BINDING_FUNC(Servo_SupportsRule_Ge
SERVO_BINDING_FUNC(Servo_DocumentRule_GetConditionText, void,
RawServoDocumentRuleBorrowed rule, nsAString* result)
// Animations API
SERVO_BINDING_FUNC(Servo_ParseProperty,
RawServoDeclarationBlockStrong,
nsCSSPropertyID property, const nsACString* value,
RawGeckoURLExtraData* data,
- mozilla::LengthParsingMode length_parsing_mode)
+ mozilla::ParsingMode parsing_mode)
SERVO_BINDING_FUNC(Servo_ParseEasing, bool,
const nsAString* easing,
RawGeckoURLExtraData* data,
nsTimingFunctionBorrowedMut output)
SERVO_BINDING_FUNC(Servo_GetComputedKeyframeValues, void,
RawGeckoKeyframeListBorrowed keyframes,
ServoComputedValuesBorrowed style,
ServoComputedValuesBorrowedOrNull parent_style,
@@ -236,23 +236,23 @@ SERVO_BINDING_FUNC(Servo_DeclarationBloc
SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetPropertyIsImportant, bool,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetProperty, bool,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property,
const nsACString* value, bool is_important,
RawGeckoURLExtraData* data,
- mozilla::LengthParsingMode length_parsing_mode)
+ mozilla::ParsingMode parsing_mode)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPropertyById, bool,
RawServoDeclarationBlockBorrowed declarations,
nsCSSPropertyID property,
const nsACString* value, bool is_important,
RawGeckoURLExtraData* data,
- mozilla::LengthParsingMode length_parsing_mode)
+ mozilla::ParsingMode parsing_mode)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemoveProperty, void,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemovePropertyById, void,
RawServoDeclarationBlockBorrowed declarations,
nsCSSPropertyID property)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_HasCSSWideKeyword, bool,
RawServoDeclarationBlockBorrowed declarations,
--- a/layout/style/ServoTypes.h
+++ b/layout/style/ServoTypes.h
@@ -68,26 +68,26 @@ enum class UpdateAnimationsTasks : uint8
CSSAnimations = 1 << 0,
CSSTransitions = 1 << 1,
EffectProperties = 1 << 2,
CascadeResults = 1 << 3,
};
MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(UpdateAnimationsTasks)
-// The mode to use when parsing lengths.
-enum class LengthParsingMode {
+// The mode to use when parsing values.
+enum class ParsingMode {
// In CSS, lengths must have units, except for zero values, where the unit can
// be omitted.
// https://www.w3.org/TR/css3-values/#lengths
Default,
// In SVG, a coordinate or length value without a unit identifier (e.g., "25")
// is assumed to be in user units (px).
// https://www.w3.org/TR/SVG/coords.html#Units
- SVG,
+ AllowUnitlessLength,
};
// The kind of style we're generating when requesting Servo to give us an
// inherited style.
enum class InheritTarget {
// We're requesting a text style.
Text,
// We're requesting a first-letter continuation frame style.
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -347,17 +347,17 @@ nsDOMCSSDeclaration::ParsePropertyValue(
nsCSSParser cssParser(env.mCSSLoader);
cssParser.ParseProperty(aPropID, aPropValue,
env.mSheetURI, env.mBaseURI, env.mPrincipal,
decl, changed, aIsImportant);
},
[&](ServoDeclarationBlock* decl, URLExtraData* data) {
NS_ConvertUTF16toUTF8 value(aPropValue);
return Servo_DeclarationBlock_SetPropertyById(
- decl->Raw(), aPropID, &value, aIsImportant, data, LengthParsingMode::Default);
+ decl->Raw(), aPropID, &value, aIsImportant, data, ParsingMode::Default);
});
}
nsresult
nsDOMCSSDeclaration::ParseCustomPropertyValue(const nsAString& aPropertyName,
const nsAString& aPropValue,
bool aIsImportant)
{
@@ -370,17 +370,17 @@ nsDOMCSSDeclaration::ParseCustomProperty
env.mBaseURI, env.mPrincipal, decl,
changed, aIsImportant);
},
[&](ServoDeclarationBlock* decl, URLExtraData* data) {
NS_ConvertUTF16toUTF8 property(aPropertyName);
NS_ConvertUTF16toUTF8 value(aPropValue);
return Servo_DeclarationBlock_SetProperty(
decl->Raw(), &property, &value, aIsImportant, data,
- LengthParsingMode::Default);
+ ParsingMode::Default);
});
}
nsresult
nsDOMCSSDeclaration::RemovePropertyInternal(nsCSSPropertyID aPropID)
{
DeclarationBlock* olddecl = GetCSSDeclaration(eOperation_RemoveProperty);
if (!olddecl) {