From 4b1b19fd115dff954f3cef9ab76ed0a23082ab2c Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sat, 10 May 2014 09:37:24 +0200 Subject: Remove ScriptTask::initialize_js_info. There is no particular leason to initilaize js_info lazily. --- src/components/script/script_task.rs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/components/script/script_task.rs') diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index 66ab9ab9a56..411c039d74b 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -170,7 +170,12 @@ pub struct PageTreeIterator<'a> { impl PageTree { fn new(id: PipelineId, layout_chan: LayoutChan, - window_size: Size2D, resource_task: ResourceTask) -> PageTree { + window_size: Size2D, resource_task: ResourceTask, + js_context: Rc) -> PageTree { + let js_info = JSPageInfo { + dom_static: GlobalStaticData(), + js_context: Untraceable::new(js_context), + }; PageTree { page: Rc::new(Page { id: id, @@ -179,7 +184,7 @@ impl PageTree { layout_join_port: Untraceable::new(RefCell::new(None)), damage: Traceable::new(RefCell::new(None)), window_size: Untraceable::new(Cell::new(window_size)), - js_info: Traceable::new(RefCell::new(None)), + js_info: Traceable::new(RefCell::new(Some(js_info))), url: Untraceable::new(RefCell::new(None)), next_subpage_id: Untraceable::new(Cell::new(SubpageId(0))), resize_event: Untraceable::new(Cell::new(None)), @@ -432,13 +437,6 @@ impl Page { } } - pub fn initialize_js_info(&self, js_context: Rc) { - *self.mut_js_info() = Some(JSPageInfo { - dom_static: GlobalStaticData(), - js_context: Untraceable::new(js_context), - }); - } - pub fn hit_test(&self, point: &Point2D) -> Option { let frame = self.frame(); let document = frame.get_ref().document.root(); @@ -596,9 +594,10 @@ impl ScriptTask { window_size: Size2D) -> Rc { let (js_runtime, js_context) = ScriptTask::new_rt_and_cx(); + let page_tree = PageTree::new(id, layout_chan, window_size, + resource_task.clone(), js_context.clone()); Rc::new(ScriptTask { - page_tree: RefCell::new(PageTree::new(id, layout_chan, - window_size, resource_task.clone())), + page_tree: RefCell::new(page_tree), image_cache_task: img_cache_task, resource_task: resource_task, @@ -781,7 +780,8 @@ impl ScriptTask { let new_page_tree = { let window_size = parent_page_tree.page().window_size.deref().get(); PageTree::new(new_id, layout_chan, window_size, - parent_page_tree.page().resource_task.deref().clone()) + parent_page_tree.page().resource_task.deref().clone(), + self.js_context.borrow().get_ref().clone()) }; parent_page_tree.inner.push(new_page_tree); } @@ -927,7 +927,6 @@ impl ScriptTask { self.chan.clone(), self.compositor.dup(), self.image_cache_task.clone()).root(); - page.initialize_js_info(cx.clone()); let mut document = Document::new(&*window, Some(url.clone()), HTMLDocument, None).root(); window.deref_mut().init_browser_context(&*document); -- cgit v1.2.3