[webkit-changes] [WebKit/WebKit] 0d3451: Add Compression Streams Brotli

Brandon Stewart noreply at github.com
Fri Oct 18 05:04:16 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0d3451c531c810977123d2b9503ed968381d2004
      https://github.com/WebKit/WebKit/commit/0d3451c531c810977123d2b9503ed968381d2004
  Author: Brandon Stewart <brandonstewart at apple.com>
  Date:   2024-10-18 (Fri, 18 Oct 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.js
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.serviceworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.sharedworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.worker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.js
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.serviceworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.sharedworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.worker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.js
    M LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.serviceworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.sharedworker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.worker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.serviceworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.sharedworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.worker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.serviceworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.sharedworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.worker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.serviceworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.sharedworker-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.worker-expected.txt
    A Source/WebCore/Modules/compression/CompressionStream.cpp
    A Source/WebCore/Modules/compression/CompressionStream.h
    M Source/WebCore/Modules/compression/CompressionStream.js
    M Source/WebCore/Modules/compression/CompressionStreamEncoder.cpp
    M Source/WebCore/Modules/compression/CompressionStreamEncoder.h
    M Source/WebCore/Modules/compression/DecompressionStream.js
    M Source/WebCore/Modules/compression/DecompressionStreamDecoder.cpp
    M Source/WebCore/Modules/compression/DecompressionStreamDecoder.h
    M Source/WebCore/Modules/compression/Formats.h
    A Source/WebCore/Modules/compression/ZStream.cpp
    A Source/WebCore/Modules/compression/ZStream.h
    A Source/WebCore/Modules/compression/cocoa/CompressionStreamEncoderCocoa.mm
    A Source/WebCore/Modules/compression/cocoa/DecompressionStreamDecoderCocoa.mm
    M Source/WebCore/Modules/notifications/NotificationPayloadCocoa.mm
    M Source/WebCore/Sources.txt
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Add Compression Streams Brotli
https://bugs.webkit.org/show_bug.cgi?id=280445
rdar://99159497

Reviewed by Alex Christensen and Ryosuke Niwa.

Add Brotli support to Compression Streams by using Apple's Compression Framework.

Co-authored-by: Alex Christensen <achristensen at apple.com>

Initial implementation and tests written by Brandon Stewart.
Alex implemented a substantial refactor to improve upon the implementation.

* LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.js:
(const.chunk.of.badChunks.promise_test.async t):
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.sharedworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.js:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.sharedworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.js:
(const.chunk.of.badChunks.promise_test.async t):
* LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.sharedworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.worker-expected.txt:
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.serviceworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.serviceworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.sharedworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.sharedworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-bad-chunks.tentative.any.worker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.serviceworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.serviceworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.sharedworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.sharedworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/compression-output-length.tentative.any.worker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.serviceworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.serviceworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.sharedworker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.sharedworker-expected.txt.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/compression/decompression-bad-chunks.tentative.any.worker-expected.txt.
* Source/WebCore/Modules/compression/CompressionStream.cpp: Added.
(WebCore::CompressionStream::CompressionStream):
(WebCore::CompressionStream::~CompressionStream):
(WebCore::CompressionStream::initializeIfNecessary):
* Source/WebCore/Modules/compression/CompressionStream.h: Added.
(WebCore::CompressionStream::get):
* Source/WebCore/Modules/compression/CompressionStream.js:
(initializeCompressionStream):
* Source/WebCore/Modules/compression/CompressionStreamEncoder.cpp:
(WebCore::CompressionStreamEncoder::didDeflateFinish const):
(WebCore::CompressionStreamEncoder::compress):
(WebCore::compressionAlgorithm):
(WebCore::CompressionStreamEncoder::compressZlib):
(WebCore::CompressionStreamEncoder::initialize): Deleted.
* Source/WebCore/Modules/compression/CompressionStreamEncoder.h:
(WebCore::CompressionStreamEncoder::create):
(WebCore::CompressionStreamEncoder::CompressionStreamEncoder):
(WebCore::CompressionStreamEncoder::~CompressionStreamEncoder): Deleted.
* Source/WebCore/Modules/compression/DecompressionStream.js:
(initializeDecompressionStream):
* Source/WebCore/Modules/compression/DecompressionStreamDecoder.cpp:
(WebCore::DecompressionStreamDecoder::decompress):
(WebCore::DecompressionStreamDecoder::didInflateFinish const):
(WebCore::DecompressionStreamDecoder::didInflateContainExtraBytes const):
(WebCore::decompressionAlgorithm):
(WebCore::DecompressionStreamDecoder::decompressZlib):
(WebCore::DecompressionStreamDecoder::initialize): Deleted.
(WebCore::DecompressionStreamDecoder::initializeAppleCompressionFramework): Deleted.
(WebCore::DecompressionStreamDecoder::decompressAppleCompressionFramework): Deleted.
* Source/WebCore/Modules/compression/DecompressionStreamDecoder.h:
(WebCore::DecompressionStreamDecoder::create):
(WebCore::DecompressionStreamDecoder::DecompressionStreamDecoder):
(WebCore::DecompressionStreamDecoder::~DecompressionStreamDecoder): Deleted.
* Source/WebCore/Modules/compression/Formats.h:
(): Deleted.
* Source/WebCore/Modules/compression/ZStream.cpp: Added.
(WebCore::ZStream::initializeIfNecessary):
(WebCore::ZStream::ZStream):
(WebCore::ZStream::~ZStream):
* Source/WebCore/Modules/compression/ZStream.h: Added.
(WebCore::ZStream::get):
(WebCore::ZStream::get const):
* Source/WebCore/Modules/compression/cocoa/CompressionStreamEncoderCocoa.mm: Added.
(WebCore::CompressionStreamEncoder::compressAppleCompressionFramework):
* Source/WebCore/Modules/compression/cocoa/DecompressionStreamDecoderCocoa.mm: Added.
(WebCore::DecompressionStreamDecoder::decompressAppleCompressionFramework):
* Source/WebCore/Modules/notifications/NotificationPayloadCocoa.mm:
* Source/WebCore/Sources.txt:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/285391@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list