diff options
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 21afb9e59af..7b7cc679461 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -52,7 +52,7 @@ use time; #[dom_struct] pub struct Window { eventtarget: EventTarget, - script_chan: ScriptChan, + script_chan: Box<ScriptChan+Send>, control_chan: ScriptControlChan, console: MutNullableJS<Console>, location: MutNullableJS<Location>, @@ -75,8 +75,8 @@ impl Window { (*js_info.as_ref().unwrap().js_context).ptr } - pub fn script_chan<'a>(&'a self) -> &'a ScriptChan { - &self.script_chan + pub fn script_chan(&self) -> Box<ScriptChan+Send> { + self.script_chan.clone() } pub fn control_chan<'a>(&'a self) -> &'a ScriptControlChan { @@ -189,8 +189,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { } fn Close(self) { - let ScriptChan(ref chan) = self.script_chan; - chan.send(ScriptMsg::ExitWindow(self.page.id.clone())); + self.script_chan.send(ScriptMsg::ExitWindow(self.page.id.clone())); } fn Document(self) -> Temporary<Document> { @@ -342,11 +341,10 @@ impl<'a> WindowHelpers for JSRef<'a, Window> { let url = UrlParser::new().base_url(&base_url).parse(href.as_slice()); // FIXME: handle URL parse errors more gracefully. let url = url.unwrap(); - let ScriptChan(ref script_chan) = self.script_chan; if href.as_slice().starts_with("#") { - script_chan.send(ScriptMsg::TriggerFragment(self.page.id, url)); + self.script_chan.send(ScriptMsg::TriggerFragment(self.page.id, url)); } else { - script_chan.send(ScriptMsg::TriggerLoad(self.page.id, LoadData::new(url))); + self.script_chan.send(ScriptMsg::TriggerLoad(self.page.id, LoadData::new(url))); } } @@ -359,7 +357,7 @@ impl<'a> WindowHelpers for JSRef<'a, Window> { impl Window { pub fn new(cx: *mut JSContext, page: Rc<Page>, - script_chan: ScriptChan, + script_chan: Box<ScriptChan+Send>, control_chan: ScriptControlChan, compositor: Box<ScriptListener+'static>, image_cache_task: ImageCacheTask) |