Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate WPT test failures #24828

Open
jdm opened this issue Nov 21, 2019 · 12 comments
Open

Investigate WPT test failures #24828

jdm opened this issue Nov 21, 2019 · 12 comments
Labels

Comments

@jdm
Copy link
Member

@jdm jdm commented Nov 21, 2019

Based on a python script that counts the tests present in https://github.com/servo/servo/tree/master/tests/wpt/web-platform-tests/ and the corresponding ini files present in https://github.com/servo/servo/tree/master/tests/wpt/metadata, here's a sorted list of test directories, the percentage of tests in the directory that are failures, and the absolute numbers of tests and failures in that directory.

Test counts
offscreen-canvas/fill-and-stroke-styles: 79.52% (420 / 334)
offscreen-canvas/path-objects: 85.71% (266 / 228)
service-workers/service-worker: 88.89% (198 / 176)
html/semantics/embedded-content/media-elements/track/track-element: 86.73% (98 / 85)
offscreen-canvas/compositing: 43.01% (186 / 80)
xhr: 25.76% (295 / 76)
offscreen-canvas/shadows: 66.07% (112 / 74)
webxr: 81.01% (79 / 64)
resource-timing: 79.41% (68 / 54)
dom/nodes: 29.17% (168 / 49)
offscreen-canvas/text: 42.86% (112 / 48)
offscreen-canvas/the-offscreen-canvas: 47.47% (99 / 47)
offscreen-canvas/transformations: 100.00% (45 / 45)
html/semantics/embedded-content/media-elements/track/track-element/cors: 100.00% (44 / 44)
offscreen-canvas/drawing-rectangles-to-the-canvas: 68.75% (64 / 44)
offscreen-canvas/pixel-manipulation: 41.18% (102 / 42)
custom-elements/reactions: 73.08% (52 / 38)
html/semantics/forms/the-input-element: 53.52% (71 / 38)
html/dom/elements/global-attributes: 25.18% (139 / 35)
workers: 34.69% (98 / 34)
html/rendering/non-replaced-elements/the-fieldset-and-legend-elements: 50.00% (66 / 33)
bluetooth/server/getPrimaryServices: 100.00% (32 / 32)
navigation-timing: 68.09% (47 / 32)
html/semantics/scripting-1/the-script-element/execution-timing: 20.81% (149 / 31)
html/semantics/embedded-content/the-iframe-element: 32.26% (93 / 30)
html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters: 100.00% (27 / 27)
2dcontext/drawing-text-to-the-canvas: 84.38% (32 / 27)
fetch/metadata/sec-fetch-dest: 80.65% (31 / 25)
fetch/metadata: 82.76% (29 / 24)
2dcontext/text-styles: 82.14% (28 / 23)
html/rendering/non-replaced-elements/the-page: 65.62% (32 / 21)
WebCryptoAPI/generateKey: 100.00% (20 / 20)
webaudio/the-audio-api/the-audioparam-interface: 64.52% (31 / 20)
html/webappapis/dynamic-markup-insertion/opening-the-input-stream: 35.71% (56 / 20)
bluetooth/requestDevice/canonicalizeFilter: 100.00% (19 / 19)
html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name: 73.08% (26 / 19)
fetch/api/basic: 70.37% (27 / 19)
webaudio/the-audio-api/the-audioworklet-interface: 100.00% (18 / 18)
bluetooth/server/getPrimaryService: 100.00% (18 / 18)
fetch/api/cors: 94.74% (19 / 18)
fetch/api/response: 85.71% (21 / 18)
html/semantics/scripting-1/the-script-element/module/dynamic-import: 85.71% (21 / 18)
custom-elements: 81.82% (22 / 18)
html/semantics/selectors/pseudo-classes: 78.26% (23 / 18)
cors: 72.00% (25 / 18)
html/browsers/history/the-location-interface: 30.51% (59 / 18)
offscreen-canvas/line-styles: 29.03% (62 / 18)
dom/events: 28.33% (60 / 17)
html/infrastructure/safe-passing-of-structured-data/shared-array-buffers: 88.89% (18 / 16)
html/semantics/forms/constraints: 53.33% (30 / 16)
html/semantics/text-level-semantics/the-bdi-element: 50.00% (32 / 16)
bluetooth/service/getCharacteristics: 100.00% (15 / 15)
bluetooth/requestDevice: 100.00% (14 / 14)
html/dom: 87.50% (16 / 14)
html/semantics/interactive-elements/the-dialog-element: 82.35% (17 / 14)
html/browsers/the-window-object: 66.67% (21 / 14)
performance-timeline: 63.64% (22 / 14)
encoding: 37.84% (37 / 14)
html/rendering/non-replaced-elements/tables: 35.90% (39 / 14)
html/semantics/embedded-content/media-elements/loading-the-media-resource: 31.82% (44 / 14)
2dcontext/wide-gamut-canvas: 92.86% (14 / 13)
html/webappapis/scripting/processing-model-2: 38.24% (34 / 13)
2dcontext/drawing-images-to-the-canvas: 30.23% (43 / 13)
2dcontext/fill-and-stroke-styles: 5.65% (230 / 13)
webaudio/the-audio-api/the-convolvernode-interface: 100.00% (12 / 12)
service-workers/cache-storage/serviceworker: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-classic.http-rp/unset/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/worker-module.http-rp/unset/xhr: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.http-rp/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unsafe-url/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unset/fetch: 100.00% (12 / 12)
referrer-policy/gen/top.meta/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/unsafe-url/img-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag: 100.00% (12 / 12)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag: 100.00% (12 / 12)
encoding/streams: 100.00% (12 / 12)
wasm/serialization/module: 85.71% (14 / 12)
html/interaction/focus/the-autofocus-attribute: 63.16% (19 / 12)
html/webappapis/scripting/events: 52.17% (23 / 12)
domparsing: 52.17% (23 / 12)
fetch/api/request: 50.00% (24 / 12)
service-workers/cache-storage/window: 100.00% (11 / 11)
WebIDL/ecmascript-binding: 91.67% (12 / 11)
wasm/webapi: 91.67% (12 / 11)
fetch/api/policies: 78.57% (14 / 11)
webaudio/the-audio-api/the-pannernode-interface: 73.33% (15 / 11)
dom/ranges: 32.35% (34 / 11)
service-workers/cache-storage/worker: 100.00% (10 / 10)
referrer-policy/gen/worker-module.http-rp/same-origin/fetch: 100.00% (10 / 10)
referrer-policy/gen/worker-module.http-rp/same-origin/xhr: 100.00% (10 / 10)
referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag: 100.00% (10 / 10)
referrer-policy/gen/srcdoc.meta/same-origin/img-tag: 100.00% (10 / 10)
referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag: 100.00% (10 / 10)
html/cross-origin-embedder-policy: 90.91% (11 / 10)
html/cross-origin-opener-policy: 76.92% (13 / 10)
html/semantics/forms/form-submission-0: 62.50% (16 / 10)
html/semantics/document-metadata/the-link-element: 50.00% (20 / 10)
url: 40.00% (25 / 10)
webstorage: 21.28% (47 / 10)
webaudio/the-audio-api/the-delaynode-interface: 100.00% (9 / 9)
referrer-policy/generic/subresource-test: 100.00% (9 / 9)
referrer-policy/generic: 100.00% (9 / 9)
service-workers/service-worker/ServiceWorkerGlobalScope: 90.00% (10 / 9)
html/rendering/widgets/button-layout: 75.00% (12 / 9)
html/semantics/forms/the-button-element: 64.29% (14 / 9)
html/semantics/grouping-content/the-ol-element: 39.13% (23 / 9)
eventsource: 20.00% (45 / 9)
html/semantics/scripting-1/the-script-element: 18.75% (48 / 9)
html/semantics/embedded-content/the-canvas-element: 7.38% (122 / 9)
service-workers/service-worker/navigation-preload: 100.00% (8 / 8)
custom-elements/form-associated: 100.00% (8 / 8)
bluetooth/service/getCharacteristic: 100.00% (8 / 8)
fetch/metadata/sec-fetch-dest/redirect: 100.00% (8 / 8)
fetch/metadata/redirect: 100.00% (8 / 8)
html/semantics/embedded-content/media-elements/interfaces/TextTrackCue: 100.00% (8 / 8)
html/semantics/embedded-content/the-img-element/decode: 100.00% (8 / 8)
WebCryptoAPI/encrypt_decrypt: 100.00% (8 / 8)
WebCryptoAPI/sign_verify: 100.00% (8 / 8)
workers/modules: 88.89% (9 / 8)
fetch/cross-origin-resource-policy: 88.89% (9 / 8)
html/semantics/embedded-content/the-object-element: 61.54% (13 / 8)
FileAPI/url: 53.33% (15 / 8)
fetch/corb: 42.11% (19 / 8)
quirks: 42.11% (19 / 8)
html/browsers/browsing-the-web/unloading-documents: 36.36% (22 / 8)
offscreen-canvas/the-canvas-state: 21.05% (38 / 8)
offscreen-canvas/drawing-images-to-the-canvas: 13.79% (58 / 8)
html/browsers/history/the-history-interface: 10.39% (77 / 8)
webaudio/the-audio-api/the-waveshapernode-interface: 100.00% (7 / 7)
bluetooth/adapter: 100.00% (7 / 7)
bluetooth/characteristic/readValue: 100.00% (7 / 7)
referrer-policy/css-integration/image: 100.00% (7 / 7)
eventsource/shared-worker: 100.00% (7 / 7)
html/semantics/forms/the-fieldset-element: 87.50% (8 / 7)
html/semantics/embedded-content/media-elements/interfaces/TextTrack: 70.00% (10 / 7)
html/webappapis/scripting/processing-model-2/unhandled-promise-rejections: 70.00% (10 / 7)
fetch/api/redirect: 63.64% (11 / 7)
html/semantics/document-metadata/the-style-element: 58.33% (12 / 7)
html/semantics/forms/the-form-element: 41.18% (17 / 7)
html/semantics/embedded-content/the-img-element: 26.92% (26 / 7)
html/browsers/browsing-the-web/history-traversal: 25.00% (28 / 7)
fullscreen/api: 14.89% (47 / 7)
2dcontext/shadows: 11.29% (62 / 7)
webmessaging/broadcastchannel: 100.00% (6 / 6)
fetch/api/request/destination: 100.00% (6 / 6)
html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration: 100.00% (6 / 6)
html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh: 100.00% (6 / 6)
WebCryptoAPI/import_export: 100.00% (6 / 6)
quirks/unitless-length: 100.00% (6 / 6)
webvr: 85.71% (7 / 6)
webaudio/the-audio-api/the-audionode-interface: 75.00% (8 / 6)
html/browsers/the-window-object/named-access-on-the-window-object: 75.00% (8 / 6)
FileAPI/file: 75.00% (8 / 6)
html/rendering/replaced-elements/svg-embedded-sizing: 66.67% (9 / 6)
workers/semantics/multiple-workers: 60.00% (10 / 6)
html/rendering/replaced-elements/attributes-for-embedded-content-and-images: 33.33% (18 / 6)
html/browsers/browsing-the-web/scroll-to-fragid: 33.33% (18 / 6)
html/dom/documents/dom-tree-accessors: 20.00% (30 / 6)
html/browsers/browsing-the-web/navigating-across-documents: 11.54% (52 / 6)
webaudio/the-audio-api/the-iirfilternode-interface: 100.00% (5 / 5)
bluetooth/characteristic/writeValue: 100.00% (5 / 5)
bluetooth/characteristic/getDescriptors: 100.00% (5 / 5)
fetch/api/abort: 100.00% (5 / 5)
fetch/stale-while-revalidate: 100.00% (5 / 5)
referrer-policy/css-integration/font-face: 100.00% (5 / 5)
referrer-policy/css-integration/svg: 100.00% (5 / 5)
websockets/stream-tentative: 100.00% (5 / 5)
fetch/nosniff: 83.33% (6 / 5)
html/infrastructure/common-dom-interfaces/collections: 83.33% (6 / 5)
html/browsers/origin/relaxing-the-same-origin-restriction: 83.33% (6 / 5)
2dcontext/drawing-paths-to-the-canvas: 71.43% (7 / 5)
html/semantics/embedded-content/the-img-element/sizes: 71.43% (7 / 5)
dom/collections: 62.50% (8 / 5)
html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis: 62.50% (8 / 5)
FileAPI/blob: 62.50% (8 / 5)
touch-events: 62.50% (8 / 5)
custom-elements/parser: 50.00% (10 / 5)
fetch/api/headers: 45.45% (11 / 5)
html/syntax/parsing-html-fragments: 45.45% (11 / 5)
html/browsers/sandboxing: 45.45% (11 / 5)
html/semantics/document-metadata/the-base-element: 45.45% (11 / 5)
fetch/http-cache: 41.67% (12 / 5)
html/browsers/windows: 35.71% (14 / 5)
html/semantics/embedded-content/the-embed-element: 35.71% (14 / 5)
webaudio/the-audio-api/the-biquadfilternode-interface: 33.33% (15 / 5)
webaudio/the-audio-api/the-audiobuffersourcenode-interface: 26.32% (19 / 5)
webmessaging/without-ports: 16.67% (30 / 5)
2dcontext/pixel-manipulation: 8.33% (60 / 5)
html/syntax/parsing: 6.10% (82 / 5)
bluetooth/device/gattserverdisconnected-event: 100.00% (4 / 4)
bluetooth/server/disconnect: 100.00% (4 / 4)
bluetooth/requestDevice/acceptAllDevices: 100.00% (4 / 4)
2dcontext/scroll: 100.00% (4 / 4)
fetch/security: 100.00% (4 / 4)
subresource-integrity: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.http-rp/unset/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
referrer-policy/gen/top.meta/unset/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/strict-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/unsafe-url/a-tag: 100.00% (4 / 4)
referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag: 100.00% (4 / 4)
WebCryptoAPI/derive_bits_keys: 100.00% (4 / 4)
permissions: 80.00% (5 / 4)
html/infrastructure/safe-passing-of-structured-data: 80.00% (5 / 4)
html/semantics/embedded-content/the-area-element: 80.00% (5 / 4)
html/semantics/forms/form-submission-target: 80.00% (5 / 4)
wasm/jsapi/constructor: 80.00% (5 / 4)
html/rendering/non-replaced-elements/form-controls: 66.67% (6 / 4)
offscreen-canvas/conformance-requirements: 66.67% (6 / 4)
workers/baseurl/alpha: 50.00% (8 / 4)
FileAPI: 50.00% (8 / 4)
webaudio/the-audio-api/the-analysernode-interface: 44.44% (9 / 4)
hr-time: 44.44% (9 / 4)
html/rendering/replaced-elements/the-select-element: 44.44% (9 / 4)
html/obsolete/requirements-for-implementations/the-marquee-element-0: 36.36% (11 / 4)
workers/constructors/Worker: 33.33% (12 / 4)
html/semantics/forms/the-select-element: 30.77% (13 / 4)
webmessaging: 9.76% (41 / 4)
websockets: 4.82% (83 / 4)
2dcontext/path-objects: 3.01% (133 / 4)
webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface: 100.00% (3 / 3)
bluetooth/server/connect: 100.00% (3 / 3)
bluetooth/characteristic/getDescriptor: 100.00% (3 / 3)
bluetooth/characteristic: 100.00% (3 / 3)
fetch/range: 100.00% (3 / 3)
html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList: 100.00% (3 / 3)
html/semantics/embedded-content/media-elements/seeking: 100.00% (3 / 3)
html/semantics/forms/the-progress-element: 100.00% (3 / 3)
html/semantics/forms/the-output-element: 100.00% (3 / 3)
html/webappapis/microtask-queuing: 100.00% (3 / 3)
referrer-policy/generic/inheritance: 100.00% (3 / 3)
referrer-policy/css-integration/child-css: 100.00% (3 / 3)
workers/semantics/interface-objects: 75.00% (4 / 3)
dom: 75.00% (4 / 3)
html/syntax/serializing-html-fragments: 75.00% (4 / 3)
html/semantics/forms/the-label-element: 75.00% (4 / 3)
WebIDL/ecmascript-binding/es-exceptions: 60.00% (5 / 3)
html/browsers/the-windowproxy-exotic-object: 60.00% (5 / 3)
html/semantics/links/links-created-by-a-and-area-elements: 60.00% (5 / 3)
uievents/legacy-domevents-tests/approved: 60.00% (5 / 3)
mediasession: 60.00% (5 / 3)
workers/semantics/xhr: 50.00% (6 / 3)
bluetooth/idl: 50.00% (6 / 3)
html/semantics/text-level-semantics/the-a-element: 50.00% (6 / 3)
html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute: 42.86% (7 / 3)
html/rendering/non-replaced-elements/flow-content-0: 42.86% (7 / 3)
html/browsers/the-window-object/accessing-other-browsing-contexts: 37.50% (8 / 3)
websockets/cookies: 33.33% (9 / 3)
websockets/unload-a-document: 30.00% (10 / 3)
workers/interfaces/DedicatedWorkerGlobalScope/postMessage: 27.27% (11 / 3)
html/semantics/tabular-data/the-table-element: 25.00% (12 / 3)
html/semantics/forms/the-option-element: 25.00% (12 / 3)
html/semantics/forms/textfieldselection: 23.08% (13 / 3)
FileAPI/reading-data-section: 21.43% (14 / 3)
websockets/constructor: 15.00% (20 / 3)
html/semantics/forms/the-textarea-element: 14.29% (21 / 3)
webmessaging/with-ports: 12.50% (24 / 3)
2dcontext/the-canvas-state: 12.00% (25 / 3)
html/semantics/grouping-content/the-li-element: 11.54% (26 / 3)
2dcontext/transformations: 10.34% (29 / 3)
html/semantics/embedded-content/media-elements: 4.69% (64 / 3)
webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface: 100.00% (2 / 2)
webaudio/the-audio-api/the-oscillatornode-interface: 100.00% (2 / 2)
webaudio/the-audio-api/the-dynamicscompressornode-interface: 100.00% (2 / 2)
workers/interfaces/SharedWorkerGlobalScope/name: 100.00% (2 / 2)
bluetooth/service: 100.00% (2 / 2)
bluetooth/descriptor/writeValue: 100.00% (2 / 2)
bluetooth/descriptor/readValue: 100.00% (2 / 2)
bluetooth/characteristic/notifications: 100.00% (2 / 2)
2dcontext/hit-regions: 100.00% (2 / 2)
fetch/data-urls: 100.00% (2 / 2)
fetch/content-type: 100.00% (2 / 2)
html/infrastructure/urls/dynamic-changes-to-base-urls: 100.00% (2 / 2)
html/browsers/windows/document-access: 100.00% (2 / 2)
html/semantics/embedded-content/the-img-element/current-pixel-density: 100.00% (2 / 2)
html/semantics/tabular-data/processing-model-1: 100.00% (2 / 2)
html/semantics/scripting-1/the-template-element/additions-to-parsing-xhtml-documents: 100.00% (2 / 2)
html/semantics: 100.00% (2 / 2)
html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-classic.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/worker-module.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.http-rp/unset/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unsafe-url/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/same-origin/worker-module: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/worker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/sharedworker-classic: 100.00% (2 / 2)
referrer-policy/gen/top.meta/unset/worker-module: 100.00% (2 / 2)
WebCryptoAPI/wrapKey_unwrapKey: 100.00% (2 / 2)
WebCryptoAPI/digest: 100.00% (2 / 2)
offscreen-canvas/image-smoothing: 100.00% (2 / 2)
offscreen-canvas/convert-to-blob: 100.00% (2 / 2)
webaudio/the-audio-api/processing-model: 66.67% (3 / 2)
webaudio/the-audio-api/the-audiocontext-interface: 66.67% (3 / 2)
custom-elements/custom-element-registry: 66.67% (3 / 2)
workers/semantics/run-a-worker: 66.67% (3 / 2)
html/rendering: 66.67% (3 / 2)
html/browsers/browsing-the-web/read-media: 66.67% (3 / 2)
html/semantics/embedded-content/media-elements/ready-states: 66.67% (3 / 2)
webaudio/the-audio-api/the-stereopanner-interface: 50.00% (4 / 2)
custom-elements/upgrading: 50.00% (4 / 2)
workers/examples: 50.00% (4 / 2)
html/interaction/focus/processing-model: 50.00% (4 / 2)
html/dom/elements/the-innertext-idl-attribute: 50.00% (4 / 2)
html/browsers/browsing-the-web/navigating-across-documents/source: 50.00% (4 / 2)
webaudio/the-audio-api/the-constantsourcenode-interface: 40.00% (5 / 2)
workers/semantics/encodings: 40.00% (5 / 2)
html/interaction/focus: 40.00% (5 / 2)
html/rendering/the-details-element: 40.00% (5 / 2)
html/browsers/origin/cross-origin-objects: 40.00% (5 / 2)
html/browsers/history/the-history-interface/joint_session_history: 40.00% (5 / 2)
html/semantics/embedded-content/media-elements/interfaces/TextTrackList: 40.00% (5 / 2)
html/semantics/text-level-semantics/the-bdo-element: 40.00% (5 / 2)
webaudio/the-audio-api/the-channelmergernode-interface: 33.33% (6 / 2)
html/browsers/windows/nested-browsing-contexts: 33.33% (6 / 2)
html/semantics/forms/form-control-infrastructure: 33.33% (6 / 2)
html/rendering/non-replaced-elements/the-hr-element-0: 25.00% (8 / 2)
html/semantics/embedded-content/media-elements/playing-the-media-resource: 25.00% (8 / 2)
html/webappapis/animation-frames: 22.22% (9 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/worker-classic.http-rp/same-origin/xhr: 20.00% (10 / 2)
referrer-policy/gen/top.http-rp/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/top.http-rp/same-origin/img-tag: 20.00% (10 / 2)
referrer-policy/gen/top.meta/same-origin/fetch: 20.00% (10 / 2)
referrer-policy/gen/top.meta/same-origin/img-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/script-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/iframe-tag: 20.00% (10 / 2)
referrer-policy/gen/req.attr/same-origin/img-tag: 20.00% (10 / 2)
html/webappapis/scripting/events/event-handler-processing-algorithm-error: 16.67% (12 / 2)
html/user-activation: 15.38% (13 / 2)
html/browsers/the-window-object/garbage-collection-and-browsing-contexts: 15.38% (13 / 2)
html/browsers/browsing-the-web/unloading-documents/unload: 9.52% (21 / 2)
webaudio/the-audio-api/the-scriptprocessornode-interface: 100.00% (1 / 1)
webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface: 100.00% (1 / 1)
service-workers/service-worker/multi-globals: 100.00% (1 / 1)
service-workers/cache-storage: 100.00% (1 / 1)
fullscreen: 100.00% (1 / 1)
custom-elements/htmlconstructor: 100.00% (1 / 1)
workers/interfaces/SharedWorkerGlobalScope: 100.00% (1 / 1)
dom/abort: 100.00% (1 / 1)
bluetooth/server: 100.00% (1 / 1)
bluetooth/characteristic/startNotifications: 100.00% (1 / 1)
webdriver/tests: 100.00% (1 / 1)
webxr/gamepads-module: 100.00% (1 / 1)
2dcontext/image-smoothing: 100.00% (1 / 1)
2dcontext/context-attributes: 100.00% (1 / 1)
fetch/content-encoding: 100.00% (1 / 1)
fetch/origin: 100.00% (1 / 1)
fetch/api: 100.00% (1 / 1)
fetch/cors-rfc1918: 100.00% (1 / 1)
fetch/images: 100.00% (1 / 1)
html/interaction/focus/document-level-focus-apis: 100.00% (1 / 1)
html/syntax/serializing-xml-fragments: 100.00% (1 / 1)
html/rendering/widgets/appearance: 100.00% (1 / 1)
html/rendering/replaced-elements/svg-inline-sizing: 100.00% (1 / 1)
html/browsers/the-window-object/security-window: 100.00% (1 / 1)
html/semantics/document-metadata/styling: 100.00% (1 / 1)
html/semantics/document-metadata/interactions-of-styling-and-scripting: 100.00% (1 / 1)
html/semantics/interactive-elements: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/location-of-the-media-resource: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/user-interface: 100.00% (1 / 1)
html/semantics/embedded-content/media-elements/mime-types: 100.00% (1 / 1)
html/semantics/embedded-content/the-frame-element: 100.00% (1 / 1)
html/semantics/embedded-content/the-img-element/update-the-image-data: 100.00% (1 / 1)
html/semantics/scripting-1/the-script-element/module/import-meta: 100.00% (1 / 1)
html/semantics/forms/the-meter-element: 100.00% (1 / 1)
html/semantics/forms/the-datalist-element: 100.00% (1 / 1)
html/webappapis/the-windoworworkerglobalscope-mixin: 100.00% (1 / 1)
html/webappapis/update-rendering: 100.00% (1 / 1)
uievents/legacy: 100.00% (1 / 1)
uievents: 100.00% (1 / 1)
websockets/interfaces/WebSocket/extensions: 100.00% (1 / 1)
wasm/serialization/arraybuffer: 100.00% (1 / 1)
webaudio: 50.00% (2 / 1)
fetch/api/credentials: 50.00% (2 / 1)
WebIDL: 50.00% (2 / 1)
html/infrastructure/urls/terminology-0: 50.00% (2 / 1)
html/rendering/replaced-elements/the-option-element: 50.00% (2 / 1)
html/rendering/replaced-elements/images: 50.00% (2 / 1)
html/browsers/browsing-the-web/navigating-across-documents/refresh: 50.00% (2 / 1)
html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort: 50.00% (2 / 1)
html/semantics/interactive-elements/the-summary-element: 50.00% (2 / 1)
html/semantics/embedded-content/image-maps/image-map-processing-model: 50.00% (2 / 1)
html/semantics/embedded-content/the-img-element/environment-changes: 50.00% (2 / 1)
html/semantics/forms: 50.00% (2 / 1)
html/semantics/text-level-semantics/the-wbr-element: 50.00% (2 / 1)
WebCryptoAPI/secure_context: 50.00% (2 / 1)
WebCryptoAPI: 50.00% (2 / 1)
wasm/jsapi: 50.00% (2 / 1)
offscreen-canvas/filter: 50.00% (2 / 1)
html/semantics/interactive-elements/the-details-element: 33.33% (3 / 1)
html/semantics/text-level-semantics/the-ruby-element: 33.33% (3 / 1)
referrer-policy/gen/top.http-rp/same-origin/a-tag: 33.33% (3 / 1)
referrer-policy/gen/top.meta/same-origin/a-tag: 33.33% (3 / 1)
referrer-policy/gen/req.attr/same-origin/a-tag: 33.33% (3 / 1)
webaudio/the-audio-api/the-gainnode-interface: 25.00% (4 / 1)
2dcontext/conformance-requirements: 25.00% (4 / 1)
html/rendering/the-css-user-agent-style-sheet-and-presentational-hints: 25.00% (4 / 1)
html/semantics/embedded-content/the-audio-element: 25.00% (4 / 1)
html/semantics/embedded-content/the-img-element/srcset: 25.00% (4 / 1)
html/semantics/forms/resetting-a-form: 25.00% (4 / 1)
html/semantics/text-level-semantics/the-br-element: 25.00% (4 / 1)
uievents/order-of-events/focus-events: 25.00% (4 / 1)
wasm/jsapi/memory: 25.00% (4 / 1)
quirks/text-decoration-doesnt-propagate-into-tables: 25.00% (4 / 1)
webaudio/the-audio-api/the-audiobuffer-interface: 20.00% (5 / 1)
dom/lists: 20.00% (5 / 1)
html/browsers/history/the-session-history-of-browsing-contexts: 20.00% (5 / 1)
html/webappapis/scripting/event-loops: 20.00% (5 / 1)
wasm/jsapi/instance: 20.00% (5 / 1)
wasm/jsapi/module: 20.00% (5 / 1)
gamepad: 20.00% (5 / 1)
html/semantics/forms/attributes-common-to-form-controls: 16.67% (6 / 1)
workers/interfaces/WorkerUtils/navigator: 14.29% (7 / 1)
workers/interfaces/WorkerGlobalScope/location: 14.29% (7 / 1)
html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color: 14.29% (7 / 1)
webgl: 14.29% (7 / 1)
eventsource/dedicated-worker: 12.50% (8 / 1)
html/semantics/scripting-1/the-template-element/template-element: 11.11% (9 / 1)
webmessaging/message-channels: 9.09% (11 / 1)
websockets/interfaces/WebSocket/send: 8.33% (12 / 1)
dom/traversal: 7.69% (13 / 1)
dom/nodes/Document-contentType/contentType: 6.67% (15 / 1)
html/dom/documents/dom-tree-accessors/document.getElementsByName: 6.67% (15 / 1)
html/browsers/windows/browsing-context-names: 6.67% (15 / 1)
html/the-xhtml-syntax/parsing-xhtml-documents: 6.67% (15 / 1)
2dcontext/drawing-rectangles-to-the-canvas: 3.12% (32 / 1)
2dcontext/line-styles: 2.78% (36 / 1)
html/semantics/scripting-1/the-script-element/module: 1.47% (68 / 1)
2dcontext/compositing: 1.05% (95 / 1)

Our goal is to tackle this list strategically, picking out directories to focus on that look interesting/worrying. A directory with a large number of tests and a large number of failures suggests that a feature being tested may not be fully implemented, or not implemented correctly. A directory with a large number of tests and a small number of failures suggests we might be missing some edge cases in the feature being tested. A directory with a small number of tests with a similar number of failures could go either way.

@jdm jdm added the B-meta label Nov 21, 2019
@jdm
Copy link
Member Author

@jdm jdm commented Nov 21, 2019

Some of the entries that look high value to me:

  • xhr: 25.76% (295 / 76)
    • important feature for web content, large number of tests, significant number of failures
  • custom-elements/reactions: 73.08% (52 / 38)
    • complex feature for relatively new standard, majority of tests fail
  • custom-elements: 81.82% (22 / 18)
    • complex feature for relatively new standard, majority of tests fail
  • html/semantics/embedded-content/the-iframe-element: 32.26% (93 / 30)
    • very important feature for web content, significant number of failures
  • html/semantics/scripting-1/the-script-element: 18.75% (48 / 9)
    • very important feature for web compat, should understand remaining failures
  • html/semantics/scripting-1/the-script-element/execution-timing: 20.81% (149 / 31)
    • very important feature for web compat, significant number of failures
  • fetch/api/basic: 70.37% (27 / 19)
    • new web feature, large number of failures for basic API usage
  • fetch/api/cors: 94.74% (19 / 18)
    • new web feature with security implications, high proportion of failing tests
bors-servo added a commit that referenced this issue Nov 23, 2019
Useful scripts for interacting with WPT logs

These are scripts I used to generate the list in #24828, analyze test failures for #23290, and disable slow tests.
@pshaughn
Copy link
Member

@pshaughn pshaughn commented Nov 27, 2019

I looked at those 9 "html/semantics/scripting-1/the-script-element" failures.

Six of them are named nomodule-* and fail because nomodule doesn't exist. I see that there's active progress on #23370 and nomodule would presumably fall under there.

Two of them, muted-errors.sub.html and data-url.html are cross-origin Javacript error propagation issues. muted-errors has cross-origin errors that should be muted but aren't, and data-url has technically-cross-origin errors that should be exempt from muting but are muted. These probably share a common cause with other CORS problems.

script-charset-02 looks like <meta charset="windows-1250"> is having no discernable effect on the document, neither in its reported document.characterSet nor in its actual handling of character bytes.

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Nov 27, 2019

html/semantics/scripting-1/the-script-element/execution-timing gets subtle, but one common type of failure is exemplified test 147.html. The decision point for executing scripts with a given timing is being locked in too early.
At a handwavey level, what's happening now is that Servo sees scripts, thinks "I am going to run these in this order", and then starts doing that, going through that whole order without reconsidering its decision at points where it's supposed to reconsider it.
At an equally handwavey level, what it should do to pass the tests is see scripts, think "I am going to run the first of these I haven't already run", do that, and then look at what's remaining with any new DOM mutations taken into account.
I don't yet know how many of the 31 failures are due to this, or what piece of code is responsible.

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Nov 27, 2019

The execution timing failures are more diverse than I expected. Some are about unimplemented features, some are fine points where other browsers are failing too, and only a few seem to be unambiguously Servo bugs.

Long list that I subsequently added as separate issues UNIMPLEMENTED FEATURES: 042, 043, 044, 054, 055: These tests are using a deprecated not-in-servo API to find out when DOM node insertion events fire (see https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events ) 123, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146: These are testing the SVG script tag rather than the HTML one, so Servo doesn't even really reach the code in question.

NON-TIMING SERVO BUG:
084: top is somehow null in this iframe, which is killing this before it even gets to execution timing

ACTUAL PROBLEMS WITH SERVO'S TIMING:
040, 080, 108, 109: It appears that, if an iframe is added to the DOM by any means and has a javascript: url, the iframe script starts execution immediately, while these tests seem to expect execution to wait until the script that added the iframe has finished. Additionally, in the case of 109, iframe.onload doesn't seem to be firing.
147: Safari also fails this one, but Chrome/Edge/Firefox all pass. It's moving scripts around in the DOM and then expecting them to fire in the original order, not the changed order. (I had the expected and actual cases mixed up when I described it earlier, and as it turns out it's not exemplary of a larger case at all like I had thought it was.)

FINE POINTS WITH BROWSER DISAGREEMENT:
083: updating a frame's location to about:blank is not killing an event listener that lived in the frame, but all the other browsers are failing too so maybe it's not really supposed to
128: Only Firefox is passing this test. The fact that adding Javascript text to an already-executed <script> executes that text at all already seems suspicious to me, and I am not surprised that browsers disagree about the intended execution order when someone does this thing.
148: Only Firefox is passing this test. It looks like it's calling removeChild at a script and expecting the removed script to execute anyway.

BROKEN TEST:
116: this test is expecting a script it includes to inspect the element type of document.body, but that script has the string BODY hardcoded instead, so there's nothing that can ever write the expected string FRAMESET

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Nov 28, 2019

Many of the fetch/api/basic errors fall into unimplemented features and incorrect handling of request headers. There are 7 other failures outside those two categories. My manual count isn't matching your script count on these, so I might have missed a couple.

I've made separate issues for these now, so we don't really need to see the giant list here EXPLICITLY UNIMPLEMENTED FEATURES: mediasource.window.html: MediaSource is not defined error-after-response.html, stream-response.any[.worker].html: response.body is unimplemented request-upload.any[.worker].html: ReadableStream is not defined *.any.sharedworker.html: SharedWorker is not defined *.any.serviceworker.html: navigator.serviceWorker is undefined

PROBLEMS WITH REQUEST HEADERS:
forbidden-headers.any[.worker].html: it looks like trying to put an Accept-Encoding, Access-Control-Request-Headers, or Access-Control-RequestMethod header into a Request throws an unexpected TypeError, while putting in any other forbidden header has the expected behavior of quietly not sending the header.
request-headers-case.any[.worker].html: Request header names are not being case-preserved on the way out to the server; both THIS-IS-A-TEST and THIS-is-A-test are becoming This-Is-A-Test. The server is echoing them back as a text body, not as response headers, so it's unambiguous that the mangling is happening while they're request headers.
request-headers.any[.worker].html: Most subtest errors are various kinds of request that should have a MIME type automatically injected for them, but which don't. Also, a request with a nonstandard http method verb and a null body is getting an explicit content-length of 0 instead of just not having a content-length.
request-referrer.any.html: It appeears that trying to explicitly set a referrer header to "about:client" ends up making it null.

AND THE REST:
integrity.sub.any[.worker].html: Integrity doesn't seem to be checked at all; every combination is acting like it's valid.
referrer.any[.worker].html: Of 6 subtests, the 4 involving an "origin-when-cross-origin" policy fail and the other 2 pass.
conditional-get.html: test expects an X-HTTP-STATUS header and there isn't one. (What standard is even saying to have this header there?)
header-value-combining.any[.worker].html: Unexpected "Network error" for reasons I could not easily discern
scheme-about-any[.worker].html: fetching about:blank with an explicit http method verb should return a rejected promise, but the promise isn't rejecting
scheme-data.any[.worker].html: The MIME case folding issue we already know about. (Also data_loader.rs has an incorrect space after a semicolon in a string constant, but the case-folding is ruining the string in any event.)
text-utf8.html: Decoding UTF-8 with a byte order mark is incorrectly preserving it instead of stripping it. (Decoding UTF-16 with a byte order mark is behaving correctly.)

@jdm
Copy link
Member Author

@jdm jdm commented Dec 2, 2019

Here's the next batch that look like the highest value:

  • dom/events
  • html/webappapis/scripting/events
  • html/webappapis/scripting/processing-model-2
  • html/webappapis/scripting/events/event-handler-processing-algorithm-error
  • html/syntax/parsing-html-fragments
  • html/syntax/parsing
  • html/syntax/serializing-html-fragments
  • workers/interfaces/DedicatedWorkerGlobalScope/postMessage
  • html/webappapis/scripting/event-loops
  • cors
  • html/webappapis/dynamic-markup-insertion/opening-the-input-stream
  • html/semantics/document-metadata/interactions-of-styling-and-scripting
  • html/browsers/browsing-the-web/navigating-across-documents
  • WebIDL/ecmascript-binding
  • html/browsers/windows/document-access
  • html/dom/documents/dom-tree-accessors
  • html/dom/documents/dom-tree-accessors/document.getElementsByName
  • dom/nodes
  • fetch/api/response
  • html/semantics/forms/form-submission-0
  • html/semantics/document-metadata/the-link-element
  • html/semantics/forms/form-submission-target
@pshaughn
Copy link
Member

@pshaughn pshaughn commented Dec 7, 2019

I've gone through the list and broken down individual issues. fetch/api/cors is a bit of a pile in #24908 but I suspect there are are only a few real root causes among all those preflight failures. I have an idea of how various parts of Servo interconnect and which issues are likely to be bigger than others, and next week I'll start trying to resolve some issues.

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Jan 21, 2020

Do we have any ways of automatically or semi-automatically cleaning out old metadata from tests that no longer exist?

An example: https://github.com/servo/servo/blob/66aebfdbee6ae10fe7ea65224bf202f53b2efceb/tests/wpt/metadata/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html.ini has a leftover failure from a test that expects calling an HTMLFormControlsCollection like a function to work. This was removed, superceded by the first test of https://github.com/servo/servo/blob/66aebfdbee6ae10fe7ea65224bf202f53b2efceb/tests/wpt/web-platform-tests/html/infrastructure/common-dom-interfaces/collections/historical.html explicitly testing that that behavior no longer exists (and Servo passes the latter).

@jdm
Copy link
Member Author

@jdm jdm commented Jan 21, 2020

The only way to do that is to remove all of the ini files, run the tests on CI, then download the resulting log files and run ./mach update-wpt test-wpt.log to recreate all of the ini files from scratch.

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Jan 21, 2020

Is that ever done?

@jdm
Copy link
Member Author

@jdm jdm commented Jan 21, 2020

It's only been done for individual directories, not the full testsuite.

@pshaughn
Copy link
Member

@pshaughn pshaughn commented Jan 27, 2020

I've taken some time going over the https://github.com/servo/servo/projects/20 todos to get a sense of what we have. Most of the categories represent a single root concept to be worked on, but "Other features Servo is overtly missing" and "Issues not falling into more specific groups" are more heterogenous.

Test problems

Issues in which the spec seems unclear, the WPT test itself has a problem, or other browsers are also failing:
  • html/semantics/scripting-1/the-script-element/execution-timing/116 is broken web-platform-tests/wpt#20515
  • fetch/api/cors/cors-preflight-redirect is broken web-platform-tests/wpt#20517
  • Do we want to pass WPT cors/simple-requests-ch.tentative.htm? (Client Hints without Accept-CH) #25176
  • WPT failures with cross-browser disagreement in Iterator.toString #25045
  • Python stack trace in WPT cors/basic.htm #25180
  • Subtle execution timing issues as Javascript is added, moved, and removed from the DOM #24902
  • WPT failure: DOMContentLoaded fires before a task that is queued from inside a defer script fires #25050
Test performance problems that could be mitigated by breaking tests into more files of fewer cases, but which probably also reflect things we can do faster:
  • WPT test of named character references runs slowly #25054
  • WPT dom/nodes/Document-characterSet-normalization.html might need breaking up into several separate test pages #25141
  • All non-SVG WPT dom/nodes/Document-createElement-namespace.html test cases can pass if run individually #25142

Absent features

Feature policies:
  • WPT wants document.featurePolicy #24922
  • WPT wants HTMLIFrameElement.allow #24921
  • Implement securitypolicyviolation events #25182 [or is this a different sense of "policy"?]
Shadow DOM:
  • WPT custom-elements tests fail out of the box because dom.shadowdom.enabled is false #24996
  • Implement Shadow DOM slots #23590
Stream support:
  • Implement ReadableStream support #21482
  • Implement WritableStream #25105
The iframe sandbox parameter:
  • Act on iframe sandboxing restrictions #913
  • Events from sandboxed iframes are remembering their origin #24960
  • Sandboxed iframes can go back and forward in history #24961
  • WPT wants sandbox="allow-top-navigation" #24967
  • window.localStorage and window.sessionStorage exist (incorrectly) in a sandboxed iframe #24966
  • Setting a cookie from a sandboxed iframe isn't throwing an exception #24970
  • parent document is receiving an event from a sandboxed iframe it shouldn't be receiving one from #24971
Nested browsing contexts other than iframes:
  • Timeouts trying to communicate with a frame, embed, or object HTML page in WPT html/browsers/windows/nested-browsing-contexts/name-attribute.window` #25056
  • embed and object embedded browsing contexts have an undefined default name instead of an empty string #25059
  • Document named getter can't find iframes, embeds and objects #25145
  • Implement DOM properties of HTMLFrameElement #25153
Other features Servo is overtly missing:
  • WPT expects DOMTokenList.supports #24965
  • HTMLIFrameElement.getSVGDocument should exist #24968
  • Implement DOM selections #7492
  • Many elements have missing attributes, which WPT custom-elements/reactions notices #25001
  • Implement execCommand #25005
  • Should mutation events be implemented? #24899
  • .matches(':defined') on an undefined custom element throws SyntaxError #25010
  • implement CanvasRenderingContext2D.setLineDash #25019
  • Implement URLMismatchError DOMException, or at least expected legacy code-number behavior relating to it #25024
  • implement window.locationbar in DOM (maybe even as a dummy before Servo has a real one) #25088
  • [devtools.html] window.focus support #8981
  • Implememt HTMLCanvasElement.toBlob #25091
  • WPT thinks marquee elements fire a "start" event #25092
  • Implement document.all #7396
  • Implement has() pseudo-class? #25133
  • ImageData can't be structured-cloned by postMessage #25148
  • Implement SubmitEvent for form submit events #24617
  • Implement .requestSubmit() #23417
  • Implement auxclick events #25181
  • Implement ImageBitmap #20650
  • Implement StaticRange #25376
  • Implement BroadcastChannel #21025
  • Location is missing some exotic behaviors #25378
  • Implement form autocomplete, or at least the DOM behavior relating to autocomplete hints? #25383
  • Support OverrideBuiltins WebIDL annotation #12978
  • Add PerformanceObserver.supportedEntryTypes #25587
  • [Meta] multi windows support #13997
  • WPT sandbox tests can't test if modals are blocked since they don't exist #24963
  • Implement HTML5 form validation #11444

Iframes

These seem be problems with our iframe navigation implementation:
  • iframe src="javascript:..." executes too soon, which is a symptom of HTMLIFrameElement::navigate_or_reload_child_browsing_context needing to perform navigation steps at the right time/on the right thread #24901
  • Replacing iframe src with javascript urls isn't necessarily firing the javascript #24974
  • iframe getting a load event too late in its lifecycle #24972
  • history.go(-1) in an iframe doesn't appear to be firing onunload in WPT html/browsers/browsing-the-web/navigating-across-documents/003.html and /004.html #25067
  • WPT html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document-open-cancels-javascript-url-navigation.html isn't getting the right execution order between a javascript: src and contentDocument.write #25071
  • beforeunload seems not to be firing on iframe.src=... in several WPT html/webappapis/dynamic-markup-insertion/opening-the-input-stream tests #25098
  • WPT html/semantics/form/form-submission-0/form-submission-algorithm.html appears to navigate to a set iframe.src despite a subsequent form.submit() targeting the iframe #25154
  • When parsing HTML as a result of assigning to srcdoc, the Javascript execution stack isn't empty. #25514
  • document.querySelector(":target") returns null unexpectedly when used in onload #25131
These problems are likely to involve mishandling of iframe origins/bases, which overlaps iframe navigation:
  • Non-http iframes get a SyntaxError trying to use XHR #24944
  • iframe incorrectly gets SecurityError looking into its own child iframe's window proxy #24962
  • WPT tests of downloading from an iframe are timing out #24973
  • Unexpected "Cannot parse URL: relative URL with a cannot-be-a-base base" in two WPT tests #25064
  • When an clicked HTMLAnchorElement has both href and onclick, WPT and other browsers are left with the result of the href, but we end up with the result of the the onclick #25065
  • Accessing a child frame's contentWindow.location.href during parent frame's onload is getting SecurityError in WPT html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window #25078
  • iframe.contentWindow.opener is unexpectedly null #25060
  • Creating a blob in an iframe, then navigating the iframe to that blob url, then accessing the iframe contents from parent document, gets SecurityError #25080
  • Attaching an event listener to a child frame's contentWindow during parent frame's onload is getting SecurityError in WPT html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window #25089
  • SecurityError in WPT html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html #24975
  • WPT html/semantics/forms/form-submission-0/getactionurl.html gets SecurityError accessing contentWindow.document of a data: iframe #25156
  • Clicking an HTMLAnchorElement with an href inside an src-less iframe isn't following hyperlink #25374
  • about:blank iframe contentDocument.cookie doesn't share cookies with parent document #25607
These involve referrers of blank iframes:
  • unknown exception accessing a referrer of about:blank iframe in WPT html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-src-about-blank.html #25066
  • document.createElement("iframe") ends up with contentDocument.referrer of "" instead of document.URL #25058
Other unexpected iframe behaviors:
  • iframe's window.top is somehow null in WPT html/semantics/scripting-1/the-script-element/execution-timing/084 #24900
  • WPT expects InvalidStateError if calling open() or send() on an XMLHttpRequest of an orphan iframe #24945
  • an iframe is missing its .contentDocument #24964
  • An iframe element's name and its contained child browsing context's name interact improperly #25057
  • Newly-created empty iframe's contentDocument.readyState is "interactive" but should be "complete" after adding to DOM #25061
  • Parent isn't receiving a message event from a sandboxed same-origin iframe #24969
  • Javascript exception throws between different-origin scripts aren't being muted correctly #24897

Parsing and charsets

Incomplete handling of explicit character-set settings:
  • meta charset and meta equiv="Content-Type" seem unable to switch away from UTF-8 #24898
  • XHR sometimes decodes by the wrong charset #24915
  • XHR is percent-encoding badly in a non-UTF8 page #24916
Failures that seem likely to require fixes in html5ever/xml5ever:
  • Servo doesn't special-case the XHTML template element in XHR responses #24925
  • Servo isn't strict enough about what XMLHttpRequest response XML it will accept #24923
  • WPT wants empty XML tags to be serialized in self-closing syntax #24920
  • Using the is= property in innerHTML and in Range.createContextualFragment isn't using the custom element class #24992
  • Custom element inside template uses registry of owner document #25007
  • WPT test that's in UTF-8 with BOM times out #25053
  • Parser incorrectly assigns unknown_namespace to attributes in some WPT tests #25049
  • ?xml? appears to be counted among XHTML DOM children, or possibly some other incorrect first child exists #25111
  • XHTML !ENTITY doesn't seem to be working #25125
  • Setting a textarea's value while in mid-parse (via XHTML nested script) doesn't replace the entire value #25381
  • adding a custom element by tHead, tBody, or caption .innerHTML= doesn't fire a constructed event #25004

XHR/Fetch

Handling of Basic auth credentials:
  • Wrong priority when user:pass@url string conflicts with XHR user and password parameters #24953
  • XHR apparently isn't reusing Basic credentials between requests #24952
XHR sends events to upload listeners that it shouldn't send events to:
  • XHR .upload.onloadstart and .upload.onprogress can receive events when added to an already-in-progress XHR #24950
  • GET/HEAD XHR are seeing upload events #24955
XMLHttpRequest.abort:
  • XMLHttpRequest.abort before send() changes readyState to 0 #24931
  • XHR abort() doesn't throw out received status code #24932
  • abort() inside onloadstart handler does nothing in WPT xhr/open-during-abort-processing.htm #24935
  • Calling open() and send() on an XHR from inside its onabort isn't making it send again (or isn't reporting the resend as events) #24941
  • Timed-out, aborted, and errored XHR incorrectly reporting non-zero bytes loaded #24926
  • XHR sending an object for which toString aborts the XHR ends up in the wrong state #24954
Problems that seem likely to come from Hyper crates not matching WHATWG specs:
  • Some fetch request headers don't add properly #24903
  • Fetch requests aren't always automatically getting implied Content-Length and Content-Type #24904
  • CORS integrity WPT test failures (Servo is being too permissive) #24906
  • Settting some fetch request parameters/headers gives "TypeError: Network error occured" #24908
  • XHR request content types aren't getting canonicalized the WPT-expected way #24918
  • XHR request headers are getting overzealously case-folded #24937
  • Custom response headers seem to be breaking XHR #24947
  • Missing space in default ContentType of XHR form data #24958
  • Setting content type of XHR HTMLDocument request isn't sticking #24959
  • Network error with trailing whitespace in Allow-Origin response header #25173
  • Some slightly wrong Allow-Origin headers are producing load instead of error state, Servo is being lenient in ways URL-comparison is lenient #25174
  • Content-Type preflight safelisting gets some cases wrong. #25175
  • Access-Control-Allow-Credentials is incorrectly case-insensitive, should only work for lowercase "true" #25178
  • CORS allowheaders are unnecessarily case-sensitive #25177
  • Charset case may need to be preserved hyperium/mime#116
Other issues involving XHR and fetch:
  • Hold a reference to the blob with XMLHttpRequest::open(... blob url ...) #13767
  • WPT failures on CORS preflighting #24912
  • WPT fetch/api/basic/conditional-get fails, client is not sending If-None-Match header on second request of same URL #24909
  • Fetching about:blank works when it shouldn't #24910
  • WPT expects to be able to construct a Response with an empty-string Content-Type #25107
  • WPT fetch/api/response/response-consume-empty.html times out trying to use locally-constructed Responses with empty bodies #25109
  • Cloning a response gets "Guard is immutable" error from script/dom/headers.rs #25108
  • XHR POST to an URL that redirects is behaving badly #24951
  • Servo disagrees with other browsers in WPT xhr/send-no-response-event-order #24956
  • Line-number-less syntax errors on WPT xhr/overridemimetype-blob.html #24948
  • Either sending an XHR with custom headers causes an error event, or a WPT test is being weird at us [may be preflight-related] #24946
  • Unexpected SyntaxError opening an XHR to a relative URL, but a similar Fetch works #25085
  • Access-Control-Expose-Headers strings with strange characters can throw NetworkError or expose headers they shouldn't #25179
  • Access-Control-Expose-Headers strings with strange characters can throw NetworkError or expose headers they shouldn't #25179
  • WPT test that increases synchronous XMLHttpRequest.timeout in a worker isn't making it wait longer #24936
  • window.stop() isn't firing onabort of XMLHttpRequest #24942
  • ASCII content-type request header isn't being changed to UTF-8 by XHR when it should, for URLSearchParams requests #24957

Forms

Form data serialization:
  • WPT xhr/send-form-data makes malformed body from FormData #24934
  • MIME handling of multipart form data isn't working in several cases #25106
Custom form elements:
  • Form-associated custom element behavior issues #25015
  • Implement attachInternals and ElementInternals #24988
  • customElements.define isn't checking disabledFeatures and formAssociated when expected #25017
Other issues involving forms:
  • Unset file-type form input produces null in FormData, WPT expects a file #25155
  • refactor the way of getting controls owned by the form #21495
  • Implement form dirname #25379

Other specific areas

Cookies:
  • WPT cookies/http-state/general-tests.html cases with missing cookie name fail #25609
  • WPT cookies/http-state tests that use Location: time out #25604
  • cookies/http-state/charset-tests.html fails on CJK characters #25608
  • WPT test cookies/http-state/chromium-tests.html times out on a case with "ZYX-Cookie" header #25605
Document named getter:
  • document.getElementsByName seems to be a static collection that doesn't reflect a subsequent appendChild #25147
  • Document named getter is returning something when two imgs have the same ID, but it shouldn't according to WPT and some browsers #25146
Issues that seem to involve using "settings objects" to keep track of the realms involved in cross-global calls:
  • Implement entry settings object #25079
  • "The error event from an event listener should fire on that listener's global." per WPT but sometimes doesn't #25198
  • Constructor called in one window that came from another window isn't finding the prototype WPT expects it to #25044
Issues involving event listeners:
  • reassigning to onclick= apparently isn't moving it to a later position in the event listener order. #25196
  • Dispatching an ErrorEvent to a document passes five arguments to document.onerror instead of one (it appears that only window.onerror should get five) #25197
  • .click() on an img inside a td, or a q inside a button, apparently isn't firing the td/button's onclick #25199
  • Removing a later event listener while an earlier listener for the same event is running doesn't stop it from being called #25479
  • Setting element.onerror on a body or frameset element from a document that doesn't have a window should leave it null, not actually set it. #25187
  • Certain event handlers aren't reflected between window and document.body #25186
  • Implement window "current event" #25478
  • Synthetic click events aren't putting checkboxes/radio buttons in the right state in some cases #25384
Timing/event-ordering issues involving stylesheet loading:
  • WPT html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html sees a still-loading stylesheet as a member of document.stylesheets with empty cssRules; WPT test isn't expecting this #25099
  • Stylesheet load events fire in many cases that shouldn't #25101
  • Stylesheets seem not to be blocking script execution at all in WPT html/semantics/document-metadata/interaction-of-styling-and-scripting and document-metadata/the-link-element/link-*-fired-before-scripting-unblocked.html #25100
  • Stylesheet href is unexpectedly null (same-origin) #25102
Document.open:
  • document.open() does, but shouldn't, "change document's URL (non-active document with an associated Window object; frame is removed)" #25081
  • Calling contentDocument.open() in an event handler should stop a second handler of the same event from running, but doesn't #25090
  • document.open() seems to incorrectly abort XHR, fetch, and image requests that "are not navigating" #25083
  • document.open() seems to fail to abort XHR and fetch requests that are "navigating through Location" or "queued for navigation" [might be silently discarding without firing abort event/promise rejection] #25084
  • WPT: "document.open should throw an {InvalidStateError|SecurityError} with XML document even when the ignore-opens-during-unload counter is greater than 0" #25094
  • Servo throws SecurityError instead of InvalidStateError when opening a cross-origin contentDocument during throw-on-dyanamic-insertion state in WPT html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js #25095
  • contentDocument.open while ignore-opens-during-unload counter>0 is removing nodes from the document #25096
  • Intermittent CRASH in /html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.html #21444
Problems with the mostly codegen-created prototype objects of interfaces:
  • The object Element.prototype[Symbol.unscopables] itself has a prototype but shouldn't #25022
  • WPT thinks Document.prototype[Symbol.toStringTag] should exist #25021
  • The prototype chain of the global object isn't immutable (or isn't throwing exceptions to show it is) #25023
These seem to be HTMLConstructor problems:
  • new custom_element_class() cloneNode() returns a non-custom element #24993
  • outerHTML isn't always serializing is= when it should #24994
  • HTMLElement constructor is accessing .prototype before performing sanity checks #24995
  • TIMEOUT when trying to make a customized built-in element class with a non-Object prototype #25000
Legacy "Refresh" handling:
  • WPT html/browsers/browsing-the-web/navigating-across-documents/refresh/navigate.window isn't following a refresh header in an iframe #25068
  • Implement http-equiv refresh #25082
Compiled inline event handlers:
  • Setting onclick to a garbage string and then evaluating it (without calling it) should fire an error event but doesn't #25200
  • Dispatch error events when event handler attributes fail to compile. #13152
  • Syntax and runtime errors from Javascript that was compiled from a string argument to setTimeout/setInterval pass "" to onerror instead of the URL of the script they came from #25194

Issues not falling into more specific groups

Miscellaneous script/dom phenomena that seem to be solvable just inside script/dom without involving layout, parsing or network:
  • Emptying a classList leaves getAttribute("class") as an empty string where WPT expects null #25128
  • "Named constructor without 'new'" WPT failures #25394
  • ev.ports === ev.ports is false for a message event #25193
  • Can't Atomics.wait in DedicatedWorkerGlobalScope, WPT says it should be possible #25191
  • Passing invalid qualified name arguments to createDocument, createElementNS, and setAttributeNS throw NamespaceError instead of INVALID_CHARACTER_ERR #25110
  • PerformanceObserverInit doesn't support absence of entryTypes member #24781
  • "Legacy callback interface" expectations aren't being met #25020
  • Servo seems to be allowing expandos/defined properties to be set in cases that incorrectly shadow indexed/named setters #25448
Other
  • BOM should not be present in TextDecoder output #13233
  • WPT test for deflate content-encoding ends up with an empty string #24949
  • Workers aren't passing their .js URL as Referer in same-origin requests #24938
  • Improve spec compliance of fullscreen operations #21600
  • Node that belonged to an XHTML document that was then added to a non-HTML XML document becomes unusable with unknown ("can't convert to string") exception #25135
  • style.setProperty doesn't seem to be working for custom element subclasses of CSSStyleDeclaration #25013
  • Too many disconnectedCallback calls in WPT custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback.html #25014
  • WPT browsers/browsing-the-web/navigating-across-documents/javascript-url-abort tests behave differently depending on headlessness #25069
  • Implement line-height quirks #11704
  • Element.lookupPrefix doesn't seem to work on xmlns: attributes in XHTML #25127
  • Investigate document activity and layout thread exit issues #22507
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.