LibCompress: Refactor deflate de/compressor using zlib

Also remove two crash tests that are not relevant anymore because the
implementation changed substantially.
This commit is contained in:
devgianlu 2025-03-01 17:41:22 +01:00 committed by Jelle Raaijmakers
parent 2baa7977a4
commit 1c2b373e9c
Notes: github-actions[bot] 2025-03-19 12:48:41 +00:00
8 changed files with 56 additions and 1018 deletions

View file

@ -33,7 +33,7 @@ WebIDL::ExceptionOr<GC::Ref<CompressionStream>> CompressionStream::construct_imp
case Bindings::CompressionFormat::Deflate:
return TRY(Compress::ZlibCompressor::create(move(input_stream)));
case Bindings::CompressionFormat::DeflateRaw:
return TRY(Compress::DeflateCompressor::construct(make<LittleEndianInputBitStream>(move(input_stream))));
return TRY(Compress::DeflateCompressor::create(move(input_stream)));
case Bindings::CompressionFormat::Gzip:
return TRY(Compress::GzipCompressor::create(move(input_stream)));
}
@ -166,16 +166,9 @@ ErrorOr<ByteBuffer> CompressionStream::compress(ReadonlyBytes bytes, Finish fini
}));
if (finish == Finish::Yes) {
TRY(m_compressor.visit(
[&](NonnullOwnPtr<Compress::ZlibCompressor> const& compressor) {
return compressor->finish();
},
[&](NonnullOwnPtr<Compress::DeflateCompressor> const& compressor) {
return compressor->final_flush();
},
[&](NonnullOwnPtr<Compress::GzipCompressor> const& compressor) {
return compressor->finish();
}));
TRY(m_compressor.visit([](auto const& compressor) {
return compressor->finish();
}));
}
auto buffer = TRY(ByteBuffer::create_uninitialized(m_output_stream->used_buffer_size()));