diff options
Diffstat (limited to 'components/script/dom/servoparser')
-rw-r--r-- | components/script/dom/servoparser/mod.rs | 48 |
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 |