diff --git a/build/deps/gen/shared_deps.MODULE.bazel b/build/deps/gen/shared_deps.MODULE.bazel index b397a0e953b..68dc708911c 100644 --- a/build/deps/gen/shared_deps.MODULE.bazel +++ b/build/deps/gen/shared_deps.MODULE.bazel @@ -117,9 +117,9 @@ http.archive( patches = [ "//:patches/wpt/0001-disable-virtualenv-for-serve-command.patch", ], - sha256 = "466934092536acaa6b2d9dad53403b5b0b3d61e23c2ef8669cb3b394ea39dd2f", - strip_prefix = "wpt-1985b47aa", + sha256 = "61eae40a7fdd97aa9e0e8aff5a4d4758a4468181b792064b883c5c0420de4c8d", + strip_prefix = "wpt-54f8f9336", type = "tgz", - url = "https://github.com/cloudflare/workerd-tools/releases/download/wpt-1985b47aa/wpt-1985b47aa.tar.gz", + url = "https://github.com/cloudflare/workerd-tools/releases/download/wpt-54f8f9336/wpt-54f8f9336.tar.gz", ) use_repo(http, "wpt") diff --git a/build/deps/shared_deps.jsonc b/build/deps/shared_deps.jsonc index ea94ea5326f..af1092fcd34 100644 --- a/build/deps/shared_deps.jsonc +++ b/build/deps/shared_deps.jsonc @@ -113,7 +113,7 @@ "repo": "workerd-tools", "file_regex": "wpt-.*.tar.gz", "build_file": "@workerd//:build/BUILD.wpt", - "freeze_version": "wpt-1985b47aa", + "freeze_version": "wpt-54f8f9336", "patches": [ "//:patches/wpt/0001-disable-virtualenv-for-serve-command.patch" ] diff --git a/src/wpt/WebCryptoAPI-test.ts b/src/wpt/WebCryptoAPI-test.ts index 49d26efd6a8..37f63f92ca8 100644 --- a/src/wpt/WebCryptoAPI-test.ts +++ b/src/wpt/WebCryptoAPI-test.ts @@ -25,11 +25,13 @@ export default { comment: 'Argon2 is not supported', omittedTests: true, }, + 'derive_bits_keys/cfrg_curves.js': {}, 'derive_bits_keys/cfrg_curves_bits.js': {}, 'derive_bits_keys/cfrg_curves_bits_curve25519.https.any.js': {}, 'derive_bits_keys/cfrg_curves_bits_fixtures.js': {}, 'derive_bits_keys/cfrg_curves_keys.js': {}, 'derive_bits_keys/cfrg_curves_keys_curve25519.https.any.js': {}, + 'derive_bits_keys/derive.js': {}, 'derive_bits_keys/derive_key_and_encrypt.https.any.js': {}, 'derive_bits_keys/derive_key_and_encrypt.js': {}, 'derive_bits_keys/derived_bits_length.https.any.js': {}, @@ -40,8 +42,10 @@ export default { omittedTests: true, }, 'derive_bits_keys/derived_bits_length_vectors.js': {}, + 'derive_bits_keys/ecdh.js': {}, 'derive_bits_keys/ecdh_bits.https.any.js': {}, 'derive_bits_keys/ecdh_bits.js': {}, + 'derive_bits_keys/ecdh_fixtures.js': {}, 'derive_bits_keys/ecdh_keys.https.any.js': {}, 'derive_bits_keys/ecdh_keys.js': {}, 'derive_bits_keys/hkdf.https.any.js': { @@ -50,6 +54,7 @@ export default { }, 'derive_bits_keys/hkdf.js': {}, 'derive_bits_keys/hkdf_vectors.js': {}, + 'derive_bits_keys/kdf.js': {}, 'derive_bits_keys/pbkdf2.https.any.js': { comment: 'Cannot cope with this many iterations, keeps timing out', omittedTests: [/with 100000 iterations/], @@ -66,6 +71,9 @@ export default { 'empty algorithm object with long', ], }, + 'digest/digest.js': {}, + 'digest/digest_test_data.js': {}, + 'digest/xof_digest.js': {}, 'encap_decap/ml_kem_vectors.js': { comment: 'ML-KEM (post-quantum key encapsulation) is not supported', @@ -75,6 +83,7 @@ export default { 'encrypt_decrypt/aes.js': {}, 'encrypt_decrypt/aes_cbc.https.any.js': {}, 'encrypt_decrypt/aes_cbc_vectors.js': {}, + 'encrypt_decrypt/aes_common_fixtures.js': {}, 'encrypt_decrypt/aes_ctr.https.any.js': {}, 'encrypt_decrypt/aes_ctr_vectors.js': {}, 'encrypt_decrypt/aes_gcm.https.any.js': {}, @@ -94,52 +103,21 @@ export default { 'encrypt_decrypt/rsa_oaep.https.any.js': {}, 'encrypt_decrypt/rsa_vectors.js': {}, + 'generateKey/algorithm_registry.js': {}, 'generateKey/failures.js': {}, - 'generateKey/failures_AES-CBC.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_AES-CTR.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_AES-GCM.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_AES-KW.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_ECDH.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_ECDSA.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_Ed25519.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_HMAC.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_RSA-OAEP.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_RSA-PSS.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js': { - comment: 'Wrong type of error returned', - expectedFailures: [/^(Empty|Bad) algorithm:/], - }, - 'generateKey/failures_X25519.https.any.js': { + 'generateKey/failures_AES-CBC.https.any.js': {}, + 'generateKey/failures_AES-CTR.https.any.js': {}, + 'generateKey/failures_AES-GCM.https.any.js': {}, + 'generateKey/failures_AES-KW.https.any.js': {}, + 'generateKey/failures_ECDH.https.any.js': {}, + 'generateKey/failures_ECDSA.https.any.js': {}, + 'generateKey/failures_Ed25519.https.any.js': {}, + 'generateKey/failures_HMAC.https.any.js': {}, + 'generateKey/failures_RSA-OAEP.https.any.js': {}, + 'generateKey/failures_RSA-PSS.https.any.js': {}, + 'generateKey/failures_RSASSA-PKCS1-v1_5.https.any.js': {}, + 'generateKey/failures_X25519.https.any.js': {}, + 'generateKey/failures_bad_algorithm.https.any.js': { comment: 'Wrong type of error returned', expectedFailures: [/^(Empty|Bad) algorithm:/], }, @@ -226,18 +204,10 @@ export default { ], }, - 'import_export/ML-DSA_importKey.js': { - comment: 'ML-DSA (post-quantum signature algorithm) is not supported', - omittedTests: true, - }, 'import_export/ML-DSA_importKey_fixtures.js': { comment: 'ML-DSA (post-quantum signature algorithm) is not supported', omittedTests: true, }, - 'import_export/ML-KEM_importKey.js': { - comment: 'ML-KEM (post-quantum key encapsulation) is not supported', - omittedTests: true, - }, 'import_export/ML-KEM_importKey_fixtures.js': { comment: 'ML-KEM (post-quantum key encapsulation) is not supported', omittedTests: true, @@ -268,6 +238,11 @@ export default { }, 'import_export/ec_importKey_failures_fixtures.js': {}, 'import_export/importKey_failures.js': {}, + 'import_export/ml_importKey.js': { + comment: + 'Shared by ML-DSA and ML-KEM import/export tests; both post-quantum algorithms are not supported', + omittedTests: true, + }, 'import_export/okp_importKey.js': {}, 'import_export/okp_importKey_Ed25519.https.any.js': { comment: 'Investigate this', @@ -318,7 +293,11 @@ export default { ], }, 'import_export/okp_importKey_failures_fixtures.js': {}, - 'import_export/okp_importKey_fixtures.js': {}, + 'import_export/okp_importKey_fixtures.js': { + comment: + 'References okpKeyData, which is only defined when loaded after util/okp_key_fixtures.js via META scripts; cannot run standalone', + omittedTests: true, + }, 'import_export/rsa_importKey.https.any.js': {}, 'import_export/symmetric_importKey.https.any.js': {}, 'import_export/symmetric_importKey.js': {}, @@ -419,6 +398,7 @@ export default { comment: 'KMAC is not supported', omittedTests: true, }, + 'sign_verify/mac.js': {}, 'sign_verify/mldsa.js': { comment: 'ML-DSA (post-quantum signature algorithm) is not supported', omittedTests: true, @@ -432,13 +412,23 @@ export default { 'sign_verify/rsa_pkcs_vectors.js': {}, 'sign_verify/rsa_pss.https.any.js': {}, 'sign_verify/rsa_pss_vectors.js': {}, + 'sign_verify/signature.js': {}, + 'util/ec_key_fixtures.js': {}, 'util/helpers.js': {}, + 'util/mldsa_key_fixtures.js': {}, + 'util/okp_key_fixtures.js': {}, + 'util/rsa_key_fixtures.js': {}, + 'util/supports.js': {}, 'util/worker-report-crypto-subtle-presence.js': { comment: 'ReferenceError: postMessage is not defined', disabledTests: true, }, 'wrapKey_unwrapKey/wrapKey_unwrapKey.https.any.js': {}, - 'wrapKey_unwrapKey/wrapKey_unwrapKey_vectors.js': {}, + 'wrapKey_unwrapKey/wrapKey_unwrapKey_vectors.js': { + comment: + 'References okpKeyData, which is only defined when loaded after util/okp_key_fixtures.js via META scripts; cannot run standalone', + omittedTests: true, + }, } satisfies TestRunnerConfig; diff --git a/src/wpt/fetch/api-test.ts b/src/wpt/fetch/api-test.ts index 305704f5e8f..26175ea23a2 100644 --- a/src/wpt/fetch/api-test.ts +++ b/src/wpt/fetch/api-test.ts @@ -39,6 +39,18 @@ export default { // Instead throws TypeError: Parsing a Body as FormData requires a Content-Type header. 'response.formData() rejects if already aborted', + // fetch()/body-read promises reject on abort, but not with the exact + // AbortSignal.reason value; workerd currently surfaces a generic + // AbortError instead of propagating the caller-supplied reason. + 'Aborting rejects with abort reason when aborted after fetch() called', + 'response.arrayBuffer() rejects with abort reason if already aborted', + 'response.blob() rejects with abort reason if already aborted', + 'response.bytes() rejects with abort reason if already aborted', + 'response.formData() rejects with abort reason if already aborted', + 'response.json() rejects with abort reason if already aborted', + 'response.text() rejects with abort reason if already aborted', + 'Stream errors once aborted with abort reason. Underlying connection closed.', + // ReadableStream.cancel was not called synchronously at the right time 'Readable stream synchronously cancels with AbortError if aborted before reading',