diff options
Diffstat (limited to 'components/script/dom/servoxmlparser.rs')
-rw-r--r-- | components/script/dom/servoxmlparser.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/components/script/dom/servoxmlparser.rs b/components/script/dom/servoxmlparser.rs index 119dd8f4b47..919dcfdb946 100644 --- a/components/script/dom/servoxmlparser.rs +++ b/components/script/dom/servoxmlparser.rs @@ -9,12 +9,15 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::reflect_dom_object; use dom::bindings::trace::JSTraceable; use dom::document::Document; +use dom::globalscope::GlobalScope; use dom::node::Node; use dom::servoparser::ServoParser; use dom::window::Window; use js::jsapi::JSTracer; use msg::constellation_msg::PipelineId; use parse::{Parser, ParserRef}; +use profile_traits::time::{ProfilerCategory, TimerMetadata}; +use profile_traits::time::{TimerMetadataFrameType, TimerMetadataReflowType, profile}; use script_thread::ScriptThread; use std::cell::Cell; use url::Url; @@ -106,6 +109,18 @@ impl ServoXMLParser { } pub fn parse_sync(&self) { + let metadata = TimerMetadata { + url: self.upcast().document().url().as_str().into(), + iframe: TimerMetadataFrameType::RootWindow, + incremental: TimerMetadataReflowType::FirstReflow, + }; + profile(ProfilerCategory::ScriptParseXML, + Some(metadata), + self.upcast().document().window().upcast::<GlobalScope>().time_profiler_chan().clone(), + || self.do_parse_sync()) + } + + fn do_parse_sync(&self) { // This parser will continue to parse while there is either pending input or // the parser remains unsuspended. loop { |