diff options
Diffstat (limited to 'components/script/dom/bindings/codegen/run.py')
-rw-r--r-- | components/script/dom/bindings/codegen/run.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/run.py b/components/script/dom/bindings/codegen/run.py index 2dee39814b2..d60cff896da 100644 --- a/components/script/dom/bindings/codegen/run.py +++ b/components/script/dom/bindings/codegen/run.py @@ -89,10 +89,31 @@ def generate(config, name, filename): def add_css_properties_attributes(css_properties_json, parser): + def map_preference_name(preference_name: str): + """Map between Stylo preference names and Servo preference names as the + `css-properties.json` file is generated by Stylo. This should be kept in sync with the + preference mapping done in `components/servo_config/prefs.rs`, which handles the runtime version of + these preferences.""" + MAPPING = [ + ["layout.unimplemented", "layout_unimplemented"], + ["layout.threads", "layout_threads"], + ["layout.legacy_layout", "layout_legacy_layout"], + ["layout.flexbox.enabled", "layout_flexbox_enabled"], + ["layout.columns.enabled", "layout_columns_enabled"], + ["layout.grid.enabled", "layout_grid_enabled"], + ["layout.css.transition-behavior.enabled", "layout_css_transition_behavior_enabled"], + ["layout.writing-mode.enabled", "layout_writing_mode_enabled"], + ["layout.container-queries.enabled", "layout_container_queries_enabled"], + ] + for mapping in MAPPING: + if mapping[0] == preference_name: + return mapping[1] + return preference_name + css_properties = json.load(open(css_properties_json, "rb")) idl = "partial interface CSSStyleDeclaration {\n%s\n};\n" % "\n".join( " [%sCEReactions, SetterThrows] attribute [LegacyNullToEmptyString] DOMString %s;" % ( - ('Pref="%s", ' % data["pref"] if data["pref"] else ""), + (f'Pref="{map_preference_name(data["pref"])}", ' if data["pref"] else ""), attribute_name ) for (kind, properties_list) in sorted(css_properties.items()) |