mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Trace more functions by adding perfetto tracing events (#33417)
Signed-off-by: atbrakhi <atbrakhi@igalia.com>
This commit is contained in:
parent
03abf7751a
commit
497df024b1
9 changed files with 116 additions and 4 deletions
|
@ -88,6 +88,7 @@ use style::values::computed::{CSSPixelLength, FontSize, Length, NonNegativeLengt
|
|||
use style::values::specified::font::KeywordInfo;
|
||||
use style::{driver, Zero};
|
||||
use style_traits::{CSSPixel, DevicePixel, SpeculativePainter};
|
||||
use tracing::{span, Level};
|
||||
use url::Url;
|
||||
use webrender_api::units::LayoutPixel;
|
||||
use webrender_api::{units, ExternalScrollId, HitTestFlags};
|
||||
|
@ -185,6 +186,7 @@ impl LayoutFactory for LayoutFactoryImpl {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct ScriptReflowResult {
|
||||
script_reflow: ScriptReflow,
|
||||
result: RefCell<Option<ReflowComplete>>,
|
||||
|
@ -252,6 +254,7 @@ impl Layout for LayoutThread {
|
|||
);
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn add_stylesheet(
|
||||
&mut self,
|
||||
stylesheet: ServoArc<Stylesheet>,
|
||||
|
@ -271,6 +274,7 @@ impl Layout for LayoutThread {
|
|||
}
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn remove_stylesheet(&mut self, stylesheet: ServoArc<Stylesheet>) {
|
||||
let guard = stylesheet.shared_lock.read();
|
||||
let stylesheet = DocumentStyleSheet(stylesheet.clone());
|
||||
|
@ -279,18 +283,22 @@ impl Layout for LayoutThread {
|
|||
.remove_all_web_fonts_from_stylesheet(&stylesheet);
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_content_box(&self, node: OpaqueNode) -> Option<UntypedRect<Au>> {
|
||||
process_content_box_request(node, self.fragment_tree.borrow().clone())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_content_boxes(&self, node: OpaqueNode) -> Vec<UntypedRect<Au>> {
|
||||
process_content_boxes_request(node, self.fragment_tree.borrow().clone())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_client_rect(&self, node: OpaqueNode) -> UntypedRect<i32> {
|
||||
process_node_geometry_request(node, self.fragment_tree.borrow().clone())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_element_inner_text(
|
||||
&self,
|
||||
node: script_layout_interface::TrustedNodeAddress,
|
||||
|
@ -308,6 +316,7 @@ impl Layout for LayoutThread {
|
|||
None
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_nodes_from_point(
|
||||
&self,
|
||||
point: UntypedPoint2D<f32>,
|
||||
|
@ -330,10 +339,12 @@ impl Layout for LayoutThread {
|
|||
results.iter().map(|result| result.node.into()).collect()
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_offset_parent(&self, node: OpaqueNode) -> OffsetParentResponse {
|
||||
process_offset_parent_query(node, self.fragment_tree.borrow().clone())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_resolved_style(
|
||||
&self,
|
||||
node: TrustedNodeAddress,
|
||||
|
@ -369,6 +380,7 @@ impl Layout for LayoutThread {
|
|||
)
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_resolved_font_style(
|
||||
&self,
|
||||
node: TrustedNodeAddress,
|
||||
|
@ -401,10 +413,12 @@ impl Layout for LayoutThread {
|
|||
)
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_scrolling_area(&self, node: Option<OpaqueNode>) -> UntypedRect<i32> {
|
||||
process_node_scroll_area_request(node, self.fragment_tree.borrow().clone())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn query_text_indext(
|
||||
&self,
|
||||
node: OpaqueNode,
|
||||
|
@ -641,6 +655,7 @@ impl LayoutThread {
|
|||
}
|
||||
|
||||
/// The high-level routine that performs layout.
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn handle_reflow(&mut self, data: &mut ScriptReflowResult) {
|
||||
let document = unsafe { ServoLayoutNode::new(&data.document) };
|
||||
let document = document.as_document().unwrap();
|
||||
|
@ -760,6 +775,8 @@ impl LayoutThread {
|
|||
};
|
||||
|
||||
if token.should_traverse() {
|
||||
let span = span!(Level::TRACE, "driver::traverse_dom", servo_profiling = true);
|
||||
let _enter = span.enter();
|
||||
let dirty_root: ServoLayoutNode =
|
||||
driver::traverse_dom(&traversal, token, rayon_pool).as_node();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue