diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml index 1f6027eab24..9fd616bd679 100644 --- a/components/layout/Cargo.toml +++ b/components/layout/Cargo.toml @@ -49,7 +49,7 @@ serde_json = "1.0" servo_config = {path = "../config"} servo_url = {path = "../url"} smallvec = { version = "0.6", features = ["std", "union"] } -style = {path = "../style", features = ["servo"]} +style = {path = "../style", features = ["servo", "servo-layout-2013"]} style_traits = {path = "../style_traits"} unicode-bidi = {version = "0.3", features = ["with_serde"]} unicode-script = {version = "0.3", features = ["harfbuzz"]} diff --git a/components/script/CMakeLists.txt b/components/script/CMakeLists.txt index 5cf4071a144..4ad45327d29 100644 --- a/components/script/CMakeLists.txt +++ b/components/script/CMakeLists.txt @@ -43,11 +43,8 @@ set(globalgen_deps ${bindings_src}/parser/WebIDL.py ) 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,26 +68,12 @@ add_custom_command( ${bindings_src}/Bindings.conf . ${PROJECT_SOURCE_DIR} - DEPENDS Bindings _cache ${globalgen_deps} ${webidls} + ${PROJECT_BINARY_DIR}/../css-properties.json + ${PROJECT_SOURCE_DIR}/../../target/doc/servo + DEPENDS Bindings _cache ${globalgen_deps} ${webidls} ${PROJECT_BINARY_DIR}/../css-properties.json VERBATIM ) -add_custom_command( - OUTPUT apis.html - COMMAND ${PYTHON_EXECUTABLE} -B ${bindings_src}/pythonpath.py -I ${bindings_src}/parser -I ${bindings_src}/ply - ${bindings_src}/GlobalGen.py - --cachedir=_cache - --filelist=webidls.list - --only-html - ${bindings_src}/Bindings.conf - . - ${PROJECT_SOURCE_DIR} - DEPENDS _cache ${globalgen_deps} ${webidls} - VERBATIM - ) - -add_custom_target(supported-apis DEPENDS apis.html) - # We need an intermediate custom target for this, due to this misfeature: # > If any dependency is an OUTPUT of another custom command in the same # > directory CMake automatically brings the other custom command into the diff --git a/components/script/build.rs b/components/script/build.rs index 1b8ed578387..bf496fb48f3 100644 --- a/components/script/build.rs +++ b/components/script/build.rs @@ -15,6 +15,11 @@ 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 json = "css-properties.json"; + std::fs::copy(style_out_dir.join(json), out_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,9 +40,7 @@ fn main() { start.elapsed().as_secs() ); - let json = PathBuf::from(env::var_os("OUT_DIR").unwrap()) - .join("build") - .join("InterfaceObjectMapData.json"); + let json = out_dir.join("build").join("InterfaceObjectMapData.json"); let json: Value = serde_json::from_reader(File::open(&json).unwrap()).unwrap(); let mut map = phf_codegen::Map::new(); for (key, value) in json.as_object().unwrap() { diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index c7b2c1fe5ef..72f13335ac0 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -7550,7 +7550,7 @@ impl %(base)s { def SupportedDomApis(config): descriptors = config.getDescriptors(isExposedConditionally=False) - base_path = os.path.join('dom', 'bindings', 'codegen') + base_path = os.path.dirname(__file__) with open(os.path.join(base_path, 'apis.html.template')) as f: base_template = f.read() with open(os.path.join(base_path, 'api.html.template')) as f: diff --git a/components/script/dom/bindings/codegen/GlobalGen.py b/components/script/dom/bindings/codegen/GlobalGen.py index 20dea28a9d1..1850a41d5f3 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,12 +29,10 @@ 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 docServoDir [files]" o = OptionParser(usage=usageString) o.add_option("--cachedir", dest='cachedir', default=None, help="Directory in which to cache lex/parse tables.") - o.add_option("--only-html", dest='only_html', action="store_true", - help="Only generate HTML from WebIDL inputs") o.add_option("--filelist", dest='filelist', default=None, help="A file containing the list (one per line) of webidl files to process.") (options, args) = o.parse_args() @@ -44,8 +43,10 @@ def main(): configFile = args[0] outputdir = args[1] baseDir = args[2] + css_properties_json = args[3] + doc_servo = args[4] 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,35 +57,87 @@ 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: - # Write the parser results out to a pickle. - resultsPath = os.path.join(outputdir, 'ParserResults.pkl') - with open(resultsPath, 'wb') as resultsFile: - cPickle.dump(parserResults, resultsFile, -1) + # Write the parser results out to a pickle. + resultsPath = os.path.join(outputdir, 'ParserResults.pkl') + with open(resultsPath, 'wb') as resultsFile: + cPickle.dump(parserResults, resultsFile, -1) # Load the configuration. config = Configuration(configFile, parserResults) to_generate = [ - ('SupportedDomApis', 'apis.html'), + ('PrototypeList', 'PrototypeList.rs'), + ('RegisterBindings', 'RegisterBindings.rs'), + ('InterfaceObjectMap', 'InterfaceObjectMap.rs'), + ('InterfaceObjectMapData', 'InterfaceObjectMapData.json'), + ('InterfaceTypes', 'InterfaceTypes.rs'), + ('InheritTypes', 'InheritTypes.rs'), + ('Bindings', os.path.join('Bindings', 'mod.rs')), + ('UnionTypes', 'UnionTypes.rs'), ] - if not options.only_html: - to_generate = [ - ('PrototypeList', 'PrototypeList.rs'), - ('RegisterBindings', 'RegisterBindings.rs'), - ('InterfaceObjectMap', 'InterfaceObjectMap.rs'), - ('InterfaceObjectMapData', 'InterfaceObjectMapData.json'), - ('InterfaceTypes', 'InterfaceTypes.rs'), - ('InheritTypes', 'InheritTypes.rs'), - ('Bindings', os.path.join('Bindings', 'mod.rs')), - ('UnionTypes', 'UnionTypes.rs'), - ] - for name, filename in to_generate: generate_file(config, name, os.path.join(outputdir, filename)) + generate_file(config, 'SupportedDomApis', os.path.join(doc_servo, 'apis.html')) + + +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", ' % data["pref"] if data["pref"] else ""), + attribute_name + ) + for (kind, properties_list) in sorted(css_properties.items()) + for (property_name, data) in sorted(properties_list.items()) + 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..9c39a957796 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" @@ -20,7 +20,8 @@ gecko = ["style_traits/gecko", "fallible/known_system_malloc", "bindgen", "regex servo = ["serde", "style_traits/servo", "servo_atoms", "servo_config", "html5ever", "cssparser/serde", "encoding_rs", "malloc_size_of/servo", "arrayvec/use_union", "servo_url", "string_cache", "crossbeam-channel", "to_shmem/servo", "servo_arc/servo"] -"servo-layout-2020" = [] +servo-layout-2013 = [] +servo-layout-2020 = [] gecko_debug = [] gecko_refcount_logging = [] gecko_profiler = [] diff --git a/components/style/build.rs b/components/style/build.rs index 0ff8434fa1d..20b3bf5c79f 100644 --- a/components/style/build.rs +++ b/components/style/build.rs @@ -89,14 +89,19 @@ fn generate_properties() { let script = Path::new(&env::var_os("CARGO_MANIFEST_DIR").unwrap()) .join("properties") .join("build.py"); - let product = if cfg!(feature = "gecko") { - "gecko" - } else { - "servo" - }; + + #[cfg(feature = "gecko")] + let engine = "gecko"; + + #[cfg(feature = "servo-layout-2013")] + let engine = "servo-2013"; + + #[cfg(feature = "servo-layout-2020")] + let engine = "servo-2020"; + let status = Command::new(&*PYTHON) .arg(&script) - .arg(product) + .arg(engine) .arg("style-crate") .status() .unwrap(); @@ -117,6 +122,9 @@ fn main() { feature flags at the same time." ); } + if gecko && (cfg!(feature = "servo-layout-2013") || cfg!(feature = "servo-layout-2020")) { + panic!("The 'servo-layout-*' features can only be enabled together with 'servo'."); + } println!("cargo:rerun-if-changed=build.rs"); println!("cargo:out_dir={}", env::var("OUT_DIR").unwrap()); generate_properties(); diff --git a/components/style/properties/build.py b/components/style/properties/build.py index 1967ed3238a..45d8fa676ab 100644 --- a/components/style/properties/build.py +++ b/components/style/properties/build.py @@ -30,35 +30,36 @@ STYLE_STRUCT_LIST = [ "effects", "font", "inherited_box", + "inherited_svg", "inherited_table", "inherited_text", "inherited_ui", - "inherited_svg", "list", "margin", "outline", "padding", "position", + "svg", "table", "text", "ui", - "svg", "xul", ] def main(): - usage = ("Usage: %s [ servo | gecko ] [ style-crate | geckolib