DevTools - add Emulation Actor

This commit is contained in:
codehag 2018-10-14 19:26:47 +02:00
parent 5327758b9b
commit 9ccf7c0a57
3 changed files with 47 additions and 1 deletions

View file

@ -72,6 +72,7 @@ pub struct BrowsingContextActorMsg {
url: String,
outerWindowID: u32,
consoleActor: String,
emulationActor: String,
inspectorActor: String,
timelineActor: String,
profilerActor: String,
@ -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,
@ -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(),

View file

@ -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 }
}
}

View file

@ -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};
@ -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;
@ -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),
@ -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(),
@ -276,6 +282,7 @@ fn run_server(
(
target,
console,
emulation,
inspector,
timeline,
profiler,
@ -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));