mirror of
https://github.com/servo/servo.git
synced 2025-06-10 01:23:13 +00:00
Load web fonts synchronously during wpt.
This commit is contained in:
parent
1dc144d168
commit
77c253fd43
3 changed files with 24 additions and 5 deletions
|
@ -326,10 +326,18 @@ fn add_font_face_rules(stylesheet: &Stylesheet,
|
|||
outstanding_web_fonts_counter: &Arc<AtomicUsize>) {
|
||||
for font_face in stylesheet.effective_rules(&device).font_face() {
|
||||
for source in &font_face.sources {
|
||||
outstanding_web_fonts_counter.fetch_add(1, Ordering::SeqCst);
|
||||
font_cache_task.add_web_font(font_face.family.clone(),
|
||||
(*source).clone(),
|
||||
(*font_cache_sender).clone());
|
||||
if opts::get().load_webfonts_synchronously {
|
||||
let (sender, receiver) = channel();
|
||||
font_cache_task.add_web_font(font_face.family.clone(),
|
||||
(*source).clone(),
|
||||
sender);
|
||||
receiver.recv().unwrap();
|
||||
} else {
|
||||
outstanding_web_fonts_counter.fetch_add(1, Ordering::SeqCst);
|
||||
font_cache_task.add_web_font(font_face.family.clone(),
|
||||
(*source).clone(),
|
||||
(*font_cache_sender).clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,6 +74,9 @@ pub struct Opts {
|
|||
/// Log GC passes and their durations.
|
||||
pub gc_profile: bool,
|
||||
|
||||
/// Load web fonts synchronously to avoid non-deterministic network-driven reflows.
|
||||
pub load_webfonts_synchronously: bool,
|
||||
|
||||
pub headless: bool,
|
||||
pub hard_fail: bool,
|
||||
|
||||
|
@ -267,6 +270,9 @@ pub struct DebugOptions {
|
|||
|
||||
/// Log GC passes and their durations.
|
||||
pub gc_profile: bool,
|
||||
|
||||
/// Load web fonts synchronously to avoid non-deterministic network-driven reflows.
|
||||
pub load_webfonts_synchronously: bool,
|
||||
}
|
||||
|
||||
|
||||
|
@ -301,6 +307,7 @@ impl DebugOptions {
|
|||
"convert-mouse-to-touch" => debug_options.convert_mouse_to_touch = true,
|
||||
"replace-surrogates" => debug_options.replace_surrogates = true,
|
||||
"gc-profile" => debug_options.gc_profile = true,
|
||||
"load-webfonts-synchronously" => debug_options.load_webfonts_synchronously = true,
|
||||
"" => {},
|
||||
_ => return Err(option)
|
||||
};
|
||||
|
@ -345,6 +352,8 @@ pub fn print_debug_usage(app: &str) -> ! {
|
|||
print_option("replace-surrogates", "Replace unpaires surrogates in DOM strings with U+FFFD. \
|
||||
See https://github.com/servo/servo/issues/6564");
|
||||
print_option("gc-profile", "Log GC passes and their durations.");
|
||||
print_option("load-webfonts-synchronously",
|
||||
"Load web fonts synchronously to avoid non-deterministic network-driven reflows");
|
||||
|
||||
println!("");
|
||||
|
||||
|
@ -414,6 +423,7 @@ pub fn default_opts() -> Opts {
|
|||
output_file: None,
|
||||
replace_surrogates: false,
|
||||
gc_profile: false,
|
||||
load_webfonts_synchronously: false,
|
||||
headless: true,
|
||||
hard_fail: true,
|
||||
bubble_inline_sizes_separately: false,
|
||||
|
@ -632,6 +642,7 @@ pub fn from_cmdline_args(args: &[String]) {
|
|||
output_file: opt_match.opt_str("o"),
|
||||
replace_surrogates: debug_options.replace_surrogates,
|
||||
gc_profile: debug_options.gc_profile,
|
||||
load_webfonts_synchronously: debug_options.load_webfonts_synchronously,
|
||||
headless: opt_match.opt_present("z"),
|
||||
hard_fail: opt_match.opt_present("f"),
|
||||
bubble_inline_sizes_separately: bubble_inline_sizes_separately,
|
||||
|
|
|
@ -203,7 +203,7 @@ class ServoRefTestExecutor(ProcessTestExecutor):
|
|||
debug_args, command = browser_command(
|
||||
self.binary,
|
||||
[render_arg(self.browser.render_backend), "--hard-fail", "--exit",
|
||||
"-u", "Servo/wptrunner", "-Z", "disable-text-aa",
|
||||
"-u", "Servo/wptrunner", "-Z", "disable-text-aa,load-webfonts-synchronously",
|
||||
"--output=%s" % output_path, full_url],
|
||||
self.debug_info)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue