diff --git a/ports/servoshell/prefs.rs b/ports/servoshell/prefs.rs index 26a96309ae6..925ea65ba60 100644 --- a/ports/servoshell/prefs.rs +++ b/ports/servoshell/prefs.rs @@ -347,6 +347,11 @@ pub(crate) fn parse_command_line_arguments(args: Vec) -> ArgumentParsing "FILTER", ); + opts.optflag( + "", + "enable-experimental-web-platform-features", + "Whether or not to enable experimental web platform features.", + ); opts.optmulti( "", "pref", @@ -540,6 +545,30 @@ pub(crate) fn parse_command_line_arguments(args: Vec) -> ArgumentParsing }) .collect(); + if opt_match.opt_present("enable-experimental-web-platform-features") { + vec![ + "dom_fontface_enabled", + "dom_imagebitmap_enabled", + "dom_intersection_observer_enabled", + "dom_mouse_event_which_enabled", + "dom_notification_enabled", + "dom_offscreen_canvas_enabled", + "dom_permissions_enabled", + "dom_resize_observer_enabled", + "dom_serviceworker_enabled", + "dom_svg_enabled", + "dom_webgl2_enabled", + "dom_webgpu_enabled", + "dom_xpath_enabled", + "layout_columns_enabled", + "layout_container_queries_enabled", + "layout_grid_enabled", + "layout_writing_mode_enabled", + ] + .iter() + .for_each(|pref| preferences.set_value(pref, PrefValue::Bool(true))); + } + // Handle all command-line preferences overrides. for pref in opt_match.opt_strs("pref") { let split: Vec<&str> = pref.splitn(2, '=').collect();