mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Store the ResourceTask on the WorkerGlobalScope.
This is necessary to load dependent resources, such as through new Worker(), importScripts, XHR, ...
This commit is contained in:
parent
31376a6a79
commit
e22c8f9290
2 changed files with 16 additions and 5 deletions
|
@ -28,14 +28,20 @@ pub struct DedicatedWorkerGlobalScope {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DedicatedWorkerGlobalScope {
|
impl DedicatedWorkerGlobalScope {
|
||||||
pub fn new_inherited(cx: Rc<Cx>) -> DedicatedWorkerGlobalScope {
|
pub fn new_inherited(cx: Rc<Cx>,
|
||||||
|
resource_task: ResourceTask)
|
||||||
|
-> DedicatedWorkerGlobalScope {
|
||||||
DedicatedWorkerGlobalScope {
|
DedicatedWorkerGlobalScope {
|
||||||
workerglobalscope: WorkerGlobalScope::new_inherited(DedicatedGlobalScope, cx),
|
workerglobalscope: WorkerGlobalScope::new_inherited(
|
||||||
|
DedicatedGlobalScope, cx, resource_task),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(cx: Rc<Cx>) -> Temporary<DedicatedWorkerGlobalScope> {
|
pub fn new(cx: Rc<Cx>,
|
||||||
let scope = box DedicatedWorkerGlobalScope::new_inherited(cx.clone());
|
resource_task: ResourceTask)
|
||||||
|
-> Temporary<DedicatedWorkerGlobalScope> {
|
||||||
|
let scope = box DedicatedWorkerGlobalScope::new_inherited(
|
||||||
|
cx.clone(), resource_task);
|
||||||
DedicatedWorkerGlobalScopeBinding::Wrap(cx.ptr, scope)
|
DedicatedWorkerGlobalScopeBinding::Wrap(cx.ptr, scope)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,8 @@ use dom::bindings::utils::{Reflectable, Reflector};
|
||||||
use dom::console::Console;
|
use dom::console::Console;
|
||||||
use dom::eventtarget::{EventTarget, WorkerGlobalScopeTypeId};
|
use dom::eventtarget::{EventTarget, WorkerGlobalScopeTypeId};
|
||||||
|
|
||||||
|
use servo_net::resource_task::ResourceTask;
|
||||||
|
|
||||||
use js::jsapi::JSContext;
|
use js::jsapi::JSContext;
|
||||||
use js::rust::Cx;
|
use js::rust::Cx;
|
||||||
|
|
||||||
|
@ -24,15 +26,18 @@ pub enum WorkerGlobalScopeId {
|
||||||
pub struct WorkerGlobalScope {
|
pub struct WorkerGlobalScope {
|
||||||
pub eventtarget: EventTarget,
|
pub eventtarget: EventTarget,
|
||||||
js_context: Untraceable<Rc<Cx>>,
|
js_context: Untraceable<Rc<Cx>>,
|
||||||
|
resource_task: Untraceable<ResourceTask>,
|
||||||
console: Cell<Option<JS<Console>>>,
|
console: Cell<Option<JS<Console>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WorkerGlobalScope {
|
impl WorkerGlobalScope {
|
||||||
pub fn new_inherited(type_id: WorkerGlobalScopeId,
|
pub fn new_inherited(type_id: WorkerGlobalScopeId,
|
||||||
cx: Rc<Cx>) -> WorkerGlobalScope {
|
cx: Rc<Cx>,
|
||||||
|
resource_task: ResourceTask) -> WorkerGlobalScope {
|
||||||
WorkerGlobalScope {
|
WorkerGlobalScope {
|
||||||
eventtarget: EventTarget::new_inherited(WorkerGlobalScopeTypeId(type_id)),
|
eventtarget: EventTarget::new_inherited(WorkerGlobalScopeTypeId(type_id)),
|
||||||
js_context: Untraceable::new(cx),
|
js_context: Untraceable::new(cx),
|
||||||
|
resource_task: Untraceable::new(resource_task),
|
||||||
console: Cell::new(None),
|
console: Cell::new(None),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue