diff options
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r-- | src/components/script/script_task.rs | 11 |
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; |