mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Use task! to fail event source connections
This commit is contained in:
parent
9339eb7d68
commit
7a5d7e2e90
1 changed files with 14 additions and 19 deletions
|
@ -102,15 +102,25 @@ impl EventSourceContext {
|
|||
let _ = event_source.global().networking_task_source().queue(task, &*event_source.global());
|
||||
}
|
||||
|
||||
/// https://html.spec.whatwg.org/multipage/#fail-the-connection
|
||||
fn fail_the_connection(&self) {
|
||||
let event_source = self.event_source.root();
|
||||
if self.gen_id != event_source.generation_id.get() {
|
||||
return;
|
||||
}
|
||||
let task = box FailConnectionTask {
|
||||
event_source: self.event_source.clone()
|
||||
};
|
||||
let _ = event_source.global().networking_task_source().queue(task, &*event_source.global());
|
||||
let global = event_source.global();
|
||||
let event_source = self.event_source.clone();
|
||||
// FIXME(nox): Why are errors silenced here?
|
||||
let _ = global.networking_task_source().queue(
|
||||
box task!(fail_the_event_source_connection: move || {
|
||||
let event_source = event_source.root();
|
||||
if event_source.ready_state.get() != ReadyState::Closed {
|
||||
event_source.ready_state.set(ReadyState::Closed);
|
||||
event_source.upcast::<EventTarget>().fire_event(atom!("error"));
|
||||
}
|
||||
}),
|
||||
&global,
|
||||
);
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#reestablish-the-connection
|
||||
|
@ -524,21 +534,6 @@ impl Task for AnnounceConnectionTask {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct FailConnectionTask {
|
||||
event_source: Trusted<EventSource>,
|
||||
}
|
||||
|
||||
impl Task for FailConnectionTask {
|
||||
// https://html.spec.whatwg.org/multipage/#fail-the-connection
|
||||
fn run(self: Box<Self>) {
|
||||
let event_source = self.event_source.root();
|
||||
if event_source.ready_state.get() != ReadyState::Closed {
|
||||
event_source.ready_state.set(ReadyState::Closed);
|
||||
event_source.upcast::<EventTarget>().fire_event(atom!("error"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(HeapSizeOf, JSTraceable)]
|
||||
pub struct EventSourceTimeoutCallback {
|
||||
#[ignore_heap_size_of = "Because it is non-owning"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue