aboutsummaryrefslogtreecommitdiffstats
path: root/ports
diff options
context:
space:
mode:
authorManish Goregaokar <manishearth@gmail.com>2017-11-28 03:16:26 -0800
committerManish Goregaokar <manishsmail@gmail.com>2017-12-12 10:08:11 -0600
commitd573081fe56ebbb01ba6115d93d3627614b86c14 (patch)
tree658b3ea7657d5677202dda47718af789e3800a31 /ports
parent0fa605d2439c4f640b7f180c18d768a7a14e7f1e (diff)
downloadservo-d573081fe56ebbb01ba6115d93d3627614b86c14.tar.gz
servo-d573081fe56ebbb01ba6115d93d3627614b86c14.zip
Add telemetry probe for fraction of restyles that are parallel
Diffstat (limited to 'ports')
-rw-r--r--ports/geckolib/glue.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs
index fdd491985f1..bed1bc48dbf 100644
--- a/ports/geckolib/glue.rs
+++ b/ports/geckolib/glue.rs
@@ -267,8 +267,19 @@ fn traverse_subtree(
None
};
+ let is_restyle = element.get_data().is_some();
+
let traversal = RecalcStyleOnly::new(shared_style_context);
- driver::traverse_dom(&traversal, token, thread_pool);
+ let used_parallel = driver::traverse_dom(&traversal, token, thread_pool);
+
+ if traversal_flags.contains(TraversalFlags::ParallelTraversal) &&
+ !traversal_flags.contains(TraversalFlags::AnimationOnly) &&
+ is_restyle && !element.is_native_anonymous() {
+ // We turn off parallel traversal for background tabs; this
+ // shouldn't count in telemetry. We're also focusing on restyles so
+ // we ensure that it's a restyle.
+ per_doc_data.record_traversal(used_parallel);
+ }
}
/// Traverses the subtree rooted at `root` for restyling.