diff --git a/components/devtools/actors/profiler.rs b/components/devtools/actors/profiler.rs new file mode 100644 index 00000000000..3db8b7074d0 --- /dev/null +++ b/components/devtools/actors/profiler.rs @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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 actor::{Actor, ActorRegistry}; + +use rustc_serialize::json; +use std::net::TcpStream; + +pub struct ProfilerActor { + name: String, +} + +impl Actor for ProfilerActor { + fn name(&self) -> String { + self.name.clone() + } + + fn handle_message(&self, + _registry: &ActorRegistry, + _msg_type: &str, + _msg: &json::Object, + _stream: &mut TcpStream) -> Result { + Ok(false) + } +} + +impl ProfilerActor { + pub fn new(name: String) -> ProfilerActor { + ProfilerActor { + name: name, + } + } +} diff --git a/components/devtools/actors/tab.rs b/components/devtools/actors/tab.rs index 4a157edd692..73772c7e277 100644 --- a/components/devtools/actors/tab.rs +++ b/components/devtools/actors/tab.rs @@ -62,6 +62,7 @@ pub struct TabActorMsg { consoleActor: String, inspectorActor: String, timelineActor: String, + profilerActor: String, } pub struct TabActor { @@ -71,6 +72,7 @@ pub struct TabActor { pub console: String, pub inspector: String, pub timeline: String, + pub profiler: String, } impl Actor for TabActor { @@ -147,6 +149,7 @@ impl TabActor { consoleActor: self.console.clone(), inspectorActor: self.inspector.clone(), timelineActor: self.timeline.clone(), + profilerActor: self.profiler.clone(), } } } diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs index 2814b02cef3..b7dfedbac77 100644 --- a/components/devtools/lib.rs +++ b/components/devtools/lib.rs @@ -41,6 +41,7 @@ use actors::console::ConsoleActor; use actors::network_event::{NetworkEventActor, EventActor, ResponseStartMsg}; use actors::framerate::FramerateActor; use actors::inspector::InspectorActor; +use actors::profiler::ProfilerActor; use actors::root::RootActor; use actors::tab::TabActor; use actors::timeline::TimelineActor; @@ -73,6 +74,7 @@ mod actors { pub mod memory; pub mod network_event; pub mod object; + pub mod profiler; pub mod root; pub mod tab; pub mod timeline; @@ -202,7 +204,7 @@ fn run_server(sender: Sender, let (pipeline, worker_id) = ids; //TODO: move all this actor creation into a constructor method on TabActor - let (tab, console, inspector, timeline) = { + let (tab, console, inspector, timeline, profiler) = { let console = ConsoleActor { name: actors.new_name("console"), script_chan: script_sender.clone(), @@ -222,6 +224,8 @@ fn run_server(sender: Sender, pipeline, script_sender); + let profiler = ProfilerActor::new(actors.new_name("profiler")); + let DevtoolsPageInfo { title, url } = page_info; let tab = TabActor { name: actors.new_name("tab"), @@ -230,11 +234,13 @@ fn run_server(sender: Sender, console: console.name(), inspector: inspector.name(), timeline: timeline.name(), + profiler: profiler.name(), }; let root = actors.find_mut::("root"); root.tabs.push(tab.name.clone()); - (tab, console, inspector, timeline) + + (tab, console, inspector, timeline, profiler) }; if let Some(id) = worker_id { @@ -252,6 +258,7 @@ fn run_server(sender: Sender, actors.register(box console); actors.register(box inspector); actors.register(box timeline); + actors.register(box profiler); } fn handle_console_message(actors: Arc>,