mirror of
https://github.com/servo/servo.git
synced 2025-10-05 11:09:22 +01:00
Basic synchronous GET with XHR
This commit is contained in:
parent
146eccdf80
commit
b40d8b4d53
6 changed files with 218 additions and 28 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue