aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/window.rs15
-rw-r--r--components/script/script_task.rs15
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());
}
}