aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/filereader.rs
diff options
context:
space:
mode:
authorchickenleaf <lashwinib@gmail.com>2024-10-22 03:02:22 +0530
committerGitHub <noreply@github.com>2024-10-21 21:32:22 +0000
commitebfea9b352ef0ec00ad5213055392668e841a0e9 (patch)
tree43baab7b7e7a4bd6f1a8111bfb8fe598aeb2cf87 /components/script/dom/filereader.rs
parent1bf68567b8608d87e1817066f1dacb27edc5602a (diff)
downloadservo-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.rs27
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());
}