Backed out changeset 0aea246d01bb (bug 928150) for causing build bustages on DOMMatrix.h CLOSED TREEE

This commit is contained in:
arthur.iakab 2019-07-11 06:31:59 +03:00
parent b65864cf84
commit 973b98aac6
12 changed files with 550 additions and 98 deletions

View File

@ -117,23 +117,16 @@ static bool ValidateAndFixupMatrixInit(DOMMatrixInit& aMatrixInit,
#undef Check3DField
}
void DOMMatrixReadOnly::SetDataFromMatrix2DInit(
const DOMMatrix2DInit& aMatrixInit) {
MOZ_ASSERT(Is2D());
mMatrix2D->_11 = aMatrixInit.mM11.Value();
mMatrix2D->_12 = aMatrixInit.mM12.Value();
mMatrix2D->_21 = aMatrixInit.mM21.Value();
mMatrix2D->_22 = aMatrixInit.mM22.Value();
mMatrix2D->_31 = aMatrixInit.mM41.Value();
mMatrix2D->_32 = aMatrixInit.mM42.Value();
}
void DOMMatrixReadOnly::SetDataFromMatrixInit(
const DOMMatrixInit& aMatrixInit) {
void DOMMatrixReadOnly::SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit) {
const bool is2D = aMatrixInit.mIs2D.Value();
MOZ_ASSERT(is2D == Is2D());
if (is2D) {
SetDataFromMatrix2DInit(aMatrixInit);
mMatrix2D->_11 = aMatrixInit.mM11.Value();
mMatrix2D->_12 = aMatrixInit.mM12.Value();
mMatrix2D->_21 = aMatrixInit.mM21.Value();
mMatrix2D->_22 = aMatrixInit.mM22.Value();
mMatrix2D->_31 = aMatrixInit.mM41.Value();
mMatrix2D->_32 = aMatrixInit.mM42.Value();
} else {
mMatrix3D->_11 = aMatrixInit.mM11.Value();
mMatrix3D->_12 = aMatrixInit.mM12.Value();
@ -154,20 +147,6 @@ void DOMMatrixReadOnly::SetDataFromMatrixInit(
}
}
already_AddRefed<DOMMatrixReadOnly> DOMMatrixReadOnly::FromMatrix(
nsISupports* aParent, const DOMMatrix2DInit& aMatrixInit,
ErrorResult& aRv) {
DOMMatrix2DInit matrixInit(aMatrixInit);
if (!ValidateAndFixupMatrix2DInit(matrixInit, aRv)) {
return nullptr;
};
RefPtr<DOMMatrixReadOnly> matrix =
new DOMMatrixReadOnly(aParent, /* is2D */ true);
matrix->SetDataFromMatrix2DInit(matrixInit);
return matrix.forget();
}
already_AddRefed<DOMMatrixReadOnly> DOMMatrixReadOnly::FromMatrix(
nsISupports* aParent, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv) {
DOMMatrixInit matrixInit(aMatrixInit);

View File

@ -29,7 +29,6 @@ class DOMPoint;
class StringOrUnrestrictedDoubleSequence;
struct DOMPointInit;
struct DOMMatrixInit;
struct DOMMatrix2DInit;
class DOMMatrixReadOnly : public nsWrapperCache {
public:
@ -50,11 +49,6 @@ class DOMMatrixReadOnly : public nsWrapperCache {
mMatrix3D = new gfx::Matrix4x4Double(aMatrix);
}
DOMMatrixReadOnly(nsISupports* aParent, const gfx::Matrix& aMatrix)
: mParent(aParent) {
mMatrix2D = new gfx::MatrixDouble(aMatrix);
}
NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(DOMMatrixReadOnly)
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(DOMMatrixReadOnly)
@ -62,10 +56,6 @@ class DOMMatrixReadOnly : public nsWrapperCache {
virtual JSObject* WrapObject(JSContext* cx,
JS::Handle<JSObject*> aGivenProto) override;
static already_AddRefed<DOMMatrixReadOnly> FromMatrix(
nsISupports* aParent, const DOMMatrix2DInit& aMatrixInit,
ErrorResult& aRv);
static already_AddRefed<DOMMatrixReadOnly> FromMatrix(
nsISupports* aParent, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv);
@ -217,9 +207,6 @@ class DOMMatrixReadOnly : public nsWrapperCache {
bool WriteStructuredClone(JSContext* aCx,
JSStructuredCloneWriter* aWriter) const;
const gfx::MatrixDouble* GetInternal2D() const {
return Is2D() ? mMatrix2D : nullptr;
}
protected:
nsCOMPtr<nsISupports> mParent;
@ -233,8 +220,7 @@ class DOMMatrixReadOnly : public nsWrapperCache {
* where all of its members are properly defined.
* The init dictionary's dimension must match the matrix one.
*/
void SetDataFromMatrix2DInit(const DOMMatrix2DInit& aMatrixInit);
void SetDataFromMatrixInit(const DOMMatrixInit& aMatrixInit);
void SetDataFromMatrixInit(DOMMatrixInit& aMatrixInit);
DOMMatrixReadOnly* SetMatrixValue(const nsAString& aTransformList,
ErrorResult& aRv);
@ -267,9 +253,6 @@ class DOMMatrix : public DOMMatrixReadOnly {
DOMMatrix(nsISupports* aParent, const gfx::Matrix4x4& aMatrix)
: DOMMatrixReadOnly(aParent, aMatrix) {}
DOMMatrix(nsISupports* aParent, const gfx::Matrix& aMatrix)
: DOMMatrixReadOnly(aParent, aMatrix) {}
static already_AddRefed<DOMMatrix> FromMatrix(
nsISupports* aParent, const DOMMatrixInit& aMatrixInit, ErrorResult& aRv);

View File

@ -6,7 +6,6 @@
#define BasicRenderingContext2D_h
#include "mozilla/dom/CanvasRenderingContext2DBinding.h"
#include "mozilla/dom/DOMMatrix.h"
namespace mozilla {
namespace dom {
@ -37,12 +36,9 @@ class BasicRenderingContext2D {
virtual void Transform(double aM11, double aM12, double aM21, double aM22,
double aDx, double aDy,
mozilla::ErrorResult& aError) = 0;
virtual already_AddRefed<DOMMatrix> GetTransform(mozilla::ErrorResult& aError) = 0;
virtual void SetTransform(double aM11, double aM12, double aM21, double aM22,
double aDx, double aDy,
mozilla::ErrorResult& aError) = 0;
virtual void SetTransform(const DOMMatrix2DInit& aInit,
mozilla::ErrorResult& aError) = 0;
virtual void ResetTransform(mozilla::ErrorResult& aError) = 0;
//

View File

@ -1794,18 +1794,6 @@ void CanvasRenderingContext2D::Transform(double aM11, double aM12, double aM21,
SetTransformInternal(newMatrix);
}
already_AddRefed<DOMMatrix> CanvasRenderingContext2D::GetTransform(
ErrorResult& aError) {
EnsureTarget();
if (!IsTargetValid()) {
aError.Throw(NS_ERROR_FAILURE);
return nullptr;
}
RefPtr<DOMMatrix> matrix =
new DOMMatrix(GetParentObject(), mTarget->GetTransform());
return matrix.forget();
}
void CanvasRenderingContext2D::SetTransform(double aM11, double aM12,
double aM21, double aM22,
double aDx, double aDy,
@ -1819,21 +1807,6 @@ void CanvasRenderingContext2D::SetTransform(double aM11, double aM12,
SetTransformInternal(Matrix(aM11, aM12, aM21, aM22, aDx, aDy));
}
void CanvasRenderingContext2D::SetTransform(const DOMMatrix2DInit& aInit,
ErrorResult& aError) {
TransformWillUpdate();
if (!IsTargetValid()) {
aError.Throw(NS_ERROR_FAILURE);
return;
}
RefPtr<DOMMatrixReadOnly> matrix =
DOMMatrixReadOnly::FromMatrix(GetParentObject(), aInit, aError);
if (!aError.Failed()) {
SetTransformInternal(Matrix(*(matrix->GetInternal2D())));
}
}
void CanvasRenderingContext2D::SetTransformInternal(const Matrix& aTransform) {
if (!aTransform.IsFinite()) {
return;

View File

@ -61,10 +61,6 @@ class CanvasRenderingContext2DUserData;
class CanvasDrawObserver;
class CanvasShutdownObserver;
class DOMMatrix;
class DOMMatrixReadOnly;
struct DOMMatrix2DInit;
/**
** CanvasRenderingContext2D
**/
@ -95,12 +91,9 @@ class CanvasRenderingContext2D final : public nsICanvasRenderingContextInternal,
void Translate(double aX, double aY, mozilla::ErrorResult& aError) override;
void Transform(double aM11, double aM12, double aM21, double aM22, double aDx,
double aDy, mozilla::ErrorResult& aError) override;
already_AddRefed<DOMMatrix> GetTransform(mozilla::ErrorResult& aError) override;
void SetTransform(double aM11, double aM12, double aM21, double aM22,
double aDx, double aDy,
mozilla::ErrorResult& aError) override;
void SetTransform(const DOMMatrix2DInit& aInit,
mozilla::ErrorResult& aError) override;
void ResetTransform(mozilla::ErrorResult& aError) override;
double GlobalAlpha() override { return CurrentState().globalAlpha; }

View File

@ -309,7 +309,7 @@ test(function() {
m1 = m1.inverse();
var m2 = new DOMMatrix(new Array(16).fill(NaN));
assert_true(CompareMatrix(m1, m2), "Inverting a non-invertible matrix should set all attributes to NaN.")
assert_true(CompareMatrix(m1, m2), "Inverting an invertible matrix should set all attributes to NaN.")
}, "Test that inverting an invertible matrix throws.");
test(function() {

View File

@ -151,6 +151,7 @@ interface CanvasState {
[NoInterfaceObject]
interface CanvasTransform {
// transformations (default transform is the identity matrix)
// NOT IMPLEMENTED attribute SVGMatrix currentTransform;
[Throws, LenientFloat]
void scale(double x, double y);
[Throws, LenientFloat]
@ -159,13 +160,9 @@ interface CanvasTransform {
void translate(double x, double y);
[Throws, LenientFloat]
void transform(double a, double b, double c, double d, double e, double f);
[NewObject, Throws] DOMMatrix getTransform();
[Throws, LenientFloat]
void setTransform(double a, double b, double c, double d, double e, double f);
[Throws]
void setTransform(optional DOMMatrix2DInit transform = {});
[Throws]
void resetTransform();
};

View File

@ -48,15 +48,6 @@ class BaseMatrix {
T components[6];
};
template <class T2>
explicit BaseMatrix(const BaseMatrix<T2>& aOther)
: _11(aOther._11),
_12(aOther._12),
_21(aOther._21),
_22(aOther._22),
_31(aOther._31),
_32(aOther._32) {}
MOZ_ALWAYS_INLINE BaseMatrix Copy() const { return BaseMatrix<T>(*this); }
friend std::ostream& operator<<(std::ostream& aStream,

View File

@ -0,0 +1,4 @@
[2d.voidreturn.html]
[void methods return undefined]
expected: FAIL

View File

@ -0,0 +1,4 @@
[2d.transformation.setTransform.multiple.html]
[Canvas test: 2d.transformation.setTransform.multiple]
expected: FAIL

View File

@ -1,255 +1,775 @@
[DOMMatrix2DInit-validate-fixup.html]
[Sanity check without dictionary]
expected: FAIL
[{m13: 1, is2D: true}]
expected: FAIL
[{m14: 1, is2D: true}]
expected: FAIL
[{m23: 1, is2D: true}]
expected: FAIL
[{m24: 1, is2D: true}]
expected: FAIL
[{m31: 1, is2D: true}]
expected: FAIL
[{m32: 1, is2D: true}]
expected: FAIL
[{m33: 0, is2D: true}]
expected: FAIL
[{m33: -0, is2D: true}]
expected: FAIL
[{m33: -1, is2D: true}]
expected: FAIL
[{m34: 1, is2D: true}]
expected: FAIL
[{m43: 1, is2D: true}]
expected: FAIL
[{m44: 0, is2D: true}]
expected: FAIL
[{}]
expected: FAIL
[{is2D: undefined}]
expected: FAIL
[{a: 1, m11: 1}]
expected: FAIL
[{b: 0, m12: undefined}]
expected: FAIL
[{c: 0, m21: 0}]
expected: FAIL
[{c: 0, m21: -0}]
expected: FAIL
[{c: -0, m21: 0}]
expected: FAIL
[{c: -0, m21: -0}]
expected: FAIL
[{d: Infinity, m22: Infinity}]
expected: FAIL
[{e: -Infinity, m41: -Infinity}]
expected: FAIL
[{f: NaN, m42: NaN}]
expected: FAIL
[{f: NaN, m42: NaN, is2D: true}]
expected: FAIL
[{f: 0, m42: null}]
expected: FAIL
[{f: -0, m42: null}]
expected: FAIL
[{a: 2}]
expected: FAIL
[{b: 2}]
expected: FAIL
[{c: 2}]
expected: FAIL
[{d: 2}]
expected: FAIL
[{e: 2}]
expected: FAIL
[{f: 2}]
expected: FAIL
[{a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}]
expected: FAIL
[{a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}]
expected: FAIL
[{m11: 2}]
expected: FAIL
[{m12: 2}]
expected: FAIL
[{m21: 2}]
expected: FAIL
[{m22: 2}]
expected: FAIL
[{m41: 2}]
expected: FAIL
[{m42: 2}]
expected: FAIL
[{m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}]
expected: FAIL
[{m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}]
expected: FAIL
[{m13: 0, is2D: true}]
expected: FAIL
[{m13: -0, is2D: true}]
expected: FAIL
[{m14: 0, is2D: true}]
expected: FAIL
[{m14: -0, is2D: true}]
expected: FAIL
[{m23: 0, is2D: true}]
expected: FAIL
[{m23: -0, is2D: true}]
expected: FAIL
[{m24: 0, is2D: true}]
expected: FAIL
[{m24: -0, is2D: true}]
expected: FAIL
[{m31: 0, is2D: true}]
expected: FAIL
[{m31: -0, is2D: true}]
expected: FAIL
[{m32: 0, is2D: true}]
expected: FAIL
[{m32: -0, is2D: true}]
expected: FAIL
[{m33: 1, is2D: true}]
expected: FAIL
[{m34: 0, is2D: true}]
expected: FAIL
[{m34: -0, is2D: true}]
expected: FAIL
[{m43: 0, is2D: true}]
expected: FAIL
[{m43: -0, is2D: true}]
expected: FAIL
[{m44: 1, is2D: true}]
expected: FAIL
[{is2D: true}]
expected: FAIL
[{m13: 1, is2D: false}]
expected: FAIL
[{m14: 1, is2D: false}]
expected: FAIL
[{m23: 1, is2D: false}]
expected: FAIL
[{m24: 1, is2D: false}]
expected: FAIL
[{m31: 1, is2D: false}]
expected: FAIL
[{m32: 1, is2D: false}]
expected: FAIL
[{m33: 0, is2D: false}]
expected: FAIL
[{m33: -0, is2D: false}]
expected: FAIL
[{m33: -1, is2D: false}]
expected: FAIL
[{m34: 1, is2D: false}]
expected: FAIL
[{m43: 1, is2D: false}]
expected: FAIL
[{m44: 0, is2D: false}]
expected: FAIL
[{m13: 1}]
expected: FAIL
[{m14: 1}]
expected: FAIL
[{m23: 1}]
expected: FAIL
[{m24: 1}]
expected: FAIL
[{m31: 1}]
expected: FAIL
[{m32: 1}]
expected: FAIL
[{m33: 0}]
expected: FAIL
[{m34: 1}]
expected: FAIL
[{m43: 1}]
expected: FAIL
[{m44: 0}]
expected: FAIL
[{is2D: false}]
expected: FAIL
[{is2D: null}]
expected: FAIL
[setTransform (Sanity check without dictionary)]
expected: FAIL
[addPath (Sanity check without second parameter)]
expected: FAIL
[setTransform({m13: 1, is2D: true})]
expected: FAIL
[addPath({m13: 1, is2D: true})]
expected: FAIL
[setTransform({m14: 1, is2D: true})]
expected: FAIL
[addPath({m14: 1, is2D: true})]
expected: FAIL
[setTransform({m23: 1, is2D: true})]
expected: FAIL
[addPath({m23: 1, is2D: true})]
expected: FAIL
[setTransform({m24: 1, is2D: true})]
expected: FAIL
[addPath({m24: 1, is2D: true})]
expected: FAIL
[setTransform({m31: 1, is2D: true})]
expected: FAIL
[addPath({m31: 1, is2D: true})]
expected: FAIL
[setTransform({m32: 1, is2D: true})]
expected: FAIL
[addPath({m32: 1, is2D: true})]
expected: FAIL
[setTransform({m33: 0, is2D: true})]
expected: FAIL
[addPath({m33: 0, is2D: true})]
expected: FAIL
[setTransform({m33: -0, is2D: true})]
expected: FAIL
[addPath({m33: -0, is2D: true})]
expected: FAIL
[setTransform({m33: -1, is2D: true})]
expected: FAIL
[addPath({m33: -1, is2D: true})]
expected: FAIL
[setTransform({m34: 1, is2D: true})]
expected: FAIL
[addPath({m34: 1, is2D: true})]
expected: FAIL
[setTransform({m43: 1, is2D: true})]
expected: FAIL
[addPath({m43: 1, is2D: true})]
expected: FAIL
[setTransform({m44: 0, is2D: true})]
expected: FAIL
[addPath({m44: 0, is2D: true})]
expected: FAIL
[setTransform({})]
expected: FAIL
[addPath({})]
expected: FAIL
[setTransform({is2D: undefined})]
expected: FAIL
[addPath({is2D: undefined})]
expected: FAIL
[setTransform({a: 1, m11: 1})]
expected: FAIL
[addPath({a: 1, m11: 1})]
expected: FAIL
[setTransform({b: 0, m12: undefined})]
expected: FAIL
[addPath({b: 0, m12: undefined})]
expected: FAIL
[setTransform({c: 0, m21: 0})]
expected: FAIL
[addPath({c: 0, m21: 0})]
expected: FAIL
[setTransform({c: 0, m21: -0})]
expected: FAIL
[addPath({c: 0, m21: -0})]
expected: FAIL
[setTransform({c: -0, m21: 0})]
expected: FAIL
[addPath({c: -0, m21: 0})]
expected: FAIL
[setTransform({c: -0, m21: -0})]
expected: FAIL
[addPath({c: -0, m21: -0})]
expected: FAIL
[setTransform({d: Infinity, m22: Infinity})]
expected: FAIL
[addPath({d: Infinity, m22: Infinity})]
expected: FAIL
[setTransform({e: -Infinity, m41: -Infinity})]
expected: FAIL
[addPath({e: -Infinity, m41: -Infinity})]
expected: FAIL
[setTransform({f: NaN, m42: NaN})]
expected: FAIL
[addPath({f: NaN, m42: NaN})]
expected: FAIL
[setTransform({f: NaN, m42: NaN, is2D: true})]
expected: FAIL
[addPath({f: NaN, m42: NaN, is2D: true})]
expected: FAIL
[setTransform({f: 0, m42: null})]
expected: FAIL
[addPath({f: 0, m42: null})]
expected: FAIL
[setTransform({f: -0, m42: null})]
expected: FAIL
[addPath({f: -0, m42: null})]
expected: FAIL
[setTransform({a: 2})]
expected: FAIL
[addPath({a: 2})]
expected: FAIL
[setTransform({b: 2})]
expected: FAIL
[addPath({b: 2})]
expected: FAIL
[setTransform({c: 2})]
expected: FAIL
[addPath({c: 2})]
expected: FAIL
[setTransform({d: 2})]
expected: FAIL
[addPath({d: 2})]
expected: FAIL
[setTransform({e: 2})]
expected: FAIL
[addPath({e: 2})]
expected: FAIL
[setTransform({f: 2})]
expected: FAIL
[addPath({f: 2})]
expected: FAIL
[setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0})]
expected: FAIL
[addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0})]
expected: FAIL
[setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true})]
expected: FAIL
[addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true})]
expected: FAIL
[setTransform({m11: 2})]
expected: FAIL
[addPath({m11: 2})]
expected: FAIL
[setTransform({m12: 2})]
expected: FAIL
[addPath({m12: 2})]
expected: FAIL
[setTransform({m21: 2})]
expected: FAIL
[addPath({m21: 2})]
expected: FAIL
[setTransform({m22: 2})]
expected: FAIL
[addPath({m22: 2})]
expected: FAIL
[setTransform({m41: 2})]
expected: FAIL
[addPath({m41: 2})]
expected: FAIL
[setTransform({m42: 2})]
expected: FAIL
[addPath({m42: 2})]
expected: FAIL
[setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})]
expected: FAIL
[addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0})]
expected: FAIL
[setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true})]
expected: FAIL
[addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true})]
expected: FAIL
[setTransform({m13: 0, is2D: true})]
expected: FAIL
[addPath({m13: 0, is2D: true})]
expected: FAIL
[setTransform({m13: -0, is2D: true})]
expected: FAIL
[addPath({m13: -0, is2D: true})]
expected: FAIL
[setTransform({m14: 0, is2D: true})]
expected: FAIL
[addPath({m14: 0, is2D: true})]
expected: FAIL
[setTransform({m14: -0, is2D: true})]
expected: FAIL
[addPath({m14: -0, is2D: true})]
expected: FAIL
[setTransform({m23: 0, is2D: true})]
expected: FAIL
[addPath({m23: 0, is2D: true})]
expected: FAIL
[setTransform({m23: -0, is2D: true})]
expected: FAIL
[addPath({m23: -0, is2D: true})]
expected: FAIL
[setTransform({m24: 0, is2D: true})]
expected: FAIL
[addPath({m24: 0, is2D: true})]
expected: FAIL
[setTransform({m24: -0, is2D: true})]
expected: FAIL
[addPath({m24: -0, is2D: true})]
expected: FAIL
[setTransform({m31: 0, is2D: true})]
expected: FAIL
[addPath({m31: 0, is2D: true})]
expected: FAIL
[setTransform({m31: -0, is2D: true})]
expected: FAIL
[addPath({m31: -0, is2D: true})]
expected: FAIL
[setTransform({m32: 0, is2D: true})]
expected: FAIL
[addPath({m32: 0, is2D: true})]
expected: FAIL
[setTransform({m32: -0, is2D: true})]
expected: FAIL
[addPath({m32: -0, is2D: true})]
expected: FAIL
[setTransform({m33: 1, is2D: true})]
expected: FAIL
[addPath({m33: 1, is2D: true})]
expected: FAIL
[setTransform({m34: 0, is2D: true})]
expected: FAIL
[addPath({m34: 0, is2D: true})]
expected: FAIL
[setTransform({m34: -0, is2D: true})]
expected: FAIL
[addPath({m34: -0, is2D: true})]
expected: FAIL
[setTransform({m43: 0, is2D: true})]
expected: FAIL
[addPath({m43: 0, is2D: true})]
expected: FAIL
[setTransform({m43: -0, is2D: true})]
expected: FAIL
[addPath({m43: -0, is2D: true})]
expected: FAIL
[setTransform({m44: 1, is2D: true})]
expected: FAIL
[addPath({m44: 1, is2D: true})]
expected: FAIL
[setTransform({is2D: true})]
expected: FAIL
[addPath({is2D: true})]
expected: FAIL
[setTransform({m13: 1, is2D: false})]
expected: FAIL
[addPath({m13: 1, is2D: false})]
expected: FAIL
[setTransform({m14: 1, is2D: false})]
expected: FAIL
[addPath({m14: 1, is2D: false})]
expected: FAIL
[setTransform({m23: 1, is2D: false})]
expected: FAIL
[addPath({m23: 1, is2D: false})]
expected: FAIL
[setTransform({m24: 1, is2D: false})]
expected: FAIL
[addPath({m24: 1, is2D: false})]
expected: FAIL
[setTransform({m31: 1, is2D: false})]
expected: FAIL
[addPath({m31: 1, is2D: false})]
expected: FAIL
[setTransform({m32: 1, is2D: false})]
expected: FAIL
[addPath({m32: 1, is2D: false})]
expected: FAIL
[setTransform({m33: 0, is2D: false})]
expected: FAIL
[addPath({m33: 0, is2D: false})]
expected: FAIL
[setTransform({m33: -0, is2D: false})]
expected: FAIL
[addPath({m33: -0, is2D: false})]
expected: FAIL
[setTransform({m33: -1, is2D: false})]
expected: FAIL
[addPath({m33: -1, is2D: false})]
expected: FAIL
[setTransform({m34: 1, is2D: false})]
expected: FAIL
[addPath({m34: 1, is2D: false})]
expected: FAIL
[setTransform({m43: 1, is2D: false})]
expected: FAIL
[addPath({m43: 1, is2D: false})]
expected: FAIL
[setTransform({m44: 0, is2D: false})]
expected: FAIL
[addPath({m44: 0, is2D: false})]
expected: FAIL
[setTransform({m13: 1})]
expected: FAIL
[addPath({m13: 1})]
expected: FAIL
[setTransform({m14: 1})]
expected: FAIL
[addPath({m14: 1})]
expected: FAIL
[setTransform({m23: 1})]
expected: FAIL
[addPath({m23: 1})]
expected: FAIL
[setTransform({m24: 1})]
expected: FAIL
[addPath({m24: 1})]
expected: FAIL
[setTransform({m31: 1})]
expected: FAIL
[addPath({m31: 1})]
expected: FAIL
[setTransform({m32: 1})]
expected: FAIL
[addPath({m32: 1})]
expected: FAIL
[setTransform({m33: 0})]
expected: FAIL
[addPath({m33: 0})]
expected: FAIL
[setTransform({m34: 1})]
expected: FAIL
[addPath({m34: 1})]
expected: FAIL
[setTransform({m43: 1})]
expected: FAIL
[addPath({m43: 1})]
expected: FAIL
[setTransform({m44: 0})]
expected: FAIL
[addPath({m44: 0})]
expected: FAIL
[setTransform({is2D: false})]
expected: FAIL
[addPath({is2D: false})]
expected: FAIL
[setTransform({is2D: null})]
expected: FAIL
[addPath({is2D: null})]
expected: FAIL

View File

@ -532,6 +532,15 @@ prefs: [dom.security.featurePolicy.enabled:true]
[VideoTrack interface: attribute selected]
expected: FAIL
[CanvasRenderingContext2D interface: operation getTransform()]
expected: FAIL
[CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)]
expected: FAIL
[CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit)]
expected: FAIL
[CanvasRenderingContext2D interface: attribute imageSmoothingQuality]
expected: FAIL
@ -547,6 +556,9 @@ prefs: [dom.security.featurePolicy.enabled:true]
[CanvasRenderingContext2D interface: attribute direction]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingQuality" with the proper type]
expected: FAIL