Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a30d9284f5b98bd5c389f28bfc4a710d9f256fa8 https://github.com/WebKit/WebKit/commit/a30d9284f5b98bd5c389f28bfc4a710d9f256fa8 Author: Brandon Stewart <brandonstew...@apple.com> Date: 2023-05-11 (Thu, 11 May 2023)
Changed paths: A LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any-expected.txt A LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any.html A LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any.js M Source/WebCore/Modules/compression/CompressionStreamEncoder.cpp M Source/WebCore/Modules/compression/CompressionStreamEncoder.h M Source/WebCore/Modules/compression/DecompressionStreamDecoder.cpp M Source/WebCore/Modules/compression/DecompressionStreamDecoder.h Log Message: ----------- Compression Streams not handling large outputs during the flush stage https://bugs.webkit.org/show_bug.cgi?id=254021 Reviewed by Chris Dumez and Brent Fulgham. We missed an edge case where during the flush step we may have data longer than the allocated output. Since the avail_in will be set to 0 we would just exit. We need to verify that the stream has ended before exiting. * LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any.html: Added. * LayoutTests/imported/w3c/web-platform-tests/compression/compression-large-flush-output.any.js: Added. (async compressData): (promise_test.async t): * Source/WebCore/Modules/compression/CompressionStreamEncoder.cpp: (WebCore::CompressionStreamEncoder::flush): (WebCore::CompressionStreamEncoder::didDeflateFinish const): (WebCore::didDeflateFail): (WebCore::CompressionStreamEncoder::compress): * Source/WebCore/Modules/compression/CompressionStreamEncoder.h: (WebCore::CompressionStreamEncoder::CompressionStreamEncoder): * Source/WebCore/Modules/compression/DecompressionStreamDecoder.cpp: (WebCore::DecompressionStreamDecoder::flush): (WebCore::DecompressionStreamDecoder::didInflateFinish const): (WebCore::didInflateFail): (WebCore::DecompressionStreamDecoder::didInflateContainExtraBytes const): (WebCore::DecompressionStreamDecoder::decompressZlib): (WebCore::DecompressionStreamDecoder::decompressAppleCompressionFramework): * Source/WebCore/Modules/compression/DecompressionStreamDecoder.h: (WebCore::DecompressionStreamDecoder::DecompressionStreamDecoder): Canonical link: https://commits.webkit.org/263997@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes