mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
CanGc fixes in several files (#33958)
* few cangc fixes Signed-off-by: L Ashwin B <lashwinib@gmail.com> * few cangc fixes Signed-off-by: L Ashwin B <lashwinib@gmail.com> --------- Signed-off-by: L Ashwin B <lashwinib@gmail.com>
This commit is contained in:
parent
1bf68567b8
commit
ebfea9b352
22 changed files with 170 additions and 129 deletions
|
@ -166,6 +166,7 @@ impl FileReader {
|
|||
filereader: TrustedFileReader,
|
||||
gen_id: GenerationId,
|
||||
error: DOMErrorName,
|
||||
can_gc: CanGc,
|
||||
) {
|
||||
let fr = filereader.root();
|
||||
|
||||
|
@ -185,17 +186,17 @@ impl FileReader {
|
|||
let exception = DOMException::new(&fr.global(), error);
|
||||
fr.error.set(Some(&exception));
|
||||
|
||||
fr.dispatch_progress_event(atom!("error"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("error"), 0, None, can_gc);
|
||||
return_on_abort!();
|
||||
// Step 3
|
||||
fr.dispatch_progress_event(atom!("loadend"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("loadend"), 0, None, can_gc);
|
||||
return_on_abort!();
|
||||
// Step 4
|
||||
fr.terminate_ongoing_reading();
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-readAsText
|
||||
pub fn process_read_data(filereader: TrustedFileReader, gen_id: GenerationId) {
|
||||
pub fn process_read_data(filereader: TrustedFileReader, gen_id: GenerationId, can_gc: CanGc) {
|
||||
let fr = filereader.root();
|
||||
|
||||
macro_rules! return_on_abort(
|
||||
|
@ -207,11 +208,11 @@ impl FileReader {
|
|||
);
|
||||
return_on_abort!();
|
||||
//FIXME Step 7 send current progress
|
||||
fr.dispatch_progress_event(atom!("progress"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("progress"), 0, None, can_gc);
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-readAsText
|
||||
pub fn process_read(filereader: TrustedFileReader, gen_id: GenerationId) {
|
||||
pub fn process_read(filereader: TrustedFileReader, gen_id: GenerationId, can_gc: CanGc) {
|
||||
let fr = filereader.root();
|
||||
|
||||
macro_rules! return_on_abort(
|
||||
|
@ -223,7 +224,7 @@ impl FileReader {
|
|||
);
|
||||
return_on_abort!();
|
||||
// Step 6
|
||||
fr.dispatch_progress_event(atom!("loadstart"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("loadstart"), 0, None, can_gc);
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-readAsText
|
||||
|
@ -232,6 +233,7 @@ impl FileReader {
|
|||
gen_id: GenerationId,
|
||||
data: ReadMetaData,
|
||||
blob_contents: Vec<u8>,
|
||||
can_gc: CanGc,
|
||||
) {
|
||||
let fr = filereader.root();
|
||||
|
||||
|
@ -267,11 +269,11 @@ impl FileReader {
|
|||
};
|
||||
|
||||
// Step 8.3
|
||||
fr.dispatch_progress_event(atom!("load"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("load"), 0, None, can_gc);
|
||||
return_on_abort!();
|
||||
// Step 8.4
|
||||
if fr.ready_state.get() != FileReaderReadyState::Loading {
|
||||
fr.dispatch_progress_event(atom!("loadend"), 0, None);
|
||||
fr.dispatch_progress_event(atom!("loadend"), 0, None, can_gc);
|
||||
}
|
||||
return_on_abort!();
|
||||
}
|
||||
|
@ -368,7 +370,7 @@ impl FileReaderMethods for FileReader {
|
|||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-abort
|
||||
fn Abort(&self) {
|
||||
fn Abort(&self, can_gc: CanGc) {
|
||||
// Step 2
|
||||
if self.ready_state.get() == FileReaderReadyState::Loading {
|
||||
self.change_ready_state(FileReaderReadyState::Done);
|
||||
|
@ -381,8 +383,8 @@ impl FileReaderMethods for FileReader {
|
|||
|
||||
self.terminate_ongoing_reading();
|
||||
// Steps 5 & 6
|
||||
self.dispatch_progress_event(atom!("abort"), 0, None);
|
||||
self.dispatch_progress_event(atom!("loadend"), 0, None);
|
||||
self.dispatch_progress_event(atom!("abort"), 0, None, can_gc);
|
||||
self.dispatch_progress_event(atom!("loadend"), 0, None, can_gc);
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-error
|
||||
|
@ -412,7 +414,7 @@ impl FileReaderMethods for FileReader {
|
|||
}
|
||||
|
||||
impl FileReader {
|
||||
fn dispatch_progress_event(&self, type_: Atom, loaded: u64, total: Option<u64>) {
|
||||
fn dispatch_progress_event(&self, type_: Atom, loaded: u64, total: Option<u64>, can_gc: CanGc) {
|
||||
let progressevent = ProgressEvent::new(
|
||||
&self.global(),
|
||||
type_,
|
||||
|
@ -421,6 +423,7 @@ impl FileReader {
|
|||
total.is_some(),
|
||||
loaded,
|
||||
total.unwrap_or(0),
|
||||
can_gc,
|
||||
);
|
||||
progressevent.upcast::<Event>().fire(self.upcast());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue