aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/CMakeLists.txt8
-rw-r--r--components/script/build.rs9
-rw-r--r--components/script/dom/bindings/codegen/GlobalGen.py61
-rw-r--r--components/script/dom/bindings/codegen/parser/WebIDL.py2
-rw-r--r--components/script/dom/webidls/CSSStyleDeclaration.webidl477
-rw-r--r--components/style/Cargo.toml2
-rw-r--r--components/style/properties/build.py9
7 files changed, 83 insertions, 485 deletions
diff --git a/components/script/CMakeLists.txt b/components/script/CMakeLists.txt
index 5cf4071a144..3bb3f2d5dbb 100644
--- a/components/script/CMakeLists.txt
+++ b/components/script/CMakeLists.txt
@@ -41,13 +41,11 @@ set(globalgen_deps
${bindings_src}/Configuration.py
${bindings_src}/CodegenRust.py
${bindings_src}/parser/WebIDL.py
+ ${PROJECT_BINARY_DIR}/css_properties.json
)
set(bindinggen_deps
+ ${globalgen_deps}
${bindings_src}/BindingGen.py
- ${bindings_src}/Bindings.conf
- ${bindings_src}/Configuration.py
- ${bindings_src}/CodegenRust.py
- ${bindings_src}/parser/WebIDL.py
)
add_custom_command(
@@ -71,6 +69,7 @@ add_custom_command(
${bindings_src}/Bindings.conf
.
${PROJECT_SOURCE_DIR}
+ ${PROJECT_BINARY_DIR}/css_properties.json
DEPENDS Bindings _cache ${globalgen_deps} ${webidls}
VERBATIM
)
@@ -85,6 +84,7 @@ add_custom_command(
${bindings_src}/Bindings.conf
.
${PROJECT_SOURCE_DIR}
+ ${PROJECT_BINARY_DIR}/css_properties.json
DEPENDS _cache ${globalgen_deps} ${webidls}
VERBATIM
)
diff --git a/components/script/build.rs b/components/script/build.rs
index 1b8ed578387..1af9fbf7648 100644
--- a/components/script/build.rs
+++ b/components/script/build.rs
@@ -15,6 +15,13 @@ use std::time::Instant;
fn main() {
let start = Instant::now();
+ let style_out_dir = PathBuf::from(env::var_os("DEP_SERVO_STYLE_CRATE_OUT_DIR").unwrap());
+ let out_dir = PathBuf::from(env::var_os("OUT_DIR").unwrap());
+ let build_dir = out_dir.join("build");
+ let json = "css_properties.json";
+ let _ = std::fs::create_dir(&build_dir); // Ignore errors: they most likely indicate it already exists
+ std::fs::copy(style_out_dir.join(json), build_dir.join(json)).unwrap();
+
// This must use the Ninja generator -- it's the only one that
// parallelizes cmake's output properly. (Cmake generates
// separate makefiles, each of which try to build
@@ -35,7 +42,7 @@ fn main() {
start.elapsed().as_secs()
);
- let json = PathBuf::from(env::var_os("OUT_DIR").unwrap())
+ let json = out_dir
.join("build")
.join("InterfaceObjectMapData.json");
let json: Value = serde_json::from_reader(File::open(&json).unwrap()).unwrap();
diff --git a/components/script/dom/bindings/codegen/GlobalGen.py b/components/script/dom/bindings/codegen/GlobalGen.py
index 20dea28a9d1..9fe736e71fd 100644
--- a/components/script/dom/bindings/codegen/GlobalGen.py
+++ b/components/script/dom/bindings/codegen/GlobalGen.py
@@ -7,6 +7,7 @@
import sys
import os
+import json
sys.path.append(os.path.join(".", "parser"))
sys.path.append(os.path.join(".", "ply"))
import WebIDL
@@ -28,7 +29,7 @@ def generate_file(config, name, filename):
def main():
# Parse arguments.
from optparse import OptionParser
- usageString = "usage: %prog [options] configFile outputdir webidldir [files]"
+ usageString = "usage: %prog [options] configFile outputdir webidldir cssProperties.json [files]"
o = OptionParser(usage=usageString)
o.add_option("--cachedir", dest='cachedir', default=None,
help="Directory in which to cache lex/parse tables.")
@@ -44,8 +45,9 @@ def main():
configFile = args[0]
outputdir = args[1]
baseDir = args[2]
+ css_properties_json = args[3]
if options.filelist is not None:
- fileList = (l.strip() for l in open(options.filelist).xreadlines())
+ fileList = [l.strip() for l in open(options.filelist).xreadlines()]
else:
fileList = args[3:]
@@ -56,6 +58,9 @@ def main():
with open(fullPath, 'rb') as f:
lines = f.readlines()
parser.parse(''.join(lines), fullPath)
+
+ add_css_properties_attributes(fileList, css_properties_json, parser)
+
parserResults = parser.finish()
if not options.only_html:
@@ -86,5 +91,57 @@ def main():
for name, filename in to_generate:
generate_file(config, name, os.path.join(outputdir, filename))
+
+def add_css_properties_attributes(webidl_files, css_properties_json, parser):
+ for filename in webidl_files:
+ if os.path.basename(filename) == "CSSStyleDeclaration.webidl":
+ break
+ else:
+ return
+
+ css_properties = json.load(open(css_properties_json, "rb"))
+ idl = "partial interface CSSStyleDeclaration {\n%s\n};\n" % "\n".join(
+ " [%sCEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString %s;" % (
+ ('Pref="%s", ' % pref if pref else ""),
+ attribute_name
+ )
+ for (property_name, pref) in css_properties
+ for attribute_name in attribute_names(property_name)
+ )
+ parser.parse(idl.encode("utf-8"), "CSSStyleDeclaration_generated.webidl")
+
+
+def attribute_names(property_name):
+ # https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-dashed-attribute
+ if property_name != "float":
+ yield property_name
+ else:
+ yield "_float"
+
+ # https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-camel-cased-attribute
+ if "-" in property_name:
+ yield "".join(camel_case(property_name))
+
+ # https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-webkit-cased-attribute
+ if property_name.startswith("-webkit-"):
+ yield "".join(camel_case(property_name), True)
+
+
+# https://drafts.csswg.org/cssom/#css-property-to-idl-attribute
+def camel_case(chars, webkit_prefixed=False):
+ if webkit_prefixed:
+ chars = chars[1:]
+ next_is_uppercase = False
+ for c in chars:
+ if c == '-':
+ next_is_uppercase = True
+ elif next_is_uppercase:
+ next_is_uppercase = False
+ # Should be ASCII-uppercase, but all non-custom CSS property names are within ASCII
+ yield c.upper()
+ else:
+ yield c
+
+
if __name__ == '__main__':
main()
diff --git a/components/script/dom/bindings/codegen/parser/WebIDL.py b/components/script/dom/bindings/codegen/parser/WebIDL.py
index 7ea8423e860..edfdcf9d745 100644
--- a/components/script/dom/bindings/codegen/parser/WebIDL.py
+++ b/components/script/dom/bindings/codegen/parser/WebIDL.py
@@ -3344,7 +3344,7 @@ class IDLBuiltinType(IDLType):
[self.location, attribute.location])
assert not self.nullable()
if not attribute.hasValue():
- raise WebIDLError("[TreatNullAs] must take an identifier argument"
+ raise WebIDLError("[TreatNullAs] must take an identifier argument",
[attribute.location])
value = attribute.value()
if value != 'EmptyString':
diff --git a/components/script/dom/webidls/CSSStyleDeclaration.webidl b/components/script/dom/webidls/CSSStyleDeclaration.webidl
index a49d3ec465a..7865195360f 100644
--- a/components/script/dom/webidls/CSSStyleDeclaration.webidl
+++ b/components/script/dom/webidls/CSSStyleDeclaration.webidl
@@ -26,479 +26,4 @@ interface CSSStyleDeclaration {
attribute DOMString cssFloat;
};
-partial interface CSSStyleDeclaration {
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString all;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundPosition;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-position;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundPositionX;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-position-x;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundPositionY;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-position-y;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundRepeat;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-repeat;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundImage;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-image;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundAttachment;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-attachment;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundOrigin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-origin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backgroundClip;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString background-clip;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderSpacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-spacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottomColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottomLeftRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom-left-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottomRightRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom-right-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottomStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBottomWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-bottom-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderLeft;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-left;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderLeftColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-left-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderLeftStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-left-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderLeftWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-left-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderRight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-right;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderRightColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-right-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderRightStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-right-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderRightWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-right-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTop;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTopColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTopLeftRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top-left-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTopRightRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top-right-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTopStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderTopWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-top-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image-source;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImageSource;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image-slice;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImageSlice;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image-repeat;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImageRepeat;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image-outset;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImageOutset;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImageWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-image;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderImage;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-start-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockStartColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-start-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockStartWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-start-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockStartStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-end-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockEndColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-end-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockEndWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-end-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockEndStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlockStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-block;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderBlock;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-start-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineStartColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-start-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineStartWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-start-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineStartStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-end-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineEndColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-end-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineEndWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-end-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineEndStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInlineEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-inline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderInline;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString content;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString color;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString display;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString opacity;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString visibility;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString cursor;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString boxSizing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString box-sizing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString boxShadow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString box-shadow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textShadow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-shadow;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString _float;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString clear;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString clip;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transform;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transformOrigin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transform-origin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString perspective;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString perspectiveOrigin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString perspective-origin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transformStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transform-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backfaceVisibility;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString backface-visibility;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString rotate;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString scale;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString translate;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString direction;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString unicodeBidi;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString unicode-bidi;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString filter;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString lineHeight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString line-height;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString mixBlendMode;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString mix-blend-mode;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString verticalAlign;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString vertical-align;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString listStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString list-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString listStylePosition;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString list-style-position;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString listStyleType;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString list-style-type;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString listStyleImage;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString list-style-image;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString quotes;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString counterIncrement;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString counter-increment;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString counterReset;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString counter-reset;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflowBlock;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow-block;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflowInline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow-inline;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflowX;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow-x;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflowY;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow-y;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflowWrap;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString overflow-wrap;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString tableLayout;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString table-layout;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderCollapse;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-collapse;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString emptyCells;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString empty-cells;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString captionSide;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString caption-side;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString whiteSpace;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString white-space;
-
- [Pref="layout.writing-mode.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString writingMode;
- [Pref="layout.writing-mode.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString writing-mode;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString letterSpacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString letter-spacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString wordBreak;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString word-break;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString wordSpacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString word-spacing;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString wordWrap;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString word-wrap;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textOverflow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-overflow;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textAlign;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-align;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textDecoration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-decoration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textDecorationLine;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-decoration-line;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textIndent;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-indent;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textJustify;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-justify;
- // [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textOrientation;
- // [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-orientation;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textRendering;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-rendering;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString textTransform;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString text-transform;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontFamily;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-family;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontStretch;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-stretch;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontVariant;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-variant;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontVariantCaps;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-variant-caps;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString fontWeight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString font-weight;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginBottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-bottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginLeft;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-left;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginRight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-right;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginTop;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-top;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-block-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginBlockStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-block-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginBlockEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-block;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginBlock;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-inline-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginInlineStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-inline-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginInlineEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString margin-inline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString marginInline;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingBottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-bottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingLeft;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-left;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingRight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-right;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingTop;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-top;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-block-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingBlockStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-block-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingBlockEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-block;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingBlock;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-inline-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingInlineStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-inline-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingInlineEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString padding-inline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString paddingInline;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outlineColor;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outline-color;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outlineStyle;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outline-style;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outlineWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outline-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outlineOffset;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString outline-offset;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString position;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString pointerEvents;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString pointer-events;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString top;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString right;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString left;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString bottom;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offset-block-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offsetBlockStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offset-block-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offsetBlockEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offset-inline-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offsetInlineStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offset-inline-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString offsetInlineEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-block-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetBlockStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-block-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetBlockEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-block;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetBlock;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-inline-start;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetInlineStart;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-inline-end;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetInlineEnd;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inset-inline;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString insetInline;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString height;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString minHeight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString min-height;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString maxHeight;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString max-height;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString minWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString min-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString maxWidth;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString max-width;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString block-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString blockSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inline-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString inlineSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString max-block-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString maxBlockSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString max-inline-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString maxInlineSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString min-block-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString minBlockSize;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString min-inline-size;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString minInlineSize;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString zIndex;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString z-index;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString imageRendering;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString image-rendering;
-
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString columnCount;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString column-count;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString columnWidth;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString column-width;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString columns;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString columnGap;
- [Pref="layout.columns.enabled", CEReactions, SetterThrows]
- attribute [TreatNullAs=EmptyString] DOMString column-gap;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transition;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transitionDuration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transition-duration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transitionTimingFunction;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transition-timing-function;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transitionProperty;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transition-property;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transitionDelay;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString transition-delay;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexFlow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-flow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexDirection;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-direction;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexWrap;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-wrap;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString justifyContent;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString justify-content;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString alignItems;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString align-items;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString alignContent;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString align-content;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString order;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexBasis;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-basis;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexGrow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-grow;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flexShrink;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString flex-shrink;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString alignSelf;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString align-self;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-name;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationName;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-duration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationDuration;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-timing-function;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationTimingFunction;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-iteration-count;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationIterationCount;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-direction;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationDirection;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-play-state;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationPlayState;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-fill-mode;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationFillMode;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animation-delay;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString animationDelay;
-
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-end-end-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderEndEndRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-start-end-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderStartEndRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-start-start-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderStartStartRadius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border-end-start-radius;
- [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString borderEndStartRadius;
-
-};
+// Auto-generated in GlobalGen.py: accessors for each CSS property
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index d276c5fbc6c..acce17d243b 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -8,7 +8,7 @@ publish = false
build = "build.rs"
# https://github.com/rust-lang/cargo/issues/3544
-links = "for some reason the links key is required to pass data around between build scripts"
+links = "servo_style_crate"
[lib]
name = "style"
diff --git a/components/style/properties/build.py b/components/style/properties/build.py
index 1967ed3238a..6ee5220857c 100644
--- a/components/style/properties/build.py
+++ b/components/style/properties/build.py
@@ -94,6 +94,15 @@ def main():
template = os.path.join(BASE, "gecko.mako.rs")
rust = render(template, data=properties)
write(OUT_DIR, "gecko_properties.rs", rust)
+
+ if product == "servo":
+ names_and_prefs = [
+ (prop.name, prop.servo_pref)
+ for p in properties.longhands + properties.shorthands
+ if p.enabled_in_content()
+ for prop in [p] + p.alias
+ ]
+ write(OUT_DIR, "css_properties.json", json.dumps(names_and_prefs, indent=4))
elif output == "geckolib":
if len(sys.argv) < 4:
abort(usage)