diff options
Diffstat (limited to 'components/layout/layout_thread.rs')
-rw-r--r-- | components/layout/layout_thread.rs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs index b48813a0c31..6307e5a79fc 100644 --- a/components/layout/layout_thread.rs +++ b/components/layout/layout_thread.rs @@ -355,19 +355,23 @@ fn add_font_face_rules(stylesheet: &Stylesheet, font_cache_thread: &FontCacheThread, font_cache_sender: &IpcSender<()>, outstanding_web_fonts_counter: &Arc<AtomicUsize>) { - for font_face in stylesheet.effective_rules(&device).font_face() { - for source in &font_face.sources { - if opts::get().load_webfonts_synchronously { - let (sender, receiver) = ipc::channel().unwrap(); + if opts::get().load_webfonts_synchronously { + let (sender, receiver) = ipc::channel().unwrap(); + for font_face in stylesheet.effective_rules(&device).font_face() { + for source in font_face.effective_sources() { font_cache_thread.add_web_font(font_face.family.clone(), - (*source).clone(), - sender); + (*source).clone(), + sender.clone()); receiver.recv().unwrap(); - } else { + } + } + } else { + for font_face in stylesheet.effective_rules(&device).font_face() { + for source in font_face.effective_sources() { outstanding_web_fonts_counter.fetch_add(1, Ordering::SeqCst); font_cache_thread.add_web_font(font_face.family.clone(), - (*source).clone(), - (*font_cache_sender).clone()); + (*source).clone(), + (*font_cache_sender).clone()); } } } |