aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/devtools.rs
diff options
context:
space:
mode:
authorGuro Bokum <jiojiajiu@gmail.com>2015-03-28 23:27:54 +0700
committerGuro Bokum <jiojiajiu@gmail.com>2015-04-13 21:08:07 +0700
commit97714ec5eddc3d86d45f3e4afdf34ad6170d50f7 (patch)
tree0cea51ffe48c257d3bbf3cd7f7e48665e4b8bb12 /components/script/devtools.rs
parent1e45d025b381390f346e8f24db615cb698033844 (diff)
downloadservo-97714ec5eddc3d86d45f3e4afdf34ad6170d50f7.tar.gz
servo-97714ec5eddc3d86d45f3e4afdf34ad6170d50f7.zip
Firefox timeline integration #4957
Diffstat (limited to 'components/script/devtools.rs')
-rw-r--r--components/script/devtools.rs37
1 files changed, 35 insertions, 2 deletions
diff --git a/components/script/devtools.rs b/components/script/devtools.rs
index 8b9bb84e830..271cc39ab35 100644
--- a/components/script/devtools.rs
+++ b/components/script/devtools.rs
@@ -2,7 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use devtools_traits::{EvaluateJSReply, NodeInfo, Modification};
+use devtools_traits::{EvaluateJSReply, NodeInfo, Modification, TimelineMarker, TimelineMarkerType};
use dom::bindings::conversions::FromJSValConvertible;
use dom::bindings::conversions::StringificationBehavior;
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
@@ -16,7 +16,7 @@ use dom::element::Element;
use dom::document::DocumentHelpers;
use page::Page;
use msg::constellation_msg::PipelineId;
-use script_task::get_page;
+use script_task::{get_page, ScriptTask};
use std::sync::mpsc::Sender;
use std::rc::Rc;
@@ -114,3 +114,36 @@ pub fn handle_wants_live_notifications(page: &Rc<Page>, pipeline_id: PipelineId,
let window = page.window().root();
window.r().set_devtools_wants_updates(send_notifications);
}
+
+pub fn handle_set_timeline_markers(page: &Rc<Page>,
+ script_task: &ScriptTask,
+ marker_types: Vec<TimelineMarkerType>,
+ reply: Sender<TimelineMarker>) {
+ for marker_type in &marker_types {
+ match *marker_type {
+ TimelineMarkerType::Reflow => {
+ let window = page.window().root();
+ window.r().set_devtools_timeline_marker(TimelineMarkerType::Reflow, reply.clone());
+ }
+ TimelineMarkerType::DOMEvent => {
+ script_task.set_devtools_timeline_marker(TimelineMarkerType::DOMEvent, reply.clone());
+ }
+ }
+ }
+}
+
+pub fn handle_drop_timeline_markers(page: &Rc<Page>,
+ script_task: &ScriptTask,
+ marker_types: Vec<TimelineMarkerType>) {
+ let window = page.window().root();
+ for marker_type in &marker_types {
+ match *marker_type {
+ TimelineMarkerType::Reflow => {
+ window.r().drop_devtools_timeline_markers();
+ }
+ TimelineMarkerType::DOMEvent => {
+ script_task.drop_devtools_timeline_markers();
+ }
+ }
+ }
+}