1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* 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();
- }
|