diff options
Diffstat (limited to 'devtools/shared/css/generated/generate-properties-db.js')
-rw-r--r-- | devtools/shared/css/generated/generate-properties-db.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/devtools/shared/css/generated/generate-properties-db.js b/devtools/shared/css/generated/generate-properties-db.js new file mode 100644 index 000000000..ad8dfb0ab --- /dev/null +++ b/devtools/shared/css/generated/generate-properties-db.js @@ -0,0 +1,55 @@ +/* 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 is an xpcshell script that runs to generate a static list of CSS properties + * as known by the platform. It is run from ./mach_commands.py by running + * `mach devtools-css-db`. + */ +var {require} = Components.utils.import("resource://devtools/shared/Loader.jsm", {}); +var {generateCssProperties} = require("devtools/server/actors/css-properties"); + +// xpcshell can output extra information, so place some delimiter text between +// the output of the css properties database. +dump("DEVTOOLS_CSS_DB_DELIMITER"); + +// Output JSON +dump(JSON.stringify({ + cssProperties: cssProperties(), + pseudoElements: pseudoElements() +})); + +dump("DEVTOOLS_CSS_DB_DELIMITER"); + +/* + * 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 ] + * } + */ +function cssProperties() { + const properties = generateCssProperties(); + for (let key in properties) { + // Ignore OS-specific properties + if (key.indexOf("-moz-osx-") !== -1) { + properties[key] = undefined; + } + } + return properties; +} + +/** + * The list of all CSS Pseudo Elements. + */ +function pseudoElements() { + const {classes: Cc, interfaces: Ci} = Components; + const domUtils = Cc["@mozilla.org/inspector/dom-utils;1"] + .getService(Ci.inIDOMUtils); + return domUtils.getCSSPseudoElementNames(); +} |