diff options
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 631dfbec858..371e33d4588 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -48,6 +48,7 @@ use std::hash::{Hash, sip}; use std::io::timer::Timer; use std::ptr; use std::rc::Rc; +use std::time::duration::Duration; use time; #[deriving(PartialEq, Encodable, Eq)] @@ -85,7 +86,7 @@ pub struct Window { pub image_cache_task: ImageCacheTask, pub active_timers: Traceable<RefCell<HashMap<TimerId, TimerHandle>>>, next_timer_handle: Traceable<Cell<i32>>, - pub compositor: Untraceable<Box<ScriptListener>>, + pub compositor: Untraceable<Box<ScriptListener+'static>>, pub browser_context: Traceable<RefCell<Option<BrowserContext>>>, pub page: Rc<Page>, performance: Cell<Option<JS<Performance>>>, @@ -97,7 +98,7 @@ pub struct Window { impl Window { pub fn get_cx(&self) -> *mut JSContext { let js_info = self.page().js_info(); - (**js_info.get_ref().js_context).ptr + (**js_info.as_ref().unwrap().js_context).ptr } pub fn page<'a>(&'a self) -> &'a Page { @@ -111,7 +112,7 @@ impl Window { #[unsafe_destructor] impl Drop for Window { fn drop(&mut self) { - for (_, timer_handle) in self.active_timers.borrow_mut().mut_iter() { + for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() { timer_handle.cancel(); } } @@ -214,7 +215,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { fn Document(self) -> Temporary<Document> { let frame = self.page().frame(); - Temporary::new(frame.get_ref().document.clone()) + Temporary::new(frame.as_ref().unwrap().document.clone()) } fn Location(self) -> Temporary<Location> { @@ -223,7 +224,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { let location = Location::new(self, page); self.location.assign(Some(location)); } - Temporary::new(self.location.get().get_ref().clone()) + Temporary::new(self.location.get().as_ref().unwrap().clone()) } fn Console(self) -> Temporary<Console> { @@ -231,7 +232,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { let console = Console::new(&global::Window(self)); self.console.assign(Some(console)); } - Temporary::new(self.console.get().get_ref().clone()) + Temporary::new(self.console.get().as_ref().unwrap().clone()) } fn Navigator(self) -> Temporary<Navigator> { @@ -239,7 +240,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { let navigator = Navigator::new(self); self.navigator.assign(Some(navigator)); } - Temporary::new(self.navigator.get().get_ref().clone()) + Temporary::new(self.navigator.get().as_ref().unwrap().clone()) } fn SetTimeout(self, _cx: *mut JSContext, callback: JSVal, timeout: i32) -> i32 { @@ -287,7 +288,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { let performance = Performance::new(self); self.performance.assign(Some(performance)); } - Temporary::new(self.performance.get().get_ref().clone()) + Temporary::new(self.performance.get().as_ref().unwrap().clone()) } fn GetOnclick(self) -> Option<EventHandlerNonNull> { @@ -335,7 +336,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { let screen = Screen::new(self); self.screen.assign(Some(screen)); } - Temporary::new(self.screen.get().get_ref().clone()) + Temporary::new(self.screen.get().as_ref().unwrap().clone()) } fn Debug(self, message: DOMString) { @@ -444,7 +445,7 @@ impl<'a> WindowHelpers for JSRef<'a, Window> { let mut rval = NullValue(); unsafe { JS_CallFunctionValue(cx, this_value, *data.funval, - 0, ptr::mut_null(), &mut rval); + 0, ptr::null_mut(), &mut rval); } }); @@ -473,10 +474,11 @@ impl<'a> PrivateWindowHelpers for JSRef<'a, Window> { }; spawn_named(spawn_name, proc() { let mut tm = tm; + let duration = Duration::milliseconds(timeout as i64); let timeout_port = if is_interval { - tm.periodic(timeout) + tm.periodic(duration) } else { - tm.oneshot(timeout) + tm.oneshot(duration) }; let cancel_port = cancel_port; @@ -519,7 +521,7 @@ impl Window { page: Rc<Page>, script_chan: ScriptChan, control_chan: ScriptControlChan, - compositor: Box<ScriptListener>, + compositor: Box<ScriptListener+'static>, image_cache_task: ImageCacheTask) -> Temporary<Window> { let win = box Window { |