aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/script_task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r--src/components/script/script_task.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index 69a588667c2..716440dfffe 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -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;