LibWeb: Perform writes during ReadableStreamPipeTo asynchronously

I don't quite see what spec text requires this, but it is explicitly
checked by WPT. We used to pass this test, but that regressed after
commit 3c6010c663.
This commit is contained in:
Timothy Flynn 2025-04-14 15:45:40 -04:00 committed by Tim Flynn
commit 988df9cc8c
Notes: github-actions[bot] 2025-04-14 20:57:12 +00:00
2 changed files with 11 additions and 4 deletions

View file

@ -497,8 +497,15 @@ private:
auto on_chunk = GC::create_function(heap(), [this](JS::Value chunk) {
m_unwritten_chunks.append(chunk);
write_chunk();
process();
if (check_for_error_and_close_states())
return;
HTML::queue_a_microtask(nullptr, GC::create_function(m_realm->heap(), [this]() {
HTML::TemporaryExecutionContext execution_context { m_realm, HTML::TemporaryExecutionContext::CallbacksEnabled::Yes };
write_chunk();
process();
}));
});
auto on_complete = GC::create_function(heap(), [this]() {