aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/servoparser
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/servoparser')
-rw-r--r--components/script/dom/servoparser/mod.rs48
1 files changed, 28 insertions, 20 deletions
diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs
index ca1c20aaf03..82128477f33 100644
--- a/components/script/dom/servoparser/mod.rs
+++ b/components/script/dom/servoparser/mod.rs
@@ -27,8 +27,9 @@ use net_traits::{
ResourceTimingType,
};
use profile_traits::time::{
- profile, ProfilerCategory, TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType,
+ ProfilerCategory, TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType,
};
+use profile_traits::time_profile;
use script_traits::DocumentActivity;
use servo_config::pref;
use servo_url::ServoUrl;
@@ -521,17 +522,32 @@ impl ServoParser {
iframe: TimerMetadataFrameType::RootWindow,
incremental: TimerMetadataReflowType::FirstReflow,
};
- let profiler_category = self.tokenizer.profiler_category();
- profile(
- profiler_category,
- Some(metadata),
- self.document
- .window()
- .upcast::<GlobalScope>()
- .time_profiler_chan()
- .clone(),
- || self.do_parse_sync(can_gc),
- )
+ let profiler_chan = self
+ .document
+ .window()
+ .upcast::<GlobalScope>()
+ .time_profiler_chan()
+ .clone();
+ match self.tokenizer {
+ Tokenizer::Html(_) => time_profile!(
+ ProfilerCategory::ScriptParseHTML,
+ Some(metadata),
+ profiler_chan,
+ || self.do_parse_sync(can_gc),
+ ),
+ Tokenizer::AsyncHtml(_) => time_profile!(
+ ProfilerCategory::ScriptParseHTML,
+ Some(metadata),
+ profiler_chan,
+ || self.do_parse_sync(can_gc),
+ ),
+ Tokenizer::Xml(_) => time_profile!(
+ ProfilerCategory::ScriptParseXML,
+ Some(metadata),
+ profiler_chan,
+ || self.do_parse_sync(can_gc),
+ ),
+ }
}
fn do_parse_sync(&self, can_gc: CanGc) {
@@ -720,14 +736,6 @@ impl Tokenizer {
Tokenizer::Xml(_) => unimplemented!(),
}
}
-
- fn profiler_category(&self) -> ProfilerCategory {
- match *self {
- Tokenizer::Html(_) => ProfilerCategory::ScriptParseHTML,
- Tokenizer::AsyncHtml(_) => ProfilerCategory::ScriptParseHTML,
- Tokenizer::Xml(_) => ProfilerCategory::ScriptParseXML,
- }
- }
}
/// The context required for asynchronously fetching a document