Skip to content

Commit

Permalink
DevTools - add Emulation Actor
Browse files Browse the repository at this point in the history
  • Loading branch information
codehag committed Oct 15, 2018
1 parent 5327758 commit 9ccf7c0
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
3 changes: 3 additions & 0 deletions components/devtools/actors/browsing_context.rs
Expand Up @@ -72,6 +72,7 @@ pub struct BrowsingContextActorMsg {
url: String,
outerWindowID: u32,
consoleActor: String,
emulationActor: String,
inspectorActor: String,
timelineActor: String,
profilerActor: String,
Expand All @@ -84,6 +85,7 @@ pub struct BrowsingContextActor {
pub title: String,
pub url: String,
pub console: String,
pub emulation: String,
pub inspector: String,
pub timeline: String,
pub profiler: String,
Expand Down Expand Up @@ -192,6 +194,7 @@ impl BrowsingContextActor {
url: self.url.clone(),
outerWindowID: 0, //FIXME: this should probably be the pipeline id
consoleActor: self.console.clone(),
emulationActor: self.emulation.clone(),
inspectorActor: self.inspector.clone(),
timelineActor: self.timeline.clone(),
profilerActor: self.profiler.clone(),
Expand Down
35 changes: 35 additions & 0 deletions components/devtools/actors/emulation.rs
@@ -0,0 +1,35 @@
/* 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, ActorMessageStatus, ActorRegistry};
use serde_json::{Map, Value};
use std::net::TcpStream;

pub struct EmulationActor {
pub name: String,
}

impl Actor for EmulationActor {
fn name(&self) -> String {
self.name.clone()
}

fn handle_message(
&self,
_registry: &ActorRegistry,
msg_type: &str,
_msg: &Map<String, Value>,
_stream: &mut TcpStream,
) -> Result<ActorMessageStatus, ()> {
Ok(match msg_type {
_ => ActorMessageStatus::Ignored,
})
}
}

impl EmulationActor {
pub fn new(name: String) -> EmulationActor {
EmulationActor { name: name }
}
}
10 changes: 9 additions & 1 deletion components/devtools/lib.rs
Expand Up @@ -28,6 +28,7 @@ use actor::{Actor, ActorRegistry};
use actors::browsing_context::BrowsingContextActor;
use actors::console::ConsoleActor;
use actors::device::DeviceActor;
use actors::emulation::EmulationActor;
use actors::framerate::FramerateActor;
use actors::inspector::InspectorActor;
use actors::network_event::{EventActor, NetworkEventActor, ResponseStartMsg};
Expand Down Expand Up @@ -60,6 +61,7 @@ mod actors {
pub mod browsing_context;
pub mod console;
pub mod device;
pub mod emulation;
pub mod framerate;
pub mod inspector;
pub mod memory;
Expand Down Expand Up @@ -230,13 +232,16 @@ fn run_server(
let (pipeline, worker_id) = ids;

//TODO: move all this actor creation into a constructor method on BrowsingContextActor
let (target, console, inspector, timeline, profiler, performance, styleSheets, thread) = {
let (target, console, emulation, inspector, timeline, profiler, performance, styleSheets, thread) = {
let console = ConsoleActor {
name: actors.new_name("console"),
script_chan: script_sender.clone(),
pipeline: pipeline,
streams: RefCell::new(Vec::new()),
};

let emulation = EmulationActor::new(actors.new_name("emulation"));

let inspector = InspectorActor {
name: actors.new_name("inspector"),
walker: RefCell::new(None),
Expand All @@ -262,6 +267,7 @@ fn run_server(
title: String::from(title),
url: url.into_string(),
console: console.name(),
emulation: emulation.name(),
inspector: inspector.name(),
timeline: timeline.name(),
profiler: profiler.name(),
Expand All @@ -276,6 +282,7 @@ fn run_server(
(
target,
console,
emulation,
inspector,
timeline,
profiler,
Expand All @@ -298,6 +305,7 @@ fn run_server(
actor_pipelines.insert(pipeline, target.name.clone());
actors.register(Box::new(target));
actors.register(Box::new(console));
actors.register(Box::new(emulation));
actors.register(Box::new(inspector));
actors.register(Box::new(timeline));
actors.register(Box::new(profiler));
Expand Down

0 comments on commit 9ccf7c0

Please sign in to comment.