mirror of
https://github.com/servo/servo.git
synced 2025-06-19 14:48:59 +01:00
Implement MicrotaskRunnable
for DefaultTeeReadRequestMicrotask
(#37404)
Implement `MicrotaskRunnable` for `DefaultTeeReadRequestMicrotask` to run the microtask, instead of using its own ad-hoc mechanism via `DefaultTeeReadRequestMicrotask::microtask_chunk_steps`. Testing: No need for this refactoring. Fixes: #37246 --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
This commit is contained in:
parent
41bed9840a
commit
b28e796647
2 changed files with 13 additions and 6 deletions
|
@ -6,7 +6,7 @@ use std::cell::Cell;
|
|||
use std::rc::Rc;
|
||||
|
||||
use dom_struct::dom_struct;
|
||||
use js::jsapi::Heap;
|
||||
use js::jsapi::{Heap, JSAutoRealm};
|
||||
use js::jsval::{JSVal, UndefinedValue};
|
||||
use js::rust::HandleValue as SafeHandleValue;
|
||||
|
||||
|
@ -20,7 +20,8 @@ use crate::dom::defaultteeunderlyingsource::DefaultTeeUnderlyingSource;
|
|||
use crate::dom::globalscope::GlobalScope;
|
||||
use crate::dom::promise::Promise;
|
||||
use crate::dom::readablestream::ReadableStream;
|
||||
use crate::microtask::Microtask;
|
||||
use crate::microtask::{Microtask, MicrotaskRunnable};
|
||||
use crate::realms::enter_realm;
|
||||
use crate::script_runtime::{CanGc, JSContext as SafeJSContext};
|
||||
|
||||
#[derive(JSTraceable, MallocSizeOf)]
|
||||
|
@ -31,9 +32,14 @@ pub(crate) struct DefaultTeeReadRequestMicrotask {
|
|||
tee_read_request: Dom<DefaultTeeReadRequest>,
|
||||
}
|
||||
|
||||
impl DefaultTeeReadRequestMicrotask {
|
||||
pub(crate) fn microtask_chunk_steps(&self, cx: SafeJSContext, can_gc: CanGc) {
|
||||
self.tee_read_request.chunk_steps(cx, &self.chunk, can_gc)
|
||||
impl MicrotaskRunnable for DefaultTeeReadRequestMicrotask {
|
||||
fn handler(&self, can_gc: CanGc) {
|
||||
let cx = GlobalScope::get_cx();
|
||||
self.tee_read_request.chunk_steps(cx, &self.chunk, can_gc);
|
||||
}
|
||||
|
||||
fn enter_realm(&self) -> JSAutoRealm {
|
||||
enter_realm(&*self.tee_read_request)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -147,7 +147,8 @@ impl MicrotaskQueue {
|
|||
MutationObserver::notify_mutation_observers(can_gc);
|
||||
},
|
||||
Microtask::ReadableStreamTeeReadRequest(ref task) => {
|
||||
task.microtask_chunk_steps(cx, can_gc)
|
||||
let _realm = task.enter_realm();
|
||||
task.handler(can_gc);
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue