Add JPEG XL interop-2026 coverage and decoder tests [chromium/src : main]

0 views
Skip to first unread message

Helmut Januschka (Gerrit)

unread,
Feb 26, 2026, 6:17:21 PM (2 days ago) Feb 26
to Helmut Januschka, Philip Jägenstedt, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
Attention needed from Philip Jägenstedt

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Jägenstedt
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie5f33c477b616e03b3f3a21d006c6ae1da09294e
Gerrit-Change-Number: 7572466
Gerrit-PatchSet: 1
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Philip Jägenstedt <foo...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
Gerrit-Attention: Philip Jägenstedt <foo...@chromium.org>
Gerrit-Comment-Date: Thu, 26 Feb 2026 23:17:02 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Philip Jägenstedt (Gerrit)

unread,
Feb 27, 2026, 1:25:46 AM (yesterday) Feb 27
to Helmut Januschka, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, kinuko+...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
Attention needed from Helmut Januschka

Philip Jägenstedt added 1 comment

File third_party/blink/web_tests/external/wpt/jpegxl/resources/generate_resources.sh
Line 123, Patchset 3 (Latest): 8x8_noise.jxl \
Philip Jägenstedt . unresolved

How was this and other files here created? Mistakes are always possible, so I'm trying to figure out how we'd notice if some of these files are actually more plain JXL files than the filenames suggest by accident.

Open in Gerrit

Related details

Attention is currently required from:
  • Helmut Januschka
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie5f33c477b616e03b3f3a21d006c6ae1da09294e
    Gerrit-Change-Number: 7572466
    Gerrit-PatchSet: 3
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Philip Jägenstedt <foo...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
    Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
    Gerrit-Comment-Date: Fri, 27 Feb 2026 06:25:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Philip Jägenstedt (Gerrit)

    unread,
    Feb 27, 2026, 1:34:07 AM (yesterday) Feb 27
    to Helmut Januschka, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, kinuko+...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
    Attention needed from Helmut Januschka

    Philip Jägenstedt added 6 comments

    Patchset-level comments
    File-level comment, Patchset 3 (Latest):
    Philip Jägenstedt . resolved

    I've taken a high level look. My main reaction is that we'll also need more reftests, for example a reftest of the 10- and 12-bit images to ensure they're not just successfully decoded, but result in the expected 8-bit screenshot.

    File third_party/blink/web_tests/external/wpt/jpegxl/alpha-modular.html
    Line 2, Patchset 3 (Latest):<title>JPEG XL interop: alpha with modular fixture</title>
    Philip Jägenstedt . unresolved

    No need to put the "in interop" bit in the titles:

    ```suggestion
    <title>JPEG XL: alpha with modular fixture</title>
    ```

    File third_party/blink/web_tests/external/wpt/jpegxl/animation-basic-playback.https.html
    Line 2, Patchset 3 (Latest):<title>JPEG XL interop: animation basics via ImageDecoder</title>
    Philip Jägenstedt . unresolved

    Can you rename this test so that it's listed alongside the other ImageDecoder test? Maybe imagedecoder-animation.https.html

    Line 11, Patchset 3 (Latest): assert_true('ImageDecoder' in self, 'ImageDecoder should exist');
    Philip Jägenstedt . unresolved

    This kind of precondition (dependency on another feature) can use a special assert:

    ```suggestion
    assert_implements('ImageDecoder' in self, 'ImageDecoder should exist');
    ```
    File third_party/blink/web_tests/external/wpt/jpegxl/imagedecoder-jpegxl.https.html
    Line 2, Patchset 3 (Latest):<title>JPEG XL integration: ImageDecoder API</title>
    Philip Jägenstedt . unresolved

    All of the tests in this directory are for JPEG XL, can you remove "-jpegxl" from the filename?

    File third_party/blink/web_tests/external/wpt/jpegxl/resources/3x3_srgb_lossless.jxl.headers
    Line 1, Patchset 3 (Latest):Content-Type: image/jxl
    Philip Jägenstedt . unresolved

    Is this only needed for this .jxl file but not the others?

    What Content-Type header does wptserve use by default? Is it possible to just update wptserve to serve .jxl as image/jxl by default?

    Gerrit-Comment-Date: Fri, 27 Feb 2026 06:33:39 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Helmut Januschka (Gerrit)

    unread,
    Feb 27, 2026, 4:38:44 PM (yesterday) Feb 27
    to Helmut Januschka, AyeAye, Philip Jägenstedt, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, kinuko+...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
    Attention needed from Philip Jägenstedt

    Helmut Januschka added 7 comments

    Patchset-level comments
    Philip Jägenstedt . resolved

    I've taken a high level look. My main reaction is that we'll also need more reftests, for example a reftest of the 10- and 12-bit images to ensure they're not just successfully decoded, but result in the expected 8-bit screenshot.

    Helmut Januschka

    Done. Added reftests for every unique JXL resource:

    • bitdepth-10bpc, bitdepth-12bpc, bitdepth-16bpc
    • jxl-art-basic, layers-basic, progressive-dc-observable
    • vardct-large-blocks, vardct-small-blocks, icc-uncommon-profile
    • basic-decode, orientation-identity, orientation-rotate-90-ccw

    PNG references generated with jxl-rs `jxl_cli --data-type u8` to match the Chromium decoder output. The 12bpc reftest uses `fuzzy maxDifference=0-1; totalPixels=0-100000` for off-by-one alpha compositing rounding, all others are pixel-exact.

    While adding these I found that `issue648_palette0.jxl` failed to decode because we did not yet release https://github.com/libjxl/jxl-rs/pull/666

    File third_party/blink/web_tests/external/wpt/jpegxl/alpha-modular.html
    Line 2, Patchset 3:<title>JPEG XL interop: alpha with modular fixture</title>
    Philip Jägenstedt . resolved

    No need to put the "in interop" bit in the titles:

    ```suggestion
    <title>JPEG XL: alpha with modular fixture</title>
    ```

    Helmut Januschka

    Done

    File third_party/blink/web_tests/external/wpt/jpegxl/animation-basic-playback.https.html
    Line 2, Patchset 3:<title>JPEG XL interop: animation basics via ImageDecoder</title>
    Philip Jägenstedt . resolved

    Can you rename this test so that it's listed alongside the other ImageDecoder test? Maybe imagedecoder-animation.https.html

    Helmut Januschka

    Done

    Line 11, Patchset 3: assert_true('ImageDecoder' in self, 'ImageDecoder should exist');
    Philip Jägenstedt . resolved

    This kind of precondition (dependency on another feature) can use a special assert:

    ```suggestion
    assert_implements('ImageDecoder' in self, 'ImageDecoder should exist');
    ```
    Helmut Januschka

    Done

    File third_party/blink/web_tests/external/wpt/jpegxl/imagedecoder-jpegxl.https.html
    Line 2, Patchset 3:<title>JPEG XL integration: ImageDecoder API</title>
    Philip Jägenstedt . resolved

    All of the tests in this directory are for JPEG XL, can you remove "-jpegxl" from the filename?

    Helmut Januschka

    Done

    File third_party/blink/web_tests/external/wpt/jpegxl/resources/3x3_srgb_lossless.jxl.headers
    Line 1, Patchset 3:Content-Type: image/jxl
    Philip Jägenstedt . resolved

    Is this only needed for this .jxl file but not the others?

    What Content-Type header does wptserve use by default? Is it possible to just update wptserve to serve .jxl as image/jxl by default?

    Helmut Januschka

    Done

    File third_party/blink/web_tests/external/wpt/jpegxl/resources/generate_resources.sh
    Line 123, Patchset 3: 8x8_noise.jxl \
    Philip Jägenstedt . resolved

    How was this and other files here created? Mistakes are always possible, so I'm trying to figure out how we'd notice if some of these files are actually more plain JXL files than the filenames suggest by accident.

    Helmut Januschka
    • the script generates the 3x3 fixtures from scratch using `convert`/`cjxl`/`djxl`
    • copies from a local ~/jxl-rs checkout`jxl/resources/test/` has curated test images named.
    • The `conformance_test_images/` files are from the official JPEG XL conformance test suite used by all implementations
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Philip Jägenstedt
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie5f33c477b616e03b3f3a21d006c6ae1da09294e
    Gerrit-Change-Number: 7572466
    Gerrit-PatchSet: 4
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Philip Jägenstedt <foo...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
    Gerrit-Attention: Philip Jägenstedt <foo...@chromium.org>
    Gerrit-Comment-Date: Fri, 27 Feb 2026 21:38:22 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Philip Jägenstedt <foo...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Honey B (Gerrit)

    unread,
    8:25 AM (12 hours ago) 8:25 AM
    to Helmut Januschka, AyeAye, Philip Jägenstedt, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, kinuko+...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
    Attention needed from Helmut Januschka and Philip Jägenstedt

    Honey B added 1 comment

    Patchset-level comments
    File-level comment, Patchset 4 (Latest):
    Honey B . unresolved

    I would suggest adding some edge cases like crbug.com/484214291 and crbug.com/484171917.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Helmut Januschka
    • Philip Jägenstedt
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie5f33c477b616e03b3f3a21d006c6ae1da09294e
      Gerrit-Change-Number: 7572466
      Gerrit-PatchSet: 4
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Philip Jägenstedt <foo...@chromium.org>
      Gerrit-CC: Honey B <kyoko...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
      Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
      Gerrit-Attention: Philip Jägenstedt <foo...@chromium.org>
      Gerrit-Comment-Date: Sat, 28 Feb 2026 13:25:02 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Helmut Januschka (Gerrit)

      unread,
      12:50 PM (8 hours ago) 12:50 PM
      to Helmut Januschka, Honey B, AyeAye, Philip Jägenstedt, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, Olga Gerchikov, kinuko+...@chromium.org, blink-revie...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
      Attention needed from Honey B and Philip Jägenstedt

      Helmut Januschka added 2 comments

      Patchset-level comments
      Honey B . resolved

      I would suggest adding some edge cases like crbug.com/484214291 and crbug.com/484171917.

      Helmut Januschka

      Done. Added edge case coverage for both bugs:

      • crbug.com/484214291: C++ unit test + WPT with reftest for the smallest valid 12-byte JXL bitstream.
      • crbug.com/484171917: C++ unit test verifying the decoder correctly rejects the corrupt 14-byte bitstream at the decoder level.

      Didn't add a WPT for this one because making the browser fire onerror (instead of silently loading a transparent image) requires invasive changes across the core image pipeline.

      Helmut Januschka . unresolved

      note for my self: once review is satisified, pre-land a CL with decoder changes, to keep this CL WPT-only

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Honey B
      • Philip Jägenstedt
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie5f33c477b616e03b3f3a21d006c6ae1da09294e
      Gerrit-Change-Number: 7572466
      Gerrit-PatchSet: 4
      Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
      Gerrit-Reviewer: Philip Jägenstedt <foo...@chromium.org>
      Gerrit-CC: Honey B <kyoko...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
      Gerrit-Attention: Honey B <kyoko...@gmail.com>
      Gerrit-Attention: Philip Jägenstedt <foo...@chromium.org>
      Gerrit-Comment-Date: Sat, 28 Feb 2026 17:49:41 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Honey B <kyoko...@gmail.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages