diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2014-05-07 12:30:02 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-05-09 20:39:54 +0530 |
commit | b40d8b4d539538c0eb73fdfeaa80062ad1e86528 (patch) | |
tree | 28a07f8c0c201ddb7c076323f71d9235c2822fff /src/components/script/script_task.rs | |
parent | 146eccdf80cbc37a30d2812bd848ff4e703a911b (diff) | |
download | servo-b40d8b4d539538c0eb73fdfeaa80062ad1e86528.tar.gz servo-b40d8b4d539538c0eb73fdfeaa80062ad1e86528.zip |
Basic synchronous GET with XHR
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r-- | src/components/script/script_task.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index 45f1349b3f6..c7021390c95 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -154,7 +154,10 @@ pub struct Page { pub resize_event: Untraceable<RefCell<Option<Size2D<uint>>>>, /// Pending scroll to fragment event, if any - pub fragment_node: Traceable<RefCell<Option<JS<Element>>>> + pub fragment_node: Traceable<RefCell<Option<JS<Element>>>>, + + /// Associated resource task for use by DOM objects like XMLHttpRequest + pub resource_task: Untraceable<ResourceTask>, } pub struct PageTree { @@ -167,7 +170,8 @@ pub struct PageTreeIterator<'a> { } impl PageTree { - fn new(id: PipelineId, layout_chan: LayoutChan, window_size: Size2D<uint>) -> PageTree { + fn new(id: PipelineId, layout_chan: LayoutChan, + window_size: Size2D<uint>, resource_task: ResourceTask) -> PageTree { PageTree { page: Rc::new(Page { id: id, @@ -182,6 +186,7 @@ impl PageTree { resize_event: Untraceable::new(RefCell::new(None)), fragment_node: Traceable::new(RefCell::new(None)), last_reflow_id: Traceable::new(RefCell::new(0)), + resource_task: Untraceable::new(resource_task) }), inner: vec!(), } @@ -593,7 +598,8 @@ impl ScriptTask { -> Rc<ScriptTask> { let (js_runtime, js_context) = ScriptTask::new_rt_and_cx(); Rc::new(ScriptTask { - page_tree: RefCell::new(PageTree::new(id, layout_chan, window_size)), + page_tree: RefCell::new(PageTree::new(id, layout_chan, + window_size, resource_task.clone())), image_cache_task: img_cache_task, resource_task: resource_task, @@ -775,7 +781,8 @@ impl ScriptTask { task's page tree. This is a bug."); let new_page_tree = { let window_size = parent_page_tree.page().window_size.deref().borrow(); - PageTree::new(new_id, layout_chan, *window_size) + PageTree::new(new_id, layout_chan, *window_size, + parent_page_tree.page().resource_task.deref().clone()) }; parent_page_tree.inner.push(new_page_tree); } |