diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/window.rs | 15 | ||||
-rw-r--r-- | components/script/script_task.rs | 15 |
2 files changed, 14 insertions, 16 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 8bce4247a4a..6fd99de5b4d 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -40,7 +40,6 @@ use timers::{IsInterval, TimerId, TimerManager, TimerCallback}; use webdriver_handlers::jsval_to_webdriver; use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType}; -use devtools_traits::{TracingMetadata}; use msg::compositor_msg::ScriptToCompositorMsg; use msg::constellation_msg::{LoadData, PipelineId, SubpageId, ConstellationChan, WindowSizeData, WorkerId}; use msg::webdriver_msg::{WebDriverJSError, WebDriverJSResult}; @@ -681,10 +680,11 @@ impl Window { debug!("script: performing reflow for goal {:?} reason {:?}", goal, reason); - if self.need_emit_timeline_marker(TimelineMarkerType::Reflow) { - let marker = TimelineMarker::new("Reflow".to_owned(), TracingMetadata::IntervalStart); - self.emit_timeline_marker(marker); - } + let marker = if self.need_emit_timeline_marker(TimelineMarkerType::Reflow) { + Some(TimelineMarker::start("Reflow".to_owned())) + } else { + None + }; // Layout will let us know when it's done. let (join_chan, join_port) = channel(); @@ -725,9 +725,8 @@ impl Window { self.pending_reflow_count.set(0); - if self.need_emit_timeline_marker(TimelineMarkerType::Reflow) { - let marker = TimelineMarker::new("Reflow".to_owned(), TracingMetadata::IntervalEnd); - self.emit_timeline_marker(marker); + if let Some(marker) = marker { + self.emit_timeline_marker(marker.end()); } } diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 5ae982bbee5..1ab86d67570 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -52,8 +52,8 @@ use timers::TimerId; use webdriver_handlers; use devtools_traits::{DevtoolsPageInfo, DevtoolScriptControlMsg}; -use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker, TimelineMarkerType}; -use devtools_traits::{TracingMetadata}; +use devtools_traits::{ScriptToDevtoolsControlMsg, TimelineMarker}; +use devtools_traits::{StartedTimelineMarker, TimelineMarkerType}; use msg::compositor_msg::{LayerId, ScriptToCompositorMsg}; use msg::constellation_msg::Msg as ConstellationMsg; use msg::constellation_msg::{ConstellationChan, FocusType}; @@ -2016,23 +2016,22 @@ impl Drop for ScriptTask { } struct AutoDOMEventMarker<'a> { - script_task: &'a ScriptTask + script_task: &'a ScriptTask, + marker: Option<StartedTimelineMarker>, } impl<'a> AutoDOMEventMarker<'a> { fn new(script_task: &'a ScriptTask) -> AutoDOMEventMarker<'a> { - let marker = TimelineMarker::new("DOMEvent".to_owned(), TracingMetadata::IntervalStart); - script_task.emit_timeline_marker(marker); AutoDOMEventMarker { - script_task: script_task + script_task: script_task, + marker: Some(TimelineMarker::start("DOMEvent".to_owned())), } } } impl<'a> Drop for AutoDOMEventMarker<'a> { fn drop(&mut self) { - let marker = TimelineMarker::new("DOMEvent".to_owned(), TracingMetadata::IntervalEnd); - self.script_task.emit_timeline_marker(marker); + self.script_task.emit_timeline_marker(self.marker.take().unwrap().end()); } } |