1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * The origin of this IDL file is
7 * https://compat.spec.whatwg.org/#webkitcssmatrix-interface
8 */
9
10[Constructor,
11 Constructor(DOMString transformList),
12 Constructor(WebKitCSSMatrix other),
13 Exposed=Window,
14 Func="mozilla::dom::WebKitCSSMatrix::FeatureEnabled"]
15interface WebKitCSSMatrix : DOMMatrix {
16    // Mutable transform methods
17    [Throws]
18    WebKitCSSMatrix setMatrixValue(DOMString transformList);
19
20    // Immutable transform methods
21    WebKitCSSMatrix multiply(WebKitCSSMatrix other);
22    [Throws]
23    WebKitCSSMatrix inverse();
24    WebKitCSSMatrix translate(optional unrestricted double tx = 0,
25                              optional unrestricted double ty = 0,
26                              optional unrestricted double tz = 0);
27    WebKitCSSMatrix scale(optional unrestricted double scaleX = 1,
28                          optional unrestricted double scaleY,
29                          optional unrestricted double scaleZ = 1);
30    WebKitCSSMatrix rotate(optional unrestricted double rotX = 0,
31                           optional unrestricted double rotY,
32                           optional unrestricted double rotZ);
33    WebKitCSSMatrix rotateAxisAngle(optional unrestricted double x = 0,
34                                    optional unrestricted double y = 0,
35                                    optional unrestricted double z = 0,
36                                    optional unrestricted double angle = 0);
37    WebKitCSSMatrix skewX(optional unrestricted double sx = 0);
38    WebKitCSSMatrix skewY(optional unrestricted double sy = 0);
39};
40