WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-216997-20201003211931.patch (text/plain), 246.35 KB, created by
Antoine Quint
on 2020-10-03 12:19:34 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Antoine Quint
Created:
2020-10-03 12:19:34 PDT
Size:
246.35 KB
patch
obsolete
>Subversion Revision: 267920 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index c0f4a8ea4827eac3968fff75cb20402d47066c75..eee92c12cb210a669d548daf4905198c6cce6443 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,65 @@ >+2020-10-03 Antoine Quint <graouts@webkit.org> >+ >+ Add non-animated support for the CSS translate property >+ https://bugs.webkit.org/show_bug.cgi?id=216997 >+ <rdar://problem/69597083> >+ >+ Reviewed by Simon Fraser. >+ >+ We add non-animated support for the CSS "translate" property as specifed in by the CSS Transforms Level 2 >+ specification (âhttps://drafts.csswg.org/css-transforms-2/#propdef-translate). >+ >+ Tests: transforms/2d/translate-and-transform-attribute-in-svg-expected.svg >+ transforms/2d/translate-and-transform-attribute-in-svg.svg >+ transforms/2d/translate-and-transform-css-property-in-svg-expected.svg >+ transforms/2d/translate-and-transform-css-property-in-svg.svg >+ transforms/2d/translate-in-svg-expected.svg >+ transforms/2d/translate-in-svg.svg >+ transforms/2d/translate-transform-order.html >+ transforms/2d/translate-transform-origin-order.html >+ >+ * Headers.cmake: >+ * css/CSSComputedStyleDeclaration.cpp: >+ (WebCore::rendererCanBeTransformed): >+ (WebCore::computedTransform): >+ (WebCore::computedTranslate): Create a CSSValueList to print out the computed value for the "translate" property. >+ (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): >+ * css/CSSProperties.json: Define the "translate" property with the condition that the runtime setting for individual >+ CSS transform properties is set. >+ * css/TransformFunctions.cpp: >+ (WebCore::translateForValue): Convert a CSSValue to a TranslateTransformOperation when parsing a "translate" property value. >+ * css/TransformFunctions.h: >+ * css/parser/CSSParserContext.cpp: >+ (WebCore::CSSParserContext::CSSParserContext): Add a new flag indicating whether the runtime setting for individual >+ CSS transform properties is set. >+ (WebCore::operator==): >+ * css/parser/CSSParserContext.h: >+ (WebCore::CSSParserContextHash::hash): >+ * css/parser/CSSPropertyParser.cpp: >+ (WebCore::consumeTranslate): Create a CSSValueList when parsing a "translate" property value. >+ (WebCore::CSSPropertyParser::parseSingleValue): >+ * platform/graphics/transforms/TranslateTransformOperation.h: Promote the apply() method to be public so that it can be called >+ from Style::ComputedStyleExtractor::valueForPropertyInStyle(). >+ * rendering/RenderObject.h: >+ (WebCore::RenderObject::hasTransform const): Consider that having the "translate" property is akin to having a "transform" property >+ in the render tree. >+ * rendering/style/RenderStyle.cpp: >+ (WebCore::RenderStyle::setTranslate): >+ (WebCore::RenderStyle::applyTransform const): Account for the RenderStyle::translate() value in the right order, after applying the >+ transform origin, but before applying the main transform. >+ * rendering/style/RenderStyle.h: >+ (WebCore::RenderStyle::translate const): >+ (WebCore::RenderStyle::hasTransformRelatedProperty const): >+ (WebCore::RenderStyle::initialTranslate): >+ * rendering/style/StyleRareNonInheritedData.h: >+ * rendering/style/WillChangeData.cpp: >+ (WebCore::WillChangeData::propertyCreatesStackingContext): >+ * style/StyleBuilderConverter.h: >+ (WebCore::Style::BuilderConverter::convertTranslate): >+ * svg/SVGGraphicsElement.cpp: >+ (WebCore::SVGGraphicsElement::animatedLocalTransform const): Account for the RenderStyle::translate() value when rendering SVG, ensuring >+ that it is applied before the transform specified by either the "transform" CSS property or SVG attribute. >+ > 2020-10-03 Zalan Bujtas <zalan@apple.com> > > [LFC][IFC][Soft hyphen] Soft hyphen is always the trailing character >diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake >index c8748a21627cc334ce22be4693e6fc853fe3a60d..ee03a345858684c7ab004d34c91c6ccbdd33e6bd 100644 >--- a/Source/WebCore/Headers.cmake >+++ b/Source/WebCore/Headers.cmake >@@ -1256,6 +1256,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS > platform/graphics/transforms/TransformOperation.h > platform/graphics/transforms/TransformOperations.h > platform/graphics/transforms/TransformationMatrix.h >+ platform/graphics/transforms/TranslateTransformOperation.h > > platform/mediarecorder/MediaRecorderPrivate.h > >diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >index 68eb6bd0e1226c6ac01d81bd74aeeb2a1ba29233..bdc1204124e93a31018283c86b669d03da84873b 100644 >--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >@@ -587,10 +587,15 @@ static Ref<CSSFunctionValue> matrixTransformValue(const TransformationMatrix& tr > return transformValue.releaseNonNull(); > } > >-static Ref<CSSValue> computedTransform(RenderObject* renderer, const RenderStyle& style) >+static bool rendererCanBeTransformed(RenderObject* renderer) > { > // Inline renderers do not support transforms. >- if (!renderer || is<RenderInline>(*renderer) || !style.hasTransform()) >+ return renderer && !is<RenderInline>(*renderer); >+} >+ >+static Ref<CSSValue> computedTransform(RenderObject* renderer, const RenderStyle& style) >+{ >+ if (!rendererCanBeTransformed(renderer) || !style.hasTransform()) > return CSSValuePool::singleton().createIdentifierValue(CSSValueNone); > > FloatRect pixelSnappedRect; >@@ -607,6 +612,31 @@ static Ref<CSSValue> computedTransform(RenderObject* renderer, const RenderStyle > return list; > } > >+static Ref<CSSValue> computedTranslate(RenderObject* renderer, const RenderStyle& style) >+{ >+ if (!rendererCanBeTransformed(renderer) || is<RenderInline>(*renderer) || !style.translate()) >+ return CSSValuePool::singleton().createIdentifierValue(CSSValueNone); >+ >+ FloatRect pixelSnappedRect; >+ if (is<RenderBox>(*renderer)) >+ pixelSnappedRect = snapRectToDevicePixels(downcast<RenderBox>(*renderer).borderBoxRect(), renderer->document().deviceScaleFactor()); >+ >+ TransformationMatrix transform; >+ style.translate()->apply(transform, pixelSnappedRect.size()); >+ >+ auto list = CSSValueList::createSpaceSeparated(); >+ if (transform.isAffine()) { >+ list->append(zoomAdjustedNumberValue(transform.e(), style)); >+ list->append(zoomAdjustedNumberValue(transform.f(), style)); >+ } else { >+ list->append(zoomAdjustedNumberValue(transform.m41(), style)); >+ list->append(zoomAdjustedNumberValue(transform.m42(), style)); >+ list->append(zoomAdjustedNumberValue(transform.m43(), style)); >+ } >+ >+ return list; >+} >+ > static inline Ref<CSSPrimitiveValue> adjustLengthForZoom(double length, const RenderStyle& style, AdjustPixelValuesForComputedStyle adjust) > { > return adjust == AdjustPixelValues ? zoomAdjustedPixelValue(length, style) : CSSValuePool::singleton().createValue(length, CSSUnitType::CSS_PX); >@@ -3514,6 +3544,10 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty > case CSSPropertyTransformStyle: > case CSSPropertyWebkitTransformStyle: > return cssValuePool.createIdentifierValue((style.transformStyle3D() == TransformStyle3D::Preserve3D) ? CSSValuePreserve3d : CSSValueFlat); >+ case CSSPropertyTranslate: >+ if (renderer && !renderer->settings().cssIndividualTransformPropertiesEnabled()) >+ return nullptr; >+ return computedTranslate(renderer, style); > case CSSPropertyTransitionDelay: > return delayValue(style.transitions()); > case CSSPropertyTransitionDuration: >diff --git a/Source/WebCore/css/CSSProperties.json b/Source/WebCore/css/CSSProperties.json >index 4fe939ef811b35748ec5e66f208c4f446178b7f0..9cfb6d3080f80d42d9a31b611fe23b506e0dc14e 100644 >--- a/Source/WebCore/css/CSSProperties.json >+++ b/Source/WebCore/css/CSSProperties.json >@@ -6474,6 +6474,16 @@ > "comment": "Keeping -webkit-transform-style around is how we'll detect legacy content. At that point, we'll have to add a custom builder and a new TransformStyle3D type. FIXME: this never happened." > } > }, >+ "translate": { >+ "codegen-properties": { >+ "settings-flag": "cssIndividualTransformProperties", >+ "converter": "Translate" >+ }, >+ "specification": { >+ "category": "css-transforms", >+ "url": "https://drafts.csswg.org/css-transforms-2/#propdef-translate" >+ } >+ }, > "-webkit-user-drag": { > "values": [ > "auto", >diff --git a/Source/WebCore/css/TransformFunctions.cpp b/Source/WebCore/css/TransformFunctions.cpp >index c987ffd0ac167a70f0f5a028397b6fee1fb28f08..6763861c87cf33453256b4d07442dab2a2fe81d8 100644 >--- a/Source/WebCore/css/TransformFunctions.cpp >+++ b/Source/WebCore/css/TransformFunctions.cpp >@@ -348,4 +348,34 @@ bool transformsForValue(const CSSValue& value, const CSSToLengthConversionData& > return true; > } > >+RefPtr<TranslateTransformOperation> translateForValue(const CSSValue& value, const CSSToLengthConversionData& conversionData) >+{ >+ if (!is<CSSValueList>(value)) >+ return nullptr; >+ >+ auto& valueList = downcast<CSSValueList>(value); >+ if (!valueList.length()) >+ return nullptr; >+ >+ auto type = TransformOperation::TRANSLATE; >+ Length tx = Length(0, Fixed); >+ Length ty = Length(0, Fixed); >+ Length tz = Length(0, Fixed); >+ for (unsigned i = 0; i < valueList.length(); ++i) { >+ auto* valueItem = valueList.itemWithoutBoundsCheck(i); >+ if (!is<CSSPrimitiveValue>(valueItem)) >+ return nullptr; >+ if (!i) >+ tx = convertToFloatLength(downcast<CSSPrimitiveValue>(valueItem), conversionData); >+ else if (i == 1) >+ ty = convertToFloatLength(downcast<CSSPrimitiveValue>(valueItem), conversionData); >+ else if (i == 2) { >+ type = TransformOperation::TRANSLATE_3D; >+ tz = convertToFloatLength(downcast<CSSPrimitiveValue>(valueItem), conversionData); >+ } >+ } >+ >+ return TranslateTransformOperation::create(tx, ty, tz, type); >+} >+ > } >diff --git a/Source/WebCore/css/TransformFunctions.h b/Source/WebCore/css/TransformFunctions.h >index b59be339b39f44154614a2fe36a49c4204c01c7d..1a95956db636178d2c63dcff189984bbbec6a8b7 100644 >--- a/Source/WebCore/css/TransformFunctions.h >+++ b/Source/WebCore/css/TransformFunctions.h >@@ -31,6 +31,7 @@ > > #include "Length.h" > #include "TransformOperations.h" >+#include "TranslateTransformOperation.h" > > namespace WebCore { > >@@ -40,5 +41,6 @@ class CSSValue; > > bool transformsForValue(const CSSValue&, const CSSToLengthConversionData&, TransformOperations&); > Length convertToFloatLength(const CSSPrimitiveValue*, const CSSToLengthConversionData&); >+RefPtr<TranslateTransformOperation> translateForValue(const CSSValue&, const CSSToLengthConversionData&); > > } // namespace WebCore >diff --git a/Source/WebCore/css/parser/CSSParserContext.cpp b/Source/WebCore/css/parser/CSSParserContext.cpp >index e4409c22b129427ccb6121608492db5bf290e1a7..51ac25d7318652e9c5eb09c253e8b0f210345234 100644 >--- a/Source/WebCore/css/parser/CSSParserContext.cpp >+++ b/Source/WebCore/css/parser/CSSParserContext.cpp >@@ -77,6 +77,7 @@ CSSParserContext::CSSParserContext(const Document& document, const URL& sheetBas > deferredCSSParserEnabled = document.settings().deferredCSSParserEnabled(); > scrollBehaviorEnabled = document.settings().CSSOMViewSmoothScrollingEnabled(); > useSystemAppearance = document.page() ? document.page()->useSystemAppearance() : false; >+ individualTransformPropertiesEnabled = document.settings().cssIndividualTransformPropertiesEnabled(); > } > > bool operator==(const CSSParserContext& a, const CSSParserContext& b) >@@ -101,6 +102,7 @@ bool operator==(const CSSParserContext& a, const CSSParserContext& b) > #endif > && a.deferredCSSParserEnabled == b.deferredCSSParserEnabled > && a.scrollBehaviorEnabled == b.scrollBehaviorEnabled >+ && a.individualTransformPropertiesEnabled == b.individualTransformPropertiesEnabled > && a.hasDocumentSecurityOrigin == b.hasDocumentSecurityOrigin > && a.useSystemAppearance == b.useSystemAppearance; > } >diff --git a/Source/WebCore/css/parser/CSSParserContext.h b/Source/WebCore/css/parser/CSSParserContext.h >index 0ee55bfc80eb4ff00830b1da2b405c7abce30889..9f0136fbf644994fdffd8a52be1c109480715f58 100644 >--- a/Source/WebCore/css/parser/CSSParserContext.h >+++ b/Source/WebCore/css/parser/CSSParserContext.h >@@ -66,7 +66,8 @@ public: > #endif > bool deferredCSSParserEnabled { false }; > bool scrollBehaviorEnabled { false }; >- >+ bool individualTransformPropertiesEnabled { false }; >+ > // This is only needed to support getMatchedCSSRules. > bool hasDocumentSecurityOrigin { false }; > >@@ -109,7 +110,8 @@ struct CSSParserContextHash { > & key.attachmentEnabled << 11 > #endif > & key.scrollBehaviorEnabled << 12 >- & key.mode << 13; // Keep this last. >+ & key.individualTransformPropertiesEnabled << 13 >+ & key.mode << 14; // Keep this last. > hash ^= WTF::intHash(bits); > return hash; > } >diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp >index e404d48ef8fff2eb9f963879fc61ed2285fe03f9..6384df8489afc4c0eb0d9c6e9df7668cbb24e471 100644 >--- a/Source/WebCore/css/parser/CSSPropertyParser.cpp >+++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp >@@ -2020,6 +2020,57 @@ static RefPtr<CSSValue> consumeTransform(CSSParserTokenRange& range, CSSParserMo > return list; > } > >+static RefPtr<CSSValue> consumeTranslate(CSSParserTokenRange& range, CSSParserMode cssParserMode) >+{ >+ if (range.peek().id() == CSSValueNone) >+ return consumeIdent(range); >+ >+ RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); >+ >+ // https://drafts.csswg.org/css-transforms-2/#propdef-translate >+ // >+ // The translate property accepts 1-3 values, each specifying a translation against one axis, in the order X, Y, then Z. >+ // If only one or two values are given, this specifies a 2d translation, equivalent to the translate() function. If the second >+ // value is missing, it defaults to 0px. If three values are given, this specifies a 3d translation, equivalent to the >+ // translate3d() function. >+ >+ RefPtr<CSSValue> x = consumeLengthOrPercent(range, cssParserMode, ValueRangeAll); >+ if (!x) >+ return list; >+ >+ // If we got this far we have a valid x value, so we can directly add it to the list. >+ list->append(*x); >+ >+ range.consumeWhitespace(); >+ RefPtr<CSSValue> y = consumeLengthOrPercent(range, cssParserMode, ValueRangeAll); >+ if (!y) >+ return list; >+ >+ // If we have a calc() or non-zero y value, we can directly add it to the list. We only >+ // want to add a zero y value if a non-zero z value is specified. >+ if (is<CSSPrimitiveValue>(y)) { >+ auto& yPrimitiveValue = downcast<CSSPrimitiveValue>(*y); >+ if (yPrimitiveValue.isCalculated() || !*yPrimitiveValue.isZero()) >+ list->append(*y); >+ } >+ >+ range.consumeWhitespace(); >+ RefPtr<CSSValue> z = consumeLength(range, cssParserMode, ValueRangeAll); >+ >+ if (is<CSSPrimitiveValue>(z)) { >+ auto& zPrimitiveValue = downcast<CSSPrimitiveValue>(*z); >+ // If the z value is a zero value, we have nothing left to add to the list. >+ if (!zPrimitiveValue.isCalculated() && *zPrimitiveValue.isZero()) >+ return list; >+ // Add the zero value for y if we did not already add a y value. >+ if (list->length() == 1) >+ list->append(CSSPrimitiveValue::create(0, CSSUnitType::CSS_PX)); >+ list->append(*z); >+ } >+ >+ return list; >+} >+ > template <CSSValueID start, CSSValueID end> > static RefPtr<CSSPrimitiveValue> consumePositionLonghand(CSSParserTokenRange& range, CSSParserMode cssParserMode) > { >@@ -4100,6 +4151,10 @@ RefPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSPropertyID property, CSS > return consumePositionY(m_range, m_context.mode); > case CSSPropertyTransformOriginZ: > return consumeLength(m_range, m_context.mode, ValueRangeAll); >+ case CSSPropertyTranslate: >+ if (!m_context.individualTransformPropertiesEnabled) >+ return nullptr; >+ return consumeTranslate(m_range, m_context.mode); > case CSSPropertyFill: > case CSSPropertyStroke: > return consumePaintStroke(m_range, m_context.mode); >diff --git a/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h b/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h >index e2b43e65c56d0ad5781549ba2886cefb34c347a8..94882867d68914ed82aeca429600907c6eda5162 100644 >--- a/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h >+++ b/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h >@@ -56,6 +56,12 @@ public: > Length y() const { return m_y; } > Length z() const { return m_z; } > >+ bool apply(TransformationMatrix& transform, const FloatSize& borderBoxSize) const final >+ { >+ transform.translate3d(x(borderBoxSize), y(borderBoxSize), z(borderBoxSize)); >+ return m_x.isPercent() || m_y.isPercent(); >+ } >+ > private: > bool isIdentity() const override { return !floatValueForLength(m_x, 1) && !floatValueForLength(m_y, 1) && !floatValueForLength(m_z, 1); } > >@@ -63,12 +69,6 @@ private: > > bool operator==(const TransformOperation&) const override; > >- bool apply(TransformationMatrix& transform, const FloatSize& borderBoxSize) const override >- { >- transform.translate3d(x(borderBoxSize), y(borderBoxSize), z(borderBoxSize)); >- return m_x.isPercent() || m_y.isPercent(); >- } >- > Ref<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false) override; > > void dump(WTF::TextStream&) const final; >diff --git a/Source/WebCore/rendering/RenderObject.h b/Source/WebCore/rendering/RenderObject.h >index 22f32be774b05a44da5185ee1cbd79e6c4eec8d2..7f63f13c45d4f28fffa87267e169c32970ff9723 100644 >--- a/Source/WebCore/rendering/RenderObject.h >+++ b/Source/WebCore/rendering/RenderObject.h >@@ -434,7 +434,7 @@ public: > bool hasOverflowClip() const { return m_bitfields.hasOverflowClip(); } > > bool hasTransformRelatedProperty() const { return m_bitfields.hasTransformRelatedProperty(); } // Transform, perspective or transform-style: preserve-3d. >- bool hasTransform() const { return hasTransformRelatedProperty() && style().hasTransform(); } >+ bool hasTransform() const { return hasTransformRelatedProperty() && (style().hasTransform() || style().translate()); } > > inline bool preservesNewline() const; > >diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp >index bf066dcd988d7a43da97e5f3e63f13447e2726ac..7e599303f3440845f7066368837802978113d58c 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.cpp >+++ b/Source/WebCore/rendering/style/RenderStyle.cpp >@@ -1269,6 +1269,11 @@ void RenderStyle::setWillChange(RefPtr<WillChangeData>&& willChangeData) > m_rareNonInheritedData.access().willChange = WTFMove(willChangeData); > } > >+void RenderStyle::setTranslate(RefPtr<TranslateTransformOperation>&& t) >+{ >+ m_rareNonInheritedData.access().translate = WTFMove(t); >+} >+ > void RenderStyle::clearCursorList() > { > if (m_rareInheritedData->cursorData) >@@ -1383,9 +1388,14 @@ static inline bool requireTransformOrigin(const Vector<RefPtr<TransformOperation > > void RenderStyle::applyTransform(TransformationMatrix& transform, const FloatRect& boundingBox, ApplyTransformOrigin applyOrigin) const > { >+ // https://www.w3.org/TR/css-transforms-2/#ctm >+ // The transformation matrix is computed from the transform, transform-origin, translate, rotate, scale, and offset properties as follows: >+ // 1. Start with the identity matrix. >+ > auto& operations = m_rareNonInheritedData->transform->operations.operations(); > bool applyTransformOrigin = requireTransformOrigin(operations, applyOrigin); >- >+ >+ // 2. Translate by the computed X, Y, and Z values of transform-origin. > FloatPoint3D originTranslate; > if (applyTransformOrigin) { > originTranslate.setXY(boundingBox.location() + floatPointForLengthPoint(transformOriginXY(), boundingBox.size())); >@@ -1393,9 +1403,19 @@ void RenderStyle::applyTransform(TransformationMatrix& transform, const FloatRec > transform.translate3d(originTranslate.x(), originTranslate.y(), originTranslate.z()); > } > >+ // 3. Translate by the computed X, Y, and Z values of translate. >+ if (TransformOperation* translate = m_rareNonInheritedData->translate.get()) >+ translate->apply(transform, boundingBox.size()); >+ >+ // 4. Rotate by the computed <angle> about the specified axis of rotate. (FIXME: we don't support the rotate property) >+ // 5. Scale by the computed X, Y, and Z values of scale. (FIXME: we don't support the scale property) >+ // 6. Translate and rotate by the transform specified by offset. (FIXME: we don't support the offset property) >+ >+ // 7. Multiply by each of the transform functions in transform from left to right. > for (auto& operation : operations) > operation->apply(transform, boundingBox.size()); > >+ // 8. Translate by the negated computed X, Y and Z values of transform-origin. > if (applyTransformOrigin) > transform.translate3d(-originTranslate.x(), -originTranslate.y(), -originTranslate.z()); > } >diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h >index 56ac177342d8dd51dce1ed56b23a80358e2eda14..e131dfeece3586862c0ba9d25e94fc5435c28ba4 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.h >+++ b/Source/WebCore/rendering/style/RenderStyle.h >@@ -65,6 +65,7 @@ > #include "ThemeTypes.h" > #include "TouchAction.h" > #include "TransformOperations.h" >+#include "TranslateTransformOperation.h" > #include "UnicodeBidi.h" > #include <memory> > #include <wtf/DataRef.h> >@@ -621,6 +622,8 @@ public: > > TransformBox transformBox() const { return m_rareNonInheritedData->transform->transformBox; } > >+ TranslateTransformOperation* translate() const { return m_rareNonInheritedData->translate.get(); } >+ > TextEmphasisFill textEmphasisFill() const { return static_cast<TextEmphasisFill>(m_rareInheritedData->textEmphasisFill); } > TextEmphasisMark textEmphasisMark() const; > const AtomString& textEmphasisCustomMark() const { return m_rareInheritedData->textEmphasisCustomMark; } >@@ -640,9 +643,9 @@ public: > ObjectFit objectFit() const { return static_cast<ObjectFit>(m_rareNonInheritedData->objectFit); } > LengthPoint objectPosition() const { return m_rareNonInheritedData->objectPosition; } > >- // Return true if any transform related property (currently transform, transformStyle3D or perspective) >+ // Return true if any transform related property (currently transform, translate, transformStyle3D or perspective) > // indicates that we are transforming. >- bool hasTransformRelatedProperty() const { return hasTransform() || preserves3D() || hasPerspective(); } >+ bool hasTransformRelatedProperty() const { return hasTransform() || translate() || preserves3D() || hasPerspective(); } > > enum ApplyTransformOrigin { IncludeTransformOrigin, ExcludeTransformOrigin }; > void applyTransform(TransformationMatrix&, const FloatRect& boundingBox, ApplyTransformOrigin = IncludeTransformOrigin) const; >@@ -1178,6 +1181,8 @@ public: > void setTransformOriginZ(float f) { SET_NESTED_VAR(m_rareNonInheritedData, transform, z, f); } > void setTransformBox(TransformBox box) { SET_NESTED_VAR(m_rareNonInheritedData, transform, transformBox, box); } > >+ void setTranslate(RefPtr<TranslateTransformOperation>&&); >+ > void setSpeakAs(OptionSet<SpeakAs> s) { SET_VAR(m_rareInheritedData, speakAs, s.toRaw()); } > void setTextCombine(TextCombine v) { SET_VAR(m_rareNonInheritedData, textCombine, static_cast<unsigned>(v)); } > void setTextDecorationColor(const Color& c) { SET_VAR(m_rareNonInheritedData, textDecorationColor, c); } >@@ -1599,6 +1604,7 @@ public: > static Length initialTransformOriginX() { return Length(50.0f, Percent); } > static Length initialTransformOriginY() { return Length(50.0f, Percent); } > static TransformBox initialTransformBox() { return TransformBox::ViewBox; } >+ static TranslateTransformOperation* initialTranslate() { return nullptr; } > static PointerEvents initialPointerEvents() { return PointerEvents::Auto; } > static float initialTransformOriginZ() { return 0; } > static TransformStyle3D initialTransformStyle3D() { return TransformStyle3D::Flat; } >diff --git a/Source/WebCore/rendering/style/StyleRareNonInheritedData.h b/Source/WebCore/rendering/style/StyleRareNonInheritedData.h >index 818cb62755e565ebf9a2b50074bfba3851c87296..6b91659658ed475ec5dafbc01ebcc686db2963dc 100644 >--- a/Source/WebCore/rendering/style/StyleRareNonInheritedData.h >+++ b/Source/WebCore/rendering/style/StyleRareNonInheritedData.h >@@ -36,6 +36,7 @@ > #include "StyleContentAlignmentData.h" > #include "StyleSelfAlignmentData.h" > #include "TouchAction.h" >+#include "TranslateTransformOperation.h" > #include "WillChangeData.h" > #include <memory> > #include <wtf/DataRef.h> >@@ -177,6 +178,8 @@ public: > DataRef<StyleCustomPropertyData> customProperties; > std::unique_ptr<HashSet<String>> customPaintWatchedProperties; > >+ RefPtr<TranslateTransformOperation> translate; >+ > OptionSet<TouchAction> touchActions; > > unsigned pageSizeType : 2; // PageSizeType >diff --git a/Source/WebCore/rendering/style/WillChangeData.cpp b/Source/WebCore/rendering/style/WillChangeData.cpp >index f7d8c363b26d1b7e990122c421c352c64db64acc..5b32ae2f9de9eef9f7f8914dcf8b027db582f12f 100644 >--- a/Source/WebCore/rendering/style/WillChangeData.cpp >+++ b/Source/WebCore/rendering/style/WillChangeData.cpp >@@ -66,6 +66,7 @@ bool WillChangeData::propertyCreatesStackingContext(CSSPropertyID property) > { > switch (property) { > case CSSPropertyPerspective: >+ case CSSPropertyTranslate: > case CSSPropertyTransform: > case CSSPropertyTransformStyle: > case CSSPropertyWebkitTransformStyle: >diff --git a/Source/WebCore/style/StyleBuilderConverter.h b/Source/WebCore/style/StyleBuilderConverter.h >index 58d1a1c051edffb91bf6954196cee000aa3bf2e1..e2524161d385f247258c50403c6d8d169070c190 100644 >--- a/Source/WebCore/style/StyleBuilderConverter.h >+++ b/Source/WebCore/style/StyleBuilderConverter.h >@@ -83,6 +83,7 @@ public: > template<CSSPropertyID> static RefPtr<StyleImage> convertStyleImage(BuilderState&, CSSValue&); > static ImageOrientation convertImageOrientation(BuilderState&, const CSSValue&); > static TransformOperations convertTransform(BuilderState&, const CSSValue&); >+ static RefPtr<TranslateTransformOperation> convertTranslate(BuilderState&, const CSSValue&); > #if ENABLE(DARK_MODE_CSS) > static StyleColorScheme convertColorScheme(BuilderState&, const CSSValue&); > #endif >@@ -481,6 +482,11 @@ inline TransformOperations BuilderConverter::convertTransform(BuilderState& buil > return operations; > } > >+inline RefPtr<TranslateTransformOperation> BuilderConverter::convertTranslate(BuilderState& builderState, const CSSValue& value) >+{ >+ return translateForValue(value, builderState.cssToLengthConversionData()); >+} >+ > #if ENABLE(DARK_MODE_CSS) > inline void BuilderConverter::updateColorScheme(const CSSPrimitiveValue& primitiveValue, StyleColorScheme& colorScheme) > { >diff --git a/Source/WebCore/svg/SVGGraphicsElement.cpp b/Source/WebCore/svg/SVGGraphicsElement.cpp >index 19f037e301b3b2d229216ff707f3fe44a2d3c66d..3608666339252b357e09d984188b40c802b47cd1 100644 >--- a/Source/WebCore/svg/SVGGraphicsElement.cpp >+++ b/Source/WebCore/svg/SVGGraphicsElement.cpp >@@ -73,11 +73,13 @@ AffineTransform SVGGraphicsElement::getScreenCTM(StyleUpdateStrategy styleUpdate > AffineTransform SVGGraphicsElement::animatedLocalTransform() const > { > AffineTransform matrix; >+ > auto* style = renderer() ? &renderer()->style() : nullptr; >+ bool hasSpecifiedTransform = style && style->hasTransform(); >+ >+ // Honor any of the transform-related CSS properties if set. >+ if (hasSpecifiedTransform || (style && style->translate())) { > >- // If CSS property was set, use that, otherwise fallback to attribute (if set). >- if (style && style->hasTransform()) { >- > FloatRect boundingBox; > switch (style->transformBox()) { > case TransformBox::BorderBox: >@@ -113,8 +115,11 @@ AffineTransform SVGGraphicsElement::animatedLocalTransform() const > matrix.setF(matrix.f() / zoom); > } > >- } else >- matrix = transform().concatenate(); >+ } >+ >+ // If we didn't have the CSS "transform" property set, we must account for the "transform" attribute. >+ if (!hasSpecifiedTransform) >+ matrix *= transform().concatenate(); > > if (m_supplementalTransform) > return *m_supplementalTransform * matrix; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index ad521963f4bfe435f2e98fcceb0ffb3325339474..8e420a6d0285208089f5422c05a80b4171f4b2be 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,27 @@ >+2020-10-03 Antoine Quint <graouts@webkit.org> >+ >+ Add non-animated support for the CSS translate property >+ https://bugs.webkit.org/show_bug.cgi?id=216997 >+ <rdar://problem/69597083> >+ >+ Reviewed by Simon Fraser. >+ >+ Add tests checking that the "translate" CSS property is applied in the correct order related to >+ "transform-origin" and "transform" and that it is applied in SVG as well. >+ >+ * platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: >+ * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: >+ * transforms/2d/translate-and-transform-attribute-in-svg-expected.svg: Added. >+ * transforms/2d/translate-and-transform-attribute-in-svg.svg: Added. >+ * transforms/2d/translate-and-transform-css-property-in-svg-expected.svg: Added. >+ * transforms/2d/translate-and-transform-css-property-in-svg.svg: Added. >+ * transforms/2d/translate-in-svg-expected.svg: Added. >+ * transforms/2d/translate-in-svg.svg: Added. >+ * transforms/2d/translate-transform-order-expected.html: Added. >+ * transforms/2d/translate-transform-order.html: Added. >+ * transforms/2d/translate-transform-origin-order-expected.html: Added. >+ * transforms/2d/translate-transform-origin-order.html: Added. >+ > 2020-10-02 Lauro Moura <lmoura@igalia.com> > > [GLIB] Gardening some failures and flakies >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 4d14729caefe8835d31eb2e52786197b125bae61..5367db84cd8d60100895e07a27e3313cd956514e 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,23 @@ >+2020-10-03 Antoine Quint <graouts@webkit.org> >+ >+ Add non-animated support for the CSS translate property >+ https://bugs.webkit.org/show_bug.cgi?id=216997 >+ <rdar://problem/69597083> >+ >+ Reviewed by Simon Fraser. >+ >+ WPT progressions showing the correct parsing and computed style output of a non-animated "translate" property. >+ We are also adding some more tests to the invalid "translate" parsing to check that we bail once we get junk >+ for optional values after valid values. >+ >+ * web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: >+ * web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt: >+ * web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt: >+ * web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt: >+ * web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html: >+ * web-platform-tests/css/css-transforms/parsing/translate-parsing-valid-expected.txt: >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: >+ > 2020-10-02 Truitt Savell <tsavell@apple.com> > > Unreviewed, reverting r267887. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >index 0f0d31cac966037702db375994e81dc1cf7825c5..63ee5543ccc3cd0483c745526ea32b9f72aca30b 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >@@ -276,6 +276,7 @@ PASS transition-delay > PASS transition-duration > PASS transition-property > PASS transition-timing-function >+PASS translate > PASS unicode-bidi > PASS vector-effect > PASS vertical-align >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt >index 501a8cde8f30d3f08ee2ccfc8fbf5788ddb444fd..1de969709fa76908506e0d37bcedf94358ebd8fa 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt >@@ -1,58 +1,58 @@ > >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (-1) should be [-100% calc(200px + 100%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0) should be [calc(50px + 0%) calc(200px + 50%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.25) should be [calc(62.5px + 25%) calc(200px + 37.5%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.75) should be [calc(87.5px + 75%) calc(200px + 12.5%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (1) should be [calc(100px + 100%) calc(200px + 0%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (2) should be [calc(150px + 200%) calc(200px - 50%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (-1) should be [100% calc(600px - 50%) 500px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0) should be [calc(100px + 50%) calc(300px + 0%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.25) should be [calc(125px + 37.5%) calc(225px + 12.5%) 250px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.75) should be [calc(175px + 12.5%) calc(75px + 37.5%) 150px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (1) should be [calc(200px + 0%) 50% 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (2) should be [calc(300px - 50%) calc(-300px + 100%) -100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (-1) should be [calc(-300px + 100%) -50% -400px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0) should be [50% calc(100px + 0%)] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0.25) should be [calc(75px + 37.5%) calc(125px + 12.5%) 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0.75) should be [calc(225px + 12.5%) calc(175px + 37.5%) 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (1) should be [calc(300px + 0%) calc(200px + 50%) 400px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (2) should be [calc(600px - 50%) calc(300px + 100%) 800px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (-1) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0.25) should be [25px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0.75) should be [75px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (2) should be [200px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (-1) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0.25) should be [25px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0.75) should be [75px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (2) should be [200px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (-1) should be [0px 80px 120px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0) should be [0px 40px 60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0.25) should be [0px 30px 45px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0.75) should be [0px 10px 15px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (2) should be [0px -40px -60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (-1) should be [0px 80px 120px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0) should be [0px 40px 60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0.25) should be [0px 30px 45px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0.75) should be [0px 10px 15px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (2) should be [0px -40px -60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (-1) should be [160px 0px -60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0) should be [80px 20px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.25) should be [60px 25px 15px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.5) should be [40px 30px 30px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.75) should be [20px 35px 45px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (1) should be [0px 40px 60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (2) should be [-80px 60px 120px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (-1) should be [160px 120px 120px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0) should be [80px 60px 60px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.25) should be [60px 45px 45px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.5) should be [40px 30px 30px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.75) should be [20px 15px 15px] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (2) should be [-80px -60px -60px] assert_true: 'from' value should be supported expected true got false >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (-1) should be [-100% calc(200px + 100%) 300px] assert_equals: expected "0 200 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0) should be [calc(50px + 0%) calc(200px + 50%) 300px] assert_equals: expected "50 200 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.25) should be [calc(62.5px + 25%) calc(200px + 37.5%) 300px] assert_equals: expected "62.5 200 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.75) should be [calc(87.5px + 75%) calc(200px + 12.5%) 300px] assert_equals: expected "87.5 200 300 " but got "100 200 300 " >+PASS Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (1) should be [calc(100px + 100%) calc(200px + 0%) 300px] >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (2) should be [calc(150px + 200%) calc(200px - 50%) 300px] assert_equals: expected "150 200 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (-1) should be [100% calc(600px - 50%) 500px] assert_equals: expected "0 600 500 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0) should be [calc(100px + 50%) calc(300px + 0%) 300px] assert_equals: expected "100 300 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.25) should be [calc(125px + 37.5%) calc(225px + 12.5%) 250px] assert_equals: expected "125 225 250 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.75) should be [calc(175px + 12.5%) calc(75px + 37.5%) 150px] assert_equals: expected "175 75 150 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (1) should be [calc(200px + 0%) 50% 100px] assert_equals: expected "200 0 100 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (2) should be [calc(300px - 50%) calc(-300px + 100%) -100px] assert_equals: expected "300 - 300 - 100 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (-1) should be [calc(-300px + 100%) -50% -400px] assert_equals: expected "- 300 0 - 400 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0) should be [50% calc(100px + 0%)] assert_equals: expected "0 100 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0.25) should be [calc(75px + 37.5%) calc(125px + 12.5%) 100px] assert_equals: expected "75 125 100 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (0.75) should be [calc(225px + 12.5%) calc(175px + 37.5%) 300px] assert_equals: expected "225 175 300 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (1) should be [calc(300px + 0%) calc(200px + 50%) 400px] assert_equals: expected "300 200 400 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [100px 200px 300px] from replace [50% 100px] to add [200px 50% 100px] at (2) should be [calc(600px - 50%) calc(300px + 100%) 800px] assert_equals: expected "600 300 800 " but got "100 200 300 " >+FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (-1) should be [-100px] assert_equals: expected "- 100 0 " but got "none " >+PASS Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0) should be [none] >+FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0.25) should be [25px] assert_equals: expected "25 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (0.75) should be [75px] assert_equals: expected "75 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (1) should be [100px] assert_equals: expected "100 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [none] to add [100px] at (2) should be [200px] assert_equals: expected "200 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (-1) should be [-100px] assert_equals: expected "- 100 0 " but got "none " >+PASS Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0) should be [none] >+FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0.25) should be [25px] assert_equals: expected "25 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (0.75) should be [75px] assert_equals: expected "75 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (1) should be [100px] assert_equals: expected "100 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from add [none] to add [100px] at (2) should be [200px] assert_equals: expected "200 0 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (-1) should be [0px 80px 120px] assert_equals: expected "0 80 120 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0) should be [0px 40px 60px] assert_equals: expected "0 40 60 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0.25) should be [0px 30px 45px] assert_equals: expected "0 30 45 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (0.75) should be [0px 10px 15px] assert_equals: expected "0 10 15 " but got "none " >+PASS Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (1) should be [none] >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (2) should be [0px -40px -60px] assert_equals: expected "0 - 40 - 60 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (-1) should be [0px 80px 120px] assert_equals: expected "0 80 120 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0) should be [0px 40px 60px] assert_equals: expected "0 40 60 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0.25) should be [0px 30px 45px] assert_equals: expected "0 30 45 " but got "none " >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (0.75) should be [0px 10px 15px] assert_equals: expected "0 10 15 " but got "none " >+PASS Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (1) should be [none] >+FAIL Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to add [none] at (2) should be [0px -40px -60px] assert_equals: expected "0 - 40 - 60 " but got "none " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (-1) should be [160px 0px -60px] assert_equals: expected "160 0 - 60 " but got "80 20 " >+PASS Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0) should be [80px 20px] >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.25) should be [60px 25px 15px] assert_equals: expected "60 25 15 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.5) should be [40px 30px 30px] assert_equals: expected "40 30 30 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (0.75) should be [20px 35px 45px] assert_equals: expected "20 35 45 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (1) should be [0px 40px 60px] assert_equals: expected "0 40 60 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [none] to replace [0px 40px 60px] at (2) should be [-80px 60px 120px] assert_equals: expected "- 80 60 120 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (-1) should be [160px 120px 120px] assert_equals: expected "160 120 120 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0) should be [80px 60px 60px] assert_equals: expected "80 60 60 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.25) should be [60px 45px 45px] assert_equals: expected "60 45 45 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.5) should be [40px 30px 30px] assert_equals: expected "40 30 30 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (0.75) should be [20px 15px 15px] assert_equals: expected "20 15 15 " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (1) should be [none] assert_equals: expected "none " but got "80 20 " >+FAIL Compositing: property <translate> underlying [80px 20px] from add [0px 40px 60px] to replace [none] at (2) should be [-80px -60px -60px] assert_equals: expected "- 80 - 60 - 60 " but got "80 20 " > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt >index 7ace66bac12a60d71227ff542b924e603fa7c749..eacab45de0c18e81a49f7213f7ac95e08d00795a 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt >@@ -1,410 +1,410 @@ > >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (-1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (0.125) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (0.875) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [none] at (2) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (-1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (0.125) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (0.875) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [none] at (2) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (-1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (0.125) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (0.875) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [none] at (2) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (-1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (0) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (0.125) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (0.875) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (1) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [none] at (2) should be [none] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (-1) should be [0px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (0) should be [10px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (1) should be [20px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from neutral to [20px] at (2) should be [30px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (-1) should be [0px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0) should be [10px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (1) should be [20px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (2) should be [30px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (-1) should be [0px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (0) should be [10px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (1) should be [20px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from neutral to [20px] at (2) should be [30px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (-1) should be [0px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (0) should be [10px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (1) should be [20px] assert_true: 'to' value should be supported expected true got false >-FAIL Web Animations: property <translate> from neutral to [20px] at (2) should be [30px] assert_true: 'to' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (1) should be [20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [unset] to [20px] at (2) should be [40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (1) should be [20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (2) should be [40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (1) should be [20px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [unset] to [20px] at (2) should be [40px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (1) should be [20px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [unset] to [20px] at (2) should be [40px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL CSS Animations: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_true: 'from' value should be supported expected true got false >-FAIL Web Animations: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_true: 'from' value should be supported expected true got false >+FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_equals: expected "- 300 0 " but got "100 0 " >+FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_equals: expected "- 100 0 " but got "100 0 " >+FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_equals: expected "- 50 0 " but got "100 0 " >+FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_equals: expected "50 0 " but got "100 0 " >+PASS CSS Transitions: property <translate> from [-100px] to [100px] at (1) should be [100px] >+FAIL CSS Transitions: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_equals: expected "300 0 " but got "100 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_equals: expected "- 300 0 " but got "100 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_equals: expected "- 100 0 " but got "100 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_equals: expected "- 50 0 " but got "100 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_equals: expected "50 0 " but got "100 0 " >+PASS CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (1) should be [100px] >+FAIL CSS Transitions with transition: all: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_equals: expected "300 0 " but got "100 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_equals: expected "- 300 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_equals: expected "- 100 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_equals: expected "- 50 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_equals: expected "50 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_equals: expected "100 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_equals: expected "300 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (-1) should be [-300px] assert_equals: expected "- 300 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (0) should be [-100px] assert_equals: expected "- 100 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (0.25) should be [-50px] assert_equals: expected "- 50 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (0.75) should be [50px] assert_equals: expected "50 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (1) should be [100px] assert_equals: expected "100 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px] to [100px] at (2) should be [300px] assert_equals: expected "300 0 " but got "10 0 " >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (-1) should be [-300%] >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (0) should be [-100%] >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (0.75) should be [50%] >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (1) should be [100%] >+PASS CSS Transitions: property <translate> from [-100%] to [100%] at (2) should be [300%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (-1) should be [-300%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0) should be [-100%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (0.75) should be [50%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (1) should be [100%] >+PASS CSS Transitions with transition: all: property <translate> from [-100%] to [100%] at (2) should be [300%] >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (-1) should be [-300%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (0) should be [-100%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (0.25) should be [-50%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (0.75) should be [50%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (1) should be [100%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100%] to [100%] at (2) should be [300%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_equals: expected "- 300 - 150 " but got "100 50 " >+FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_equals: expected "- 100 - 50 " but got "100 50 " >+FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_equals: expected "- 50 - 25 " but got "100 50 " >+FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_equals: expected "50 25 " but got "100 50 " >+PASS CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] >+FAIL CSS Transitions: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_equals: expected "300 150 " but got "100 50 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_equals: expected "- 300 - 150 " but got "100 50 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_equals: expected "- 100 - 50 " but got "100 50 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_equals: expected "- 50 - 25 " but got "100 50 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_equals: expected "50 25 " but got "100 50 " >+PASS CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_equals: expected "300 150 " but got "100 50 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_equals: expected "- 300 - 150 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_equals: expected "- 100 - 50 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_equals: expected "- 50 - 25 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_equals: expected "50 25 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_equals: expected "100 50 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_equals: expected "300 150 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (-1) should be [-300px -150px] assert_equals: expected "- 300 - 150 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0) should be [-100px -50px] assert_equals: expected "- 100 - 50 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.25) should be [-50px -25px] assert_equals: expected "- 50 - 25 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (0.75) should be [50px 25px] assert_equals: expected "50 25 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (1) should be [100px 50px] assert_equals: expected "100 50 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px] to [100px 50px] at (2) should be [300px 150px] assert_equals: expected "300 150 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_equals: expected "140 80 20 " but got "300 400 500 " >+FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_equals: expected "220 240 260 " but got "300 400 500 " >+FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_equals: expected "230 260 290 " but got "300 400 500 " >+FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_equals: expected "290 380 470 " but got "300 400 500 " >+PASS CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] >+FAIL CSS Transitions: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_equals: expected "380 560 740 " but got "300 400 500 " >+FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_equals: expected "140 80 20 " but got "300 400 500 " >+FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_equals: expected "220 240 260 " but got "300 400 500 " >+FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_equals: expected "230 260 290 " but got "300 400 500 " >+FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_equals: expected "290 380 470 " but got "300 400 500 " >+PASS CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] >+FAIL CSS Transitions with transition: all: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_equals: expected "380 560 740 " but got "300 400 500 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_equals: expected "140 80 20 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_equals: expected "220 240 260 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_equals: expected "230 260 290 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_equals: expected "290 380 470 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_equals: expected "300 400 500 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_equals: expected "380 560 740 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (-1) should be [140px 80px 20px] assert_equals: expected "140 80 20 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0) should be [220px 240px 260px] assert_equals: expected "220 240 260 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.125) should be [230px 260px 290px] assert_equals: expected "230 260 290 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (0.875) should be [290px 380px 470px] assert_equals: expected "290 380 470 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (1) should be [300px 400px 500px] assert_equals: expected "300 400 500 " but got "10 0 " >+FAIL Web Animations: property <translate> from [220px 240px 260px] to [300px 400px 500px] at (2) should be [380px 560px 740px] assert_equals: expected "380 560 740 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "- 100 - 50 100 " >+FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_equals: expected "0 0 " but got "- 100 - 50 100 " >+FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "- 100 - 50 100 " >+FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "- 100 - 50 100 " >+PASS CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] >+FAIL CSS Transitions: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "- 100 - 50 100 " >+FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "- 100 - 50 100 " >+FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_equals: expected "0 0 " but got "- 100 - 50 100 " >+FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "- 100 - 50 100 " >+FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "- 100 - 50 100 " >+PASS CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] >+FAIL CSS Transitions with transition: all: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "- 100 - 50 100 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (-1) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.25) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (0.75) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (1) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [0px] to [-100px -50px 100px] at (2) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "0 0 " >+PASS CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] >+FAIL CSS Transitions: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "0 0 " >+PASS CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] >+FAIL CSS Transitions with transition: all: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "0 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (-1) should be [-200px -100px 200px] assert_equals: expected "- 200 - 100 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0) should be [-100px -50px 100px] assert_equals: expected "- 100 - 50 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.25) should be [-75px -37.5px 75px] assert_equals: expected "- 75 - 37.5 75 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (0.75) should be [-25px -12.5px 25px] assert_equals: expected "- 25 - 12.5 25 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [-100px -50px 100px] to [0px] at (2) should be [100px 50px -100px] assert_equals: expected "100 50 - 100 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_equals: expected "960 800 640 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_equals: expected "480 400 320 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_equals: expected "420 350 280 " but got "0 0 " >+FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_equals: expected "60 50 40 " but got "0 0 " >+PASS CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] >+FAIL CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_equals: expected "- 480 - 400 - 320 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_equals: expected "960 800 640 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_equals: expected "480 400 320 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_equals: expected "420 350 280 " but got "0 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_equals: expected "60 50 40 " but got "0 0 " >+PASS CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] >+FAIL CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_equals: expected "- 480 - 400 - 320 " but got "0 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_equals: expected "960 800 640 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_equals: expected "480 400 320 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_equals: expected "420 350 280 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_equals: expected "60 50 40 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_equals: expected "- 480 - 400 - 320 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px] assert_equals: expected "960 800 640 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [480px 400px 320px] assert_equals: expected "480 400 320 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px] assert_equals: expected "420 350 280 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px] assert_equals: expected "60 50 40 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px] assert_equals: expected "- 480 - 400 - 320 " but got "10 0 " >+PASS CSS Transitions: property <translate> from [none] to [none] at (-1) should be [none] >+PASS CSS Transitions: property <translate> from [none] to [none] at (0) should be [none] >+PASS CSS Transitions: property <translate> from [none] to [none] at (0.125) should be [none] >+PASS CSS Transitions: property <translate> from [none] to [none] at (0.875) should be [none] >+PASS CSS Transitions: property <translate> from [none] to [none] at (1) should be [none] >+PASS CSS Transitions: property <translate> from [none] to [none] at (2) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (-1) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (0) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (0.125) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (0.875) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (1) should be [none] >+PASS CSS Transitions with transition: all: property <translate> from [none] to [none] at (2) should be [none] >+FAIL CSS Animations: property <translate> from [none] to [none] at (-1) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [none] at (0) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [none] at (0.125) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [none] at (0.875) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [none] at (1) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [none] at (2) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (-1) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (0) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (0.125) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (0.875) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (1) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [none] at (2) should be [none] assert_equals: expected "none " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_equals: expected "- 8 0 - 800 " but got "8 0 800 " >+FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_equals: expected "0 0 " but got "8 0 800 " >+FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_equals: expected "1 0 100 " but got "8 0 800 " >+FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_equals: expected "7 0 700 " but got "8 0 800 " >+PASS CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] >+FAIL CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_equals: expected "16 0 1600 " but got "8 0 800 " >+FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_equals: expected "- 8 0 - 800 " but got "8 0 800 " >+FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_equals: expected "0 0 " but got "8 0 800 " >+FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_equals: expected "1 0 100 " but got "8 0 800 " >+FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_equals: expected "7 0 700 " but got "8 0 800 " >+PASS CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] >+FAIL CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_equals: expected "16 0 1600 " but got "8 0 800 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_equals: expected "- 8 0 - 800 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_equals: expected "1 0 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_equals: expected "7 0 700 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_equals: expected "8 0 800 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_equals: expected "16 0 1600 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px] assert_equals: expected "- 8 0 - 800 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px] assert_equals: expected "1 0 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px] assert_equals: expected "7 0 700 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px] assert_equals: expected "8 0 800 " but got "10 0 " >+FAIL Web Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px] assert_equals: expected "16 0 1600 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from neutral to [20px] at (-1) should be [0px] assert_equals: expected "0 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_equals: expected "12.5 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_equals: expected "17.5 0 " but got "20 0 " >+PASS CSS Transitions: property <translate> from neutral to [20px] at (1) should be [20px] >+FAIL CSS Transitions: property <translate> from neutral to [20px] at (2) should be [30px] assert_equals: expected "30 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (-1) should be [0px] assert_equals: expected "0 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_equals: expected "12.5 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_equals: expected "17.5 0 " but got "20 0 " >+PASS CSS Transitions with transition: all: property <translate> from neutral to [20px] at (1) should be [20px] >+FAIL CSS Transitions with transition: all: property <translate> from neutral to [20px] at (2) should be [30px] assert_equals: expected "30 0 " but got "20 0 " >+FAIL CSS Animations: property <translate> from neutral to [20px] at (-1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+PASS CSS Animations: property <translate> from neutral to [20px] at (0) should be [10px] >+FAIL CSS Animations: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_equals: expected "12.5 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_equals: expected "17.5 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from neutral to [20px] at (1) should be [20px] assert_equals: expected "20 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from neutral to [20px] at (2) should be [30px] assert_equals: expected "30 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from neutral to [20px] at (-1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+PASS Web Animations: property <translate> from neutral to [20px] at (0) should be [10px] >+FAIL Web Animations: property <translate> from neutral to [20px] at (0.25) should be [12.5px] assert_equals: expected "12.5 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from neutral to [20px] at (0.75) should be [17.5px] assert_equals: expected "17.5 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from neutral to [20px] at (1) should be [20px] assert_equals: expected "20 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from neutral to [20px] at (2) should be [30px] assert_equals: expected "30 0 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_equals: expected "- 200 - 100 - 200 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_equals: expected "0 0 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_equals: expected "50 25 50 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_equals: expected "150 75 150 " but got "200 100 200 " >+PASS CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] >+FAIL CSS Transitions: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_equals: expected "400 200 400 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_equals: expected "- 200 - 100 - 200 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_equals: expected "0 0 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_equals: expected "50 25 50 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_equals: expected "150 75 150 " but got "200 100 200 " >+PASS CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_equals: expected "400 200 400 " but got "200 100 200 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_equals: expected "- 200 - 100 - 200 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_equals: expected "50 25 50 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_equals: expected "150 75 150 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_equals: expected "400 200 400 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (-1) should be [-200px -100px -200px] assert_equals: expected "- 200 - 100 - 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0.25) should be [50px 25px 50px] assert_equals: expected "50 25 50 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (0.75) should be [150px 75px 150px] assert_equals: expected "150 75 150 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [200px 100px 200px] at (2) should be [400px 200px 400px] assert_equals: expected "400 200 400 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_equals: expected "400 200 800 " but got "none " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_equals: expected "200 100 400 " but got "none " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_equals: expected "150 75 300 " but got "none " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_equals: expected "50 25 100 " but got "none " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "none " >+FAIL CSS Transitions: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_equals: expected "- 200 - 100 - 400 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_equals: expected "400 200 800 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_equals: expected "200 100 400 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_equals: expected "150 75 300 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_equals: expected "50 25 100 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_equals: expected "- 200 - 100 - 400 " but got "none " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_equals: expected "400 200 800 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_equals: expected "200 100 400 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_equals: expected "150 75 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_equals: expected "50 25 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_equals: expected "- 200 - 100 - 400 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (-1) should be [400px 200px 800px] assert_equals: expected "400 200 800 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0) should be [200px 100px 400px] assert_equals: expected "200 100 400 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0.25) should be [150px 75px 300px] assert_equals: expected "150 75 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (0.75) should be [50px 25px 100px] assert_equals: expected "50 25 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 400px] to [initial] at (2) should be [-200px -100px -400px] assert_equals: expected "- 200 - 100 - 400 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_equals: expected "- 20 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0) should be [0px] assert_equals: expected "0 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_equals: expected "5 0 " but got "20 0 " >+FAIL CSS Transitions: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_equals: expected "15 0 " but got "20 0 " >+PASS CSS Transitions: property <translate> from [unset] to [20px] at (1) should be [20px] >+FAIL CSS Transitions: property <translate> from [unset] to [20px] at (2) should be [40px] assert_equals: expected "40 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_equals: expected "- 20 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0) should be [0px] assert_equals: expected "0 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_equals: expected "5 0 " but got "20 0 " >+FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_equals: expected "15 0 " but got "20 0 " >+PASS CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (1) should be [20px] >+FAIL CSS Transitions with transition: all: property <translate> from [unset] to [20px] at (2) should be [40px] assert_equals: expected "40 0 " but got "20 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_equals: expected "- 20 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_equals: expected "5 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_equals: expected "15 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (1) should be [20px] assert_equals: expected "20 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [unset] to [20px] at (2) should be [40px] assert_equals: expected "40 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (-1) should be [-20px] assert_equals: expected "- 20 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (0.25) should be [5px] assert_equals: expected "5 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (0.75) should be [15px] assert_equals: expected "15 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (1) should be [20px] assert_equals: expected "20 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [unset] to [20px] at (2) should be [40px] assert_equals: expected "40 0 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "200 100 200 " >+FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "200 100 200 " >+PASS CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] >+FAIL CSS Transitions: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "200 100 200 " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "200 100 200 " >+PASS CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "200 100 200 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (-1) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.25) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (0.75) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (1) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [200px 100px 200px] at (2) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "100 200 300 " >+PASS CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] >+FAIL CSS Transitions: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "100 200 300 " >+PASS CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] >+FAIL CSS Transitions with transition: all: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "100 200 300 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (-1) should be [300px 0px 100px] assert_equals: expected "300 0 100 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0) should be [200px 100px 200px] assert_equals: expected "200 100 200 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.25) should be [175px 125px 225px] assert_equals: expected "175 125 225 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (0.75) should be [125px 175px 275px] assert_equals: expected "125 175 275 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (1) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [200px 100px 200px] to [inherit] at (2) should be [0px 300px 400px] assert_equals: expected "0 300 400 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_equals: expected "0 0 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "100 200 300 " >+FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "100 200 300 " >+PASS CSS Transitions: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] >+FAIL CSS Transitions: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_equals: expected "0 0 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "100 200 300 " >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "100 200 300 " >+PASS CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] >+FAIL CSS Transitions with transition: all: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "100 200 300 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (-1) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (0) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (0.25) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (0.75) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (1) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [initial] to [inherit] at (2) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "10 0 " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "none " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "none " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "none " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "none " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "none " >+FAIL CSS Transitions: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "none " >+FAIL CSS Transitions with transition: all: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "none " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL CSS Animations: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (-1) should be [200px 400px 600px] assert_equals: expected "200 400 600 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (0) should be [100px 200px 300px] assert_equals: expected "100 200 300 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (0.25) should be [75px 150px 225px] assert_equals: expected "75 150 225 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (0.75) should be [25px 50px 75px] assert_equals: expected "25 50 75 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (1) should be [0px] assert_equals: expected "0 0 " but got "10 0 " >+FAIL Web Animations: property <translate> from [inherit] to [initial] at (2) should be [-100px -200px -300px] assert_equals: expected "- 100 - 200 - 300 " but got "10 0 " > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt >index ce477c513be69c1160f829f007dde26cdf809fae..3e01e75e8852e3c04966cc5dafeaf2eab79fb216 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt >@@ -2,4 +2,7 @@ > PASS e.style['translate'] = "100deg" should not set the property value > PASS e.style['translate'] = "100px 200px 300%" should not set the property value > PASS e.style['translate'] = "100px 200px calc(30px + 30%)" should not set the property value >+PASS e.style['translate'] = "100px junk" should not set the property value >+PASS e.style['translate'] = "100px 200px junk" should not set the property value >+PASS e.style['translate'] = "100px 200px 300px junk" should not set the property value > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html >index 2b7ff750c7cd004e3aaa64cb9ae84dd75bb05c69..d47cd5b6961ecd25092b38f7c1cb947fdf3756b1 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html >@@ -15,6 +15,10 @@ test_invalid_value("translate", "100deg"); > > test_invalid_value("translate", "100px 200px 300%"); > test_invalid_value("translate", "100px 200px calc(30px + 30%)"); >+ >+test_invalid_value("translate", "100px junk"); >+test_invalid_value("translate", "100px 200px junk"); >+test_invalid_value("translate", "100px 200px 300px junk"); > </script> > </body> > </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid-expected.txt >index 5fc3efa25c41a5546fec39ade3e90c947d3a0d5d..781cbdb76c6d2bf50cd0f9b66d829650744410e9 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid-expected.txt >@@ -1,18 +1,18 @@ > >-FAIL e.style['translate'] = "none" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "0px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100%" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 0px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 0.1px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 0%" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px calc(10px - 10%)" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 200%" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100% 200px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 200px 0px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 0px 0px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100px 200px 300px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "100% 200% 300px" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "calc(10% + 10px) calc(20% + 20px) calc(30em + 30px)" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "0" should set the property value assert_not_equals: property should be set got disallowed value "" >-FAIL e.style['translate'] = "1px 2px 0" should set the property value assert_not_equals: property should be set got disallowed value "" >+PASS e.style['translate'] = "none" should set the property value >+PASS e.style['translate'] = "0px" should set the property value >+PASS e.style['translate'] = "100%" should set the property value >+PASS e.style['translate'] = "100px 0px" should set the property value >+PASS e.style['translate'] = "100px 0.1px" should set the property value >+PASS e.style['translate'] = "100px 0%" should set the property value >+PASS e.style['translate'] = "100px calc(10px - 10%)" should set the property value >+PASS e.style['translate'] = "100px 200%" should set the property value >+PASS e.style['translate'] = "100% 200px" should set the property value >+PASS e.style['translate'] = "100px 200px 0px" should set the property value >+PASS e.style['translate'] = "100px 0px 0px" should set the property value >+PASS e.style['translate'] = "100px 200px 300px" should set the property value >+PASS e.style['translate'] = "100% 200% 300px" should set the property value >+PASS e.style['translate'] = "calc(10% + 10px) calc(20% + 20px) calc(30em + 30px)" should set the property value >+PASS e.style['translate'] = "0" should set the property value >+PASS e.style['translate'] = "1px 2px 0" should set the property value > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >index 579dd21753a96ca25817b4fa23842bcc05a902a7..ac9ff1548fba6b7a9226074867a7f91e6c2b75d6 100644 >--- a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >@@ -7,5 +7,5 @@ PASS cssText order > PASS another cssText order (non-alphabetical order) > PASS whitespaces in value > PASS invalid property does not appear >-FAIL cssText on computed style declaration returns the empty string assert_equals: cssText is empty expected "" but got "align-content: normal; align-items: normal; align-self: auto; alignment-baseline: auto; all: ; alt: \"\"; animation-delay: 0s; animation-direction: normal; animation-duration: 0s; animation-fill-mode: none; animation-iteration-count: 1; animation-name: none; animation-play-state: running; animation-timing-function: ease; background-attachment: scroll; background-blend-mode: normal; background-clip: border-box; background-color: rgba(0, 0, 0, 0); background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; baseline-shift: baseline; block-size: 0px; border-block-end-color: rgb(255, 0, 0); border-block-end-style: none; border-block-end-width: 0px; border-block-start-color: rgb(255, 0, 0); border-block-start-style: none; border-block-start-width: 0px; border-bottom-color: rgb(255, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-bottom-style: none; border-bottom-width: 0px; border-collapse: separate; border-image-outset: 0px; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-inline-end-color: rgb(255, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(255, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(255, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(255, 0, 0); border-right-style: none; border-right-width: 0px; border-top-color: rgb(255, 0, 0); border-top-left-radius: 0px; border-top-right-radius: 0px; border-top-style: none; border-top-width: 0px; bottom: auto; box-shadow: none; box-sizing: content-box; break-after: auto; break-before: auto; break-inside: auto; buffered-rendering: auto; caption-side: top; caret-color: rgb(255, 0, 0); clear: none; clip: auto; clip-path: none; clip-rule: nonzero; color: rgb(255, 0, 0); color-interpolation: sRGB; color-interpolation-filters: linearRGB; color-rendering: auto; color-scheme: auto; column-count: auto; column-fill: balance; column-gap: normal; column-rule-color: rgb(255, 0, 0); column-rule-style: none; column-rule-width: 0px; column-span: none; column-width: auto; content: ; counter-increment: none; counter-reset: none; cursor: auto; cx: 0px; cy: 0px; direction: ltr; display: block; dominant-baseline: auto; empty-cells: show; fill: rgb(0, 0, 0); fill-opacity: 1; fill-rule: nonzero; filter: none; flex-basis: auto; flex-direction: row; flex-grow: 0; flex-shrink: 1; flex-wrap: nowrap; float: none; flood-color: rgb(0, 0, 0); flood-opacity: 1; font-family: -webkit-standard; font-feature-settings: normal; font-optical-sizing: auto; font-size: 13.333333015441895px; font-stretch: normal; font-style: normal; font-synthesis: style weight small-caps; font-variant-alternates: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: normal; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto; grid-auto-columns: auto; grid-auto-flow: row; grid-auto-rows: auto; grid-column-end: auto; grid-column-start: auto; grid-row-end: auto; grid-row-start: auto; grid-template-areas: none; grid-template-columns: none; grid-template-rows: none; hanging-punctuation: none; height: 0px; image-orientation: from-image; image-rendering: auto; inline-size: 784px; inset-block-end: auto; inset-block-start: auto; inset-inline-end: auto; inset-inline-start: auto; isolation: auto; justify-content: normal; justify-items: normal; justify-self: auto; kerning: 0; left: auto; letter-spacing: normal; lighting-color: rgb(255, 255, 255); line-break: auto; line-height: normal; list-style-image: none; list-style-position: outside; list-style-type: disc; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; marker-end: none; marker-mid: none; marker-start: none; mask: none; mask-type: luminance; math-style: normal; max-block-size: none; max-height: none; max-inline-size: none; max-width: none; min-block-size: 0px; min-height: 0px; min-inline-size: 0px; min-width: 0px; mix-blend-mode: normal; object-fit: fill; object-position: 50% 50%; opacity: 1; order: 0; orphans: auto; outline-color: rgb(255, 0, 0); outline-offset: 0px; outline-style: none; outline-width: 0px; overflow-wrap: normal; overflow-x: visible; overflow-y: visible; padding-block-end: 0px; padding-block-start: 0px; padding-bottom: 0px; padding-inline-end: 0px; padding-inline-start: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; page-break-after: auto; page-break-before: auto; page-break-inside: auto; paint-order: normal; perspective: none; perspective-origin-x: ; perspective-origin-y: ; pointer-events: auto; position: static; quotes: auto; r: 0px; resize: none; right: auto; row-gap: normal; rx: auto; ry: auto; scroll-behavior: auto; scroll-padding-bottom: 0px; scroll-padding-left: 0px; scroll-padding-right: 0px; scroll-padding-top: 0px; scroll-snap-align: none none; scroll-snap-margin-bottom: 0px; scroll-snap-margin-left: 0px; scroll-snap-margin-right: 0px; scroll-snap-margin-top: 0px; scroll-snap-type: none; shape-image-threshold: 0; shape-margin: 0px; shape-outside: none; shape-rendering: auto; size: ; speak-as: normal; stop-color: rgb(0, 0, 0); stop-opacity: 1; stroke: none; stroke-color: rgba(0, 0, 0, 0); stroke-dasharray: none; stroke-dashoffset: 0px; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; stroke-width: 1px; tab-size: 8; table-layout: auto; text-align: start; text-anchor: start; text-decoration: none; text-decoration-color: rgb(255, 0, 0); text-decoration-line: none; text-decoration-skip: auto; text-decoration-style: solid; text-decoration-thickness: auto; text-indent: 0px; text-orientation: mixed; text-overflow: clip; text-rendering: auto; text-shadow: none; text-transform: none; text-underline-offset: auto; text-underline-position: auto; top: auto; touch-action: auto; transform: none; transform-box: view-box; transform-origin-x: ; transform-origin-y: ; transform-origin-z: ; transform-style: flat; transition-delay: 0s; transition-duration: 0s; transition-property: all; transition-timing-function: ease; unicode-bidi: normal; vector-effect: none; vertical-align: baseline; visibility: visible; white-space: normal; widows: auto; width: 784px; will-change: auto; word-break: normal; word-spacing: 0px; word-wrap: normal; writing-mode: horizontal-tb; x: 0px; y: 0px; z-index: auto; zoom: 1; -apple-color-filter: none; -apple-pay-button-style: black; -apple-pay-button-type: plain; -apple-trailing-word: auto; -webkit-appearance: none; -webkit-aspect-ratio: auto; -webkit-backdrop-filter: none; -webkit-backface-visibility: visible; -webkit-background-clip: border-box; -webkit-background-composite: source-over; -webkit-background-origin: padding-box; -webkit-background-size: auto; -webkit-border-fit: border; -webkit-border-horizontal-spacing: 0px; -webkit-border-image: none; -webkit-border-vertical-spacing: 0px; -webkit-box-align: stretch; -webkit-box-decoration-break: slice; -webkit-box-direction: normal; -webkit-box-flex: 0; -webkit-box-flex-group: 1; -webkit-box-lines: single; -webkit-box-ordinal-group: 1; -webkit-box-orient: horizontal; -webkit-box-pack: start; -webkit-box-reflect: none; -webkit-box-shadow: none; -webkit-column-axis: auto; -webkit-column-break-after: auto; -webkit-column-break-before: auto; -webkit-column-break-inside: auto; -webkit-column-progression: normal; -webkit-cursor-visibility: auto; -webkit-font-kerning: auto; -webkit-font-smoothing: auto; -webkit-hyphenate-character: auto; -webkit-hyphenate-limit-after: auto; -webkit-hyphenate-limit-before: auto; -webkit-hyphenate-limit-lines: no-limit; -webkit-hyphens: manual; -webkit-initial-letter: normal; -webkit-line-align: none; -webkit-line-box-contain: block inline replaced; -webkit-line-clamp: none; -webkit-line-grid: none; -webkit-line-snap: none; -webkit-locale: auto; -webkit-margin-after-collapse: collapse; -webkit-margin-before-collapse: collapse; -webkit-margin-bottom-collapse: collapse; -webkit-margin-top-collapse: collapse; -webkit-mask-box-image: none; -webkit-mask-box-image-outset: 0px; -webkit-mask-box-image-repeat: stretch; -webkit-mask-box-image-slice: 0 fill; -webkit-mask-box-image-source: none; -webkit-mask-box-image-width: auto; -webkit-mask-clip: border-box; -webkit-mask-composite: source-over; -webkit-mask-image: none; -webkit-mask-origin: border-box; -webkit-mask-position-x: 0%; -webkit-mask-position-y: 0%; -webkit-mask-repeat: repeat; -webkit-mask-size: auto; -webkit-mask-source-type: alpha; -webkit-nbsp-mode: normal; -webkit-print-color-adjust: economy; -webkit-rtl-ordering: logical; -webkit-ruby-position: before; -webkit-text-combine: none; -webkit-text-emphasis-color: rgb(255, 0, 0); -webkit-text-emphasis-position: over right; -webkit-text-emphasis-style: none; -webkit-text-fill-color: rgb(255, 0, 0); -webkit-text-orientation: mixed; -webkit-text-security: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-color: rgb(255, 0, 0); -webkit-text-stroke-width: 0px; -webkit-text-zoom: normal; -webkit-transform-style: flat; -webkit-user-drag: auto; -webkit-user-modify: read-only; -webkit-user-select: text;" >+FAIL cssText on computed style declaration returns the empty string assert_equals: cssText is empty expected "" but got "align-content: normal; align-items: normal; align-self: auto; alignment-baseline: auto; all: ; alt: \"\"; animation-delay: 0s; animation-direction: normal; animation-duration: 0s; animation-fill-mode: none; animation-iteration-count: 1; animation-name: none; animation-play-state: running; animation-timing-function: ease; background-attachment: scroll; background-blend-mode: normal; background-clip: border-box; background-color: rgba(0, 0, 0, 0); background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; baseline-shift: baseline; block-size: 0px; border-block-end-color: rgb(255, 0, 0); border-block-end-style: none; border-block-end-width: 0px; border-block-start-color: rgb(255, 0, 0); border-block-start-style: none; border-block-start-width: 0px; border-bottom-color: rgb(255, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-bottom-style: none; border-bottom-width: 0px; border-collapse: separate; border-image-outset: 0px; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-inline-end-color: rgb(255, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(255, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(255, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(255, 0, 0); border-right-style: none; border-right-width: 0px; border-top-color: rgb(255, 0, 0); border-top-left-radius: 0px; border-top-right-radius: 0px; border-top-style: none; border-top-width: 0px; bottom: auto; box-shadow: none; box-sizing: content-box; break-after: auto; break-before: auto; break-inside: auto; buffered-rendering: auto; caption-side: top; caret-color: rgb(255, 0, 0); clear: none; clip: auto; clip-path: none; clip-rule: nonzero; color: rgb(255, 0, 0); color-interpolation: sRGB; color-interpolation-filters: linearRGB; color-rendering: auto; color-scheme: auto; column-count: auto; column-fill: balance; column-gap: normal; column-rule-color: rgb(255, 0, 0); column-rule-style: none; column-rule-width: 0px; column-span: none; column-width: auto; content: ; counter-increment: none; counter-reset: none; cursor: auto; cx: 0px; cy: 0px; direction: ltr; display: block; dominant-baseline: auto; empty-cells: show; fill: rgb(0, 0, 0); fill-opacity: 1; fill-rule: nonzero; filter: none; flex-basis: auto; flex-direction: row; flex-grow: 0; flex-shrink: 1; flex-wrap: nowrap; float: none; flood-color: rgb(0, 0, 0); flood-opacity: 1; font-family: -webkit-standard; font-feature-settings: normal; font-optical-sizing: auto; font-size: 13.333333015441895px; font-stretch: normal; font-style: normal; font-synthesis: style weight small-caps; font-variant-alternates: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: normal; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto; grid-auto-columns: auto; grid-auto-flow: row; grid-auto-rows: auto; grid-column-end: auto; grid-column-start: auto; grid-row-end: auto; grid-row-start: auto; grid-template-areas: none; grid-template-columns: none; grid-template-rows: none; hanging-punctuation: none; height: 0px; image-orientation: from-image; image-rendering: auto; inline-size: 784px; inset-block-end: auto; inset-block-start: auto; inset-inline-end: auto; inset-inline-start: auto; isolation: auto; justify-content: normal; justify-items: normal; justify-self: auto; kerning: 0; left: auto; letter-spacing: normal; lighting-color: rgb(255, 255, 255); line-break: auto; line-height: normal; list-style-image: none; list-style-position: outside; list-style-type: disc; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; marker-end: none; marker-mid: none; marker-start: none; mask: none; mask-type: luminance; math-style: normal; max-block-size: none; max-height: none; max-inline-size: none; max-width: none; min-block-size: 0px; min-height: 0px; min-inline-size: 0px; min-width: 0px; mix-blend-mode: normal; object-fit: fill; object-position: 50% 50%; opacity: 1; order: 0; orphans: auto; outline-color: rgb(255, 0, 0); outline-offset: 0px; outline-style: none; outline-width: 0px; overflow-wrap: normal; overflow-x: visible; overflow-y: visible; padding-block-end: 0px; padding-block-start: 0px; padding-bottom: 0px; padding-inline-end: 0px; padding-inline-start: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; page-break-after: auto; page-break-before: auto; page-break-inside: auto; paint-order: normal; perspective: none; perspective-origin-x: ; perspective-origin-y: ; pointer-events: auto; position: static; quotes: auto; r: 0px; resize: none; right: auto; row-gap: normal; rx: auto; ry: auto; scroll-behavior: auto; scroll-padding-bottom: 0px; scroll-padding-left: 0px; scroll-padding-right: 0px; scroll-padding-top: 0px; scroll-snap-align: none none; scroll-snap-margin-bottom: 0px; scroll-snap-margin-left: 0px; scroll-snap-margin-right: 0px; scroll-snap-margin-top: 0px; scroll-snap-type: none; shape-image-threshold: 0; shape-margin: 0px; shape-outside: none; shape-rendering: auto; size: ; speak-as: normal; stop-color: rgb(0, 0, 0); stop-opacity: 1; stroke: none; stroke-color: rgba(0, 0, 0, 0); stroke-dasharray: none; stroke-dashoffset: 0px; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; stroke-width: 1px; tab-size: 8; table-layout: auto; text-align: start; text-anchor: start; text-decoration: none; text-decoration-color: rgb(255, 0, 0); text-decoration-line: none; text-decoration-skip: auto; text-decoration-style: solid; text-decoration-thickness: auto; text-indent: 0px; text-orientation: mixed; text-overflow: clip; text-rendering: auto; text-shadow: none; text-transform: none; text-underline-offset: auto; text-underline-position: auto; top: auto; touch-action: auto; transform: none; transform-box: view-box; transform-origin-x: ; transform-origin-y: ; transform-origin-z: ; transform-style: flat; transition-delay: 0s; transition-duration: 0s; transition-property: all; transition-timing-function: ease; translate: none; unicode-bidi: normal; vector-effect: none; vertical-align: baseline; visibility: visible; white-space: normal; widows: auto; width: 784px; will-change: auto; word-break: normal; word-spacing: 0px; word-wrap: normal; writing-mode: horizontal-tb; x: 0px; y: 0px; z-index: auto; zoom: 1; -apple-color-filter: none; -apple-pay-button-style: black; -apple-pay-button-type: plain; -apple-trailing-word: auto; -webkit-appearance: none; -webkit-aspect-ratio: auto; -webkit-backdrop-filter: none; -webkit-backface-visibility: visible; -webkit-background-clip: border-box; -webkit-background-composite: source-over; -webkit-background-origin: padding-box; -webkit-background-size: auto; -webkit-border-fit: border; -webkit-border-horizontal-spacing: 0px; -webkit-border-image: none; -webkit-border-vertical-spacing: 0px; -webkit-box-align: stretch; -webkit-box-decoration-break: slice; -webkit-box-direction: normal; -webkit-box-flex: 0; -webkit-box-flex-group: 1; -webkit-box-lines: single; -webkit-box-ordinal-group: 1; -webkit-box-orient: horizontal; -webkit-box-pack: start; -webkit-box-reflect: none; -webkit-box-shadow: none; -webkit-column-axis: auto; -webkit-column-break-after: auto; -webkit-column-break-before: auto; -webkit-column-break-inside: auto; -webkit-column-progression: normal; -webkit-cursor-visibility: auto; -webkit-font-kerning: auto; -webkit-font-smoothing: auto; -webkit-hyphenate-character: auto; -webkit-hyphenate-limit-after: auto; -webkit-hyphenate-limit-before: auto; -webkit-hyphenate-limit-lines: no-limit; -webkit-hyphens: manual; -webkit-initial-letter: normal; -webkit-line-align: none; -webkit-line-box-contain: block inline replaced; -webkit-line-clamp: none; -webkit-line-grid: none; -webkit-line-snap: none; -webkit-locale: auto; -webkit-margin-after-collapse: collapse; -webkit-margin-before-collapse: collapse; -webkit-margin-bottom-collapse: collapse; -webkit-margin-top-collapse: collapse; -webkit-mask-box-image: none; -webkit-mask-box-image-outset: 0px; -webkit-mask-box-image-repeat: stretch; -webkit-mask-box-image-slice: 0 fill; -webkit-mask-box-image-source: none; -webkit-mask-box-image-width: auto; -webkit-mask-clip: border-box; -webkit-mask-composite: source-over; -webkit-mask-image: none; -webkit-mask-origin: border-box; -webkit-mask-position-x: 0%; -webkit-mask-position-y: 0%; -webkit-mask-repeat: repeat; -webkit-mask-size: auto; -webkit-mask-source-type: alpha; -webkit-nbsp-mode: normal; -webkit-print-color-adjust: economy; -webkit-rtl-ordering: logical; -webkit-ruby-position: before; -webkit-text-combine: none; -webkit-text-emphasis-color: rgb(255, 0, 0); -webkit-text-emphasis-position: over right; -webkit-text-emphasis-style: none; -webkit-text-fill-color: rgb(255, 0, 0); -webkit-text-orientation: mixed; -webkit-text-security: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-color: rgb(255, 0, 0); -webkit-text-stroke-width: 0px; -webkit-text-zoom: normal; -webkit-transform-style: flat; -webkit-user-drag: auto; -webkit-user-modify: read-only; -webkit-user-select: text;" > >diff --git a/LayoutTests/platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >index bad8e75fac8d31f246de10a3e5cbc3ee55210c94..2127c03e0a87cc2396f27d1a9ba36e0aad5614b9 100644 >--- a/LayoutTests/platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >+++ b/LayoutTests/platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt >@@ -276,6 +276,7 @@ PASS transition-delay > PASS transition-duration > PASS transition-property > PASS transition-timing-function >+PASS translate > PASS unicode-bidi > PASS vector-effect > PASS vertical-align >diff --git a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >index 509ec8445bc238f740293adb10d10ef1ee3c4c34..b678e7159b2d4fe1a73e8026a72da1ec941111ea 100644 >--- a/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >+++ b/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >@@ -7,5 +7,5 @@ PASS cssText order > PASS another cssText order (non-alphabetical order) > PASS whitespaces in value > PASS invalid property does not appear >-FAIL cssText on computed style declaration returns the empty string assert_equals: cssText is empty expected "" but got "align-content: normal; align-items: normal; align-self: auto; alignment-baseline: auto; all: ; alt: \"\"; animation-delay: 0s; animation-direction: normal; animation-duration: 0s; animation-fill-mode: none; animation-iteration-count: 1; animation-name: none; animation-play-state: running; animation-timing-function: ease; background-attachment: scroll; background-blend-mode: normal; background-clip: border-box; background-color: rgba(0, 0, 0, 0); background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; baseline-shift: baseline; block-size: 0px; border-block-end-color: rgb(255, 0, 0); border-block-end-style: none; border-block-end-width: 0px; border-block-start-color: rgb(255, 0, 0); border-block-start-style: none; border-block-start-width: 0px; border-bottom-color: rgb(255, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-bottom-style: none; border-bottom-width: 0px; border-collapse: separate; border-image-outset: 0px; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-inline-end-color: rgb(255, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(255, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(255, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(255, 0, 0); border-right-style: none; border-right-width: 0px; border-top-color: rgb(255, 0, 0); border-top-left-radius: 0px; border-top-right-radius: 0px; border-top-style: none; border-top-width: 0px; bottom: auto; box-shadow: none; box-sizing: content-box; break-after: auto; break-before: auto; break-inside: auto; buffered-rendering: auto; caption-side: top; caret-color: rgb(255, 0, 0); clear: none; clip: auto; clip-path: none; clip-rule: nonzero; color: rgb(255, 0, 0); color-interpolation: sRGB; color-interpolation-filters: linearRGB; color-rendering: auto; color-scheme: auto; column-count: auto; column-fill: balance; column-gap: normal; column-rule-color: rgb(255, 0, 0); column-rule-style: none; column-rule-width: 0px; column-span: none; column-width: auto; content: ; counter-increment: none; counter-reset: none; cursor: auto; cx: 0px; cy: 0px; direction: ltr; display: block; dominant-baseline: auto; empty-cells: show; fill: rgb(0, 0, 0); fill-opacity: 1; fill-rule: nonzero; filter: none; flex-basis: auto; flex-direction: row; flex-grow: 0; flex-shrink: 1; flex-wrap: nowrap; float: none; flood-color: rgb(0, 0, 0); flood-opacity: 1; font-family: -webkit-standard; font-feature-settings: normal; font-optical-sizing: auto; font-size: 13.333333015441895px; font-stretch: normal; font-style: normal; font-synthesis: style weight small-caps; font-variant-alternates: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: normal; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto; grid-auto-columns: auto; grid-auto-flow: row; grid-auto-rows: auto; grid-column-end: auto; grid-column-start: auto; grid-row-end: auto; grid-row-start: auto; grid-template-areas: none; grid-template-columns: none; grid-template-rows: none; hanging-punctuation: none; height: 0px; image-orientation: from-image; image-rendering: auto; inline-size: 784px; inset-block-end: auto; inset-block-start: auto; inset-inline-end: auto; inset-inline-start: auto; isolation: auto; justify-content: normal; justify-items: normal; justify-self: auto; kerning: 0; left: auto; letter-spacing: normal; lighting-color: rgb(255, 255, 255); line-break: auto; line-height: normal; list-style-image: none; list-style-position: outside; list-style-type: disc; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; marker-end: none; marker-mid: none; marker-start: none; mask: none; mask-type: luminance; math-style: normal; max-block-size: none; max-height: none; max-inline-size: none; max-width: none; min-block-size: 0px; min-height: 0px; min-inline-size: 0px; min-width: 0px; mix-blend-mode: normal; object-fit: fill; object-position: 50% 50%; opacity: 1; order: 0; orphans: auto; outline-color: rgb(255, 0, 0); outline-offset: 0px; outline-style: none; outline-width: 0px; overflow-wrap: normal; overflow-x: visible; overflow-y: visible; padding-block-end: 0px; padding-block-start: 0px; padding-bottom: 0px; padding-inline-end: 0px; padding-inline-start: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; page-break-after: auto; page-break-before: auto; page-break-inside: auto; paint-order: normal; perspective: none; perspective-origin-x: ; perspective-origin-y: ; pointer-events: auto; position: static; quotes: auto; r: 0px; resize: none; right: auto; row-gap: normal; rx: auto; ry: auto; scroll-behavior: auto; scroll-padding-bottom: 0px; scroll-padding-left: 0px; scroll-padding-right: 0px; scroll-padding-top: 0px; scroll-snap-align: none none; scroll-snap-margin-bottom: 0px; scroll-snap-margin-left: 0px; scroll-snap-margin-right: 0px; scroll-snap-margin-top: 0px; scroll-snap-type: none; shape-image-threshold: 0; shape-margin: 0px; shape-outside: none; shape-rendering: auto; size: ; speak-as: normal; stop-color: rgb(0, 0, 0); stop-opacity: 1; stroke: none; stroke-color: rgba(0, 0, 0, 0); stroke-dasharray: none; stroke-dashoffset: 0px; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; stroke-width: 1px; tab-size: 8; table-layout: auto; text-align: start; text-anchor: start; text-decoration: none; text-decoration-color: rgb(255, 0, 0); text-decoration-line: none; text-decoration-skip: auto; text-decoration-style: solid; text-decoration-thickness: auto; text-indent: 0px; text-orientation: mixed; text-overflow: clip; text-rendering: auto; text-shadow: none; text-transform: none; text-underline-offset: auto; text-underline-position: auto; top: auto; touch-action: auto; transform: none; transform-box: view-box; transform-origin-x: ; transform-origin-y: ; transform-origin-z: ; transform-style: flat; transition-delay: 0s; transition-duration: 0s; transition-property: all; transition-timing-function: ease; unicode-bidi: normal; vector-effect: none; vertical-align: baseline; visibility: visible; white-space: normal; widows: auto; width: 784px; will-change: auto; word-break: normal; word-spacing: 0px; word-wrap: normal; writing-mode: horizontal-tb; x: 0px; y: 0px; z-index: auto; zoom: 1; -apple-color-filter: none; -apple-pay-button-style: black; -apple-pay-button-type: plain; -apple-trailing-word: auto; -webkit-appearance: none; -webkit-aspect-ratio: auto; -webkit-backdrop-filter: none; -webkit-backface-visibility: visible; -webkit-background-clip: border-box; -webkit-background-composite: source-over; -webkit-background-origin: padding-box; -webkit-background-size: auto; -webkit-border-fit: border; -webkit-border-horizontal-spacing: 0px; -webkit-border-image: none; -webkit-border-vertical-spacing: 0px; -webkit-box-align: stretch; -webkit-box-decoration-break: slice; -webkit-box-direction: normal; -webkit-box-flex: 0; -webkit-box-flex-group: 1; -webkit-box-lines: single; -webkit-box-ordinal-group: 1; -webkit-box-orient: horizontal; -webkit-box-pack: start; -webkit-box-reflect: none; -webkit-box-shadow: none; -webkit-column-axis: auto; -webkit-column-break-after: auto; -webkit-column-break-before: auto; -webkit-column-break-inside: auto; -webkit-column-progression: normal; -webkit-cursor-visibility: auto; -webkit-font-kerning: auto; -webkit-font-smoothing: auto; -webkit-hyphenate-character: auto; -webkit-hyphenate-limit-after: auto; -webkit-hyphenate-limit-before: auto; -webkit-hyphenate-limit-lines: no-limit; -webkit-hyphens: manual; -webkit-initial-letter: normal; -webkit-line-align: none; -webkit-line-box-contain: block inline replaced; -webkit-line-clamp: none; -webkit-line-grid: none; -webkit-line-snap: none; -webkit-locale: auto; -webkit-margin-after-collapse: collapse; -webkit-margin-before-collapse: collapse; -webkit-margin-bottom-collapse: collapse; -webkit-margin-top-collapse: collapse; -webkit-mask-box-image: none; -webkit-mask-box-image-outset: 0px; -webkit-mask-box-image-repeat: stretch; -webkit-mask-box-image-slice: 0 fill; -webkit-mask-box-image-source: none; -webkit-mask-box-image-width: auto; -webkit-mask-clip: border-box; -webkit-mask-composite: source-over; -webkit-mask-image: none; -webkit-mask-origin: border-box; -webkit-mask-position-x: 0%; -webkit-mask-position-y: 0%; -webkit-mask-repeat: repeat; -webkit-mask-size: auto; -webkit-mask-source-type: alpha; -webkit-nbsp-mode: normal; -webkit-overflow-scrolling: auto; -webkit-print-color-adjust: economy; -webkit-rtl-ordering: logical; -webkit-ruby-position: before; -webkit-text-combine: none; -webkit-text-emphasis-color: rgb(255, 0, 0); -webkit-text-emphasis-position: over right; -webkit-text-emphasis-style: none; -webkit-text-fill-color: rgb(255, 0, 0); -webkit-text-orientation: mixed; -webkit-text-security: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-color: rgb(255, 0, 0); -webkit-text-stroke-width: 0px; -webkit-text-zoom: normal; -webkit-touch-callout: default; -webkit-transform-style: flat; -webkit-user-drag: auto; -webkit-user-modify: read-only; -webkit-user-select: text;" >+FAIL cssText on computed style declaration returns the empty string assert_equals: cssText is empty expected "" but got "align-content: normal; align-items: normal; align-self: auto; alignment-baseline: auto; all: ; alt: \"\"; animation-delay: 0s; animation-direction: normal; animation-duration: 0s; animation-fill-mode: none; animation-iteration-count: 1; animation-name: none; animation-play-state: running; animation-timing-function: ease; background-attachment: scroll; background-blend-mode: normal; background-clip: border-box; background-color: rgba(0, 0, 0, 0); background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; baseline-shift: baseline; block-size: 0px; border-block-end-color: rgb(255, 0, 0); border-block-end-style: none; border-block-end-width: 0px; border-block-start-color: rgb(255, 0, 0); border-block-start-style: none; border-block-start-width: 0px; border-bottom-color: rgb(255, 0, 0); border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-bottom-style: none; border-bottom-width: 0px; border-collapse: separate; border-image-outset: 0px; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-inline-end-color: rgb(255, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(255, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(255, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(255, 0, 0); border-right-style: none; border-right-width: 0px; border-top-color: rgb(255, 0, 0); border-top-left-radius: 0px; border-top-right-radius: 0px; border-top-style: none; border-top-width: 0px; bottom: auto; box-shadow: none; box-sizing: content-box; break-after: auto; break-before: auto; break-inside: auto; buffered-rendering: auto; caption-side: top; caret-color: rgb(255, 0, 0); clear: none; clip: auto; clip-path: none; clip-rule: nonzero; color: rgb(255, 0, 0); color-interpolation: sRGB; color-interpolation-filters: linearRGB; color-rendering: auto; color-scheme: auto; column-count: auto; column-fill: balance; column-gap: normal; column-rule-color: rgb(255, 0, 0); column-rule-style: none; column-rule-width: 0px; column-span: none; column-width: auto; content: ; counter-increment: none; counter-reset: none; cursor: auto; cx: 0px; cy: 0px; direction: ltr; display: block; dominant-baseline: auto; empty-cells: show; fill: rgb(0, 0, 0); fill-opacity: 1; fill-rule: nonzero; filter: none; flex-basis: auto; flex-direction: row; flex-grow: 0; flex-shrink: 1; flex-wrap: nowrap; float: none; flood-color: rgb(0, 0, 0); flood-opacity: 1; font-family: -webkit-standard; font-feature-settings: normal; font-optical-sizing: auto; font-size: 13.333333015441895px; font-stretch: normal; font-style: normal; font-synthesis: style weight small-caps; font-variant-alternates: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: normal; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto; grid-auto-columns: auto; grid-auto-flow: row; grid-auto-rows: auto; grid-column-end: auto; grid-column-start: auto; grid-row-end: auto; grid-row-start: auto; grid-template-areas: none; grid-template-columns: none; grid-template-rows: none; hanging-punctuation: none; height: 0px; image-orientation: from-image; image-rendering: auto; inline-size: 784px; inset-block-end: auto; inset-block-start: auto; inset-inline-end: auto; inset-inline-start: auto; isolation: auto; justify-content: normal; justify-items: normal; justify-self: auto; kerning: 0; left: auto; letter-spacing: normal; lighting-color: rgb(255, 255, 255); line-break: auto; line-height: normal; list-style-image: none; list-style-position: outside; list-style-type: disc; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; marker-end: none; marker-mid: none; marker-start: none; mask: none; mask-type: luminance; math-style: normal; max-block-size: none; max-height: none; max-inline-size: none; max-width: none; min-block-size: 0px; min-height: 0px; min-inline-size: 0px; min-width: 0px; mix-blend-mode: normal; object-fit: fill; object-position: 50% 50%; opacity: 1; order: 0; orphans: auto; outline-color: rgb(255, 0, 0); outline-offset: 0px; outline-style: none; outline-width: 0px; overflow-wrap: normal; overflow-x: visible; overflow-y: visible; padding-block-end: 0px; padding-block-start: 0px; padding-bottom: 0px; padding-inline-end: 0px; padding-inline-start: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; page-break-after: auto; page-break-before: auto; page-break-inside: auto; paint-order: normal; perspective: none; perspective-origin-x: ; perspective-origin-y: ; pointer-events: auto; position: static; quotes: auto; r: 0px; resize: none; right: auto; row-gap: normal; rx: auto; ry: auto; scroll-behavior: auto; scroll-padding-bottom: 0px; scroll-padding-left: 0px; scroll-padding-right: 0px; scroll-padding-top: 0px; scroll-snap-align: none none; scroll-snap-margin-bottom: 0px; scroll-snap-margin-left: 0px; scroll-snap-margin-right: 0px; scroll-snap-margin-top: 0px; scroll-snap-type: none; shape-image-threshold: 0; shape-margin: 0px; shape-outside: none; shape-rendering: auto; size: ; speak-as: normal; stop-color: rgb(0, 0, 0); stop-opacity: 1; stroke: none; stroke-color: rgba(0, 0, 0, 0); stroke-dasharray: none; stroke-dashoffset: 0px; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; stroke-width: 1px; tab-size: 8; table-layout: auto; text-align: start; text-anchor: start; text-decoration: none; text-decoration-color: rgb(255, 0, 0); text-decoration-line: none; text-decoration-skip: auto; text-decoration-style: solid; text-decoration-thickness: auto; text-indent: 0px; text-orientation: mixed; text-overflow: clip; text-rendering: auto; text-shadow: none; text-transform: none; text-underline-offset: auto; text-underline-position: auto; top: auto; touch-action: auto; transform: none; transform-box: view-box; transform-origin-x: ; transform-origin-y: ; transform-origin-z: ; transform-style: flat; transition-delay: 0s; transition-duration: 0s; transition-property: all; transition-timing-function: ease; translate: none; unicode-bidi: normal; vector-effect: none; vertical-align: baseline; visibility: visible; white-space: normal; widows: auto; width: 784px; will-change: auto; word-break: normal; word-spacing: 0px; word-wrap: normal; writing-mode: horizontal-tb; x: 0px; y: 0px; z-index: auto; zoom: 1; -apple-color-filter: none; -apple-pay-button-style: black; -apple-pay-button-type: plain; -apple-trailing-word: auto; -webkit-appearance: none; -webkit-aspect-ratio: auto; -webkit-backdrop-filter: none; -webkit-backface-visibility: visible; -webkit-background-clip: border-box; -webkit-background-composite: source-over; -webkit-background-origin: padding-box; -webkit-background-size: auto; -webkit-border-fit: border; -webkit-border-horizontal-spacing: 0px; -webkit-border-image: none; -webkit-border-vertical-spacing: 0px; -webkit-box-align: stretch; -webkit-box-decoration-break: slice; -webkit-box-direction: normal; -webkit-box-flex: 0; -webkit-box-flex-group: 1; -webkit-box-lines: single; -webkit-box-ordinal-group: 1; -webkit-box-orient: horizontal; -webkit-box-pack: start; -webkit-box-reflect: none; -webkit-box-shadow: none; -webkit-column-axis: auto; -webkit-column-break-after: auto; -webkit-column-break-before: auto; -webkit-column-break-inside: auto; -webkit-column-progression: normal; -webkit-cursor-visibility: auto; -webkit-font-kerning: auto; -webkit-font-smoothing: auto; -webkit-hyphenate-character: auto; -webkit-hyphenate-limit-after: auto; -webkit-hyphenate-limit-before: auto; -webkit-hyphenate-limit-lines: no-limit; -webkit-hyphens: manual; -webkit-initial-letter: normal; -webkit-line-align: none; -webkit-line-box-contain: block inline replaced; -webkit-line-clamp: none; -webkit-line-grid: none; -webkit-line-snap: none; -webkit-locale: auto; -webkit-margin-after-collapse: collapse; -webkit-margin-before-collapse: collapse; -webkit-margin-bottom-collapse: collapse; -webkit-margin-top-collapse: collapse; -webkit-mask-box-image: none; -webkit-mask-box-image-outset: 0px; -webkit-mask-box-image-repeat: stretch; -webkit-mask-box-image-slice: 0 fill; -webkit-mask-box-image-source: none; -webkit-mask-box-image-width: auto; -webkit-mask-clip: border-box; -webkit-mask-composite: source-over; -webkit-mask-image: none; -webkit-mask-origin: border-box; -webkit-mask-position-x: 0%; -webkit-mask-position-y: 0%; -webkit-mask-repeat: repeat; -webkit-mask-size: auto; -webkit-mask-source-type: alpha; -webkit-nbsp-mode: normal; -webkit-overflow-scrolling: auto; -webkit-print-color-adjust: economy; -webkit-rtl-ordering: logical; -webkit-ruby-position: before; -webkit-text-combine: none; -webkit-text-emphasis-color: rgb(255, 0, 0); -webkit-text-emphasis-position: over right; -webkit-text-emphasis-style: none; -webkit-text-fill-color: rgb(255, 0, 0); -webkit-text-orientation: mixed; -webkit-text-security: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-color: rgb(255, 0, 0); -webkit-text-stroke-width: 0px; -webkit-text-zoom: normal; -webkit-touch-callout: default; -webkit-transform-style: flat; -webkit-user-drag: auto; -webkit-user-modify: read-only; -webkit-user-select: text;" > >diff --git a/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg-expected.svg b/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..c897bf9d60cd81af25ed48148c95450333918ef2 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg-expected.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" transform="translate(100 100) scale(2)" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg.svg b/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..2ef6550de9a555736608d5bc2bd1a962c46c7b21 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-and-transform-attribute-in-svg.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" transform="rotate(45deg)" style="transform: scale(2); translate: 100px 100px" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg-expected.svg b/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..c897bf9d60cd81af25ed48148c95450333918ef2 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg-expected.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" transform="translate(100 100) scale(2)" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg.svg b/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..2ca3a2bcc7304d9ec0199cdaca79dded070dea59 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-and-transform-css-property-in-svg.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" transform="scale(2)" style="translate: 100px 100px" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-in-svg-expected.svg b/LayoutTests/transforms/2d/translate-in-svg-expected.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..4c7d94dbfea3bfee99364be94f51a67c77f7cbc5 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-in-svg-expected.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" transform="translate(100 100)" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-in-svg.svg b/LayoutTests/transforms/2d/translate-in-svg.svg >new file mode 100644 >index 0000000000000000000000000000000000000000..c87d895cea8086f20d8c3cf0f7e478a03ccdfb15 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-in-svg.svg >@@ -0,0 +1,3 @@ >+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"> >+ <rect width="100" height="100" fill="black" style="translate: 100px 100px" /> >+</svg> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-transform-order-expected.html b/LayoutTests/transforms/2d/translate-transform-order-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b1168f6ddcbdf0c550c47a73210e7affd6e6fb97 >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-transform-order-expected.html >@@ -0,0 +1,18 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<style> >+ >+div { >+ width: 100px; >+ height: 100px; >+ background-color: black; >+ transform: translate(100px, 100px) scale(2); >+} >+ >+</style> >+</head> >+<body> >+<div></div> >+</body> >+</html> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-transform-order.html b/LayoutTests/transforms/2d/translate-transform-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4a7d27c929827210ca2ad189495bb360296570ad >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-transform-order.html >@@ -0,0 +1,19 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<style> >+ >+div { >+ width: 100px; >+ height: 100px; >+ background-color: black; >+ translate: 100px 100px; >+ transform: scale(2); >+} >+ >+</style> >+</head> >+<body> >+<div></div> >+</body> >+</html> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-transform-origin-order-expected.html b/LayoutTests/transforms/2d/translate-transform-origin-order-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3d19b0f5b3864eefae2ec434a9c6857dd0675b0f >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-transform-origin-order-expected.html >@@ -0,0 +1,19 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<style> >+ >+div { >+ width: 100px; >+ height: 100px; >+ background-color: black; >+ transform: translate(100px, 100px) scale(2); >+ transform-origin: 50px 50px; >+} >+ >+</style> >+</head> >+<body> >+<div></div> >+</body> >+</html> >\ No newline at end of file >diff --git a/LayoutTests/transforms/2d/translate-transform-origin-order.html b/LayoutTests/transforms/2d/translate-transform-origin-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dd7340ec27ef0abd569ea296e2f542b41ee544cd >--- /dev/null >+++ b/LayoutTests/transforms/2d/translate-transform-origin-order.html >@@ -0,0 +1,20 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<style> >+ >+div { >+ width: 100px; >+ height: 100px; >+ background-color: black; >+ translate: 100px 100px; >+ transform: scale(2); >+ transform-origin: 50px 50px; >+} >+ >+</style> >+</head> >+<body> >+<div></div> >+</body> >+</html> >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 216997
:
409747
|
409748
|
409749
|
410132
|
410203
|
410225
|
410233
| 410433