aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock1
-rw-r--r--components/fonts/Cargo.toml1
-rw-r--r--components/fonts/font_cache_thread.rs15
-rw-r--r--components/servo/lib.rs8
4 files changed, 24 insertions, 1 deletions
diff --git a/Cargo.lock b/Cargo.lock
index a681a62b304..576d58a73cc 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1914,6 +1914,7 @@ dependencies = [
"smallvec",
"style",
"surfman",
+ "tracing",
"truetype",
"unicode-bidi",
"unicode-properties",
diff --git a/components/fonts/Cargo.toml b/components/fonts/Cargo.toml
index c7706973c6b..7dd9e8ecc45 100644
--- a/components/fonts/Cargo.toml
+++ b/components/fonts/Cargo.toml
@@ -41,6 +41,7 @@ servo_url = { path = "../url" }
smallvec = { workspace = true, features = ["union"] }
surfman = { workspace = true }
style = { workspace = true }
+tracing = { workspace = true }
unicode-bidi = { workspace = true, features = ["with_serde"] }
unicode-properties = { workspace = true }
unicode-script = { workspace = true }
diff --git a/components/fonts/font_cache_thread.rs b/components/fonts/font_cache_thread.rs
index 0e45f0ab1a5..5d5f3cff4b7 100644
--- a/components/fonts/font_cache_thread.rs
+++ b/components/fonts/font_cache_thread.rs
@@ -23,6 +23,7 @@ use style::values::computed::font::{
};
use style::values::computed::{FontStretch, FontWeight};
use style::values::specified::FontStretch as SpecifiedFontStretch;
+use tracing::{span, Level};
use webrender_api::{FontInstanceFlags, FontInstanceKey, FontKey};
use webrender_traits::WebRenderFontApi;
@@ -102,12 +103,19 @@ struct FontCache {
}
impl FontCache {
+ #[tracing::instrument(skip(self), fields(servo_profiling = true))]
fn run(&mut self) {
loop {
let msg = self.port.recv().unwrap();
match msg {
Command::GetFontTemplates(descriptor_to_match, font_family, result) => {
+ let span = span!(
+ Level::TRACE,
+ "Command::GetFontTemplates",
+ servo_profiling = true
+ );
+ let _span = span.enter();
let templates =
self.find_font_templates(descriptor_to_match.as_ref(), &font_family);
debug!("Found templates for descriptor {descriptor_to_match:?}: ");
@@ -141,6 +149,12 @@ impl FontCache {
.font_data
.entry(identifier)
.or_insert_with(|| font_template.data());
+ let span = span!(
+ Level::TRACE,
+ "GetFontTemplates send",
+ servo_profiling = true
+ );
+ let _span = span.enter();
let _ = bytes_sender.send(data);
}
},
@@ -186,6 +200,7 @@ impl FontCache {
});
}
+ #[tracing::instrument(skip(self), fields(servo_profiling = true))]
fn find_font_templates(
&mut self,
descriptor_to_match: Option<&FontDescriptor>,
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 5e409c1307e..38a47f89148 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -89,6 +89,7 @@ use surfman::platform::generic::multi::context::NativeContext as LinuxNativeCont
use surfman::{GLApi, GLVersion};
#[cfg(all(target_os = "linux", not(target_env = "ohos")))]
use surfman::{NativeConnection, NativeContext};
+use tracing::{span, Level};
use webgpu::swapchain::WGPUImageMap;
use webrender::{RenderApiSender, ShaderPrecacheFlags, UploadMethod, ONE_TIME_USAGE_HINT};
use webrender_api::{
@@ -1105,6 +1106,7 @@ impl WebRenderFontApi for WebRenderFontApiCompositorProxy {
receiver.recv().unwrap()
}
+ #[tracing::instrument(skip(self), fields(servo_profiling = true))]
fn add_font(&self, data: Arc<Vec<u8>>, index: u32) -> FontKey {
let (sender, receiver) = unbounded();
let (bytes_sender, bytes_receiver) =
@@ -1113,7 +1115,11 @@ impl WebRenderFontApi for WebRenderFontApiCompositorProxy {
.send(CompositorMsg::Forwarded(ForwardedToCompositorMsg::Font(
FontToCompositorMsg::AddFont(sender, index, bytes_receiver),
)));
- let _ = bytes_sender.send(&data);
+ {
+ let span = span!(Level::TRACE, "add_font send", servo_profiling = true);
+ let _span = span.enter();
+ let _ = bytes_sender.send(&data);
+ }
receiver.recv().unwrap()
}