diff options
Diffstat (limited to 'devtools/shared/css/properties-db.js')
-rw-r--r-- | devtools/shared/css/properties-db.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/devtools/shared/css/properties-db.js b/devtools/shared/css/properties-db.js new file mode 100644 index 000000000..32454482a --- /dev/null +++ b/devtools/shared/css/properties-db.js @@ -0,0 +1,100 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/** + * This file contains static lists of CSS properties and values. Some of the small lists + * are edited manually, while the larger ones are generated by a script. The comments + * above each list indicates how it should be updated. + */ + +let db; + +// Allow this require to fail in case it's been deleted in the process of running +// `mach devtools-css-db` to regenerate the database. +try { + db = require("devtools/shared/css/generated/properties-db"); +} catch (error) { + console.error(`If this error is being displayed and "mach devtools-css-db" is not ` + + `being run, then it needs to be fixed.`, error); + db = { + CSS_PROPERTIES: {}, + PSEUDO_ELEMENTS: [] + }; +} + +/** + * All CSS types that properties can support. This list can be manually edited. + */ +exports.CSS_TYPES = { + "ANGLE": 1, + "COLOR": 2, + "FREQUENCY": 3, + "GRADIENT": 4, + "IMAGE_RECT": 5, + "LENGTH": 6, + "NUMBER": 7, + "PERCENTAGE": 8, + "TIME": 9, + "TIMING_FUNCTION": 10, + "URL": 11, +}; + +/** + * All CSS <angle> types that properties can support. This list can be manually edited. + */ +exports.CSS_ANGLEUNIT = { + "deg": "deg", + "rad": "rad", + "grad": "grad", + "turn": "turn" +}; + +/** + * All cubic-bezier CSS timing-function names. This list can be manually edited. + */ +exports.BEZIER_KEYWORDS = ["linear", "ease-in-out", "ease-in", "ease-out", "ease"]; + +/** + * Functions that accept a color argument. This list can be manually edited. + */ +exports.COLOR_TAKING_FUNCTIONS = ["linear-gradient", "-moz-linear-gradient", + "repeating-linear-gradient", + "-moz-repeating-linear-gradient", "radial-gradient", + "-moz-radial-gradient", "repeating-radial-gradient", + "-moz-repeating-radial-gradient", "drop-shadow"]; + +/** + * Functions that accept an angle argument. This list can be manually edited. + */ +exports.ANGLE_TAKING_FUNCTIONS = ["linear-gradient", "-moz-linear-gradient", + "repeating-linear-gradient", + "-moz-repeating-linear-gradient", "rotate", "rotateX", + "rotateY", "rotateZ", "rotate3d", "skew", "skewX", + "skewY", "hue-rotate"]; + +/** + * The list of all CSS Pseudo Elements. + * + * This list can be updated with `mach devtools-css-db`. + */ +exports.PSEUDO_ELEMENTS = db.PSEUDO_ELEMENTS; + +/** + * A list of CSS Properties and their various characteristics. This is used on the + * client-side when the CssPropertiesActor is not found, or when the client and server + * are the same version. A single property takes the form: + * + * "animation": { + * "isInherited": false, + * "supports": [ 7, 9, 10 ] + * } + */ +exports.CSS_PROPERTIES = db.CSS_PROPERTIES; + +exports.CSS_PROPERTIES_DB = { + properties: db.CSS_PROPERTIES, + pseudoElements: db.PSEUDO_ELEMENTS +}; |