diff --git a/ext/cache/01_cache.js b/ext/cache/01_cache.js index 99daa4d424..e64178d89d 100644 --- a/ext/cache/01_cache.js +++ b/ext/cache/01_cache.js @@ -277,8 +277,8 @@ class Cache { } } -webidl.configurePrototype(CacheStorage); -webidl.configurePrototype(Cache); +webidl.configureInterface(CacheStorage); +webidl.configureInterface(Cache); const CacheStoragePrototype = CacheStorage.prototype; const CachePrototype = Cache.prototype; diff --git a/ext/crypto/00_crypto.js b/ext/crypto/00_crypto.js index f262e43d9b..de4ad07e1b 100644 --- a/ext/crypto/00_crypto.js +++ b/ext/crypto/00_crypto.js @@ -361,7 +361,7 @@ class CryptoKey { } } -webidl.configurePrototype(CryptoKey); +webidl.configureInterface(CryptoKey); const CryptoKeyPrototype = CryptoKey.prototype; /** @@ -4671,7 +4671,7 @@ async function encrypt(normalizedAlgorithm, key, data) { } } -webidl.configurePrototype(SubtleCrypto); +webidl.configureInterface(SubtleCrypto); const subtle = webidl.createBranded(SubtleCrypto); class Crypto { @@ -4734,7 +4734,7 @@ class Crypto { } } -webidl.configurePrototype(Crypto); +webidl.configureInterface(Crypto); const CryptoPrototype = Crypto.prototype; const crypto = webidl.createBranded(Crypto); diff --git a/ext/fetch/20_headers.js b/ext/fetch/20_headers.js index a004daa897..b99758de51 100644 --- a/ext/fetch/20_headers.js +++ b/ext/fetch/20_headers.js @@ -453,7 +453,7 @@ class Headers { webidl.mixinPairIterable("Headers", Headers, _iterableHeaders, 0, 1); -webidl.configurePrototype(Headers); +webidl.configureInterface(Headers); const HeadersPrototype = Headers.prototype; webidl.converters["HeadersInit"] = (V, prefix, context, opts) => { diff --git a/ext/fetch/21_formdata.js b/ext/fetch/21_formdata.js index d905ec7c40..84d31898e7 100644 --- a/ext/fetch/21_formdata.js +++ b/ext/fetch/21_formdata.js @@ -266,7 +266,7 @@ class FormData { webidl.mixinPairIterable("FormData", FormData, entryList, "name", "value"); -webidl.configurePrototype(FormData); +webidl.configureInterface(FormData); const FormDataPrototype = FormData.prototype; const ESCAPE_FILENAME_PATTERN = new SafeRegExp(/\r?\n|\r/g); diff --git a/ext/fetch/23_request.js b/ext/fetch/23_request.js index c09bd48808..a59bfb29d7 100644 --- a/ext/fetch/23_request.js +++ b/ext/fetch/23_request.js @@ -497,7 +497,7 @@ class Request { } } -webidl.configurePrototype(Request); +webidl.configureInterface(Request); const RequestPrototype = Request.prototype; mixinBody(RequestPrototype, _body, _mimeType); diff --git a/ext/fetch/23_response.js b/ext/fetch/23_response.js index 73a90166d5..83fad403a3 100644 --- a/ext/fetch/23_response.js +++ b/ext/fetch/23_response.js @@ -426,7 +426,7 @@ class Response { } } -webidl.configurePrototype(Response); +webidl.configureInterface(Response); ObjectDefineProperties(Response, { json: { enumerable: true }, redirect: { enumerable: true }, diff --git a/ext/url/00_url.js b/ext/url/00_url.js index 65cde2ce27..ce366a27ab 100644 --- a/ext/url/00_url.js +++ b/ext/url/00_url.js @@ -324,7 +324,7 @@ class URLSearchParams { webidl.mixinPairIterable("URLSearchParams", URLSearchParams, _list, 0, 1); -webidl.configurePrototype(URLSearchParams); +webidl.configureInterface(URLSearchParams); const URLSearchParamsPrototype = URLSearchParams.prototype; webidl.converters["URLSearchParams"] = webidl.createInterfaceConverter( @@ -806,7 +806,7 @@ class URL { } } -webidl.configurePrototype(URL); +webidl.configureInterface(URL); const URLPrototype = URL.prototype; /** diff --git a/ext/url/01_urlpattern.js b/ext/url/01_urlpattern.js index e6d21e49de..0cabccc1ba 100644 --- a/ext/url/01_urlpattern.js +++ b/ext/url/01_urlpattern.js @@ -238,7 +238,7 @@ class URLPattern { } } -webidl.configurePrototype(URLPattern); +webidl.configureInterface(URLPattern); const URLPatternPrototype = URLPattern.prototype; webidl.converters.URLPatternInit = webidl diff --git a/ext/web/01_dom_exception.js b/ext/web/01_dom_exception.js index 54d47beaff..d876d90a62 100644 --- a/ext/web/01_dom_exception.js +++ b/ext/web/01_dom_exception.js @@ -170,7 +170,7 @@ ObjectDefineProperty(DOMException.prototype, "__callSiteEvals", { ObjectSetPrototypeOf(DOMException.prototype, ErrorPrototype); -webidl.configurePrototype(DOMException); +webidl.configureInterface(DOMException); const DOMExceptionPrototype = DOMException.prototype; const entries = ObjectEntries({ diff --git a/ext/web/02_event.js b/ext/web/02_event.js index 80dc4ffc7b..8831d37fb9 100644 --- a/ext/web/02_event.js +++ b/ext/web/02_event.js @@ -1044,7 +1044,7 @@ class EventTarget { } } -webidl.configurePrototype(EventTarget); +webidl.configureInterface(EventTarget); const EventTargetPrototype = EventTarget.prototype; defineEnumerableProps(EventTarget, [ diff --git a/ext/web/03_abort_signal.js b/ext/web/03_abort_signal.js index 2cc64189be..9b5eb51ad4 100644 --- a/ext/web/03_abort_signal.js +++ b/ext/web/03_abort_signal.js @@ -152,7 +152,7 @@ class AbortSignal extends EventTarget { } defineEventHandler(AbortSignal.prototype, "abort"); -webidl.configurePrototype(AbortSignal); +webidl.configureInterface(AbortSignal); const AbortSignalPrototype = AbortSignal.prototype; class AbortController { @@ -173,7 +173,7 @@ class AbortController { } } -webidl.configurePrototype(AbortController); +webidl.configureInterface(AbortController); const AbortControllerPrototype = AbortController.prototype; webidl.converters["AbortSignal"] = webidl.createInterfaceConverter( diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js index 7f43d3fc27..9c6191fcee 100644 --- a/ext/web/06_streams.js +++ b/ext/web/06_streams.js @@ -4866,7 +4866,7 @@ class ByteLengthQueuingStrategy { } } -webidl.configurePrototype(ByteLengthQueuingStrategy); +webidl.configureInterface(ByteLengthQueuingStrategy); const ByteLengthQueuingStrategyPrototype = ByteLengthQueuingStrategy.prototype; /** @type {WeakMap number>} */ @@ -4920,7 +4920,7 @@ class CountQueuingStrategy { } } -webidl.configurePrototype(CountQueuingStrategy); +webidl.configureInterface(CountQueuingStrategy); const CountQueuingStrategyPrototype = CountQueuingStrategy.prototype; /** @type {WeakMap 1>} */ @@ -5254,7 +5254,7 @@ ObjectDefineProperty(ReadableStream.prototype, SymbolAsyncIterator, { configurable: true, }); -webidl.configurePrototype(ReadableStream); +webidl.configureInterface(ReadableStream); const ReadableStreamPrototype = ReadableStream.prototype; function errorReadableStream(stream, e) { @@ -5354,7 +5354,7 @@ class ReadableStreamDefaultReader { } } -webidl.configurePrototype(ReadableStreamDefaultReader); +webidl.configureInterface(ReadableStreamDefaultReader); const ReadableStreamDefaultReaderPrototype = ReadableStreamDefaultReader.prototype; @@ -5484,7 +5484,7 @@ class ReadableStreamBYOBReader { } } -webidl.configurePrototype(ReadableStreamBYOBReader); +webidl.configureInterface(ReadableStreamBYOBReader); const ReadableStreamBYOBReaderPrototype = ReadableStreamBYOBReader.prototype; class ReadableStreamBYOBRequest { @@ -5564,7 +5564,7 @@ class ReadableStreamBYOBRequest { } } -webidl.configurePrototype(ReadableStreamBYOBRequest); +webidl.configureInterface(ReadableStreamBYOBRequest); const ReadableStreamBYOBRequestPrototype = ReadableStreamBYOBRequest.prototype; class ReadableByteStreamController { @@ -5761,7 +5761,7 @@ class ReadableByteStreamController { } } -webidl.configurePrototype(ReadableByteStreamController); +webidl.configureInterface(ReadableByteStreamController); const ReadableByteStreamControllerPrototype = ReadableByteStreamController.prototype; @@ -5884,7 +5884,7 @@ class ReadableStreamDefaultController { } } -webidl.configurePrototype(ReadableStreamDefaultController); +webidl.configureInterface(ReadableStreamDefaultController); const ReadableStreamDefaultControllerPrototype = ReadableStreamDefaultController.prototype; @@ -6002,7 +6002,7 @@ class TransformStream { } } -webidl.configurePrototype(TransformStream); +webidl.configureInterface(TransformStream); const TransformStreamPrototype = TransformStream.prototype; /** @template O */ @@ -6069,7 +6069,7 @@ class TransformStreamDefaultController { } } -webidl.configurePrototype(TransformStreamDefaultController); +webidl.configureInterface(TransformStreamDefaultController); const TransformStreamDefaultControllerPrototype = TransformStreamDefaultController.prototype; @@ -6204,7 +6204,7 @@ class WritableStream { } } -webidl.configurePrototype(WritableStream); +webidl.configureInterface(WritableStream); const WritableStreamPrototype = WritableStream.prototype; /** @template W */ @@ -6350,7 +6350,7 @@ class WritableStreamDefaultWriter { } } -webidl.configurePrototype(WritableStreamDefaultWriter); +webidl.configureInterface(WritableStreamDefaultWriter); const WritableStreamDefaultWriterPrototype = WritableStreamDefaultWriter.prototype; @@ -6428,7 +6428,7 @@ class WritableStreamDefaultController { } } -webidl.configurePrototype(WritableStreamDefaultController); +webidl.configureInterface(WritableStreamDefaultController); const WritableStreamDefaultControllerPrototype = WritableStreamDefaultController.prototype; diff --git a/ext/web/08_text_encoding.js b/ext/web/08_text_encoding.js index e7e535f906..45dbad5382 100644 --- a/ext/web/08_text_encoding.js +++ b/ext/web/08_text_encoding.js @@ -192,7 +192,7 @@ class TextDecoder { } } -webidl.configurePrototype(TextDecoder); +webidl.configureInterface(TextDecoder); const TextDecoderPrototype = TextDecoder.prototype; class TextEncoder { @@ -251,7 +251,7 @@ class TextEncoder { const encodeIntoBuf = new Uint32Array(2); -webidl.configurePrototype(TextEncoder); +webidl.configureInterface(TextEncoder); const TextEncoderPrototype = TextEncoder.prototype; class TextDecoderStream { @@ -336,7 +336,7 @@ class TextDecoderStream { } } -webidl.configurePrototype(TextDecoderStream); +webidl.configureInterface(TextDecoderStream); const TextDecoderStreamPrototype = TextDecoderStream.prototype; class TextEncoderStream { @@ -409,7 +409,7 @@ class TextEncoderStream { } } -webidl.configurePrototype(TextEncoderStream); +webidl.configureInterface(TextEncoderStream); const TextEncoderStreamPrototype = TextEncoderStream.prototype; webidl.converters.TextDecoderOptions = webidl.createDictionaryConverter( diff --git a/ext/web/09_file.js b/ext/web/09_file.js index fd0451438d..30b91c053a 100644 --- a/ext/web/09_file.js +++ b/ext/web/09_file.js @@ -428,7 +428,7 @@ class Blob { } } -webidl.configurePrototype(Blob); +webidl.configureInterface(Blob); const BlobPrototype = Blob.prototype; webidl.converters["Blob"] = webidl.createInterfaceConverter( @@ -549,7 +549,7 @@ class File extends Blob { } } -webidl.configurePrototype(File); +webidl.configureInterface(File); const FilePrototype = File.prototype; webidl.converters["FilePropertyBag"] = webidl.createDictionaryConverter( diff --git a/ext/web/10_filereader.js b/ext/web/10_filereader.js index fe5dbb9150..f7b88669ba 100644 --- a/ext/web/10_filereader.js +++ b/ext/web/10_filereader.js @@ -432,7 +432,7 @@ class FileReader extends EventTarget { } } -webidl.configurePrototype(FileReader); +webidl.configureInterface(FileReader); const FileReaderPrototype = FileReader.prototype; ObjectDefineProperty(FileReader, "EMPTY", { diff --git a/ext/web/13_message_port.js b/ext/web/13_message_port.js index ffbc48812a..4b0404ab62 100644 --- a/ext/web/13_message_port.js +++ b/ext/web/13_message_port.js @@ -64,7 +64,7 @@ class MessageChannel { } } -webidl.configurePrototype(MessageChannel); +webidl.configureInterface(MessageChannel); const MessageChannelPrototype = MessageChannel.prototype; const _id = Symbol("id"); @@ -188,7 +188,7 @@ defineEventHandler(MessagePort.prototype, "message", function (self) { }); defineEventHandler(MessagePort.prototype, "messageerror"); -webidl.configurePrototype(MessagePort); +webidl.configureInterface(MessagePort); const MessagePortPrototype = MessagePort.prototype; /** diff --git a/ext/web/14_compression.js b/ext/web/14_compression.js index 2ba7746bd5..1b6dd49644 100644 --- a/ext/web/14_compression.js +++ b/ext/web/14_compression.js @@ -62,7 +62,7 @@ class CompressionStream { } } -webidl.configurePrototype(CompressionStream); +webidl.configureInterface(CompressionStream); const CompressionStreamPrototype = CompressionStream.prototype; class DecompressionStream { @@ -110,7 +110,7 @@ function maybeEnqueue(controller, output) { } } -webidl.configurePrototype(DecompressionStream); +webidl.configureInterface(DecompressionStream); const DecompressionStreamPrototype = DecompressionStream.prototype; export { CompressionStream, DecompressionStream }; diff --git a/ext/web/15_performance.js b/ext/web/15_performance.js index 72f4d3a7e5..9ec2cd3769 100644 --- a/ext/web/15_performance.js +++ b/ext/web/15_performance.js @@ -212,7 +212,7 @@ class PerformanceEntry { })); } } -webidl.configurePrototype(PerformanceEntry); +webidl.configureInterface(PerformanceEntry); const PerformanceEntryPrototype = PerformanceEntry.prototype; const _detail = Symbol("[[detail]]"); @@ -279,7 +279,7 @@ class PerformanceMark extends PerformanceEntry { })); } } -webidl.configurePrototype(PerformanceMark); +webidl.configureInterface(PerformanceMark); const PerformanceMarkPrototype = PerformanceMark.prototype; class PerformanceMeasure extends PerformanceEntry { [_detail] = null; @@ -338,7 +338,7 @@ class PerformanceMeasure extends PerformanceEntry { })); } } -webidl.configurePrototype(PerformanceMeasure); +webidl.configureInterface(PerformanceMeasure); const PerformanceMeasurePrototype = PerformanceMeasure.prototype; class Performance extends EventTarget { constructor(key = null) { @@ -577,7 +577,7 @@ class Performance extends EventTarget { })); } } -webidl.configurePrototype(Performance); +webidl.configureInterface(Performance); const PerformancePrototype = Performance.prototype; webidl.converters["Performance"] = webidl.createInterfaceConverter( diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index a532c5ac4c..c3b00286f2 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -1138,36 +1138,42 @@ function mixinPairIterable(name, prototype, dataSymbol, keyKey, valueKey) { return ObjectDefineProperties(prototype.prototype, properties); } -function configurePrototype(prototype) { - const descriptors = ObjectGetOwnPropertyDescriptors(prototype.prototype); +function configureInterface(interface_) { + configureProperties(interface_); + configureProperties(interface_.prototype); + ObjectDefineProperty(interface_.prototype, SymbolToStringTag, { + value: interface_.name, + enumerable: false, + configurable: true, + writable: false, + }); +} + +function configureProperties(obj) { + const descriptors = ObjectGetOwnPropertyDescriptors(obj); for (const key in descriptors) { if (!ObjectHasOwn(descriptors, key)) { continue; } if (key === "constructor") continue; + if (key === "prototype") continue; const descriptor = descriptors[key]; if ( ReflectHas(descriptor, "value") && typeof descriptor.value === "function" ) { - ObjectDefineProperty(prototype.prototype, key, { + ObjectDefineProperty(obj, key, { enumerable: true, writable: true, configurable: true, }); } else if (ReflectHas(descriptor, "get")) { - ObjectDefineProperty(prototype.prototype, key, { + ObjectDefineProperty(obj, key, { enumerable: true, configurable: true, }); } } - ObjectDefineProperty(prototype.prototype, SymbolToStringTag, { - value: prototype.name, - enumerable: false, - configurable: true, - writable: false, - }); } const setlikeInner = Symbol("[[set]]"); @@ -1275,7 +1281,7 @@ function setlike(obj, objPrototype, readonly) { export { assertBranded, brand, - configurePrototype, + configureInterface, converters, createBranded, createDictionaryConverter, diff --git a/ext/webidl/internal.d.ts b/ext/webidl/internal.d.ts index 38f176ab21..7f1f682820 100644 --- a/ext/webidl/internal.d.ts +++ b/ext/webidl/internal.d.ts @@ -543,7 +543,7 @@ declare module "ext:deno_webidl/00_webidl.js" { /** * Configure prototype properties enumerability / writability / configurability. */ - function configurePrototype(prototype: any); + function configureInterface(prototype: any); /** * Get the WebIDL / ES type of a value. diff --git a/ext/websocket/01_websocket.js b/ext/websocket/01_websocket.js index 3417eff671..752ff93bdc 100644 --- a/ext/websocket/01_websocket.js +++ b/ext/websocket/01_websocket.js @@ -570,7 +570,7 @@ defineEventHandler(WebSocket.prototype, "error"); defineEventHandler(WebSocket.prototype, "close"); defineEventHandler(WebSocket.prototype, "open"); -webidl.configurePrototype(WebSocket); +webidl.configureInterface(WebSocket); const WebSocketPrototype = WebSocket.prototype; export { diff --git a/test_util/wpt b/test_util/wpt index c84a2ef4f2..a8872d92b1 160000 --- a/test_util/wpt +++ b/test_util/wpt @@ -1 +1 @@ -Subproject commit c84a2ef4f244210040b5864fa28d157cfba2e537 +Subproject commit a8872d92b147fc87200eb0c14fe7a4a9e7cd4f73 diff --git a/tools/wpt.ts b/tools/wpt.ts index 8c9d0a447b..07f6b6ba94 100755 --- a/tools/wpt.ts +++ b/tools/wpt.ts @@ -329,7 +329,10 @@ function assertAllExpectationsHaveTests( for (const [key, expectation] of Object.entries(parentExpectation)) { const path = `${parent}/${key}`; if (!filter.matches(path)) continue; - if (typeof expectation == "boolean" || Array.isArray(expectation)) { + if ( + (typeof expectation == "boolean" || Array.isArray(expectation)) && + key !== "ignore" + ) { if (!tests.has(path)) { missingTests.push(path); } diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index 6e0eb2e1a2..b547dee364 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -1020,35 +1020,67 @@ ], "import_export": { "ec_importKey.https.any.html": [ + "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify])", + "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify])", "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [])", "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [])", + "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify])", + "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify])", "Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [])", "Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [])", "Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [])", "Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [])", + "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify])", + "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify])", "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [])", "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [])", + "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify])", + "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify])", "Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [])", "Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [])", "Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [])", "Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign, sign])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign, sign])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign, sign])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign, sign])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDH, namedCurve: P-256}, true, [])", "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDH, namedCurve: P-256}, true, [])", @@ -1070,10 +1102,12 @@ "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDH, namedCurve: P-521}, false, [])", @@ -1083,42 +1117,76 @@ "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [])" ], "ec_importKey.https.any.worker.html": [ + "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify])", + "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify])", "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [])", "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [])", + "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify])", + "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDSA, namedCurve: P-256}, true, [verify, verify])", "Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [])", "Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [])", "Empty Usages: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [])", "Empty Usages: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [])", + "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify])", + "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify])", "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [])", "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [])", + "Good parameters: P-384 bits (spki, buffer(72, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify])", + "Good parameters: P-384 bits (raw, buffer(49, compressed), {name: ECDSA, namedCurve: P-384}, true, [verify, verify])", "Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [])", "Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [])", "Empty Usages: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [])", "Empty Usages: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, true, [verify, verify])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign, sign])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign, sign])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [])", + "Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(133), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", + "Good parameters: P-521 bits (raw, buffer(67, compressed), {name: ECDSA, namedCurve: P-521}, false, [verify, verify])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign, sign])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign, sign])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [])", "Good parameters: P-256 bits (spki, buffer(59, compressed), {name: ECDH, namedCurve: P-256}, true, [])", "Good parameters: P-256 bits (raw, buffer(33, compressed), {name: ECDH, namedCurve: P-256}, true, [])", @@ -1140,10 +1208,12 @@ "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [])", "Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (spki, buffer(90, compressed), {name: ECDH, namedCurve: P-521}, false, [])", @@ -1153,10 +1223,12 @@ "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey])", "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits])", + "Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey])", "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits])", + "Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", "Empty Usages: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [])" ], "rsa_importKey.https.any.html": [ @@ -1612,19 +1684,36 @@ "Empty Usages: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [])" ], "okp_importKey.https.any.html": [ + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [verify])", "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [])", "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [])", "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [verify, verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [verify, verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [verify, verify])", "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, true, [sign])", "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, true, [sign])", + "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, true, [sign, sign])", + "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, true, [sign, sign])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [verify])", "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [])", "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [])", "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [verify, verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [verify, verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [verify, verify])", "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, false, [sign])", "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, false, [sign])", + "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, false, [sign, sign])", + "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, false, [sign, sign])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits, deriveKey])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits])", + "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Good parameters: X448 bits (spki, buffer(68), {name: X448}, true, [])", "Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, true, [])", "Good parameters: X448 bits (raw, buffer(56), {name: X448}, true, [])", @@ -1634,6 +1723,8 @@ "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits, deriveKey])", "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveBits])", "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits])", + "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Good parameters: X448 bits (spki, buffer(68), {name: X448}, false, [])", "Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, false, [])", "Good parameters: X448 bits (raw, buffer(56), {name: X448}, false, [])", @@ -1642,22 +1733,41 @@ "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveBits, deriveKey])", "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits, deriveKey])", "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveBits])", - "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits])" + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits])", + "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])" ], "okp_importKey.https.any.worker.html": [ + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [verify])", "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [])", "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [])", "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, true, [verify, verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, true, [verify, verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, true, [verify, verify])", "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, true, [sign])", "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, true, [sign])", + "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, true, [sign, sign])", + "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, true, [sign, sign])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [verify])", "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [])", "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [])", "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [])", + "Good parameters: Ed448 bits (spki, buffer(69), {name: Ed448}, false, [verify, verify])", + "Good parameters: Ed448 bits (jwk, object(kty, crv, x), {name: Ed448}, false, [verify, verify])", + "Good parameters: Ed448 bits (raw, buffer(57), {name: Ed448}, false, [verify, verify])", "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, false, [sign])", "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, false, [sign])", + "Good parameters: Ed448 bits (pkcs8, buffer(73), {name: Ed448}, false, [sign, sign])", + "Good parameters: Ed448 bits (jwk, object(crv, d, x, kty), {name: Ed448}, false, [sign, sign])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits, deriveKey])", "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits])", + "Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Good parameters: X448 bits (spki, buffer(68), {name: X448}, true, [])", "Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, true, [])", "Good parameters: X448 bits (raw, buffer(56), {name: X448}, true, [])", @@ -1667,6 +1777,8 @@ "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits, deriveKey])", "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveBits])", "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits])", + "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", "Good parameters: X448 bits (spki, buffer(68), {name: X448}, false, [])", "Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, false, [])", "Good parameters: X448 bits (raw, buffer(56), {name: X448}, false, [])", @@ -1675,7 +1787,9 @@ "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveBits, deriveKey])", "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits, deriveKey])", "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveBits])", - "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits])" + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveBits])", + "Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", + "Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])" ], "okp_importKey_failures_Ed25519.https.any.html": [ "Empty usages: importKey(pkcs8, {name: Ed25519}, true, [])", @@ -2246,7 +2360,7 @@ "relatedTarget.window.html": false }, "idlharness-shadowrealm.window.html": false, - "idlharness.any.worker.html": [ + "idlharness.window.html?exclude=Node": [ "Event interface: attribute srcElement", "Event interface: operation composedPath()", "Event interface: constant NONE on interface object", @@ -2264,23 +2378,578 @@ "Event interface: operation preventDefault()", "Event interface: attribute defaultPrevented", "Event interface: operation initEvent(DOMString, optional boolean, optional boolean)", - "Event interface: new Event(\"foo\") must have own property \"isTrusted\"", - "Event interface: new Event(\"foo\") must inherit property \"initEvent(DOMString, optional boolean, optional boolean)\" with the proper type", - "Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event(\"foo\") with too few arguments must throw TypeError", "CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)", - "CustomEvent interface: new CustomEvent(\"foo\") must inherit property \"initCustomEvent(DOMString, optional boolean, optional boolean, optional any)\" with the proper type", - "CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent(\"foo\") with too few arguments must throw TypeError", - "Event interface: new CustomEvent(\"foo\") must have own property \"isTrusted\"", - "Event interface: new CustomEvent(\"foo\") must inherit property \"initEvent(DOMString, optional boolean, optional boolean)\" with the proper type", - "Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent(\"foo\") with too few arguments must throw TypeError", "EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))", "EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))", "AbortController interface: operation abort(optional any)", - "AbortSignal interface: operation abort(optional any)", - "AbortSignal interface: operation timeout(unsigned long long)", "AbortSignal interface: operation any(sequence)", "AbortSignal interface: attribute onabort", - "AbortSignal interface: calling any(sequence) on new AbortController().signal with too few arguments must throw TypeError" + "NodeList interface: existence and properties of interface object", + "NodeList interface object length", + "NodeList interface object name", + "NodeList interface: existence and properties of interface prototype object", + "NodeList interface: existence and properties of interface prototype object's \"constructor\" property", + "NodeList interface: existence and properties of interface prototype object's @@unscopables property", + "NodeList interface: operation item(unsigned long)", + "NodeList interface: attribute length", + "NodeList interface: iterable", + "HTMLCollection interface: existence and properties of interface object", + "HTMLCollection interface object length", + "HTMLCollection interface object name", + "HTMLCollection interface: existence and properties of interface prototype object", + "HTMLCollection interface: existence and properties of interface prototype object's \"constructor\" property", + "HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property", + "HTMLCollection interface: attribute length", + "HTMLCollection interface: operation item(unsigned long)", + "HTMLCollection interface: operation namedItem(DOMString)", + "MutationObserver interface: existence and properties of interface object", + "MutationObserver interface object length", + "MutationObserver interface object name", + "MutationObserver interface: existence and properties of interface prototype object", + "MutationObserver interface: existence and properties of interface prototype object's \"constructor\" property", + "MutationObserver interface: existence and properties of interface prototype object's @@unscopables property", + "MutationObserver interface: operation observe(Node, optional MutationObserverInit)", + "MutationObserver interface: operation disconnect()", + "MutationObserver interface: operation takeRecords()", + "MutationRecord interface: existence and properties of interface object", + "MutationRecord interface object length", + "MutationRecord interface object name", + "MutationRecord interface: existence and properties of interface prototype object", + "MutationRecord interface: existence and properties of interface prototype object's \"constructor\" property", + "MutationRecord interface: existence and properties of interface prototype object's @@unscopables property", + "MutationRecord interface: attribute type", + "MutationRecord interface: attribute target", + "MutationRecord interface: attribute addedNodes", + "MutationRecord interface: attribute removedNodes", + "MutationRecord interface: attribute previousSibling", + "MutationRecord interface: attribute nextSibling", + "MutationRecord interface: attribute attributeName", + "MutationRecord interface: attribute attributeNamespace", + "MutationRecord interface: attribute oldValue", + "Document interface: existence and properties of interface object", + "Document interface object length", + "Document interface object name", + "Document interface: existence and properties of interface prototype object", + "Document interface: existence and properties of interface prototype object's \"constructor\" property", + "Document interface: existence and properties of interface prototype object's @@unscopables property", + "Document interface: attribute implementation", + "Document interface: attribute URL", + "Document interface: attribute documentURI", + "Document interface: attribute compatMode", + "Document interface: attribute characterSet", + "Document interface: attribute charset", + "Document interface: attribute inputEncoding", + "Document interface: attribute contentType", + "Document interface: attribute doctype", + "Document interface: attribute documentElement", + "Document interface: operation getElementsByTagName(DOMString)", + "Document interface: operation getElementsByTagNameNS(DOMString?, DOMString)", + "Document interface: operation getElementsByClassName(DOMString)", + "Document interface: operation createElement(DOMString, optional (DOMString or ElementCreationOptions))", + "Document interface: operation createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))", + "Document interface: operation createDocumentFragment()", + "Document interface: operation createTextNode(DOMString)", + "Document interface: operation createCDATASection(DOMString)", + "Document interface: operation createComment(DOMString)", + "Document interface: operation createProcessingInstruction(DOMString, DOMString)", + "Document interface: operation importNode(Node, optional boolean)", + "Document interface: operation adoptNode(Node)", + "Document interface: operation createAttribute(DOMString)", + "Document interface: operation createAttributeNS(DOMString?, DOMString)", + "Document interface: operation createEvent(DOMString)", + "Document interface: operation createRange()", + "Document interface: operation createNodeIterator(Node, optional unsigned long, optional NodeFilter?)", + "Document interface: operation createTreeWalker(Node, optional unsigned long, optional NodeFilter?)", + "Document interface: attribute fullscreenEnabled", + "Document interface: attribute fullscreen", + "Document interface: operation exitFullscreen()", + "Document interface: attribute onfullscreenchange", + "Document interface: attribute onfullscreenerror", + "Document interface: operation getElementById(DOMString)", + "Document interface: attribute fullscreenElement", + "Document interface: attribute children", + "Document interface: attribute firstElementChild", + "Document interface: attribute lastElementChild", + "Document interface: attribute childElementCount", + "Document interface: operation prepend((Node or DOMString)...)", + "Document interface: operation append((Node or DOMString)...)", + "Document interface: operation replaceChildren((Node or DOMString)...)", + "Document interface: operation querySelector(DOMString)", + "Document interface: operation querySelectorAll(DOMString)", + "Document interface: operation createExpression(DOMString, optional XPathNSResolver?)", + "Document interface: operation createNSResolver(Node)", + "Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)", + "XMLDocument interface: existence and properties of interface object", + "XMLDocument interface object length", + "XMLDocument interface object name", + "XMLDocument interface: existence and properties of interface prototype object", + "XMLDocument interface: existence and properties of interface prototype object's \"constructor\" property", + "XMLDocument interface: existence and properties of interface prototype object's @@unscopables property", + "DOMImplementation interface: existence and properties of interface object", + "DOMImplementation interface object length", + "DOMImplementation interface object name", + "DOMImplementation interface: existence and properties of interface prototype object", + "DOMImplementation interface: existence and properties of interface prototype object's \"constructor\" property", + "DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property", + "DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString)", + "DOMImplementation interface: operation createDocument(DOMString?, DOMString, optional DocumentType?)", + "DOMImplementation interface: operation createHTMLDocument(optional DOMString)", + "DOMImplementation interface: operation hasFeature()", + "DocumentType interface: existence and properties of interface object", + "DocumentType interface object length", + "DocumentType interface object name", + "DocumentType interface: existence and properties of interface prototype object", + "DocumentType interface: existence and properties of interface prototype object's \"constructor\" property", + "DocumentType interface: existence and properties of interface prototype object's @@unscopables property", + "DocumentType interface: attribute name", + "DocumentType interface: attribute publicId", + "DocumentType interface: attribute systemId", + "DocumentType interface: operation before((Node or DOMString)...)", + "DocumentType interface: operation after((Node or DOMString)...)", + "DocumentType interface: operation replaceWith((Node or DOMString)...)", + "DocumentType interface: operation remove()", + "DocumentFragment interface: existence and properties of interface object", + "DocumentFragment interface object length", + "DocumentFragment interface object name", + "DocumentFragment interface: existence and properties of interface prototype object", + "DocumentFragment interface: existence and properties of interface prototype object's \"constructor\" property", + "DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property", + "DocumentFragment interface: operation getElementById(DOMString)", + "DocumentFragment interface: attribute children", + "DocumentFragment interface: attribute firstElementChild", + "DocumentFragment interface: attribute lastElementChild", + "DocumentFragment interface: attribute childElementCount", + "DocumentFragment interface: operation prepend((Node or DOMString)...)", + "DocumentFragment interface: operation append((Node or DOMString)...)", + "DocumentFragment interface: operation replaceChildren((Node or DOMString)...)", + "DocumentFragment interface: operation querySelector(DOMString)", + "DocumentFragment interface: operation querySelectorAll(DOMString)", + "ShadowRoot interface: existence and properties of interface object", + "ShadowRoot interface object length", + "ShadowRoot interface object name", + "ShadowRoot interface: existence and properties of interface prototype object", + "ShadowRoot interface: existence and properties of interface prototype object's \"constructor\" property", + "ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property", + "ShadowRoot interface: attribute mode", + "ShadowRoot interface: attribute delegatesFocus", + "ShadowRoot interface: attribute slotAssignment", + "ShadowRoot interface: attribute host", + "ShadowRoot interface: attribute onslotchange", + "ShadowRoot interface: attribute fullscreenElement", + "Element interface: existence and properties of interface object", + "Element interface object length", + "Element interface object name", + "Element interface: existence and properties of interface prototype object", + "Element interface: existence and properties of interface prototype object's \"constructor\" property", + "Element interface: existence and properties of interface prototype object's @@unscopables property", + "Element interface: attribute namespaceURI", + "Element interface: attribute prefix", + "Element interface: attribute localName", + "Element interface: attribute tagName", + "Element interface: attribute id", + "Element interface: attribute className", + "Element interface: attribute classList", + "Element interface: attribute slot", + "Element interface: operation hasAttributes()", + "Element interface: attribute attributes", + "Element interface: operation getAttributeNames()", + "Element interface: operation getAttribute(DOMString)", + "Element interface: operation getAttributeNS(DOMString?, DOMString)", + "Element interface: operation setAttribute(DOMString, DOMString)", + "Element interface: operation setAttributeNS(DOMString?, DOMString, DOMString)", + "Element interface: operation removeAttribute(DOMString)", + "Element interface: operation removeAttributeNS(DOMString?, DOMString)", + "Element interface: operation toggleAttribute(DOMString, optional boolean)", + "Element interface: operation hasAttribute(DOMString)", + "Element interface: operation hasAttributeNS(DOMString?, DOMString)", + "Element interface: operation getAttributeNode(DOMString)", + "Element interface: operation getAttributeNodeNS(DOMString?, DOMString)", + "Element interface: operation setAttributeNode(Attr)", + "Element interface: operation setAttributeNodeNS(Attr)", + "Element interface: operation removeAttributeNode(Attr)", + "Element interface: operation attachShadow(ShadowRootInit)", + "Element interface: attribute shadowRoot", + "Element interface: operation closest(DOMString)", + "Element interface: operation matches(DOMString)", + "Element interface: operation webkitMatchesSelector(DOMString)", + "Element interface: operation getElementsByTagName(DOMString)", + "Element interface: operation getElementsByTagNameNS(DOMString?, DOMString)", + "Element interface: operation getElementsByClassName(DOMString)", + "Element interface: operation insertAdjacentElement(DOMString, Element)", + "Element interface: operation insertAdjacentText(DOMString, DOMString)", + "Element interface: operation requestFullscreen(optional FullscreenOptions)", + "Element interface: attribute onfullscreenchange", + "Element interface: attribute onfullscreenerror", + "Element interface: attribute children", + "Element interface: attribute firstElementChild", + "Element interface: attribute lastElementChild", + "Element interface: attribute childElementCount", + "Element interface: operation prepend((Node or DOMString)...)", + "Element interface: operation append((Node or DOMString)...)", + "Element interface: operation replaceChildren((Node or DOMString)...)", + "Element interface: operation querySelector(DOMString)", + "Element interface: operation querySelectorAll(DOMString)", + "Element interface: attribute previousElementSibling", + "Element interface: attribute nextElementSibling", + "Element interface: operation before((Node or DOMString)...)", + "Element interface: operation after((Node or DOMString)...)", + "Element interface: operation replaceWith((Node or DOMString)...)", + "Element interface: operation remove()", + "Element interface: attribute assignedSlot", + "NamedNodeMap interface: existence and properties of interface object", + "NamedNodeMap interface object length", + "NamedNodeMap interface object name", + "NamedNodeMap interface: existence and properties of interface prototype object", + "NamedNodeMap interface: existence and properties of interface prototype object's \"constructor\" property", + "NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property", + "NamedNodeMap interface: attribute length", + "NamedNodeMap interface: operation item(unsigned long)", + "NamedNodeMap interface: operation getNamedItem(DOMString)", + "NamedNodeMap interface: operation getNamedItemNS(DOMString?, DOMString)", + "NamedNodeMap interface: operation setNamedItem(Attr)", + "NamedNodeMap interface: operation setNamedItemNS(Attr)", + "NamedNodeMap interface: operation removeNamedItem(DOMString)", + "NamedNodeMap interface: operation removeNamedItemNS(DOMString?, DOMString)", + "Attr interface: existence and properties of interface object", + "Attr interface object length", + "Attr interface object name", + "Attr interface: existence and properties of interface prototype object", + "Attr interface: existence and properties of interface prototype object's \"constructor\" property", + "Attr interface: existence and properties of interface prototype object's @@unscopables property", + "Attr interface: attribute namespaceURI", + "Attr interface: attribute prefix", + "Attr interface: attribute localName", + "Attr interface: attribute name", + "Attr interface: attribute value", + "Attr interface: attribute ownerElement", + "Attr interface: attribute specified", + "CharacterData interface: existence and properties of interface object", + "CharacterData interface object length", + "CharacterData interface object name", + "CharacterData interface: existence and properties of interface prototype object", + "CharacterData interface: existence and properties of interface prototype object's \"constructor\" property", + "CharacterData interface: existence and properties of interface prototype object's @@unscopables property", + "CharacterData interface: attribute data", + "CharacterData interface: attribute length", + "CharacterData interface: operation substringData(unsigned long, unsigned long)", + "CharacterData interface: operation appendData(DOMString)", + "CharacterData interface: operation insertData(unsigned long, DOMString)", + "CharacterData interface: operation deleteData(unsigned long, unsigned long)", + "CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)", + "CharacterData interface: attribute previousElementSibling", + "CharacterData interface: attribute nextElementSibling", + "CharacterData interface: operation before((Node or DOMString)...)", + "CharacterData interface: operation after((Node or DOMString)...)", + "CharacterData interface: operation replaceWith((Node or DOMString)...)", + "CharacterData interface: operation remove()", + "Text interface: existence and properties of interface object", + "Text interface object length", + "Text interface object name", + "Text interface: existence and properties of interface prototype object", + "Text interface: existence and properties of interface prototype object's \"constructor\" property", + "Text interface: existence and properties of interface prototype object's @@unscopables property", + "Text interface: operation splitText(unsigned long)", + "Text interface: attribute wholeText", + "Text interface: attribute assignedSlot", + "CDATASection interface: existence and properties of interface object", + "CDATASection interface object length", + "CDATASection interface object name", + "CDATASection interface: existence and properties of interface prototype object", + "CDATASection interface: existence and properties of interface prototype object's \"constructor\" property", + "CDATASection interface: existence and properties of interface prototype object's @@unscopables property", + "ProcessingInstruction interface: existence and properties of interface object", + "ProcessingInstruction interface object length", + "ProcessingInstruction interface object name", + "ProcessingInstruction interface: existence and properties of interface prototype object", + "ProcessingInstruction interface: existence and properties of interface prototype object's \"constructor\" property", + "ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property", + "ProcessingInstruction interface: attribute target", + "Comment interface: existence and properties of interface object", + "Comment interface object length", + "Comment interface object name", + "Comment interface: existence and properties of interface prototype object", + "Comment interface: existence and properties of interface prototype object's \"constructor\" property", + "Comment interface: existence and properties of interface prototype object's @@unscopables property", + "AbstractRange interface: existence and properties of interface object", + "AbstractRange interface object length", + "AbstractRange interface object name", + "AbstractRange interface: existence and properties of interface prototype object", + "AbstractRange interface: existence and properties of interface prototype object's \"constructor\" property", + "AbstractRange interface: existence and properties of interface prototype object's @@unscopables property", + "AbstractRange interface: attribute startContainer", + "AbstractRange interface: attribute startOffset", + "AbstractRange interface: attribute endContainer", + "AbstractRange interface: attribute endOffset", + "AbstractRange interface: attribute collapsed", + "StaticRange interface: existence and properties of interface object", + "StaticRange interface object length", + "StaticRange interface object name", + "StaticRange interface: existence and properties of interface prototype object", + "StaticRange interface: existence and properties of interface prototype object's \"constructor\" property", + "StaticRange interface: existence and properties of interface prototype object's @@unscopables property", + "Range interface: existence and properties of interface object", + "Range interface object length", + "Range interface object name", + "Range interface: existence and properties of interface prototype object", + "Range interface: existence and properties of interface prototype object's \"constructor\" property", + "Range interface: existence and properties of interface prototype object's @@unscopables property", + "Range interface: attribute commonAncestorContainer", + "Range interface: operation setStart(Node, unsigned long)", + "Range interface: operation setEnd(Node, unsigned long)", + "Range interface: operation setStartBefore(Node)", + "Range interface: operation setStartAfter(Node)", + "Range interface: operation setEndBefore(Node)", + "Range interface: operation setEndAfter(Node)", + "Range interface: operation collapse(optional boolean)", + "Range interface: operation selectNode(Node)", + "Range interface: operation selectNodeContents(Node)", + "Range interface: constant START_TO_START on interface object", + "Range interface: constant START_TO_START on interface prototype object", + "Range interface: constant START_TO_END on interface object", + "Range interface: constant START_TO_END on interface prototype object", + "Range interface: constant END_TO_END on interface object", + "Range interface: constant END_TO_END on interface prototype object", + "Range interface: constant END_TO_START on interface object", + "Range interface: constant END_TO_START on interface prototype object", + "Range interface: operation compareBoundaryPoints(unsigned short, Range)", + "Range interface: operation deleteContents()", + "Range interface: operation extractContents()", + "Range interface: operation cloneContents()", + "Range interface: operation insertNode(Node)", + "Range interface: operation surroundContents(Node)", + "Range interface: operation cloneRange()", + "Range interface: operation detach()", + "Range interface: operation isPointInRange(Node, unsigned long)", + "Range interface: operation comparePoint(Node, unsigned long)", + "Range interface: operation intersectsNode(Node)", + "Range interface: stringifier", + "NodeIterator interface: existence and properties of interface object", + "NodeIterator interface object length", + "NodeIterator interface object name", + "NodeIterator interface: existence and properties of interface prototype object", + "NodeIterator interface: existence and properties of interface prototype object's \"constructor\" property", + "NodeIterator interface: existence and properties of interface prototype object's @@unscopables property", + "NodeIterator interface: attribute root", + "NodeIterator interface: attribute referenceNode", + "NodeIterator interface: attribute pointerBeforeReferenceNode", + "NodeIterator interface: attribute whatToShow", + "NodeIterator interface: attribute filter", + "NodeIterator interface: operation nextNode()", + "NodeIterator interface: operation previousNode()", + "NodeIterator interface: operation detach()", + "TreeWalker interface: existence and properties of interface object", + "TreeWalker interface object length", + "TreeWalker interface object name", + "TreeWalker interface: existence and properties of interface prototype object", + "TreeWalker interface: existence and properties of interface prototype object's \"constructor\" property", + "TreeWalker interface: existence and properties of interface prototype object's @@unscopables property", + "TreeWalker interface: attribute root", + "TreeWalker interface: attribute whatToShow", + "TreeWalker interface: attribute filter", + "TreeWalker interface: attribute currentNode", + "TreeWalker interface: operation parentNode()", + "TreeWalker interface: operation firstChild()", + "TreeWalker interface: operation lastChild()", + "TreeWalker interface: operation previousSibling()", + "TreeWalker interface: operation nextSibling()", + "TreeWalker interface: operation previousNode()", + "TreeWalker interface: operation nextNode()", + "NodeFilter interface: existence and properties of interface object", + "NodeFilter interface object name", + "NodeFilter interface: existence and properties of interface prototype object", + "NodeFilter interface: existence and properties of interface prototype object's \"constructor\" property", + "NodeFilter interface: existence and properties of interface prototype object's @@unscopables property", + "NodeFilter interface: constant FILTER_ACCEPT on interface object", + "NodeFilter interface: constant FILTER_ACCEPT on interface prototype object", + "NodeFilter interface: constant FILTER_REJECT on interface object", + "NodeFilter interface: constant FILTER_REJECT on interface prototype object", + "NodeFilter interface: constant FILTER_SKIP on interface object", + "NodeFilter interface: constant FILTER_SKIP on interface prototype object", + "NodeFilter interface: constant SHOW_ALL on interface object", + "NodeFilter interface: constant SHOW_ALL on interface prototype object", + "NodeFilter interface: constant SHOW_ELEMENT on interface object", + "NodeFilter interface: constant SHOW_ELEMENT on interface prototype object", + "NodeFilter interface: constant SHOW_ATTRIBUTE on interface object", + "NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object", + "NodeFilter interface: constant SHOW_TEXT on interface object", + "NodeFilter interface: constant SHOW_TEXT on interface prototype object", + "NodeFilter interface: constant SHOW_CDATA_SECTION on interface object", + "NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object", + "NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object", + "NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object", + "NodeFilter interface: constant SHOW_ENTITY on interface object", + "NodeFilter interface: constant SHOW_ENTITY on interface prototype object", + "NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object", + "NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object", + "NodeFilter interface: constant SHOW_COMMENT on interface object", + "NodeFilter interface: constant SHOW_COMMENT on interface prototype object", + "NodeFilter interface: constant SHOW_DOCUMENT on interface object", + "NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object", + "NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object", + "NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object", + "NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object", + "NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object", + "NodeFilter interface: constant SHOW_NOTATION on interface object", + "NodeFilter interface: constant SHOW_NOTATION on interface prototype object", + "NodeFilter interface: operation acceptNode(Node)", + "DOMTokenList interface: existence and properties of interface object", + "DOMTokenList interface object length", + "DOMTokenList interface object name", + "DOMTokenList interface: existence and properties of interface prototype object", + "DOMTokenList interface: existence and properties of interface prototype object's \"constructor\" property", + "DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property", + "DOMTokenList interface: attribute length", + "DOMTokenList interface: operation item(unsigned long)", + "DOMTokenList interface: operation contains(DOMString)", + "DOMTokenList interface: operation add(DOMString...)", + "DOMTokenList interface: operation remove(DOMString...)", + "DOMTokenList interface: operation toggle(DOMString, optional boolean)", + "DOMTokenList interface: operation replace(DOMString, DOMString)", + "DOMTokenList interface: operation supports(DOMString)", + "DOMTokenList interface: attribute value", + "DOMTokenList interface: stringifier", + "DOMTokenList interface: iterable", + "XPathResult interface: existence and properties of interface object", + "XPathResult interface object length", + "XPathResult interface object name", + "XPathResult interface: existence and properties of interface prototype object", + "XPathResult interface: existence and properties of interface prototype object's \"constructor\" property", + "XPathResult interface: existence and properties of interface prototype object's @@unscopables property", + "XPathResult interface: constant ANY_TYPE on interface object", + "XPathResult interface: constant ANY_TYPE on interface prototype object", + "XPathResult interface: constant NUMBER_TYPE on interface object", + "XPathResult interface: constant NUMBER_TYPE on interface prototype object", + "XPathResult interface: constant STRING_TYPE on interface object", + "XPathResult interface: constant STRING_TYPE on interface prototype object", + "XPathResult interface: constant BOOLEAN_TYPE on interface object", + "XPathResult interface: constant BOOLEAN_TYPE on interface prototype object", + "XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object", + "XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object", + "XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object", + "XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object", + "XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object", + "XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object", + "XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object", + "XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object", + "XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object", + "XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object", + "XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object", + "XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object", + "XPathResult interface: attribute resultType", + "XPathResult interface: attribute numberValue", + "XPathResult interface: attribute stringValue", + "XPathResult interface: attribute booleanValue", + "XPathResult interface: attribute singleNodeValue", + "XPathResult interface: attribute invalidIteratorState", + "XPathResult interface: attribute snapshotLength", + "XPathResult interface: operation iterateNext()", + "XPathResult interface: operation snapshotItem(unsigned long)", + "XPathExpression interface: existence and properties of interface object", + "XPathExpression interface object length", + "XPathExpression interface object name", + "XPathExpression interface: existence and properties of interface prototype object", + "XPathExpression interface: existence and properties of interface prototype object's \"constructor\" property", + "XPathExpression interface: existence and properties of interface prototype object's @@unscopables property", + "XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)", + "XPathEvaluator interface: existence and properties of interface object", + "XPathEvaluator interface object length", + "XPathEvaluator interface object name", + "XPathEvaluator interface: existence and properties of interface prototype object", + "XPathEvaluator interface: existence and properties of interface prototype object's \"constructor\" property", + "XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property", + "XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)", + "XPathEvaluator interface: operation createNSResolver(Node)", + "XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)", + "XSLTProcessor interface: existence and properties of interface object", + "XSLTProcessor interface object length", + "XSLTProcessor interface object name", + "XSLTProcessor interface: existence and properties of interface prototype object", + "XSLTProcessor interface: existence and properties of interface prototype object's \"constructor\" property", + "XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property", + "XSLTProcessor interface: operation importStylesheet(Node)", + "XSLTProcessor interface: operation transformToFragment(Node, Document)", + "XSLTProcessor interface: operation transformToDocument(Node)", + "XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)", + "XSLTProcessor interface: operation getParameter(DOMString, DOMString)", + "XSLTProcessor interface: operation removeParameter(DOMString, DOMString)", + "XSLTProcessor interface: operation clearParameters()", + "XSLTProcessor interface: operation reset()", + "Window interface: attribute event", + "idl_test setup" + ], + "idlharness.window.html?include=Node": [ + "Node interface: existence and properties of interface object", + "Node interface object length", + "Node interface object name", + "Node interface: existence and properties of interface prototype object", + "Node interface: existence and properties of interface prototype object's \"constructor\" property", + "Node interface: existence and properties of interface prototype object's @@unscopables property", + "Node interface: constant ELEMENT_NODE on interface object", + "Node interface: constant ELEMENT_NODE on interface prototype object", + "Node interface: constant ATTRIBUTE_NODE on interface object", + "Node interface: constant ATTRIBUTE_NODE on interface prototype object", + "Node interface: constant TEXT_NODE on interface object", + "Node interface: constant TEXT_NODE on interface prototype object", + "Node interface: constant CDATA_SECTION_NODE on interface object", + "Node interface: constant CDATA_SECTION_NODE on interface prototype object", + "Node interface: constant ENTITY_REFERENCE_NODE on interface object", + "Node interface: constant ENTITY_REFERENCE_NODE on interface prototype object", + "Node interface: constant ENTITY_NODE on interface object", + "Node interface: constant ENTITY_NODE on interface prototype object", + "Node interface: constant PROCESSING_INSTRUCTION_NODE on interface object", + "Node interface: constant PROCESSING_INSTRUCTION_NODE on interface prototype object", + "Node interface: constant COMMENT_NODE on interface object", + "Node interface: constant COMMENT_NODE on interface prototype object", + "Node interface: constant DOCUMENT_NODE on interface object", + "Node interface: constant DOCUMENT_NODE on interface prototype object", + "Node interface: constant DOCUMENT_TYPE_NODE on interface object", + "Node interface: constant DOCUMENT_TYPE_NODE on interface prototype object", + "Node interface: constant DOCUMENT_FRAGMENT_NODE on interface object", + "Node interface: constant DOCUMENT_FRAGMENT_NODE on interface prototype object", + "Node interface: constant NOTATION_NODE on interface object", + "Node interface: constant NOTATION_NODE on interface prototype object", + "Node interface: attribute nodeType", + "Node interface: attribute nodeName", + "Node interface: attribute baseURI", + "Node interface: attribute isConnected", + "Node interface: attribute ownerDocument", + "Node interface: operation getRootNode(optional GetRootNodeOptions)", + "Node interface: attribute parentNode", + "Node interface: attribute parentElement", + "Node interface: operation hasChildNodes()", + "Node interface: attribute childNodes", + "Node interface: attribute firstChild", + "Node interface: attribute lastChild", + "Node interface: attribute previousSibling", + "Node interface: attribute nextSibling", + "Node interface: attribute nodeValue", + "Node interface: attribute textContent", + "Node interface: operation normalize()", + "Node interface: operation cloneNode(optional boolean)", + "Node interface: operation isEqualNode(Node?)", + "Node interface: operation isSameNode(Node?)", + "Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface object", + "Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface prototype object", + "Node interface: constant DOCUMENT_POSITION_PRECEDING on interface object", + "Node interface: constant DOCUMENT_POSITION_PRECEDING on interface prototype object", + "Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface object", + "Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface prototype object", + "Node interface: constant DOCUMENT_POSITION_CONTAINS on interface object", + "Node interface: constant DOCUMENT_POSITION_CONTAINS on interface prototype object", + "Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface object", + "Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface prototype object", + "Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface object", + "Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface prototype object", + "Node interface: operation compareDocumentPosition(Node)", + "Node interface: operation contains(Node?)", + "Node interface: operation lookupPrefix(DOMString?)", + "Node interface: operation lookupNamespaceURI(DOMString?)", + "Node interface: operation isDefaultNamespace(DOMString?)", + "Node interface: operation insertBefore(Node, Node?)", + "Node interface: operation appendChild(Node)", + "Node interface: operation replaceChild(Node, Node)", + "Node interface: operation removeChild(Node)", + "idl_test setup" ] }, "encoding": { @@ -2492,20 +3161,32 @@ "transform-streams": { "backpressure.any.html": true, "backpressure.any.worker.html": true, - "errors.any.html": true, - "errors.any.worker.html": true, + "errors.any.html": [ + "controller.error() should close writable immediately after readable.cancel()" + ], + "errors.any.worker.html": [ + "controller.error() should close writable immediately after readable.cancel()" + ], "flush.any.html": true, "flush.any.worker.html": true, - "general.any.html": true, - "general.any.worker.html": true, + "general.any.html": [ + "terminate() should abort writable immediately after readable.cancel()" + ], + "general.any.worker.html": [ + "terminate() should abort writable immediately after readable.cancel()" + ], "lipfuzz.any.html": true, "lipfuzz.any.worker.html": true, "patched-global.any.html": true, "patched-global.any.worker.html": true, "properties.any.html": true, "properties.any.worker.html": true, - "reentrant-strategies.any.html": true, - "reentrant-strategies.any.worker.html": true, + "reentrant-strategies.any.html": [ + "writer.abort() inside size() should work" + ], + "reentrant-strategies.any.worker.html": [ + "writer.abort() inside size() should work" + ], "strategies.any.html": true, "strategies.any.worker.html": true, "terminate.any.html": true, @@ -2844,12 +3525,8 @@ "URL: no structured serialize/deserialize support", "URLSearchParams: no structured serialize/deserialize support" ], - "idlharness.any.html": [ - "URL interface: operation canParse(USVString, optional USVString)" - ], - "idlharness.any.worker.html": [ - "URL interface: operation canParse(USVString, optional USVString)" - ], + "idlharness.any.html": true, + "idlharness.any.worker.html": true, "toascii.window.html": [ "aa-- (using .host)", "aa-- (using .hostname)", @@ -3758,6 +4435,10 @@ ": Setting .pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020", ": Setting .pathname = 'space '", ": Setting .pathname = 'space '", + ": Setting .pathname = ' ' Trailing space should be encoded", + ": Setting .pathname = ' ' Trailing space should be encoded", + ": Setting .pathname = '\u0000' Trailing C0 control should be encoded", + ": Setting .pathname = '\u0000' Trailing C0 control should be encoded", ": Setting .search = 'lang=fr'", ": Setting .search = 'lang=fr'", ": Setting .search = 'lang=fr'", @@ -3786,6 +4467,10 @@ ": Setting .search = '' Do not drop trailing spaces from non-trailing opaque paths", ": Setting .search = ''", ": Setting .search = ''", + ": Setting .search = ' ' Trailing space should be encoded", + ": Setting .search = ' ' Trailing space should be encoded", + ": Setting .search = '\u0000' Trailing C0 control should be encoded", + ": Setting .search = '\u0000' Trailing C0 control should be encoded", ": Setting .hash = 'main'", ": Setting .hash = 'main'", ": Setting .hash = 'main'", @@ -3823,7 +4508,11 @@ ": Setting .hash = '' Do not drop trailing spaces from non-trailing opaque paths", ": Setting .hash = '' Do not drop trailing spaces from non-trailing opaque paths", ": Setting .hash = ''", - ": Setting .hash = ''" + ": Setting .hash = ''", + ": Setting .hash = ' ' Trailing space should be encoded", + ": Setting .hash = ' ' Trailing space should be encoded", + ": Setting .hash = '\u0000' Trailing C0 control should be encoded", + ": Setting .hash = '\u0000' Trailing C0 control should be encoded" ], "url-setters-a-area.window.html?include=file": [ ": Setting .protocol = 'http' Can’t switch from file URL with no host", @@ -4015,7 +4704,6 @@ "Adding invalid request header \"Accept-Encoding: KO\"", "Adding invalid request header \"Access-Control-Request-Headers: KO\"", "Adding invalid request header \"Access-Control-Request-Method: KO\"", - "Adding invalid request header \"Access-Control-Request-Private-Network: KO\"", "Adding invalid request header \"Connection: KO\"", "Adding invalid request header \"Content-Length: KO\"", "Adding invalid request header \"Cookie: KO\"", @@ -4055,7 +4743,6 @@ "Adding invalid request header \"Accept-Encoding: KO\"", "Adding invalid request header \"Access-Control-Request-Headers: KO\"", "Adding invalid request header \"Access-Control-Request-Method: KO\"", - "Adding invalid request header \"Access-Control-Request-Private-Network: KO\"", "Adding invalid request header \"Connection: KO\"", "Adding invalid request header \"Content-Length: KO\"", "Adding invalid request header \"Cookie: KO\"", @@ -4419,8 +5106,12 @@ "response-url.sub.any.worker.html": true, "scheme-about.any.html": true, "scheme-about.any.worker.html": true, - "scheme-blob.sub.any.html": true, - "scheme-blob.sub.any.worker.html": true, + "scheme-blob.sub.any.html": [ + "Fetching URL.createObjectURL(invalid_type_blob) is OK" + ], + "scheme-blob.sub.any.worker.html": [ + "Fetching URL.createObjectURL(invalid_type_blob) is OK" + ], "scheme-data.any.html": true, "scheme-data.any.worker.html": true, "scheme-others.sub.any.html": true, @@ -4473,7 +5164,6 @@ "Accept-Encoding is a forbidden request header", "Access-Control-Request-Headers is a forbidden request header", "Access-Control-Request-Method is a forbidden request header", - "Access-Control-Request-Private-Network is a forbidden request header", "Connection is a forbidden request header", "Cookie is a forbidden request header", "Cookie2 is a forbidden request header", @@ -4539,7 +5229,6 @@ "Accept-Encoding is a forbidden request header", "Access-Control-Request-Headers is a forbidden request header", "Access-Control-Request-Method is a forbidden request header", - "Access-Control-Request-Private-Network is a forbidden request header", "Connection is a forbidden request header", "Cookie is a forbidden request header", "Cookie2 is a forbidden request header", @@ -4601,7 +5290,22 @@ "header X-METHOD-OVERRIDE is forbidden to use value trace," ], "request-referrer.any.html": false, - "request-referrer.any.worker.html": false + "request-referrer.any.worker.html": false, + "error-after-response.any.html": false, + "mode-no-cors.sub.any.html": { + "ignore": true + }, + "mode-no-cors.sub.any.worker.html": { + "ignore": true + }, + "request-private-network-headers.tentative.any.html": false, + "request-private-network-headers.tentative.any.worker.html": false, + "response-null-body.any.html": { + "ignore": true + }, + "response-null-body.any.worker.html": { + "ignore": true + } }, "response": { "json.any.html": true, @@ -5782,42 +6486,6 @@ "HTTP cache uses three-way Vary response when both request and the original request omited a variant header" ] }, - "local-network-access": { - "fetch-from-treat-as-public.https.window.html": false, - "fetch.https.window.html?include=baseline": false, - "fetch.https.window.html?include=from-local": false, - "fetch.https.window.html?include=from-private": false, - "fetch.https.window.html?include=from-public": false, - "fetch.window.html": false, - "iframe.tentative.https.window.html": false, - "iframe.tentative.window.html": false, - "mixed-content-fetch.tentative.https.window.html": false, - "nested-worker.https.window.html": false, - "nested-worker.window.html": false, - "preflight-cache.https.window.html": false, - "redirect.https.window.html": false, - "service-worker-background-fetch.https.window.html": false, - "service-worker-update.https.window.html": false, - "service-worker.https.window.html": false, - "shared-worker-blob-fetch.https.window.html": false, - "shared-worker-blob-fetch.window.html": false, - "shared-worker-fetch.https.window.html": false, - "shared-worker-fetch.window.html": false, - "shared-worker.https.window.html": false, - "shared-worker.window.html": false, - "websocket.https.window.html": false, - "websocket.window.html": false, - "worker-blob-fetch.window.html": false, - "worker-fetch.https.window.html": false, - "worker-fetch.window.html": false, - "worker.https.window.html": false, - "worker.window.html": false, - "xhr-from-treat-as-public.https.window.html": false, - "xhr.https.window.html?include=from-local": false, - "xhr.https.window.html?include=from-private": false, - "xhr.https.window.html?include=from-public": false, - "xhr.window.html": false - }, "metadata": { "fetch-preflight.https.sub.any.html": [ "Same-site fetch with preflight: sec-fetch-dest", @@ -5920,38 +6588,81 @@ "orb": { "tentative": { "content-range.sub.any.html": [ - "ORB should block opaque range of image/png not starting at zero, that isn't subsequent" + "ORB should block opaque range of image/png not starting at zero, that isn't subsequent: fetch(..., {mode: \"no-cors\"})" ], "content-range.sub.any.worker.html": [ - "ORB should block opaque range of image/png not starting at zero, that isn't subsequent" + "ORB should block opaque range of image/png not starting at zero, that isn't subsequent: fetch(..., {mode: \"no-cors\"})" ], "known-mime-type.sub.any.html": [ - "ORB should block opaque font/ttf", - "ORB should block opaque text/plain", - "ORB should block opaque application/json (non-empty)", - "ORB should block opaque application/json (empty)", - "ORB should block opaque application/json which contains non ascii characters" + "ORB should block opaque font/ttf: fetch(..., {mode: \"no-cors\"})", + "ORB should block opaque font/ttf: ", + "ORB should block opaque font/ttf: