diff options
author | chickenleaf <lashwinib@gmail.com> | 2024-10-22 03:02:22 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-21 21:32:22 +0000 |
commit | ebfea9b352ef0ec00ad5213055392668e841a0e9 (patch) | |
tree | 43baab7b7e7a4bd6f1a8111bfb8fe598aeb2cf87 /components/script/dom/filereader.rs | |
parent | 1bf68567b8608d87e1817066f1dacb27edc5602a (diff) | |
download | servo-ebfea9b352ef0ec00ad5213055392668e841a0e9.tar.gz servo-ebfea9b352ef0ec00ad5213055392668e841a0e9.zip |
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>
Diffstat (limited to 'components/script/dom/filereader.rs')
-rw-r--r-- | components/script/dom/filereader.rs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 32a7fd8890c..ec3d33a6ed0 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -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()); } |