aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/run.py')
-rw-r--r--components/script/dom/bindings/codegen/run.py23
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())