mirror of
https://github.com/servo/servo.git
synced 2025-06-20 23:28:59 +01:00
Provide an interface to the engine for the script task
This commit is contained in:
parent
abe6a06cbf
commit
bf4df24521
7 changed files with 74 additions and 50 deletions
|
@ -16,6 +16,7 @@ use layout_interface::{HitTestResponse, LayoutQuery, LayoutResponse, LayoutTask}
|
|||
use layout_interface::{MatchSelectorsDocumentDamage, QueryMsg, Reflow, ReflowDocumentDamage};
|
||||
use layout_interface::{ReflowForDisplay, ReflowForScriptQuery, ReflowGoal, ReflowMsg};
|
||||
use layout_interface;
|
||||
use engine_interface::{EngineTask, LoadUrlMsg};
|
||||
|
||||
use core::cast::transmute;
|
||||
use core::cell::Cell;
|
||||
|
@ -65,6 +66,7 @@ impl ScriptTask {
|
|||
/// Creates a new script task.
|
||||
pub fn new(script_port: Port<ScriptMsg>,
|
||||
script_chan: SharedChan<ScriptMsg>,
|
||||
engine_task: EngineTask,
|
||||
layout_task: LayoutTask,
|
||||
resource_task: ResourceTask,
|
||||
image_cache_task: ImageCacheTask)
|
||||
|
@ -78,6 +80,7 @@ impl ScriptTask {
|
|||
let script_context = ScriptContext::new(layout_task.clone(),
|
||||
script_port.take(),
|
||||
script_chan_copy.clone(),
|
||||
engine_task.clone(),
|
||||
resource_task.clone(),
|
||||
image_cache_task.clone());
|
||||
script_context.start();
|
||||
|
@ -117,6 +120,9 @@ pub struct ScriptContext {
|
|||
/// messages.
|
||||
script_chan: SharedChan<ScriptMsg>,
|
||||
|
||||
/// For communicating load url messages to the engine
|
||||
engine_task: EngineTask,
|
||||
|
||||
/// The JavaScript runtime.
|
||||
js_runtime: js::rust::rt,
|
||||
/// The JavaScript context.
|
||||
|
@ -168,6 +174,7 @@ impl ScriptContext {
|
|||
pub fn new(layout_task: LayoutTask,
|
||||
script_port: Port<ScriptMsg>,
|
||||
script_chan: SharedChan<ScriptMsg>,
|
||||
engine_task: EngineTask,
|
||||
resource_task: ResourceTask,
|
||||
img_cache_task: ImageCacheTask)
|
||||
-> @mut ScriptContext {
|
||||
|
@ -191,6 +198,8 @@ impl ScriptContext {
|
|||
script_port: script_port,
|
||||
script_chan: script_chan,
|
||||
|
||||
engine_task: engine_task,
|
||||
|
||||
js_runtime: js_runtime,
|
||||
js_context: js_context,
|
||||
js_compartment: compartment,
|
||||
|
@ -552,7 +561,7 @@ impl ScriptContext {
|
|||
debug!("clicked on link to %?", attr.value);
|
||||
let url = from_str(attr.value);
|
||||
match url {
|
||||
Ok(url) => self.script_chan.send(LoadMsg(url)),
|
||||
Ok(url) => self.engine_task.send(LoadUrlMsg(url)),
|
||||
Err(msg) => debug!(msg)
|
||||
};
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue