diff options
Diffstat (limited to 'tests')
151 files changed, 4856 insertions, 2405 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 6a3af4e2ece..3b874fc1748 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,9 +14,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - [url-with-fetch.any.html] [Untitled] @@ -37,3 +34,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index b0f6034ebf7..e65808e9038 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -135835,6 +135835,30 @@ {} ] ], + "css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html": [ + [ + "css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html": [ + [ + "css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-position/static-position/vlr-ltr-ltr.html": [ [ "css/css-position/static-position/vlr-ltr-ltr.html", @@ -141611,6 +141635,18 @@ {} ] ], + "css/css-tables/absolute-tables-006.html": [ + [ + "css/css-tables/absolute-tables-006.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/css-tables/anonymous-table-cell-margin-collapsing.html": [ [ "css/css-tables/anonymous-table-cell-margin-collapsing.html", @@ -142619,6 +142655,46 @@ {} ] ], + "css/css-text-decor/text-underline-offset-scroll-001.html": [ + [ + "css/css-text-decor/text-underline-offset-scroll-001.html", + [ + [ + "/css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html", + "==" + ], + [ + "/css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-underline-offset-vertical-001.html": [ + [ + "css/css-text-decor/text-underline-offset-vertical-001.html", + [ + [ + "/css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text-decor/text-underline-offset-vertical-002.html": [ + [ + "css/css-text-decor/text-underline-offset-vertical-002.html", + [ + [ + "/css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/boundary-shaping/boundary-shaping-001.html": [ [ "css/css-text/boundary-shaping/boundary-shaping-001.html", @@ -252790,6 +252866,18 @@ "css/css-text-decor/reference/text-underline-offset-002-ref.html": [ [] ], + "css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html": [ + [] + ], + "css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html": [ + [] + ], + "css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html": [ + [] + ], "css/css-text/META.yml": [ [] ], @@ -265315,9 +265403,6 @@ "html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html": [ [] ], - "html/browsers/browsing-the-web/history-traversal/contains.json": [ - [] - ], "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html": [ [] ], @@ -265486,9 +265571,6 @@ "html/browsers/browsing-the-web/unloading-documents/beforeunload-on-navigation-of-parent-2.html": [ [] ], - "html/browsers/browsing-the-web/unloading-documents/contains.json": [ - [] - ], "html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload-1.html": [ [] ], @@ -265762,9 +265844,6 @@ "html/browsers/history/the-location-interface/assign_before_load-2.html": [ [] ], - "html/browsers/history/the-location-interface/contains.json": [ - [] - ], "html/browsers/history/the-location-interface/cross_origin_joined_frame.sub.html": [ [] ], @@ -265876,12 +265955,6 @@ "html/browsers/offline/changestonetworkingmodel/original-id.json": [ [] ], - "html/browsers/offline/introduction-4/contains.json": [ - [] - ], - "html/browsers/offline/manifests/contains.json": [ - [] - ], "html/browsers/offline/no-appcache-in-shared-workers-historical.js": [ [] ], @@ -266053,9 +266126,6 @@ "html/browsers/the-window-object/support/sizing-target.html": [ [] ], - "html/browsers/windows/auxiliary-browsing-contexts/contains.json": [ - [] - ], "html/browsers/windows/auxiliary-browsing-contexts/resources/close-opener.html": [ [] ], @@ -266134,9 +266204,6 @@ "html/browsers/windows/browsing-context-names/resources/report-is-top.html": [ [] ], - "html/browsers/windows/nested-browsing-contexts/contains.json": [ - [] - ], "html/browsers/windows/nested-browsing-contexts/resources/frameElement-nested-frame.html": [ [] ], @@ -266281,18 +266348,9 @@ "html/dom/elements-text.js": [ [] ], - "html/dom/elements/content-models/contains.json": [ - [] - ], - "html/dom/elements/element-definitions/contains.json": [ - [] - ], "html/dom/elements/global-attributes/.htaccess": [ [] ], - "html/dom/elements/global-attributes/contains.json": [ - [] - ], "html/dom/elements/global-attributes/dir_auto-EN-L-ref.html": [ [] ], @@ -266515,9 +266573,6 @@ "html/dom/elements/wai-aria/README.md": [ [] ], - "html/dom/elements/wai-aria/contains.json": [ - [] - ], "html/dom/new-harness.js": [ [] ], @@ -269176,15 +269231,6 @@ "html/iana/web-scheme-prefix/original-id.json": [ [] ], - "html/infrastructure/common-dom-interfaces/collections/contains.json": [ - [] - ], - "html/infrastructure/common-microsyntaxes/dates-and-times/contains.json": [ - [] - ], - "html/infrastructure/common-microsyntaxes/numbers/contains.json": [ - [] - ], "html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html": [ [] ], @@ -269632,9 +269678,6 @@ "html/semantics/document-metadata/the-link-element/stylesheet.py": [ [] ], - "html/semantics/document-metadata/the-meta-element/contains.json": [ - [] - ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/;url=foo": [ [] ], @@ -269674,9 +269717,6 @@ "html/semantics/embedded-content/META.yml": [ [] ], - "html/semantics/embedded-content/image-maps/contains.json": [ - [] - ], "html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference-test-data.html": [ [] ], @@ -269686,9 +269726,6 @@ "html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub.html.headers": [ [] ], - "html/semantics/embedded-content/media-elements/contains.json": [ - [] - ], "html/semantics/embedded-content/media-elements/loading-the-media-resource/resources/delayed-broken-video.py": [ [] ], @@ -269971,9 +270008,6 @@ "html/semantics/embedded-content/the-canvas-element/2d.scaled.png": [ [] ], - "html/semantics/embedded-content/the-canvas-element/contains.json": [ - [] - ], "html/semantics/embedded-content/the-canvas-element/initial.colour.png": [ [] ], @@ -270292,9 +270326,6 @@ "html/semantics/embedded-content/the-img-element/brokenimg.jpg": [ [] ], - "html/semantics/embedded-content/the-img-element/contains.json": [ - [] - ], "html/semantics/embedded-content/the-img-element/document-base-url-ref.html": [ [] ], @@ -270367,27 +270398,15 @@ "html/semantics/forms/META.yml": [ [] ], - "html/semantics/forms/attributes-common-to-form-controls/contains.json": [ - [] - ], "html/semantics/forms/attributes-common-to-form-controls/dirname-ltr-iframe.html": [ [] ], "html/semantics/forms/autofocus/resources/child-autofocus.html": [ [] ], - "html/semantics/forms/constraints/contains.json": [ - [] - ], "html/semantics/forms/constraints/support/validator.js": [ [] ], - "html/semantics/forms/form-control-infrastructure/contains.json": [ - [] - ], - "html/semantics/forms/form-submission-0/contains.json": [ - [] - ], "html/semantics/forms/form-submission-0/form-data-set-usv-form.html": [ [] ], @@ -270409,9 +270428,6 @@ "html/semantics/forms/form-submission-target/resources/reltester.js": [ [] ], - "html/semantics/forms/introduction-1/contains.json": [ - [] - ], "html/semantics/forms/resetting-a-form/reset-form-event-realm-support.html": [ [] ], @@ -270439,9 +270455,6 @@ "html/semantics/forms/the-form-element/resources/target/form-action-url-target.html": [ [] ], - "html/semantics/forms/the-input-element/contains.json": [ - [] - ], "html/semantics/forms/the-input-element/image01-ref.html": [ [] ], @@ -270547,15 +270560,9 @@ "html/semantics/interactive-elements/commands/common/accesskey.js": [ [] ], - "html/semantics/interactive-elements/commands/contains.json": [ - [] - ], "html/semantics/interactive-elements/the-dialog-element/centering-iframe.sub.html": [ [] ], - "html/semantics/interactive-elements/the-dialog-element/contains.json": [ - [] - ], "html/semantics/interactive-elements/the-dialog-element/resources/common.js": [ [] ], @@ -270565,9 +270572,6 @@ "html/semantics/links/META.yml": [ [] ], - "html/semantics/links/downloading-resources/contains.json": [ - [] - ], "html/semantics/links/links-created-by-a-and-area-elements/support/noopener-popup.html": [ [] ], @@ -270589,9 +270593,6 @@ "html/semantics/links/linktypes/alternate.css": [ [] ], - "html/semantics/links/linktypes/contains.json": [ - [] - ], "html/semantics/links/linktypes/original-id.json": [ [] ], @@ -270604,9 +270605,6 @@ "html/semantics/scripting-1/the-script-element/cacheable-script-throw.py": [ [] ], - "html/semantics/scripting-1/the-script-element/contains.json": [ - [] - ], "html/semantics/scripting-1/the-script-element/defer.js": [ [] ], @@ -271228,9 +271226,6 @@ "html/semantics/scripting-1/the-template-element/resources/two-templates.html": [ [] ], - "html/semantics/sections/headings-and-sections/contains.json": [ - [] - ], "html/semantics/sections/the-h1-h2-h3-h4-h5-and-h6-elements/original-id.json": [ [] ], @@ -271249,12 +271244,6 @@ "html/semantics/tabular-data/html-table-section-element.js": [ [] ], - "html/semantics/tabular-data/processing-model-1/contains.json": [ - [] - ], - "html/semantics/tabular-data/the-table-element/contains.json": [ - [] - ], "html/semantics/text-level-semantics/the-a-element/a-download-404.py": [ [] ], @@ -271384,9 +271373,6 @@ "html/syntax/parsing/common.js": [ [] ], - "html/syntax/parsing/contains.json": [ - [] - ], "html/syntax/parsing/foreign_content_001.html": [ [] ], @@ -271426,12 +271412,6 @@ "html/syntax/parsing/test.js": [ [] ], - "html/syntax/writing/elements-0/contains.json": [ - [] - ], - "html/syntax/writing/text/contains.json": [ - [] - ], "html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001-ref.html": [ [] ], @@ -271618,9 +271598,6 @@ "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext-subframe.txt": [ [] ], - "html/webappapis/scripting/event-loops/contains.json": [ - [] - ], "html/webappapis/scripting/event-loops/resources/common.js": [ [] ], @@ -271630,9 +271607,6 @@ "html/webappapis/scripting/event-loops/resources/page-with-frame.html": [ [] ], - "html/webappapis/scripting/events/contains.json": [ - [] - ], "html/webappapis/scripting/events/event-handler-processing-algorithm-error/resources/no-op-worker.js": [ [] ], @@ -271651,15 +271625,6 @@ "html/webappapis/scripting/events/resources/open-window.html": [ [] ], - "html/webappapis/scripting/processing-model-2/contains.json": [ - [] - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js": [ - [] - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js": [ - [] - ], "html/webappapis/scripting/processing-model-2/support/syntax-error-in-setInterval.js": [ [] ], @@ -271693,9 +271658,6 @@ "html/webappapis/structured-clone/structured-clone-battery-of-tests.js": [ [] ], - "html/webappapis/system-state-and-capabilities/the-navigator-object/contains.json": [ - [] - ], "html/webappapis/the-windoworworkerglobalscope-mixin/support/WorkerSelfOriginSharedWorker.js": [ [] ], @@ -308934,6 +308896,78 @@ {} ] ], + "css/css-align/parsing/align-content-invalid.html": [ + [ + "css/css-align/parsing/align-content-invalid.html", + {} + ] + ], + "css/css-align/parsing/align-content-valid.html": [ + [ + "css/css-align/parsing/align-content-valid.html", + {} + ] + ], + "css/css-align/parsing/align-items-invalid.html": [ + [ + "css/css-align/parsing/align-items-invalid.html", + {} + ] + ], + "css/css-align/parsing/align-items-valid.html": [ + [ + "css/css-align/parsing/align-items-valid.html", + {} + ] + ], + "css/css-align/parsing/align-self-invalid.html": [ + [ + "css/css-align/parsing/align-self-invalid.html", + {} + ] + ], + "css/css-align/parsing/align-self-valid.html": [ + [ + "css/css-align/parsing/align-self-valid.html", + {} + ] + ], + "css/css-align/parsing/justify-content-invalid.html": [ + [ + "css/css-align/parsing/justify-content-invalid.html", + {} + ] + ], + "css/css-align/parsing/justify-content-valid.html": [ + [ + "css/css-align/parsing/justify-content-valid.html", + {} + ] + ], + "css/css-align/parsing/justify-items-invalid.html": [ + [ + "css/css-align/parsing/justify-items-invalid.html", + {} + ] + ], + "css/css-align/parsing/justify-items-valid.html": [ + [ + "css/css-align/parsing/justify-items-valid.html", + {} + ] + ], + "css/css-align/parsing/justify-self-invalid.html": [ + [ + "css/css-align/parsing/justify-self-invalid.html", + {} + ] + ], + "css/css-align/parsing/justify-self-valid.html": [ + [ + "css/css-align/parsing/justify-self-valid.html", + {} + ] + ], "css/css-align/self-alignment/parse-align-self-001.html": [ [ "css/css-align/self-alignment/parse-align-self-001.html", @@ -314814,6 +314848,12 @@ {} ] ], + "css/css-overscroll-behavior/overscroll-behavior-logical.html": [ + [ + "css/css-overscroll-behavior/overscroll-behavior-logical.html", + {} + ] + ], "css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html": [ [ "css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html", @@ -329069,9 +329109,9 @@ {} ] ], - "element-timing/image-TAO-wildcard.sub.html": [ + "element-timing/image-TAO.sub.html": [ [ - "element-timing/image-TAO-wildcard.sub.html", + "element-timing/image-TAO.sub.html", {} ] ], @@ -347235,7 +347275,9 @@ "html/rendering/pixel-length-attributes.html": [ [ "html/rendering/pixel-length-attributes.html", - {} + { + "timeout": "long" + } ] ], "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html": [ @@ -347346,6 +347388,12 @@ {} ] ], + "html/rendering/unmapped-attributes.html": [ + [ + "html/rendering/unmapped-attributes.html", + {} + ] + ], "html/rendering/widgets/button-layout/abspos.html": [ [ "html/rendering/widgets/button-layout/abspos.html", @@ -357529,28 +357577,52 @@ {} ] ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html": [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js": [ [ - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html", - {} - ] - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html": [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.html", + { + "script_metadata": [ + [ + "global", + "!default,window,serviceworker" + ] + ] + } + ], [ - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html", - {} + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "!default,window,serviceworker" + ] + ] + } ] ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html": [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js": [ [ - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html", - {} - ] - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html": [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "!default,dedicatedworker,sharedworker" + ] + ] + } + ], [ - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html", - {} + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker.html", + { + "script_metadata": [ + [ + "global", + "!default,dedicatedworker,sharedworker" + ] + ] + } ] ], "html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setInterval.html": [ @@ -390109,6 +390181,12 @@ } ] ], + "std-toast/actions.html": [ + [ + "std-toast/actions.html", + {} + ] + ], "std-toast/attributes.html": [ [ "std-toast/attributes.html", @@ -403008,6 +403086,18 @@ {} ] ], + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html": [ + [ + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html", + {} + ] + ], + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html": [ + [ + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html", + {} + ] + ], "webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html": [ [ "webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html", @@ -404283,7 +404373,9 @@ "webrtc/RTCDataChannel-bufferedAmount.html": [ [ "webrtc/RTCDataChannel-bufferedAmount.html", - {} + { + "timeout": "long" + } ] ], "webrtc/RTCDataChannel-id.html": [ @@ -409441,6 +409533,12 @@ {} ] ], + "webxr/events_referenceSpace_reset.https.html": [ + [ + "webxr/events_referenceSpace_reset.https.html", + {} + ] + ], "webxr/idlharness.https.window.js": [ [ "webxr/idlharness.https.window.html", @@ -409482,6 +409580,18 @@ {} ] ], + "webxr/xrBoundedReferenceSpace_updates.https.html": [ + [ + "webxr/xrBoundedReferenceSpace_updates.https.html", + {} + ] + ], + "webxr/xrDevice_disconnect_ends.https.html": [ + [ + "webxr/xrDevice_disconnect_ends.https.html", + {} + ] + ], "webxr/xrDevice_requestSession_immersive.https.html": [ [ "webxr/xrDevice_requestSession_immersive.https.html", @@ -409626,6 +409736,12 @@ {} ] ], + "webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html": [ + [ + "webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html", + {} + ] + ], "webxr/xrView_eyes.https.html": [ [ "webxr/xrView_eyes.https.html", @@ -446619,7 +446735,7 @@ "manual" ], "clipboard-apis/async-write-image-read-image-manual.https.html": [ - "351e74bd74568b4c221cd60c145c2681e1dc6ed5", + "ad1dc4f83b047f74ae52240174d12dbf60ccee24", "manual" ], "clipboard-apis/clipboard-events-synthetic.html": [ @@ -530254,6 +530370,54 @@ "7e2fa130be24214fa8c21f58d0f88a744beb6b79", "testharness" ], + "css/css-align/parsing/align-content-invalid.html": [ + "ae244389bf1b54f37a9fd6a65111d5e8f3c703fc", + "testharness" + ], + "css/css-align/parsing/align-content-valid.html": [ + "46c4724516855f169fba15650e89d56e18d884c9", + "testharness" + ], + "css/css-align/parsing/align-items-invalid.html": [ + "8e329d50e5c34a8fba0eb122be8686e1dfafed31", + "testharness" + ], + "css/css-align/parsing/align-items-valid.html": [ + "e88845b962ac2df802346b8d57c4b17147d79a81", + "testharness" + ], + "css/css-align/parsing/align-self-invalid.html": [ + "27b025002655d859c290a4e41d46289680a7a810", + "testharness" + ], + "css/css-align/parsing/align-self-valid.html": [ + "25ea093b20997419f4d560d47cb9300d136d090e", + "testharness" + ], + "css/css-align/parsing/justify-content-invalid.html": [ + "971f94bcf8be5ad4e9b4978dc3bc4211e9804881", + "testharness" + ], + "css/css-align/parsing/justify-content-valid.html": [ + "d476a268addc672fdde32465eb2570315becf0cf", + "testharness" + ], + "css/css-align/parsing/justify-items-invalid.html": [ + "18da059376095c00c791445268ccba53066b749e", + "testharness" + ], + "css/css-align/parsing/justify-items-valid.html": [ + "36584f86feb4533b712c418f6cdc20f761d4f172", + "testharness" + ], + "css/css-align/parsing/justify-self-invalid.html": [ + "846cdd8a00f028b2b04707b4325bfb10f0a5239a", + "testharness" + ], + "css/css-align/parsing/justify-self-valid.html": [ + "1ee23af200f6300bc3a86f0a1b843c875c8c92a9", + "testharness" + ], "css/css-align/reference/baseline-of-scrollable-1-ref.html": [ "422660aff6b6b486ce3288469b4769e1497b071e", "support" @@ -543995,7 +544159,7 @@ "testharness" ], "css/css-fonts/inheritance.html": [ - "8ff02fb7405a358cb4716716e87adc1bee58fca7", + "f0c46bec5083dd5b7f5bd0d8da49d5fc0ce01d81", "testharness" ], "css/css-fonts/language-specific-01.html": [ @@ -558294,20 +558458,24 @@ "e49fa49bc4e26572a68ad947e8e82a63ee46d4e2", "testharness" ], + "css/css-overscroll-behavior/overscroll-behavior-logical.html": [ + "a06132feaa05c837151503920caa16458a4ac9e9", + "testharness" + ], "css/css-overscroll-behavior/overscrollBehavior-manual.html": [ "97f52984a51ae4157ec8ed91ddf4b3b8d405bec6", "manual" ], "css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html": [ - "af117f19f906ad74e4bb3acc158a0829c6c69fa9", + "b587ec5cff2214d25a417af05c1c57d12c403edb", "testharness" ], "css/css-overscroll-behavior/parsing/overscroll-behavior-invalid.html": [ - "a29722f46570f89fafd76898ff2409017348b8a3", + "02ada4576cc38efe0c5e05837cf319d37fe9b995", "testharness" ], "css/css-overscroll-behavior/parsing/overscroll-behavior-valid.html": [ - "9dbd4fbb8f93df88e65b7515595ec22979f0ef18", + "45d90d485f308a5999929f0edd066ec659bfd63f", "testharness" ], "css/css-page/META.yml": [ @@ -559738,6 +559906,14 @@ "1972317822b945b2a70712884ddb2d39b924420e", "reftest" ], + "css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html": [ + "59541dd679e1c8ea192662f85bb19b85df3b30d5", + "reftest" + ], + "css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html": [ + "69416c1cd7988f5842f5074b143379c7b90163c2", + "reftest" + ], "css/css-position/static-position/vlr-ltr-ltr.html": [ "aa929a7b5085a72acdde7b05b49d9f452fc373e8", "reftest" @@ -563043,7 +563219,7 @@ "testharness" ], "css/css-scroll-snap/snap-at-user-scroll-end-manual.html": [ - "0ab50d6be3e556603b2d2b4b2e41278e9431ba71", + "5ef2009df18e297669c6bec1e28c0330c2e16674", "manual" ], "css/css-scroll-snap/snap-inline-block.html": [ @@ -565370,6 +565546,10 @@ "57c3f0dea3a56f0281a44e6be019c3ecc9866937", "testharness" ], + "css/css-tables/absolute-tables-006.html": [ + "91439a69c9b1765cdbaf7e9614180d080ab32907", + "reftest" + ], "css/css-tables/anonymous-table-cell-margin-collapsing.html": [ "23b467ebacc983122a632f4d5971c8daca569420", "reftest" @@ -566218,6 +566398,22 @@ "ed2e3cefff82a120c3d33f504fd8d6ee78d9fe8c", "support" ], + "css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html": [ + "fbfdadff0df100bed16f721d3ddd3dd99fc283d4", + "support" + ], + "css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html": [ + "5b321033d352b84c1ddf68487a484849c95d3710", + "support" + ], + "css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html": [ + "7ab3b1dcd99d0a06d24db489325506a30af7488c", + "support" + ], + "css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html": [ + "30a85700d8af5a2a9b083af44bc33ecc1e931236", + "support" + ], "css/css-text-decor/text-decoration-001-manual.html": [ "9b620132697dfbf68f0d10575afaf7d902e649da", "manual" @@ -566706,10 +566902,22 @@ "62f770497cbde626e28988583a28f90544ac39b5", "testharness" ], + "css/css-text-decor/text-underline-offset-scroll-001.html": [ + "0a046fb33e06ae6f7c9d4eefd4fd6745ba0b2d7e", + "reftest" + ], "css/css-text-decor/text-underline-offset-valid.html": [ "46b4c9e18fdbbe18657de60d424975f17fbbb558", "testharness" ], + "css/css-text-decor/text-underline-offset-vertical-001.html": [ + "8a7a5ac9d6a2356482be72f2e9e6dcfc6f5c122b", + "reftest" + ], + "css/css-text-decor/text-underline-offset-vertical-002.html": [ + "74491c823dd96c3a28cfdabbc2adf22f518a1ca1", + "reftest" + ], "css/css-text-decor/text-underline-position-019-manual.html": [ "0308fbc8c9ed4b54865a5b382741c148c6853981", "manual" @@ -596203,7 +596411,7 @@ "support" ], "css/support/inheritance-testcommon.js": [ - "8d1645f9b110137408837418423a2ed42a588072", + "38ac94eb12e9820732958455238b50699ad373ee", "support" ], "css/support/interpolation-testcommon.js": [ @@ -608806,8 +609014,8 @@ "82e7461b0417fb6f667ad266c08789b58f06c457", "testharness" ], - "element-timing/image-TAO-wildcard.sub.html": [ - "3af893a98904102bab92672cd28f7fb1e4d2107c", + "element-timing/image-TAO.sub.html": [ + "83a7a5ca0a21e9b4fd32192b019b6a15603748c8", "testharness" ], "element-timing/image-carousel.html": [ @@ -608899,7 +609107,7 @@ "testharness" ], "element-timing/resources/TAOImage.py": [ - "5d042c48941d09ca2d494f054d3625503beaeef0", + "1e0afb3827898d4aad7d29ce5649ac00948ff492", "support" ], "element-timing/resources/circle.svg": [ @@ -615366,10 +615574,6 @@ "b6a35680dd716328e5547c4e42185b597f4d091e", "testharness" ], - "html/browsers/browsing-the-web/history-traversal/contains.json": [ - "90b3466688cc928841a17cdfedb58a9e17ee2fe6", - "support" - ], "html/browsers/browsing-the-web/history-traversal/events.html": [ "d5ff83fac07e23347287652d28699ec7f3877e61", "testharness" @@ -615922,10 +616126,6 @@ "6806eaf7a390e9a195b2f7f69d2cf16f4362a0f1", "testharness" ], - "html/browsers/browsing-the-web/unloading-documents/contains.json": [ - "4ebca09bfda22e4760a978cd471908a85a7432ac", - "support" - ], "html/browsers/browsing-the-web/unloading-documents/navigation-within-beforeunload-1.html": [ "b96234fba2cb85b10cfa0e086c723f8aa0a82149", "support" @@ -616594,10 +616794,6 @@ "62a2aa7c60df02707e8b423c28ddc657aed1f1ad", "testharness" ], - "html/browsers/history/the-location-interface/contains.json": [ - "d311dbb31e30e1128029f4cfefea8c8c74ad06a5", - "support" - ], "html/browsers/history/the-location-interface/cross_origin_joined_frame.sub.html": [ "a3ffdd005afadb784b1b64a12caa190a66271018", "support" @@ -616986,10 +617182,6 @@ "2f77367c8f9b21fee27e16f53212bdd3e6aa628d", "support" ], - "html/browsers/offline/introduction-4/contains.json": [ - "799caa23abec56055e48877682a7b951dc15b505", - "support" - ], "html/browsers/offline/introduction-4/event_cached.https.html": [ "24f57769fc58b4597bd4a6c19a6db339be7e29f6", "testharness" @@ -617046,10 +617238,6 @@ "02bf70b163dd1494ae67b5e64bfd10a4d47ba5d0", "testharness" ], - "html/browsers/offline/manifests/contains.json": [ - "3fe509a781c43fa64b520abb1f98076d248e5561", - "support" - ], "html/browsers/offline/no-appcache-in-shared-workers-historical.https.html": [ "edfcc3e43605c58d59f8a0c6582c9240d25481c4", "testharness" @@ -617602,10 +617790,6 @@ "5779199ca3ad9d92cc294b8d2166798ef707e440", "testharness" ], - "html/browsers/windows/auxiliary-browsing-contexts/contains.json": [ - "9f2ca3b6fa518db9d64116d92ce21bf34818c5c6", - "support" - ], "html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html": [ "7c939bc77466900a6fcd544dd07029503e62537b", "testharness" @@ -617818,10 +618002,6 @@ "8e02664342f5493faa1f68e67804f2dd7f4d6491", "testharness" ], - "html/browsers/windows/nested-browsing-contexts/contains.json": [ - "121284dca146c10e4d3b2c0a4f06c0fdf8b6d147", - "support" - ], "html/browsers/windows/nested-browsing-contexts/frameElement.sub.html": [ "2f5b1c466f8bdaf2555e548f4140abdcc18d79bc", "testharness" @@ -618326,14 +618506,6 @@ "f71df48ee3c86afd9f7b634f3c390a9ccc9d4933", "support" ], - "html/dom/elements/content-models/contains.json": [ - "42f158d367491eafdebd466d770c0fa677cd54cf", - "support" - ], - "html/dom/elements/element-definitions/contains.json": [ - "a942e85a23927654d86134788cfacfbebbded727", - "support" - ], "html/dom/elements/elements-in-the-dom/historical.html": [ "078ce29cc029bd51554d839ff4dc792a78cc8371", "testharness" @@ -618350,10 +618522,6 @@ "5b0560b3172b4d8e4bd8dfe804ab581fce460749", "testharness" ], - "html/dom/elements/global-attributes/contains.json": [ - "c413488b504aa4bb2b7224ead08f774c3fe395f7", - "support" - ], "html/dom/elements/global-attributes/custom-attrs.html": [ "a1e41dac2562f6ef35fe55cd0cbd0bdbb5df8c83", "testharness" @@ -619118,10 +619286,6 @@ "bea30702d1aab7250c29b6bade3e4b696bea7795", "support" ], - "html/dom/elements/wai-aria/contains.json": [ - "031cde580b2c3ddb6c2f0c9cb56e9cd57a48a3bb", - "support" - ], "html/dom/historical.html": [ "b79d35f0b8a383d026920d80d7374887f283a31b", "testharness" @@ -623198,10 +623362,6 @@ "9db9bc7bf50d3c7139e2ab921d3adb662e1bf959", "support" ], - "html/infrastructure/common-dom-interfaces/collections/contains.json": [ - "b30f1d0d533335c11cd83ce7931c40d78c2c0059", - "support" - ], "html/infrastructure/common-dom-interfaces/collections/domstringlist-interface.html": [ "e991e19f059ea73321b8df94c95f841ec8277ed8", "testharness" @@ -623234,14 +623394,6 @@ "fc70d7172c377111dd17febceae89313925aab87", "testharness" ], - "html/infrastructure/common-microsyntaxes/dates-and-times/contains.json": [ - "5be31eb48f19a249386a85f0d260d0ee7f55c692", - "support" - ], - "html/infrastructure/common-microsyntaxes/numbers/contains.json": [ - "39a6ea005883f0f654563ad7b7bbab1bd07b549f", - "support" - ], "html/infrastructure/conformance-requirements/extensibility/foreign.html": [ "eaa133badee16d1dade6de02e4cf646515289eb5", "testharness" @@ -623695,7 +623847,7 @@ "support" ], "html/rendering/dimension-attributes.html": [ - "80122ee0e73c09b03e14ccf46e1b4dd6709dfbd8", + "bfc70ec14144c21fed7ffcb16b008809053673d8", "testharness" ], "html/rendering/interactive-media/links-forms-and-navigation/original-id.json": [ @@ -624499,7 +624651,7 @@ "support" ], "html/rendering/pixel-length-attributes.html": [ - "a66913afb84065871841dd9f851987270e57ef53", + "888e6d0a3ff7ade1f9f3c5849f94cdcd4f13b231", "testharness" ], "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html": [ @@ -624726,6 +624878,10 @@ "1f09e7e75f9126982a07902ae0693f9ea2fd5823", "support" ], + "html/rendering/unmapped-attributes.html": [ + "3f457eb492f0b72b2a9c5891e8784d0b69958b38", + "testharness" + ], "html/rendering/widgets/button-layout/abspos.html": [ "c3089b1e39749e003fcadd7d822a8343575be212", "testharness" @@ -624986,10 +625142,6 @@ "a312e9e87cac22c19c6a24e083060ac616cf4681", "support" ], - "html/semantics/document-metadata/the-meta-element/contains.json": [ - "70a4546914bdf920e50818783e30c9bfb15e1b64", - "support" - ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html": [ "09454a13b20343df287fa530ed90738fa0f0ae27", "testharness" @@ -625138,10 +625290,6 @@ "199c4c412fe026fca11ea5dd43b0e7873f7784ae", "support" ], - "html/semantics/embedded-content/image-maps/contains.json": [ - "bf7a3ddd8dee24e6fc79cf8c1bdcbab8f1d6f6bb", - "support" - ], "html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference-test-data.html": [ "735ba8cf08655a3a62f916f9e6d52d0bdb3aef80", "support" @@ -625214,10 +625362,6 @@ "f687edf198dbb65064d90d4c3fc8baf4d684cde7", "testharness" ], - "html/semantics/embedded-content/media-elements/contains.json": [ - "9cf23296ceea72bd082c0db90b6d5f8e5f09f1da", - "support" - ], "html/semantics/embedded-content/media-elements/error-codes/error.html": [ "42d86e49b0e96cdcf0fb5dd542e5c570fa388caa", "testharness" @@ -626818,10 +626962,6 @@ "1e3337732e40d48560eaa9a9f05c24cb29346da7", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/contains.json": [ - "3f56f4fd8b34e3ca03e959c03c447576e3dee663", - "support" - ], "html/semantics/embedded-content/the-canvas-element/context.arguments.missing.html": [ "37ae4e80021857c83d9d4216dcf0ba3b5cdceba9", "testharness" @@ -628070,10 +628210,6 @@ "ccff177ae9b5066a7085f7e967ab869e665975cc", "support" ], - "html/semantics/embedded-content/the-img-element/contains.json": [ - "9ac6d3d4224a76ffb1045b6f38c136c993604661", - "support" - ], "html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html": [ "f7d47b3640dfc03516aafcb744c9e9d32295e452", "testharness" @@ -628414,10 +628550,6 @@ "ce84e4ae4c9915f3c1c21d7d23f47a7086b83487", "support" ], - "html/semantics/forms/attributes-common-to-form-controls/contains.json": [ - "62326d33f8748ca1bd4e91186e67fc35bd32578a", - "support" - ], "html/semantics/forms/attributes-common-to-form-controls/dirname-ltr-iframe.html": [ "b5ed7e3d9a717746d9653c7d5f867f3acbf3e47f", "support" @@ -628466,10 +628598,6 @@ "afd5601a523ff0a1d60d37b171b2098a38600ace", "support" ], - "html/semantics/forms/constraints/contains.json": [ - "67e4c3b12e0c74c3d04b21a80a902d1173772b55", - "support" - ], "html/semantics/forms/constraints/form-validation-checkValidity.html": [ "2e790c75d82dec2f60f64199ea4e1cba1164bc63", "testharness" @@ -628598,10 +628726,6 @@ "4d84e7d3f0b58c1db7c2a543eb76a9cd8ed542c9", "testharness" ], - "html/semantics/forms/form-control-infrastructure/contains.json": [ - "754a6901d2365f5f4f857fb1a910e9f500e06f62", - "support" - ], "html/semantics/forms/form-control-infrastructure/form.html": [ "518de358637133ab4054b7228d8cab8c55fda417", "testharness" @@ -628630,10 +628754,6 @@ "8dad6cdd01a43fa17694c67939e8e5a05ab529e2", "testharness" ], - "html/semantics/forms/form-submission-0/contains.json": [ - "f9d0d63bf684d4ad0c4f0e77b0bce2502d0c4e52", - "support" - ], "html/semantics/forms/form-submission-0/form-data-set-empty-file.window.js": [ "693bcf9a2af5287e3b3fbca7090980a53cbef5b0", "testharness" @@ -628718,10 +628838,6 @@ "6873ecd251741fb8436a377081d5a6d3de53b7ab", "testharness" ], - "html/semantics/forms/introduction-1/contains.json": [ - "12a86681384b1fbdc5c50bb712ca53267eb199bc", - "support" - ], "html/semantics/forms/resetting-a-form/reset-event.html": [ "f7d98f721653cd5ed98aa602e367cea635cd5820", "testharness" @@ -629106,10 +629222,6 @@ "6164815f66e4cec2b22a90c4e6c690214a9cc6eb", "testharness" ], - "html/semantics/forms/the-input-element/contains.json": [ - "c2b780f0b8d916a0e9ccaecf21610cada89e2d46", - "support" - ], "html/semantics/forms/the-input-element/date.html": [ "9b95b86b165b66e02a62070bf41429c38b5331d1", "testharness" @@ -629866,10 +629978,6 @@ "f08761be8c1fc618e42369a3358c0dbf8a848bea", "support" ], - "html/semantics/interactive-elements/commands/contains.json": [ - "b2ca2e771bd9f7c82c2e955a88ac6fc6010c48a7", - "support" - ], "html/semantics/interactive-elements/commands/legend/first-input-after-legend-manual.html": [ "521b4bb975530880caac863d96b167cd08abc7a0", "manual" @@ -629930,10 +630038,6 @@ "8df2d3052320bbfebc8184b3f426405b398dc632", "testharness" ], - "html/semantics/interactive-elements/the-dialog-element/contains.json": [ - "c865c8588576ce9ca1ec949a4de0bf8bb90ce0b4", - "support" - ], "html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html": [ "ff9ebd7d2868ca732a9f4eff8558b461fd14154c", "testharness" @@ -630006,10 +630110,6 @@ "b2167370d148cb6516e0f2656e159a5ee06a4d1a", "support" ], - "html/semantics/links/downloading-resources/contains.json": [ - "b67f855cfb8352d4410f950892d36c1a2f975ac2", - "support" - ], "html/semantics/links/following-hyperlinks/activation-behavior.window.js": [ "d530642b9e163a3b9b8ee3562783e8cfa3b367d6", "testharness" @@ -630070,10 +630170,6 @@ "b101ab91f01281c0919dffe8165f51274890719e", "support" ], - "html/semantics/links/linktypes/contains.json": [ - "55aa4f6774a699ce803520762391849a4504e83a", - "support" - ], "html/semantics/links/linktypes/original-id.json": [ "1e5f7b5ed36035ed92670cc161750cfbe28976f1", "support" @@ -630142,10 +630238,6 @@ "5df883c07be307fb2f6ff6b14354a5bc816ce662", "support" ], - "html/semantics/scripting-1/the-script-element/contains.json": [ - "e31ce40031262e769f1981a88096e0495c9354ce", - "support" - ], "html/semantics/scripting-1/the-script-element/data-url.html": [ "6fad50527177e756db35842e054bf19d6e4dfbe4", "testharness" @@ -632154,10 +632246,6 @@ "611ec50bb40dc731d45e99aab0a06ff14b4213cc", "testharness" ], - "html/semantics/sections/headings-and-sections/contains.json": [ - "a9fecf65b9dfbbae1585629142cbd84d7e9b34fd", - "support" - ], "html/semantics/sections/the-h1-h2-h3-h4-h5-and-h6-elements/original-id.json": [ "748a548ca98260b3f0883eb696bdf301a9a9377a", "support" @@ -632282,10 +632370,6 @@ "a4a425b9c1f70926c77ad3eb1b8a8a87a4655de9", "testharness" ], - "html/semantics/tabular-data/processing-model-1/contains.json": [ - "be5a8fdfdd488068db55c07dad8d716d94f88c57", - "support" - ], "html/semantics/tabular-data/processing-model-1/span-limits.html": [ "cdfa61bbcdc06ea62b80d042440d55fb0c89a186", "testharness" @@ -632298,10 +632382,6 @@ "ec95eab39fb26acc0831c287d55317075abead1a", "testharness" ], - "html/semantics/tabular-data/the-table-element/contains.json": [ - "ee89be21dc698d8a6ff4deeb479227e2cca0ef09", - "support" - ], "html/semantics/tabular-data/the-table-element/createTBody.html": [ "6100aedfdfcd7a2e9524b5968d8a9eb45318571c", "testharness" @@ -632754,10 +632834,6 @@ "b3ac9ece70c433f2b01fe8ad18afcf98d3042b32", "support" ], - "html/syntax/parsing/contains.json": [ - "249c9fe014a0110d813e81af974fbe121023f627", - "support" - ], "html/syntax/parsing/empty-doctype-ids.html": [ "befdce428c6f09474ea215909b7561a1945f0a81", "testharness" @@ -633174,14 +633250,6 @@ "334ce8adf76727b11a498e8e471dad0b42a1923d", "testharness" ], - "html/syntax/writing/elements-0/contains.json": [ - "39711a0a213e952099d6adc838a1d21b1bdb5632", - "support" - ], - "html/syntax/writing/text/contains.json": [ - "870ff58a34277ed367f3f9a9d58f6abcb44293c3", - "support" - ], "html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001-ref.html": [ "5b512e72f5a1f3780c9c38be79968b095c277a39", "support" @@ -634110,10 +634178,6 @@ "78cdcfc5d989a81882a10b7d70050408aadfe924", "testharness" ], - "html/webappapis/scripting/event-loops/contains.json": [ - "5d7e5e600e90861a1703ae37321b1b2583024d19", - "support" - ], "html/webappapis/scripting/event-loops/fully_active_document.window.js": [ "950a8a29ee5731785f350508dc8abec7ca98ba64", "testharness" @@ -634158,10 +634222,6 @@ "29ac9b8ced469025278b5d5215b651b58a6f5a4d", "testharness" ], - "html/webappapis/scripting/events/contains.json": [ - "65f3062d2cd7edf8a7b703a0e6de36f681895b84", - "support" - ], "html/webappapis/scripting/events/contextmenu-event-manual.htm": [ "2331fa17eee102195dc38de8a016cd9d78b41ab1", "manual" @@ -634370,34 +634430,14 @@ "a4bdfd9c471548f26e943e34e44e8bca7736fede", "testharness" ], - "html/webappapis/scripting/processing-model-2/contains.json": [ - "b49029277f3e496b8bc094131f7391fd1354c3cd", - "support" - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html": [ - "0d559999f3faf8bc9971c7e895f2d8392dd9b861", - "testharness" - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html": [ - "6bfd29e8c74b509e41fd9bd9e57959c459865801", - "testharness" - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html": [ - "beb7c6467b2417b65109bf921cb9f2ab307b1917", + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js": [ + "a890b350198253dc876e719d3e36d2426d3361a8", "testharness" ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html": [ - "369ce77b0b62af8b2f5eb6c4f818e830b5100cc1", + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js": [ + "290b44353c8ac57d4e0461c31b88c56b15c89103", "testharness" ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js": [ - "586c8ba38764656243011df4a2e3617e80e2525e", - "support" - ], - "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js": [ - "2ed54143ee5572383da45c15c3a5a8e58ddde4dd", - "support" - ], "html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setInterval.html": [ "dd97566d70107a9713e05c838f63de07512a29e3", "testharness" @@ -634558,10 +634598,6 @@ "40bcd8031b220bd75811468cde0a4c3bb6c15621", "support" ], - "html/webappapis/system-state-and-capabilities/the-navigator-object/contains.json": [ - "441c24cec976e4aacb211835f03852b584b35b11", - "support" - ], "html/webappapis/system-state-and-capabilities/the-navigator-object/get-navigatorlanguage-manual.html": [ "4bdab91121d508001a78cd83209c2b8e3c54a692", "manual" @@ -659587,7 +659623,7 @@ "support" ], "resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html": [ - "5b222cdf277a2b13115726af3b8780e646e428b0", + "5d58f1c54664cdf5a2c91e523f6cd786148beeef", "testharness" ], "resource-timing/TAO-crossorigin-port.sub.html": [ @@ -659595,11 +659631,11 @@ "testharness" ], "resource-timing/TAO-null-opaque-origin.sub.html": [ - "c78e590067717130fb8681c9c4fd7818816e6940", + "0a457637c5165481bf7a3bd1cbf023e9c07be751", "testharness" ], "resource-timing/buffer-full-add-after-full-event.html": [ - "969446582e0c4de315318ceabb69480bbaf59779", + "84d257e4f4527b7ddf199dfbc91b59183651099f", "testharness" ], "resource-timing/buffer-full-add-entries-during-callback-that-drop.html": [ @@ -659931,7 +659967,7 @@ "support" ], "resource-timing/resources/iframe-TAO-crossorigin-port.sub.html": [ - "39f5d13054a79281ed0131315f834645e6e7790c", + "97d77fcc58a3bbd347a98e2cbd9fa6243a83838a", "support" ], "resource-timing/resources/iframe-navigate-back.html": [ @@ -660243,7 +660279,7 @@ "support" ], "resources/chromium/webxr-test.js": [ - "e584ea37cb37edb7af3ed019e91b0a71b2648a44", + "8257fbdc2b37f10072c39dd90a3f48adcac90fa8", "support" ], "resources/chromium/webxr-test.js.headers": [ @@ -665610,16 +665646,20 @@ "c54357a03f214572481fc08be473cc308d50097b", "support" ], + "std-toast/actions.html": [ + "018ce21128bdddbba1e2e69fa287eb47eff026ed", + "testharness" + ], "std-toast/attributes.html": [ - "2aef41aea618e0ec838ba7885494c69dd106ff17", + "58a515dfc981fa4f70f7360bab8d67dfcc01372e", "testharness" ], "std-toast/events-open.html": [ - "5442b36d261d0fd91f62cd38396b173429754245", + "a49414d2fce2061bcc1399e222cd6b2b5ccdc872", "testharness" ], "std-toast/events-showhide.html": [ - "73f1df4ae55bba7ef493dc22adae67553576326a", + "547f742f713cbf4c46a82ae1df353aa317b2d2df", "testharness" ], "std-toast/methods.html": [ @@ -665627,11 +665667,11 @@ "testharness" ], "std-toast/options.html": [ - "9cea97146bf2456fc62d1cab71652a5312a4ef9c", + "6d4a462d3a9417a501c6ad434b25896a03e162db", "testharness" ], "std-toast/resources/helpers.js": [ - "41b7672ab1bb60d0a2345a6debb880db756940f6", + "52d740c144af59f1b32cbc8bdab555da9fa72227", "support" ], "std-toast/show-toast.html": [ @@ -676115,7 +676155,7 @@ "support" ], "tools/wptserve/wptserve/constants.py": [ - "e248280ef36e93832b4c481a102c3177e618c42d", + "357a2e6d348f90341abea78f9df025f7034a2e40", "support" ], "tools/wptserve/wptserve/handlers.py": [ @@ -677083,7 +677123,7 @@ "testharness" ], "user-timing/measure-with-dict.html": [ - "cdcc0ff1a36a34fa99f98c5bb6a2a79957c74f85", + "8ba7b9fe67a6d1213cbc7b6f41196247a8a1cda0", "testharness" ], "user-timing/measure.html": [ @@ -679643,7 +679683,7 @@ "testharness" ], "webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html": [ - "5703a2a6c7f565f8705a5630d0b9e2b67394985c", + "2df5d03ac076557f6b2fb833efed333e243a320a", "testharness" ], "webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html": [ @@ -680226,6 +680266,14 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html": [ + "fea042ca530d5c92de3edf358af8b21973187e13", + "testharness" + ], + "webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html": [ + "b61c318ff0083f170fed58ee4b4a69bca807807a", + "testharness" + ], "webaudio/the-audio-api/the-offlineaudiocontext-interface/.gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" @@ -680827,7 +680875,7 @@ "support" ], "webdriver/tests/get_current_url/get.py": [ - "0c1917cff351ab1bc79bbf782532de62abc69110", + "39c28c612161e30b114298c7d5eed5ccd60d78d4", "wdspec" ], "webdriver/tests/get_current_url/user_prompts.py": [ @@ -681291,7 +681339,7 @@ "support" ], "webdriver/tests/set_window_rect/set.py": [ - "81432f293770d0fd0b5da66dc4bca19c1043f9a0", + "adf265127c97e08da354b47bb15d2e8a9ef4bac3", "wdspec" ], "webdriver/tests/set_window_rect/user_prompts.py": [ @@ -682071,7 +682119,7 @@ "testharness" ], "webrtc/RTCDataChannel-bufferedAmount.html": [ - "b982b29b3b957eaca8a087e75e9ac3627f897e29", + "89f6b1b4d7a425f2d05688d14315227454a3d4be", "testharness" ], "webrtc/RTCDataChannel-id.html": [ @@ -686962,6 +687010,10 @@ "520afec2000721d04aae9ed89bca49297fa31d4b", "support" ], + "webxr/events_referenceSpace_reset.https.html": [ + "f15ffc52a8845b7e2cdd6ddb4a9b7f06c1c3e5e0", + "testharness" + ], "webxr/idlharness.https.window.js": [ "3e54e367787cb95dada398790fe23b10174df29f", "testharness" @@ -686979,7 +687031,7 @@ "support" ], "webxr/resources/webxr_test_constants.js": [ - "a846f1da75fe4707623a123f5e9e1bfe2952fd8a", + "aed6ff9c80905e96a100bbe48c7a9f37ea4237e9", "support" ], "webxr/resources/webxr_util.js": [ @@ -687006,6 +687058,14 @@ "515b2ad1a8d015120032ea56c473922a2af73e85", "testharness" ], + "webxr/xrBoundedReferenceSpace_updates.https.html": [ + "cf1047c8abc96740f22088620723e50a7da1db13", + "testharness" + ], + "webxr/xrDevice_disconnect_ends.https.html": [ + "ace64e8f41212d2e21a450ef6958bf2b7508a0da", + "testharness" + ], "webxr/xrDevice_requestSession_immersive.https.html": [ "a397d1a89f6e0d3ac7784a39ac8612350aa69dcd", "testharness" @@ -687102,6 +687162,10 @@ "fd6082bc3468f094953152d220fceafa083baf76", "testharness" ], + "webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html": [ + "68f91fd315019ccee9fbb9e034166338c65acad9", + "testharness" + ], "webxr/xrView_eyes.https.html": [ "4ff22ff618d96d53c7a9e8cc573608bb0ea7919e", "testharness" @@ -690059,7 +690123,7 @@ "testharness" ], "xhr/responsexml-document-properties.htm": [ - "9071fab121fc8e55d885c4fc89636380b66c226c", + "c27a4482cd20765ede2f2f8c2f9c7bd2b7c0ff7b", "testharness" ], "xhr/responsexml-get-twice.htm": [ diff --git a/tests/wpt/metadata/css/css-align/parsing/align-content-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-content-valid.html.ini new file mode 100644 index 00000000000..e6e43f8ee3f --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-content-valid.html.ini @@ -0,0 +1,28 @@ +[align-content-valid.html] + [e.style['align-content'\] = "first baseline" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "unsafe end" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "end" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "normal" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "baseline" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "space-evenly" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "start" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "safe flex-start" should set the property value] + expected: FAIL + + [e.style['align-content'\] = "last baseline" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/align-items-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-items-valid.html.ini new file mode 100644 index 00000000000..96318c358d4 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-items-valid.html.ini @@ -0,0 +1,28 @@ +[align-items-valid.html] + [e.style['align-items'\] = "last baseline" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "unsafe center" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "first baseline" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "normal" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "start" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "self-start" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "end" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "self-end" should set the property value] + expected: FAIL + + [e.style['align-items'\] = "safe self-end" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/align-self-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-self-valid.html.ini new file mode 100644 index 00000000000..efffe6178d0 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-self-valid.html.ini @@ -0,0 +1,28 @@ +[align-self-valid.html] + [e.style['align-self'\] = "self-end" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "last baseline" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "first baseline" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "start" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "end" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "safe self-end" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "normal" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "unsafe center" should set the property value] + expected: FAIL + + [e.style['align-self'\] = "self-start" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-content-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-content-valid.html.ini new file mode 100644 index 00000000000..1e2f46660dd --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-content-valid.html.ini @@ -0,0 +1,25 @@ +[justify-content-valid.html] + [e.style['justify-content'\] = "unsafe right" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "start" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "normal" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "unsafe end" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "space-evenly" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "end" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "safe flex-start" should set the property value] + expected: FAIL + + [e.style['justify-content'\] = "left" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-items-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-items-valid.html.ini new file mode 100644 index 00000000000..731e9282c24 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-items-valid.html.ini @@ -0,0 +1,61 @@ +[justify-items-valid.html] + [e.style['justify-items'\] = "self-end" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "unsafe center" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "safe left" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "baseline" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "safe self-end" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "flex-start" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "center" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "center legacy" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "right legacy" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "last baseline" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "start" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "left legacy" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "normal" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "stretch" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "flex-end" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "self-start" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "end" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "first baseline" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "right" should set the property value] + expected: FAIL + + [e.style['justify-items'\] = "legacy" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-self-valid.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-self-valid.html.ini new file mode 100644 index 00000000000..b019690d48a --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-self-valid.html.ini @@ -0,0 +1,52 @@ +[justify-self-valid.html] + [e.style['justify-self'\] = "self-end" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "unsafe center" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "auto" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "safe self-end" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "baseline" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "start" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "left" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "center" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "flex-start" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "stretch" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "normal" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "end" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "flex-end" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "self-start" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "last baseline" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "first baseline" should set the property value] + expected: FAIL + + [e.style['justify-self'\] = "unsafe right" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini index 7f17425c4aa..5d20389c8e9 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini @@ -56,6 +56,3 @@ [background-position length(px) / events] expected: FAIL - [font-size length(em) / events] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini index 96ba5320ca1..42f61e8ed49 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini @@ -509,39 +509,3 @@ [border-left-width length(pt) / values] expected: FAIL - [padding-right length(pt) / values] - expected: FAIL - - [margin-top length(in) / values] - expected: FAIL - - [padding-left length(ex) / values] - expected: FAIL - - [height length(px) / values] - expected: FAIL - - [margin-top length(px) / values] - expected: FAIL - - [padding-left length(pt) / values] - expected: FAIL - - [padding-right length(ex) / values] - expected: FAIL - - [margin-top length(pt) / values] - expected: FAIL - - [margin-top length(cm) / values] - expected: FAIL - - [padding-bottom length(ex) / values] - expected: FAIL - - [height length(pt) / values] - expected: FAIL - - [padding-left length(pc) / values] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini new file mode 100644 index 00000000000..e6e1f29e274 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini @@ -0,0 +1,2 @@ +[matchMedia-display-none-iframe.html] + expected: ERROR diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini index e1a609649d6..ee754ce4aa3 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini @@ -3,3 +3,9 @@ [scroll-behavior: smooth on DIV element] expected: FAIL + [Smooth scrolling while doing history navigation.] + expected: FAIL + + [Instant scrolling while doing history navigation.] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 4ff64270030..c261e3f9824 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,9 +312,24 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html */*] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;x=" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index d2df9b78483..c7413d589dc 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,3 +56,9 @@ [separate text/javascript x/x] expected: FAIL + [separate text/javascript;charset=windows-1252 error text/javascript] + expected: FAIL + + [separate text/javascript;charset=windows-1252 text/javascript] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index 87c807a49ff..d4ba399b762 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,3 +11,6 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL + [X-Content-Type-Options%3A%20'NosniFF'] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini deleted file mode 100644 index 51f8272a6de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_3.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini index e02f179ec25..bf50d59df41 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini @@ -1,24 +1,5 @@ [open-features-negative-innerwidth-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`] expected: FAIL - [features "innerheight=-404.5" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404.5" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=-404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerheight=-404e1" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=-404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404e1" should NOT set "width=404"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini index 23eefb8eaf9..e150c9d848f 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini @@ -1,24 +1,5 @@ [open-features-negative-screenx-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `screenx`, `screeny`] expected: FAIL - [features "screenx=-204" should NOT set "left=204"] - expected: TIMEOUT - - [features "screeny=-204" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-204.5" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-0" should NOT set "top=204"] - expected: TIMEOUT - - [features "screenx=-0" should NOT set "left=204"] - expected: TIMEOUT - - [features "screenx=-204.5" should NOT set "left=204"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini index 940516ddd33..ad8840fbb68 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini @@ -1,24 +1,5 @@ [open-features-negative-top-left.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for `top`, `left`] expected: FAIL - [features "top=-204" should NOT set "top=204"] - expected: TIMEOUT - - [features "top=-204.5" should NOT set "top=204"] - expected: TIMEOUT - - [features "left=-204" should NOT set "left=204"] - expected: TIMEOUT - - [features "top=-0" should NOT set "top=204"] - expected: TIMEOUT - - [features "left=-204.5" should NOT set "left=204"] - expected: TIMEOUT - - [features "left=-0" should NOT set "left=204"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini index 9027336b453..d1ed9088b2b 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini @@ -1,24 +1,5 @@ [open-features-negative-width-height.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for `width`, `height`] expected: FAIL - [features "height=-404" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=-404e1" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=-404.5" should NOT set "height=404"] - expected: TIMEOUT - - [features "width=-404" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=-404e1" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=-404.5" should NOT set "width=404"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini index 4e44584b123..a70e9dbad4d 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini @@ -1,48 +1,32 @@ [open-features-non-integer-height.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `height`] expected: FAIL [features "height=405*3" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405.5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405LLl" should set "height=405"] - expected: TIMEOUT - - [features "height=/404" should NOT set "height=404"] - expected: TIMEOUT - - [top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"] - expected: TIMEOUT - - [top=0,left=0: absence of feature "height" should be treated same as "height=0"] - expected: TIMEOUT - - [features "height=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=L404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini index fcaeae5336d..779531b4a98 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerheight`] expected: FAIL [features "innerheight=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405*3" should set "height=405"] - expected: TIMEOUT - - [features "innerheight=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini index 42327fedd27..7a1b258d52e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerwidth.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerwidth`] expected: FAIL [features "innerwidth=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405/5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405^4" should set "width=405"] - expected: TIMEOUT - - [features "innerwidth=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=_404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini index a8e4fe06618..caba4124f0b 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-left.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `left`] expected: FAIL [features "left=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.32" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.5" should set "left=105"] - expected: TIMEOUT - - [features "left=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=/104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=_104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini index 64a08faf0e6..9ace8a4cbdb 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screenx.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screenx`] expected: FAIL [features "screenx=105.5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105.32" should set "left=105"] - expected: TIMEOUT - - [features "screenx=_104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=/104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini index 4f22ef4ef29..a82bd0f981a 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screeny`] expected: FAIL [features "screeny=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405*3" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.5" should set "height=405"] - expected: TIMEOUT - - [features "screeny=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini index 8540f53d8d6..10f617db69e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-top.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `top`] expected: FAIL [features "top=105/5" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105*3" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105LLl" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e-1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.32" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105 " should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105^4" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.5" should set "top=105"] - expected: TIMEOUT - - [features "top=/104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=_104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=L104" should NOT set "top=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini index 9d841e61bc0..28f93ee71b5 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini @@ -1,48 +1,32 @@ [open-features-non-integer-width.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `width`] expected: FAIL [features "width=405^4" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405/5" should set "width=405"] - expected: TIMEOUT - - [top=0,left=0: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=_404" should NOT set "width=404"] - expected: TIMEOUT - - [top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/rendering/dimension-attributes.html.ini b/tests/wpt/metadata/html/rendering/dimension-attributes.html.ini index 588f2b03d4a..f0409a96198 100644 --- a/tests/wpt/metadata/html/rendering/dimension-attributes.html.ini +++ b/tests/wpt/metadata/html/rendering/dimension-attributes.html.ini @@ -968,3 +968,2334 @@ [<embed height="200%"> mapping] expected: FAIL + [<table height="+200%"> mapping to height] + expected: FAIL + + [<embed hspace="200"> mapping to marginLeft] + expected: FAIL + + [<embed height=" +200in "> mapping to height] + expected: FAIL + + [<object hspace="200.25%"> mapping to marginLeft] + expected: FAIL + + [<input hspace=" +200.25% "> mapping to marginLeft] + expected: FAIL + + [<img vspace="200 %"> mapping to marginBottom] + expected: FAIL + + [<input height="200."> mapping to height] + expected: FAIL + + [<marquee vspace="200 %"> mapping to marginBottom] + expected: FAIL + + [<input hspace="0%"> mapping to marginLeft] + expected: FAIL + + [<img hspace="200 abc"> mapping to marginLeft] + expected: FAIL + + [<img hspace="200%abc"> mapping to marginRight] + expected: FAIL + + [<embed vspace="200.25%"> mapping to marginBottom] + expected: FAIL + + [<tr height="200.25%"> mapping to height] + expected: FAIL + + [<marquee vspace=" 00523 "> mapping to marginTop] + expected: FAIL + + [<img vspace="200.25%"> mapping to marginTop] + expected: FAIL + + [<marquee height="+200%"> mapping to height] + expected: FAIL + + [<marquee height=" +200in "> mapping to height] + expected: FAIL + + [<input vspace="200.7"> mapping to marginTop] + expected: FAIL + + [<input vspace="200.25"> mapping to marginBottom] + expected: FAIL + + [<object width="200.%"> mapping to width] + expected: FAIL + + [<object vspace="0%"> mapping to marginBottom] + expected: FAIL + + [<object height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<embed hspace="+200"> mapping to marginRight] + expected: FAIL + + [<img vspace="200in"> mapping to marginTop] + expected: FAIL + + [<img vspace="200.25in"> mapping to marginTop] + expected: FAIL + + [<tr height="200%abc"> mapping to height] + expected: FAIL + + [<td height="200 %"> mapping to height] + expected: FAIL + + [<object height="0px"> mapping to height] + expected: FAIL + + [<table height="200 abc"> mapping to height] + expected: FAIL + + [<embed height="+0"> mapping to height] + expected: FAIL + + [<embed vspace="+200"> mapping to marginBottom] + expected: FAIL + + [<object vspace=" +200in "> mapping to marginBottom] + expected: FAIL + + [<video height="+200%"> mapping to height] + expected: FAIL + + [<input hspace=" +200.25% "> mapping to marginRight] + expected: FAIL + + [<embed width="200in"> mapping to width] + expected: FAIL + + [<embed hspace="+200%"> mapping to marginLeft] + expected: FAIL + + [<table height="200.7"> mapping to height] + expected: FAIL + + [<td height="200."> mapping to height] + expected: FAIL + + [<embed vspace="200%abc"> mapping to marginBottom] + expected: FAIL + + [<td height="+200%"> mapping to height] + expected: FAIL + + [<input height="200%abc"> mapping to height] + expected: FAIL + + [<input vspace="200"> mapping to marginTop] + expected: FAIL + + [<input hspace="1007"> mapping to marginLeft] + expected: FAIL + + [<object hspace="200%"> mapping to marginLeft] + expected: FAIL + + [<input width="200 abc"> mapping to width] + expected: FAIL + + [<input width="200.7"> mapping to width] + expected: FAIL + + [<object vspace=" +200.25% "> mapping to marginBottom] + expected: FAIL + + [<embed height="0px"> mapping to height] + expected: FAIL + + [<object vspace="+0%"> mapping to marginBottom] + expected: FAIL + + [<embed hspace=" +200.25in "> mapping to marginLeft] + expected: FAIL + + [<img vspace="200.7"> mapping to marginBottom] + expected: FAIL + + [<tr height="200."> mapping to height] + expected: FAIL + + [<td height="1007"> mapping to height] + expected: FAIL + + [<img vspace=" 00523 "> mapping to marginBottom] + expected: FAIL + + [<input vspace="200.25"> mapping to marginTop] + expected: FAIL + + [<marquee width="200.25in"> mapping to width] + expected: FAIL + + [<input hspace="200 %"> mapping to marginLeft] + expected: FAIL + + [<marquee height=" 00523 "> mapping to height] + expected: FAIL + + [<marquee hspace="0%"> mapping to marginRight] + expected: FAIL + + [<img vspace="200%"> mapping to marginBottom] + expected: FAIL + + [<marquee height="200.7"> mapping to height] + expected: FAIL + + [<tr height="200in"> mapping to height] + expected: FAIL + + [<marquee hspace="200"> mapping to marginRight] + expected: FAIL + + [<marquee hspace=" +200.25in "> mapping to marginLeft] + expected: FAIL + + [<marquee height="200 abc"> mapping to height] + expected: FAIL + + [<marquee width="200 abc"> mapping to width] + expected: FAIL + + [<object vspace="200.%"> mapping to marginBottom] + expected: FAIL + + [<input height="0"> mapping to height] + expected: FAIL + + [<marquee vspace="200.25in"> mapping to marginTop] + expected: FAIL + + [<img hspace=" 00523 "> mapping to marginRight] + expected: FAIL + + [<iframe height="200.%"> mapping to height] + expected: FAIL + + [<table height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<embed hspace="+0%"> mapping to marginLeft] + expected: FAIL + + [<embed height="200.25%"> mapping to height] + expected: FAIL + + [<input height=" +200in "> mapping to height] + expected: FAIL + + [<marquee height="200.25in"> mapping to height] + expected: FAIL + + [<img hspace=" +200.25in "> mapping to marginLeft] + expected: FAIL + + [<input hspace="200.25%"> mapping to marginLeft] + expected: FAIL + + [<input hspace="200 abc"> mapping to marginLeft] + expected: FAIL + + [<object width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<object height="1007"> mapping to height] + expected: FAIL + + [<marquee hspace="200%"> mapping to marginRight] + expected: FAIL + + [<input hspace=" +200in "> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200.25in"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200%"> mapping to marginRight] + expected: FAIL + + [<col width="200.7"> mapping to width] + expected: FAIL + + [<table height=" 00523 "> mapping to height] + expected: FAIL + + [<input vspace="200 %"> mapping to marginTop] + expected: FAIL + + [<object hspace=" +200.25in "> mapping to marginRight] + expected: FAIL + + [<input width=" +200in "> mapping to width] + expected: FAIL + + [<input vspace=" +200in "> mapping to marginTop] + expected: FAIL + + [<object height="200in"> mapping to height] + expected: FAIL + + [<img vspace="+200%"> mapping to marginBottom] + expected: FAIL + + [<object vspace="200 abc"> mapping to marginBottom] + expected: FAIL + + [<marquee hspace="+200"> mapping to marginLeft] + expected: FAIL + + [<td height="200.25"> mapping to height] + expected: FAIL + + [<video height=" +200.25% "> mapping to height] + expected: FAIL + + [<img hspace=" +200.25%abc"> mapping to marginLeft] + expected: FAIL + + [<embed width="200.7"> mapping to width] + expected: FAIL + + [<input hspace="200.%"> mapping to marginLeft] + expected: FAIL + + [<tr height="200.%"> mapping to height] + expected: FAIL + + [<table height="200.25in"> mapping to height] + expected: FAIL + + [<marquee vspace="200in"> mapping to marginBottom] + expected: FAIL + + [<img vspace=" +200in "> mapping to marginBottom] + expected: FAIL + + [<input width="200%abc"> mapping to width] + expected: FAIL + + [<video height="200.25%"> mapping to height] + expected: FAIL + + [<video height="1007"> mapping to height] + expected: FAIL + + [<iframe width="200.%"> mapping to width] + expected: FAIL + + [<input vspace="200."> mapping to marginTop] + expected: FAIL + + [<tr height="200.7"> mapping to height] + expected: FAIL + + [<input width="200."> mapping to width] + expected: FAIL + + [<object hspace=" +200in "> mapping to marginRight] + expected: FAIL + + [<input vspace="+200"> mapping to marginTop] + expected: FAIL + + [<embed width="+0"> mapping to width] + expected: FAIL + + [<marquee hspace=" 00523 "> mapping to marginRight] + expected: FAIL + + [<img vspace=" +200.25% "> mapping to marginBottom] + expected: FAIL + + [<object hspace="0%"> mapping to marginRight] + expected: FAIL + + [<marquee width="+200%"> mapping to width] + expected: FAIL + + [<img vspace="0%"> mapping to marginTop] + expected: FAIL + + [<object vspace="200in"> mapping to marginTop] + expected: FAIL + + [<object width="0%"> mapping to width] + expected: FAIL + + [<embed height=" +200.25in "> mapping to height] + expected: FAIL + + [<object height="200.25%"> mapping to height] + expected: FAIL + + [<object vspace=" +200in "> mapping to marginTop] + expected: FAIL + + [<img vspace="200.25"> mapping to marginBottom] + expected: FAIL + + [<input hspace="200%abc"> mapping to marginRight] + expected: FAIL + + [<video width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<img vspace="200.25"> mapping to marginTop] + expected: FAIL + + [<video height=" +200in "> mapping to height] + expected: FAIL + + [<img hspace="200.25"> mapping to marginLeft] + expected: FAIL + + [<marquee hspace="200in"> mapping to marginLeft] + expected: FAIL + + [<marquee vspace="200.25%"> mapping to marginTop] + expected: FAIL + + [<marquee vspace=" +200.25%abc"> mapping to marginBottom] + expected: FAIL + + [<object hspace="200.7"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200.%"> mapping to marginTop] + expected: FAIL + + [<marquee vspace="+200"> mapping to marginTop] + expected: FAIL + + [<video width="200.7"> mapping to width] + expected: FAIL + + [<col width="200%abc"> mapping to width] + expected: FAIL + + [<table height="200.%"> mapping to height] + expected: FAIL + + [<img hspace="200.%"> mapping to marginRight] + expected: FAIL + + [<embed vspace="200"> mapping to marginBottom] + expected: FAIL + + [<input vspace="200."> mapping to marginBottom] + expected: FAIL + + [<img hspace="0%"> mapping to marginRight] + expected: FAIL + + [<object height="200 %"> mapping to height] + expected: FAIL + + [<marquee vspace="200."> mapping to marginBottom] + expected: FAIL + + [<td height="200in"> mapping to height] + expected: FAIL + + [<img hspace="+200"> mapping to marginLeft] + expected: FAIL + + [<embed height="200."> mapping to height] + expected: FAIL + + [<input hspace="200.25in"> mapping to marginRight] + expected: FAIL + + [<marquee width="0%"> mapping to width] + expected: FAIL + + [<embed hspace="200.25%"> mapping to marginLeft] + expected: FAIL + + [<td width="200.%"> mapping to width] + expected: FAIL + + [<input vspace="0%"> mapping to marginBottom] + expected: FAIL + + [<embed vspace="200in"> mapping to marginTop] + expected: FAIL + + [<marquee vspace="+200"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="200"> mapping to marginTop] + expected: FAIL + + [<object hspace="+200%"> mapping to marginRight] + expected: FAIL + + [<marquee vspace="200.%"> mapping to marginBottom] + expected: FAIL + + [<input width=" 00523 "> mapping to width] + expected: FAIL + + [<video height="200.7"> mapping to height] + expected: FAIL + + [<video width="200%"> mapping to width] + expected: FAIL + + [<input height="200 %"> mapping to height] + expected: FAIL + + [<input height="200%"> mapping to height] + expected: FAIL + + [<img hspace="200 abc"> mapping to marginRight] + expected: FAIL + + [<embed width="0"> mapping to width] + expected: FAIL + + [<marquee height="200 %"> mapping to height] + expected: FAIL + + [<marquee hspace=" +200.25in "> mapping to marginRight] + expected: FAIL + + [<col width="1007"> mapping to width] + expected: FAIL + + [<input vspace=" +200.25% "> mapping to marginBottom] + expected: FAIL + + [<input height="0%"> mapping to height] + expected: FAIL + + [<table height="200 %"> mapping to height] + expected: FAIL + + [<object hspace=" +200.25% "> mapping to marginRight] + expected: FAIL + + [<embed width=" +200in "> mapping to width] + expected: FAIL + + [<object hspace=" +200in "> mapping to marginLeft] + expected: FAIL + + [<embed vspace=" +200in "> mapping to marginTop] + expected: FAIL + + [<tr height="200%"> mapping to height] + expected: FAIL + + [<input width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<img hspace="200"> mapping to marginLeft] + expected: FAIL + + [<embed width="200%"> mapping to width] + expected: FAIL + + [<marquee hspace="200 abc"> mapping to marginLeft] + expected: FAIL + + [<input height="200in"> mapping to height] + expected: FAIL + + [<object width="200 abc"> mapping to width] + expected: FAIL + + [<input hspace=" +200.25in "> mapping to marginRight] + expected: FAIL + + [<col width="200.25%"> mapping to width] + expected: FAIL + + [<input width="200.%"> mapping to width] + expected: FAIL + + [<embed vspace="0%"> mapping to marginBottom] + expected: FAIL + + [<img vspace=" 00523 "> mapping to marginTop] + expected: FAIL + + [<embed hspace="+200"> mapping to marginLeft] + expected: FAIL + + [<img vspace=" +200.25in "> mapping to marginTop] + expected: FAIL + + [<embed hspace="200."> mapping to marginLeft] + expected: FAIL + + [<video height="200%abc"> mapping to height] + expected: FAIL + + [<marquee hspace=" +200.25%abc"> mapping to marginLeft] + expected: FAIL + + [<input height="+0"> mapping to height] + expected: FAIL + + [<embed width="200"> mapping to width] + expected: FAIL + + [<video height="+0"> mapping to height] + expected: FAIL + + [<td height="200.25in"> mapping to height] + expected: FAIL + + [<object height="+200"> mapping to height] + expected: FAIL + + [<marquee vspace="0%"> mapping to marginBottom] + expected: FAIL + + [<embed height="+200%"> mapping to height] + expected: FAIL + + [<object width=" 00523 "> mapping to width] + expected: FAIL + + [<marquee vspace="200%"> mapping to marginBottom] + expected: FAIL + + [<marquee hspace="200"> mapping to marginLeft] + expected: FAIL + + [<img vspace="200 abc"> mapping to marginTop] + expected: FAIL + + [<embed width="+200"> mapping to width] + expected: FAIL + + [<img vspace=" +200.25%abc"> mapping to marginBottom] + expected: FAIL + + [<col width="200"> mapping to width] + expected: FAIL + + [<marquee vspace="200%abc"> mapping to marginTop] + expected: FAIL + + [<object vspace="200.25%"> mapping to marginTop] + expected: FAIL + + [<input vspace="1007"> mapping to marginBottom] + expected: FAIL + + [<marquee width="1007"> mapping to width] + expected: FAIL + + [<embed hspace=" +200in "> mapping to marginLeft] + expected: FAIL + + [<object width="1007"> mapping to width] + expected: FAIL + + [<embed height="200 %"> mapping to height] + expected: FAIL + + [<img hspace="200.25in"> mapping to marginRight] + expected: FAIL + + [<video width="0"> mapping to width] + expected: FAIL + + [<embed hspace="200%abc"> mapping to marginRight] + expected: FAIL + + [<table height="200%abc"> mapping to height] + expected: FAIL + + [<img hspace="+200%"> mapping to marginLeft] + expected: FAIL + + [<object width="200.7"> mapping to width] + expected: FAIL + + [<marquee vspace="200.%"> mapping to marginTop] + expected: FAIL + + [<embed hspace="1007"> mapping to marginLeft] + expected: FAIL + + [<object height="200."> mapping to height] + expected: FAIL + + [<input hspace="200."> mapping to marginRight] + expected: FAIL + + [<table height="200"> mapping to height] + expected: FAIL + + [<object vspace="200"> mapping to marginBottom] + expected: FAIL + + [<marquee height="1007"> mapping to height] + expected: FAIL + + [<input width="+0%"> mapping to width] + expected: FAIL + + [<input width="200%"> mapping to width] + expected: FAIL + + [<input vspace="200"> mapping to marginBottom] + expected: FAIL + + [<object vspace="200.7"> mapping to marginTop] + expected: FAIL + + [<input vspace=" 00523 "> mapping to marginBottom] + expected: FAIL + + [<object hspace="200.25"> mapping to marginRight] + expected: FAIL + + [<input hspace="+200"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="0%"> mapping to marginRight] + expected: FAIL + + [<col width=" +200in "> mapping to width] + expected: FAIL + + [<input vspace="1007"> mapping to marginTop] + expected: FAIL + + [<img hspace="+0%"> mapping to marginLeft] + expected: FAIL + + [<img vspace="1007"> mapping to marginBottom] + expected: FAIL + + [<video height="200%"> mapping to height] + expected: FAIL + + [<video height="0%"> mapping to height] + expected: FAIL + + [<object hspace=" 00523 "> mapping to marginLeft] + expected: FAIL + + [<table height=" +200.25% "> mapping to height] + expected: FAIL + + [<embed vspace=" +200.25in "> mapping to marginBottom] + expected: FAIL + + [<img vspace="200"> mapping to marginTop] + expected: FAIL + + [<input width="+0"> mapping to width] + expected: FAIL + + [<object vspace="+0%"> mapping to marginTop] + expected: FAIL + + [<video width=" +200.25in "> mapping to width] + expected: FAIL + + [<input vspace="0%"> mapping to marginTop] + expected: FAIL + + [<input height="1007"> mapping to height] + expected: FAIL + + [<input hspace="200.7"> mapping to marginRight] + expected: FAIL + + [<embed height="200.7"> mapping to height] + expected: FAIL + + [<video width="200.25%"> mapping to width] + expected: FAIL + + [<video width=" 00523 "> mapping to width] + expected: FAIL + + [<object hspace="200."> mapping to marginRight] + expected: FAIL + + [<marquee vspace=" +200.25% "> mapping to marginTop] + expected: FAIL + + [<tr height="200.25"> mapping to height] + expected: FAIL + + [<embed height="200"> mapping to height] + expected: FAIL + + [<input height="+200%"> mapping to height] + expected: FAIL + + [<marquee width="200 %"> mapping to width] + expected: FAIL + + [<input hspace="200"> mapping to marginRight] + expected: FAIL + + [<input width="200 %"> mapping to width] + expected: FAIL + + [<img hspace="1007"> mapping to marginLeft] + expected: FAIL + + [<input height=" +200.25in "> mapping to height] + expected: FAIL + + [<object vspace=" +200.25%abc"> mapping to marginTop] + expected: FAIL + + [<object hspace="+200"> mapping to marginRight] + expected: FAIL + + [<object vspace="1007"> mapping to marginTop] + expected: FAIL + + [<input width="200.25in"> mapping to width] + expected: FAIL + + [<embed width="200 %"> mapping to width] + expected: FAIL + + [<input width=" +200.25in "> mapping to width] + expected: FAIL + + [<embed vspace=" +200.25% "> mapping to marginTop] + expected: FAIL + + [<input hspace="+200%"> mapping to marginRight] + expected: FAIL + + [<input vspace="200.7"> mapping to marginBottom] + expected: FAIL + + [<object vspace="200.7"> mapping to marginBottom] + expected: FAIL + + [<input width="200.25"> mapping to width] + expected: FAIL + + [<object width="200.25"> mapping to width] + expected: FAIL + + [<input hspace="200.25"> mapping to marginLeft] + expected: FAIL + + [<object hspace="1007"> mapping to marginRight] + expected: FAIL + + [<td height="200 abc"> mapping to height] + expected: FAIL + + [<object vspace="200.25in"> mapping to marginTop] + expected: FAIL + + [<marquee height="+0"> mapping to height] + expected: FAIL + + [<object vspace="200."> mapping to marginTop] + expected: FAIL + + [<marquee width="0"> mapping to width] + expected: FAIL + + [<tr height=" 00523 "> mapping to height] + expected: FAIL + + [<marquee width="+0%"> mapping to width] + expected: FAIL + + [<input height="+200"> mapping to height] + expected: FAIL + + [<embed width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<marquee vspace="1007"> mapping to marginTop] + expected: FAIL + + [<input height="200 abc"> mapping to height] + expected: FAIL + + [<marquee vspace="200 abc"> mapping to marginBottom] + expected: FAIL + + [<embed width="0%"> mapping to width] + expected: FAIL + + [<embed height="200.%"> mapping to height] + expected: FAIL + + [<embed hspace=" 00523 "> mapping to marginLeft] + expected: FAIL + + [<input hspace="200"> mapping to marginLeft] + expected: FAIL + + [<tr height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<input vspace=" +200.25%abc"> mapping to marginBottom] + expected: FAIL + + [<embed width="200.25%"> mapping to width] + expected: FAIL + + [<img height="200.%"> mapping to height] + expected: FAIL + + [<marquee vspace="200.7"> mapping to marginBottom] + expected: FAIL + + [<tr height="1007"> mapping to height] + expected: FAIL + + [<input hspace=" +200in "> mapping to marginRight] + expected: FAIL + + [<img hspace="200.25"> mapping to marginRight] + expected: FAIL + + [<marquee height="200%"> mapping to height] + expected: FAIL + + [<marquee vspace="200.25in"> mapping to marginBottom] + expected: FAIL + + [<img vspace="200"> mapping to marginBottom] + expected: FAIL + + [<object height="200.25"> mapping to height] + expected: FAIL + + [<img vspace="200%"> mapping to marginTop] + expected: FAIL + + [<table height="200.25"> mapping to height] + expected: FAIL + + [<video height="200 abc"> mapping to height] + expected: FAIL + + [<embed width="1007"> mapping to width] + expected: FAIL + + [<input vspace="+200%"> mapping to marginBottom] + expected: FAIL + + [<input hspace="200%abc"> mapping to marginLeft] + expected: FAIL + + [<tr height="200 abc"> mapping to height] + expected: FAIL + + [<embed vspace="200 abc"> mapping to marginTop] + expected: FAIL + + [<object hspace=" +200.25% "> mapping to marginLeft] + expected: FAIL + + [<marquee width="200.25"> mapping to width] + expected: FAIL + + [<input width=" +200.25% "> mapping to width] + expected: FAIL + + [<marquee vspace="200in"> mapping to marginTop] + expected: FAIL + + [<input hspace="200in"> mapping to marginLeft] + expected: FAIL + + [<object vspace=" +200.25%abc"> mapping to marginBottom] + expected: FAIL + + [<embed width="200.%"> mapping to width] + expected: FAIL + + [<marquee hspace="200%"> mapping to marginLeft] + expected: FAIL + + [<marquee hspace="+0%"> mapping to marginRight] + expected: FAIL + + [<object hspace="200.7"> mapping to marginRight] + expected: FAIL + + [<embed hspace="200in"> mapping to marginLeft] + expected: FAIL + + [<video width="200%abc"> mapping to width] + expected: FAIL + + [<object vspace="200.25%"> mapping to marginBottom] + expected: FAIL + + [<embed width="200%abc"> mapping to width] + expected: FAIL + + [<marquee height="0px"> mapping to height] + expected: FAIL + + [<embed vspace="200.7"> mapping to marginBottom] + expected: FAIL + + [<img vspace="200%abc"> mapping to marginTop] + expected: FAIL + + [<object vspace="200%abc"> mapping to marginBottom] + expected: FAIL + + [<embed hspace=" +200.25% "> mapping to marginRight] + expected: FAIL + + [<td height="200"> mapping to height] + expected: FAIL + + [<video width="1007"> mapping to width] + expected: FAIL + + [<embed width="+0%"> mapping to width] + expected: FAIL + + [<object vspace="200%"> mapping to marginTop] + expected: FAIL + + [<video height=" +200.25in "> mapping to height] + expected: FAIL + + [<embed vspace="200 %"> mapping to marginTop] + expected: FAIL + + [<table height="200."> mapping to height] + expected: FAIL + + [<object width="200.25%"> mapping to width] + expected: FAIL + + [<marquee hspace="200."> mapping to marginLeft] + expected: FAIL + + [<embed height="200.25"> mapping to height] + expected: FAIL + + [<object vspace=" 00523 "> mapping to marginTop] + expected: FAIL + + [<input vspace=" +200.25in "> mapping to marginTop] + expected: FAIL + + [<video width="200 abc"> mapping to width] + expected: FAIL + + [<embed vspace="+0%"> mapping to marginTop] + expected: FAIL + + [<table height="200.25%"> mapping to height] + expected: FAIL + + [<embed vspace=" +200.25in "> mapping to marginTop] + expected: FAIL + + [<embed hspace="200"> mapping to marginRight] + expected: FAIL + + [<marquee width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<video height="+0%"> mapping to height] + expected: FAIL + + [<img hspace="200%"> mapping to marginRight] + expected: FAIL + + [<marquee vspace="+0%"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="200.25"> mapping to marginBottom] + expected: FAIL + + [<object hspace="1007"> mapping to marginLeft] + expected: FAIL + + [<img hspace=" +200in "> mapping to marginLeft] + expected: FAIL + + [<video width="200.25"> mapping to width] + expected: FAIL + + [<marquee vspace=" +200in "> mapping to marginTop] + expected: FAIL + + [<object width="+200"> mapping to width] + expected: FAIL + + [<video height="200."> mapping to height] + expected: FAIL + + [<marquee hspace="200.7"> mapping to marginRight] + expected: FAIL + + [<marquee vspace="0%"> mapping to marginTop] + expected: FAIL + + [<hr width="200.%"> mapping to width] + expected: FAIL + + [<input vspace="200in"> mapping to marginTop] + expected: FAIL + + [<marquee width=" 00523 "> mapping to width] + expected: FAIL + + [<img hspace="1007"> mapping to marginRight] + expected: FAIL + + [<embed height="200%"> mapping to height] + expected: FAIL + + [<object height="200 abc"> mapping to height] + expected: FAIL + + [<input vspace="+0%"> mapping to marginBottom] + expected: FAIL + + [<video height="200 %"> mapping to height] + expected: FAIL + + [<marquee vspace="200.25%"> mapping to marginBottom] + expected: FAIL + + [<img vspace="200in"> mapping to marginBottom] + expected: FAIL + + [<embed vspace="200.25%"> mapping to marginTop] + expected: FAIL + + [<video height="200.%"> mapping to height] + expected: FAIL + + [<object vspace="+200%"> mapping to marginTop] + expected: FAIL + + [<embed vspace="+200%"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="+200%"> mapping to marginBottom] + expected: FAIL + + [<input hspace="200in"> mapping to marginRight] + expected: FAIL + + [<img width="200.%"> mapping to width] + expected: FAIL + + [<td height=" +200.25% "> mapping to height] + expected: FAIL + + [<embed width="200.25in"> mapping to width] + expected: FAIL + + [<video height=" 00523 "> mapping to height] + expected: FAIL + + [<object vspace="200 %"> mapping to marginBottom] + expected: FAIL + + [<input hspace="1007"> mapping to marginRight] + expected: FAIL + + [<object height=" +200in "> mapping to height] + expected: FAIL + + [<object hspace="200 %"> mapping to marginRight] + expected: FAIL + + [<object vspace="200.%"> mapping to marginTop] + expected: FAIL + + [<object hspace=" 00523 "> mapping to marginRight] + expected: FAIL + + [<object height="0"> mapping to height] + expected: FAIL + + [<object width="200 %"> mapping to width] + expected: FAIL + + [<marquee width=" +200in "> mapping to width] + expected: FAIL + + [<marquee hspace="0%"> mapping to marginLeft] + expected: FAIL + + [<col width=" +200.25%abc"> mapping to width] + expected: FAIL + + [<marquee vspace=" 00523 "> mapping to marginBottom] + expected: FAIL + + [<img vspace="200.7"> mapping to marginTop] + expected: FAIL + + [<marquee hspace="200in"> mapping to marginRight] + expected: FAIL + + [<video width="200in"> mapping to width] + expected: FAIL + + [<td height="200.25%"> mapping to height] + expected: FAIL + + [<img hspace=" +200.25in "> mapping to marginRight] + expected: FAIL + + [<marquee height="+200"> mapping to height] + expected: FAIL + + [<input vspace="200.25in"> mapping to marginTop] + expected: FAIL + + [<marquee vspace="200.25"> mapping to marginTop] + expected: FAIL + + [<video height="0px"> mapping to height] + expected: FAIL + + [<embed height="0%"> mapping to height] + expected: FAIL + + [<input vspace="200%"> mapping to marginBottom] + expected: FAIL + + [<embed vspace=" +200.25%abc"> mapping to marginTop] + expected: FAIL + + [<object width=" +200.25in "> mapping to width] + expected: FAIL + + [<video width="200 %"> mapping to width] + expected: FAIL + + [<td height="+200"> mapping to height] + expected: FAIL + + [<embed vspace="200%abc"> mapping to marginTop] + expected: FAIL + + [<input width="200"> mapping to width] + expected: FAIL + + [<object hspace="200.25"> mapping to marginLeft] + expected: FAIL + + [<table height="+200"> mapping to height] + expected: FAIL + + [<embed vspace="+200"> mapping to marginTop] + expected: FAIL + + [<marquee hspace="200.25"> mapping to marginRight] + expected: FAIL + + [<input height="200.7"> mapping to height] + expected: FAIL + + [<img vspace="200.%"> mapping to marginBottom] + expected: FAIL + + [<embed vspace="200.%"> mapping to marginBottom] + expected: FAIL + + [<object vspace=" +200.25in "> mapping to marginBottom] + expected: FAIL + + [<object vspace="200in"> mapping to marginBottom] + expected: FAIL + + [<object vspace="200%abc"> mapping to marginTop] + expected: FAIL + + [<img vspace="0%"> mapping to marginBottom] + expected: FAIL + + [<input height="200.%"> mapping to height] + expected: FAIL + + [<embed width=" +200.25in "> mapping to width] + expected: FAIL + + [<marquee vspace=" +200.25in "> mapping to marginBottom] + expected: FAIL + + [<input hspace=" +200.25in "> mapping to marginLeft] + expected: FAIL + + [<input vspace="200 abc"> mapping to marginBottom] + expected: FAIL + + [<embed vspace="200"> mapping to marginTop] + expected: FAIL + + [<embed width=" +200.25% "> mapping to width] + expected: FAIL + + [<img vspace="+0%"> mapping to marginBottom] + expected: FAIL + + [<table height=" +200.25in "> mapping to height] + expected: FAIL + + [<object width="+0"> mapping to width] + expected: FAIL + + [<input vspace="200.%"> mapping to marginTop] + expected: FAIL + + [<marquee hspace=" +200.25%abc"> mapping to marginRight] + expected: FAIL + + [<input hspace="+200%"> mapping to marginLeft] + expected: FAIL + + [<marquee height="0%"> mapping to height] + expected: FAIL + + [<tr height="+200%"> mapping to height] + expected: FAIL + + [<marquee height="200.%"> mapping to height] + expected: FAIL + + [<img vspace=" +200.25in "> mapping to marginBottom] + expected: FAIL + + [<img hspace="200.7"> mapping to marginLeft] + expected: FAIL + + [<embed height="+200"> mapping to height] + expected: FAIL + + [<marquee hspace=" +200in "> mapping to marginRight] + expected: FAIL + + [<marquee vspace="200."> mapping to marginTop] + expected: FAIL + + [<video width="+200"> mapping to width] + expected: FAIL + + [<object hspace="200in"> mapping to marginRight] + expected: FAIL + + [<marquee hspace="200.25in"> mapping to marginLeft] + expected: FAIL + + [<input hspace="200%"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="+0%"> mapping to marginRight] + expected: FAIL + + [<input height="200.25in"> mapping to height] + expected: FAIL + + [<input height="200.25%"> mapping to height] + expected: FAIL + + [<input height="+0%"> mapping to height] + expected: FAIL + + [<marquee hspace="+200"> mapping to marginRight] + expected: FAIL + + [<object hspace="+0%"> mapping to marginLeft] + expected: FAIL + + [<input hspace=" +200.25%abc"> mapping to marginRight] + expected: FAIL + + [<input hspace="200.25in"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200%"> mapping to marginBottom] + expected: FAIL + + [<col width="200."> mapping to width] + expected: FAIL + + [<object hspace="200 %"> mapping to marginLeft] + expected: FAIL + + [<object hspace="200.%"> mapping to marginLeft] + expected: FAIL + + [<img hspace="+200"> mapping to marginRight] + expected: FAIL + + [<marquee vspace="200.7"> mapping to marginTop] + expected: FAIL + + [<marquee vspace="200 abc"> mapping to marginTop] + expected: FAIL + + [<marquee hspace="200 abc"> mapping to marginRight] + expected: FAIL + + [<col width=" +200.25in "> mapping to width] + expected: FAIL + + [<object vspace="200 abc"> mapping to marginTop] + expected: FAIL + + [<marquee vspace="200%"> mapping to marginTop] + expected: FAIL + + [<object hspace="200.25in"> mapping to marginRight] + expected: FAIL + + [<embed vspace="200."> mapping to marginTop] + expected: FAIL + + [<img vspace="1007"> mapping to marginTop] + expected: FAIL + + [<object hspace=" +200.25%abc"> mapping to marginRight] + expected: FAIL + + [<embed hspace="200 abc"> mapping to marginLeft] + expected: FAIL + + [<marquee width="200%"> mapping to width] + expected: FAIL + + [<marquee hspace="200.25in"> mapping to marginRight] + expected: FAIL + + [<object vspace="200 %"> mapping to marginTop] + expected: FAIL + + [<img hspace="200."> mapping to marginLeft] + expected: FAIL + + [<embed hspace=" +200.25% "> mapping to marginLeft] + expected: FAIL + + [<video width=" +200.25% "> mapping to width] + expected: FAIL + + [<object height="200.25in"> mapping to height] + expected: FAIL + + [<embed width="+200%"> mapping to width] + expected: FAIL + + [<img hspace="0%"> mapping to marginLeft] + expected: FAIL + + [<marquee height="+0%"> mapping to height] + expected: FAIL + + [<img hspace="200.25%"> mapping to marginLeft] + expected: FAIL + + [<input hspace="200."> mapping to marginLeft] + expected: FAIL + + [<input vspace="200.25%"> mapping to marginBottom] + expected: FAIL + + [<marquee width=" +200.25in "> mapping to width] + expected: FAIL + + [<object vspace="0%"> mapping to marginTop] + expected: FAIL + + [<object height="200.%"> mapping to height] + expected: FAIL + + [<embed height="1007"> mapping to height] + expected: FAIL + + [<video height="200.25"> mapping to height] + expected: FAIL + + [<input vspace="200.%"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="+0%"> mapping to marginTop] + expected: FAIL + + [<input height="200"> mapping to height] + expected: FAIL + + [<embed hspace="200 abc"> mapping to marginRight] + expected: FAIL + + [<marquee hspace="+200%"> mapping to marginRight] + expected: FAIL + + [<img vspace="+200"> mapping to marginBottom] + expected: FAIL + + [<input vspace="200.25%"> mapping to marginTop] + expected: FAIL + + [<img hspace="200 %"> mapping to marginRight] + expected: FAIL + + [<object height="0%"> mapping to height] + expected: FAIL + + [<marquee hspace="200%abc"> mapping to marginLeft] + expected: FAIL + + [<object vspace="200%"> mapping to marginBottom] + expected: FAIL + + [<object vspace="200"> mapping to marginTop] + expected: FAIL + + [<img hspace="+0%"> mapping to marginRight] + expected: FAIL + + [<img hspace=" +200.25% "> mapping to marginRight] + expected: FAIL + + [<col width=" +200.25% "> mapping to width] + expected: FAIL + + [<marquee hspace="+200%"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200.25"> mapping to marginTop] + expected: FAIL + + [<object width="200%"> mapping to width] + expected: FAIL + + [<object hspace="200."> mapping to marginLeft] + expected: FAIL + + [<video width="+0%"> mapping to width] + expected: FAIL + + [<table height="200in"> mapping to height] + expected: FAIL + + [<embed hspace="200 %"> mapping to marginRight] + expected: FAIL + + [<img hspace=" +200in "> mapping to marginRight] + expected: FAIL + + [<object vspace="200.25"> mapping to marginTop] + expected: FAIL + + [<embed hspace="200%"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200.7"> mapping to marginRight] + expected: FAIL + + [<td height="200%abc"> mapping to height] + expected: FAIL + + [<td height="200.%"> mapping to height] + expected: FAIL + + [<marquee width="200.%"> mapping to width] + expected: FAIL + + [<embed hspace="200.%"> mapping to marginLeft] + expected: FAIL + + [<object width="200.25in"> mapping to width] + expected: FAIL + + [<object hspace=" +200.25in "> mapping to marginLeft] + expected: FAIL + + [<object vspace=" +200.25% "> mapping to marginTop] + expected: FAIL + + [<img hspace="200"> mapping to marginRight] + expected: FAIL + + [<img hspace="200%abc"> mapping to marginLeft] + expected: FAIL + + [<object height=" 00523 "> mapping to height] + expected: FAIL + + [<object vspace=" +200.25in "> mapping to marginTop] + expected: FAIL + + [<input vspace=" 00523 "> mapping to marginTop] + expected: FAIL + + [<object hspace="200.25%"> mapping to marginRight] + expected: FAIL + + [<img vspace="200.25%"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="200"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="200%abc"> mapping to marginBottom] + expected: FAIL + + [<marquee hspace="1007"> mapping to marginLeft] + expected: FAIL + + [<embed hspace=" +200.25in "> mapping to marginRight] + expected: FAIL + + [<input hspace="200.7"> mapping to marginLeft] + expected: FAIL + + [<marquee hspace="200 %"> mapping to marginLeft] + expected: FAIL + + [<object width="200."> mapping to width] + expected: FAIL + + [<embed hspace=" +200in "> mapping to marginRight] + expected: FAIL + + [<tr height="200"> mapping to height] + expected: FAIL + + [<object height=" +200.25% "> mapping to height] + expected: FAIL + + [<video width="200.25in"> mapping to width] + expected: FAIL + + [<object width="200in"> mapping to width] + expected: FAIL + + [<marquee hspace="200."> mapping to marginRight] + expected: FAIL + + [<object height="+200%"> mapping to height] + expected: FAIL + + [<marquee hspace="200.25"> mapping to marginLeft] + expected: FAIL + + [<object height="200.7"> mapping to height] + expected: FAIL + + [<img vspace="200.25in"> mapping to marginBottom] + expected: FAIL + + [<img hspace=" +200.25% "> mapping to marginLeft] + expected: FAIL + + [<col width="200.25in"> mapping to width] + expected: FAIL + + [<input width="0"> mapping to width] + expected: FAIL + + [<marquee hspace="200.%"> mapping to marginLeft] + expected: FAIL + + [<embed height="0"> mapping to height] + expected: FAIL + + [<object vspace=" 00523 "> mapping to marginBottom] + expected: FAIL + + [<marquee width="200."> mapping to width] + expected: FAIL + + [<input hspace="200.25"> mapping to marginRight] + expected: FAIL + + [<object vspace="+200%"> mapping to marginBottom] + expected: FAIL + + [<object hspace="+0%"> mapping to marginRight] + expected: FAIL + + [<table height=" +200in "> mapping to height] + expected: FAIL + + [<marquee hspace="200.%"> mapping to marginRight] + expected: FAIL + + [<col width="200.%"> mapping to width] + expected: FAIL + + [<object height="200%"> mapping to height] + expected: FAIL + + [<input hspace="200.%"> mapping to marginRight] + expected: FAIL + + [<input hspace="200%"> mapping to marginRight] + expected: FAIL + + [<embed vspace="200."> mapping to marginBottom] + expected: FAIL + + [<marquee height="200"> mapping to height] + expected: FAIL + + [<embed width=" 00523 "> mapping to width] + expected: FAIL + + [<input hspace="200 %"> mapping to marginRight] + expected: FAIL + + [<object vspace="200."> mapping to marginBottom] + expected: FAIL + + [<embed height="200 abc"> mapping to height] + expected: FAIL + + [<input vspace=" +200.25in "> mapping to marginBottom] + expected: FAIL + + [<input height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<input width="200.25%"> mapping to width] + expected: FAIL + + [<img vspace="200 abc"> mapping to marginBottom] + expected: FAIL + + [<input hspace=" +200.25%abc"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200.7"> mapping to marginTop] + expected: FAIL + + [<embed width="200."> mapping to width] + expected: FAIL + + [<img vspace="200 %"> mapping to marginTop] + expected: FAIL + + [<input width="200in"> mapping to width] + expected: FAIL + + [<video height="+200"> mapping to height] + expected: FAIL + + [<input hspace="200.25%"> mapping to marginRight] + expected: FAIL + + [<object width="0"> mapping to width] + expected: FAIL + + [<input height="200.25"> mapping to height] + expected: FAIL + + [<td height="200%"> mapping to height] + expected: FAIL + + [<embed hspace="200."> mapping to marginRight] + expected: FAIL + + [<embed height=" 00523 "> mapping to height] + expected: FAIL + + [<marquee vspace=" +200.25in "> mapping to marginTop] + expected: FAIL + + [<embed hspace="200.%"> mapping to marginRight] + expected: FAIL + + [<marquee width="+200"> mapping to width] + expected: FAIL + + [<input vspace=" +200.25% "> mapping to marginTop] + expected: FAIL + + [<marquee height=" +200.25in "> mapping to height] + expected: FAIL + + [<object width=" +200.25% "> mapping to width] + expected: FAIL + + [<marquee width="200"> mapping to width] + expected: FAIL + + [<object width="+200%"> mapping to width] + expected: FAIL + + [<embed vspace="200in"> mapping to marginBottom] + expected: FAIL + + [<video height="200in"> mapping to height] + expected: FAIL + + [<object hspace="200.%"> mapping to marginRight] + expected: FAIL + + [<embed vspace="200 abc"> mapping to marginBottom] + expected: FAIL + + [<table width="200.%"> mapping to width] + expected: FAIL + + [<marquee vspace=" +200.25% "> mapping to marginBottom] + expected: FAIL + + [<input vspace="200%abc"> mapping to marginBottom] + expected: FAIL + + [<marquee height="200%abc"> mapping to height] + expected: FAIL + + [<marquee hspace=" +200in "> mapping to marginLeft] + expected: FAIL + + [<img hspace="200.%"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200.25"> mapping to marginBottom] + expected: FAIL + + [<embed vspace="200 %"> mapping to marginBottom] + expected: FAIL + + [<input hspace="+0%"> mapping to marginRight] + expected: FAIL + + [<img hspace="200.7"> mapping to marginRight] + expected: FAIL + + [<img hspace=" 00523 "> mapping to marginLeft] + expected: FAIL + + [<input vspace="+0%"> mapping to marginTop] + expected: FAIL + + [<img vspace="+0%"> mapping to marginTop] + expected: FAIL + + [<embed hspace=" 00523 "> mapping to marginRight] + expected: FAIL + + [<table height="200%"> mapping to height] + expected: FAIL + + [<object height="200"> mapping to height] + expected: FAIL + + [<object height=" +200.25in "> mapping to height] + expected: FAIL + + [<img vspace="+200%"> mapping to marginTop] + expected: FAIL + + [<tr height=" +200.25in "> mapping to height] + expected: FAIL + + [<marquee vspace=" +200in "> mapping to marginBottom] + expected: FAIL + + [<input vspace="+200%"> mapping to marginTop] + expected: FAIL + + [<marquee hspace=" 00523 "> mapping to marginLeft] + expected: FAIL + + [<object vspace="200.25in"> mapping to marginBottom] + expected: FAIL + + [<col width="200 %"> mapping to width] + expected: FAIL + + [<object hspace="200"> mapping to marginRight] + expected: FAIL + + [<embed vspace=" +200.25% "> mapping to marginBottom] + expected: FAIL + + [<col width="200 abc"> mapping to width] + expected: FAIL + + [<embed vspace="+200%"> mapping to marginTop] + expected: FAIL + + [<embed hspace="200.25"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200.25in"> mapping to marginRight] + expected: FAIL + + [<embed vspace=" +200.25%abc"> mapping to marginBottom] + expected: FAIL + + [<img hspace="200."> mapping to marginRight] + expected: FAIL + + [<img vspace="200%abc"> mapping to marginBottom] + expected: FAIL + + [<marquee height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<marquee hspace="200.25%"> mapping to marginLeft] + expected: FAIL + + [<input width="+200"> mapping to width] + expected: FAIL + + [<input hspace="+0%"> mapping to marginLeft] + expected: FAIL + + [<marquee hspace="200.25%"> mapping to marginRight] + expected: FAIL + + [<video width="+200%"> mapping to width] + expected: FAIL + + [<input vspace=" +200in "> mapping to marginBottom] + expected: FAIL + + [<object hspace="0%"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200.25%"> mapping to marginRight] + expected: FAIL + + [<td height=" +200in "> mapping to height] + expected: FAIL + + [<input width="1007"> mapping to width] + expected: FAIL + + [<embed height="200in"> mapping to height] + expected: FAIL + + [<embed height="200.25in"> mapping to height] + expected: FAIL + + [<object hspace="200%abc"> mapping to marginRight] + expected: FAIL + + [<img vspace=" +200.25% "> mapping to marginTop] + expected: FAIL + + [<input width="+200%"> mapping to width] + expected: FAIL + + [<tr height=" +200.25% "> mapping to height] + expected: FAIL + + [<img hspace="200.25in"> mapping to marginLeft] + expected: FAIL + + [<input hspace="0%"> mapping to marginRight] + expected: FAIL + + [<marquee width="200.7"> mapping to width] + expected: FAIL + + [<input vspace="200%abc"> mapping to marginTop] + expected: FAIL + + [<object vspace="+200"> mapping to marginTop] + expected: FAIL + + [<embed vspace=" 00523 "> mapping to marginBottom] + expected: FAIL + + [<marquee hspace="200 %"> mapping to marginRight] + expected: FAIL + + [<embed height=" +200.25% "> mapping to height] + expected: FAIL + + [<embed hspace="0%"> mapping to marginLeft] + expected: FAIL + + [<object hspace="200%abc"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="1007"> mapping to marginBottom] + expected: FAIL + + [<embed hspace=" +200.25%abc"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="200in"> mapping to marginRight] + expected: FAIL + + [<embed width="200.25"> mapping to width] + expected: FAIL + + [<img hspace="200in"> mapping to marginLeft] + expected: FAIL + + [<object hspace="+200"> mapping to marginLeft] + expected: FAIL + + [<video width="200."> mapping to width] + expected: FAIL + + [<marquee hspace="1007"> mapping to marginRight] + expected: FAIL + + [<embed hspace="200 %"> mapping to marginLeft] + expected: FAIL + + [<col width="+200%"> mapping to width] + expected: FAIL + + [<video width="0px"> mapping to width] + expected: FAIL + + [<img vspace=" +200in "> mapping to marginTop] + expected: FAIL + + [<tr height=" +200in "> mapping to height] + expected: FAIL + + [<input vspace="200%"> mapping to marginTop] + expected: FAIL + + [<input hspace=" 00523 "> mapping to marginLeft] + expected: FAIL + + [<video height="200"> mapping to height] + expected: FAIL + + [<input height=" 00523 "> mapping to height] + expected: FAIL + + [<input height=" +200.25% "> mapping to height] + expected: FAIL + + [<td height=" 00523 "> mapping to height] + expected: FAIL + + [<input vspace="200 %"> mapping to marginBottom] + expected: FAIL + + [<marquee vspace="200 %"> mapping to marginTop] + expected: FAIL + + [<input hspace=" 00523 "> mapping to marginRight] + expected: FAIL + + [<marquee height="200in"> mapping to height] + expected: FAIL + + [<embed height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<embed vspace="200.25in"> mapping to marginTop] + expected: FAIL + + [<input vspace="+200"> mapping to marginBottom] + expected: FAIL + + [<img vspace="200."> mapping to marginBottom] + expected: FAIL + + [<marquee height="200."> mapping to height] + expected: FAIL + + [<img hspace="200.25%"> mapping to marginRight] + expected: FAIL + + [<img vspace=" +200.25%abc"> mapping to marginTop] + expected: FAIL + + [<img vspace="+200"> mapping to marginTop] + expected: FAIL + + [<embed vspace="200.25in"> mapping to marginBottom] + expected: FAIL + + [<video width="+0"> mapping to width] + expected: FAIL + + [<embed height="+0%"> mapping to height] + expected: FAIL + + [<marquee width="200in"> mapping to width] + expected: FAIL + + [<video width="200"> mapping to width] + expected: FAIL + + [<img hspace=" +200.25%abc"> mapping to marginRight] + expected: FAIL + + [<input hspace="+200"> mapping to marginRight] + expected: FAIL + + [<video height="0"> mapping to height] + expected: FAIL + + [<embed vspace=" 00523 "> mapping to marginTop] + expected: FAIL + + [<marquee width="200%abc"> mapping to width] + expected: FAIL + + [<object width="0px"> mapping to width] + expected: FAIL + + [<object width="+0%"> mapping to width] + expected: FAIL + + [<object hspace=" +200.25%abc"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="1007"> mapping to marginRight] + expected: FAIL + + [<object vspace="200.25"> mapping to marginBottom] + expected: FAIL + + [<embed vspace=" +200in "> mapping to marginBottom] + expected: FAIL + + [<embed hspace="200.25"> mapping to marginRight] + expected: FAIL + + [<input vspace="200 abc"> mapping to marginTop] + expected: FAIL + + [<col width=" 00523 "> mapping to width] + expected: FAIL + + [<marquee vspace=" +200.25%abc"> mapping to marginTop] + expected: FAIL + + [<marquee hspace="200.7"> mapping to marginLeft] + expected: FAIL + + [<input height="0px"> mapping to height] + expected: FAIL + + [<col width="+200"> mapping to width] + expected: FAIL + + [<img hspace="200in"> mapping to marginRight] + expected: FAIL + + [<td height=" +200.25in "> mapping to height] + expected: FAIL + + [<td height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<marquee hspace="+0%"> mapping to marginLeft] + expected: FAIL + + [<marquee height="200.25"> mapping to height] + expected: FAIL + + [<marquee width="200.25%"> mapping to width] + expected: FAIL + + [<marquee height=" +200.25% "> mapping to height] + expected: FAIL + + [<object hspace="200 abc"> mapping to marginLeft] + expected: FAIL + + [<marquee vspace="+200%"> mapping to marginTop] + expected: FAIL + + [<img hspace="200 %"> mapping to marginLeft] + expected: FAIL + + [<marquee height="0"> mapping to height] + expected: FAIL + + [<video height=" +200.25%abc"> mapping to height] + expected: FAIL + + [<input width="0%"> mapping to width] + expected: FAIL + + [<table height="1007"> mapping to height] + expected: FAIL + + [<embed hspace=" +200.25%abc"> mapping to marginRight] + expected: FAIL + + [<object height="+0"> mapping to height] + expected: FAIL + + [<object hspace="200%"> mapping to marginRight] + expected: FAIL + + [<object height="200%abc"> mapping to height] + expected: FAIL + + [<object width=" +200in "> mapping to width] + expected: FAIL + + [<embed width="0px"> mapping to width] + expected: FAIL + + [<embed vspace="0%"> mapping to marginTop] + expected: FAIL + + [<object hspace="200.25in"> mapping to marginLeft] + expected: FAIL + + [<embed vspace="200%"> mapping to marginTop] + expected: FAIL + + [<embed hspace="200.7"> mapping to marginLeft] + expected: FAIL + + [<marquee width="+0"> mapping to width] + expected: FAIL + + [<video width="200.%"> mapping to width] + expected: FAIL + + [<col width="200in"> mapping to width] + expected: FAIL + + [<img hspace="200%"> mapping to marginLeft] + expected: FAIL + + [<marquee width=" +200.25% "> mapping to width] + expected: FAIL + + [<video width="0%"> mapping to width] + expected: FAIL + + [<marquee width="0px"> mapping to width] + expected: FAIL + + [<embed hspace="200%abc"> mapping to marginLeft] + expected: FAIL + + [<img hspace="+200%"> mapping to marginRight] + expected: FAIL + + [<marquee hspace=" +200.25% "> mapping to marginRight] + expected: FAIL + + [<object width="200%abc"> mapping to width] + expected: FAIL + + [<marquee hspace=" +200.25% "> mapping to marginLeft] + expected: FAIL + + [<td height="200.7"> mapping to height] + expected: FAIL + + [<col width="200%"> mapping to width] + expected: FAIL + + [<object hspace="200 abc"> mapping to marginRight] + expected: FAIL + + [<video height="200.25in"> mapping to height] + expected: FAIL + + [<embed vspace="+0%"> mapping to marginBottom] + expected: FAIL + + [<input vspace="200in"> mapping to marginBottom] + expected: FAIL + + [<marquee hspace="200%abc"> mapping to marginRight] + expected: FAIL + + [<marquee height="200.25%"> mapping to height] + expected: FAIL + + [<embed height="200%abc"> mapping to height] + expected: FAIL + + [<object hspace="+200%"> mapping to marginLeft] + expected: FAIL + + [<object hspace="200in"> mapping to marginLeft] + expected: FAIL + + [<object width="200"> mapping to width] + expected: FAIL + + [<input vspace="200.25in"> mapping to marginBottom] + expected: FAIL + + [<object vspace="1007"> mapping to marginBottom] + expected: FAIL + + [<tr height="+200"> mapping to height] + expected: FAIL + + [<video width=" +200in "> mapping to width] + expected: FAIL + + [<tr height="200 %"> mapping to height] + expected: FAIL + + [<col width="200.25"> mapping to width] + expected: FAIL + + [<tr height="200.25in"> mapping to height] + expected: FAIL + + [<object hspace="200"> mapping to marginLeft] + expected: FAIL + + [<embed hspace="+200%"> mapping to marginRight] + expected: FAIL + + [<embed width="200 abc"> mapping to width] + expected: FAIL + + [<input vspace=" +200.25%abc"> mapping to marginTop] + expected: FAIL + + [<img vspace="200."> mapping to marginTop] + expected: FAIL + + [<marquee vspace="1007"> mapping to marginBottom] + expected: FAIL + + [<img vspace="200.%"> mapping to marginTop] + expected: FAIL + + [<input hspace="200 abc"> mapping to marginRight] + expected: FAIL + + [<embed vspace="1007"> mapping to marginTop] + expected: FAIL + + [<input width="0px"> mapping to width] + expected: FAIL + + [<object height="+0%"> mapping to height] + expected: FAIL + + [<object vspace="+200"> mapping to marginBottom] + expected: FAIL + diff --git a/tests/wpt/metadata/html/rendering/pixel-length-attributes.html.ini b/tests/wpt/metadata/html/rendering/pixel-length-attributes.html.ini index 99f0d626d84..fb11c5b5972 100644 --- a/tests/wpt/metadata/html/rendering/pixel-length-attributes.html.ini +++ b/tests/wpt/metadata/html/rendering/pixel-length-attributes.html.ini @@ -1,5 +1,4 @@ [pixel-length-attributes.html] - expected: ERROR [<iframe marginheight="200%"> mapping to marginBottom] expected: FAIL @@ -192,3 +191,6 @@ [<iframe marginwidth="0"> mapping to marginLeft] expected: FAIL + [Test handling of attributes that map to pixel length properties] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini deleted file mode 100644 index 9e522297c94..00000000000 --- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[toggleEvent.html] - [Calling open twice on 'details' fires only one toggle event] - expected: FAIL - - [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] - expected: FAIL - diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini deleted file mode 100644 index a9677391662..00000000000 --- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[DOMContentLoaded-defer.html] - [The end: DOMContentLoaded and defer scripts] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini new file mode 100644 index 00000000000..6cf9d13975c --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini @@ -0,0 +1,4 @@ +[iframe_005.html] + [document.write external script into iframe write back into parent] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js.ini new file mode 100644 index 00000000000..44439df7a90 --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js.ini @@ -0,0 +1,6 @@ +[requires-failure.https.any.html] + +[requires-failure.https.any.serviceworker.html] + [requires-failure] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js.ini new file mode 100644 index 00000000000..f14929079d7 --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js.ini @@ -0,0 +1,9 @@ +[requires-success.any.worker.html] + [[[CanBlock\]\] in a DedicatedWorkerGlobalScope] + expected: FAIL + + +[requires-success.any.sharedworker.html] + [requires-success] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini index 034d9baebfa..496bad988c6 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini @@ -1,5 +1,4 @@ [promise-rejection-events.html] - expected: TIMEOUT [delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire] expected: FAIL @@ -9,6 +8,3 @@ [no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap] expected: FAIL - [rejectionhandled is dispatched from a queued task, and not immediately] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini index 841d4050464..091a2791657 100644 --- a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini +++ b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini @@ -23,6 +23,3 @@ [domainLookupStart should be 0 in cross-origin request.] expected: FAIL - [responseEnd should be greater than 0 in cross-origin request.] - expected: FAIL - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 9a6ba1ca4dc..84a55b8f763 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -83,3 +83,9 @@ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 1.3054461021373052e+24 at index of 20238.\n\t[20238\]\t1.3054461021373052e+24\t-4.7574958205223083e-1\t1.3054461021373052e+24\t2.7439774019475333e+24\t3.8985999999999999e-3\n\tMax RelError of 2.7439774019475333e+24 at index of 20238.\n\t[20238\]\t1.3054461021373052e+24\t-4.7574958205223083e-1\t1.3054461021373052e+24\t2.7439774019475333e+24\t3.8985999999999999e-3\n] expected: FAIL + [X SNR (-354.903972203962 dB) is not greater than or equal to 65.737. Got -354.903972203962.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 6.0007368809968042e+19 at index of 20238.\n\t[20238\]\t-6.0007368809968042e+19\t-4.7574958205223083e-1\t6.0007368809968042e+19\t1.2613225754422218e+20\t3.8985999999999999e-3\n\tMax RelError of 1.2613225754422218e+20 at index of 20238.\n\t[20238\]\t-6.0007368809968042e+19\t-4.7574958205223083e-1\t6.0007368809968042e+19\t1.2613225754422218e+20\t3.8985999999999999e-3\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html.ini new file mode 100644 index 00000000000..581273c3391 --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html.ini @@ -0,0 +1,4 @@ +[mediastreamaudiosourcenode-ctor.html] + [MediaStreamAudioSourceNode] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html.ini new file mode 100644 index 00000000000..f1bdca6094a --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html.ini @@ -0,0 +1,5 @@ +[mediastreamaudiosourcenode-routing.html] + expected: ERROR + [MediaStreamAudioSourceNode captures the right track.] + expected: NOTRUN + diff --git a/tests/wpt/metadata/xhr/responsexml-document-properties.htm.ini b/tests/wpt/metadata/xhr/responsexml-document-properties.htm.ini index 841155cd200..38c257cee08 100644 --- a/tests/wpt/metadata/xhr/responsexml-document-properties.htm.ini +++ b/tests/wpt/metadata/xhr/responsexml-document-properties.htm.ini @@ -21,3 +21,6 @@ [lastModified set to related HTTP header if provided] expected: FAIL + [XMLHttpRequest: responseXML document properties] + expected: FAIL + diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini deleted file mode 100644 index dbea4f293ad..00000000000 --- a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transition_calc_implicit.html] - expected: TIMEOUT diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html index 351e74bd745..ad1dc4f83b0 100644 --- a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html +++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html @@ -61,6 +61,14 @@ promise_test(async t => { assert_equals(comparableOutput, comparableInput); }, 'Verify write and read clipboard [image/png Blob]'); + +promise_test(async t => { + const invalidPngBlob = new Blob(['this text is not a valid png image'], + {type: "image/png"}); + const clipboardItemInput = new ClipboardItem({'image/png' : invalidPngBlob}); + await promise_rejects(t, "DataError", + navigator.clipboard.write([clipboardItemInput])); +}, 'Verify write error on malformed data [image/png ClipboardItem]'); </script> <p> Note: This is a manual test because it writes/reads to the shared system diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-invalid.html new file mode 100644 index 00000000000..ae244389bf1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-invalid.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-content with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content"> +<meta name="assert" content="align-content supports only the grammar 'normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("align-content", "auto"); +test_invalid_value("align-content", "baseline last"); +test_invalid_value("align-content", "center baseline"); +test_invalid_value("align-content", "first"); +test_invalid_value("align-content", "flex-start flex-end"); +test_invalid_value("align-content", "last"); +test_invalid_value("align-content", "left"); +test_invalid_value("align-content", "legacy center"); +test_invalid_value("align-content", "legacy left"); +test_invalid_value("align-content", "legacy"); +test_invalid_value("align-content", "normal baseline"); +test_invalid_value("align-content", "right legacy"); +test_invalid_value("align-content", "safe self-end"); +test_invalid_value("align-content", "safe"); +test_invalid_value("align-content", "self-end unsafe"); +test_invalid_value("align-content", "self-start"); +test_invalid_value("align-content", "start safe"); +test_invalid_value("align-content", "unsafe right"); +test_invalid_value("align-content", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-valid.html new file mode 100644 index 00000000000..46c47245168 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-valid.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-content with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content"> +<meta name="assert" content="align-content supports the full grammar 'normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("align-content", "normal"); + +// <baseline-position> = [ first | last ]? baseline +test_valid_value("align-content", "baseline"); +test_valid_value("align-content", "first baseline", "baseline"); +test_valid_value("align-content", "last baseline"); + +// <content-distribution> = space-between | space-around | space-evenly | stretch +test_valid_value("align-content", "space-between"); +test_valid_value("align-content", "space-around"); +test_valid_value("align-content", "space-evenly"); +test_valid_value("align-content", "stretch"); + +// <overflow-position>? <content-position> +// <overflow-position> = unsafe | safe +// <content-position> = center | start | end | flex-start | flex-end +test_valid_value("align-content", "center"); +test_valid_value("align-content", "start"); +test_valid_value("align-content", "end"); +test_valid_value("align-content", "flex-start"); +test_valid_value("align-content", "flex-end"); +test_valid_value("align-content", "unsafe end"); +test_valid_value("align-content", "safe flex-start"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-invalid.html new file mode 100644 index 00000000000..8e329d50e5c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-invalid.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-items with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<meta name="assert" content="align-items supports only the grammar 'normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("align-items", "auto"); +test_invalid_value("align-items", "baseline last"); +test_invalid_value("align-items", "center baseline"); +test_invalid_value("align-items", "first"); +test_invalid_value("align-items", "flex-start flex-end"); +test_invalid_value("align-items", "last"); +test_invalid_value("align-items", "left"); +test_invalid_value("align-items", "legacy center"); +test_invalid_value("align-items", "legacy left"); +test_invalid_value("align-items", "legacy"); +test_invalid_value("align-items", "normal baseline"); +test_invalid_value("align-items", "right legacy"); +test_invalid_value("align-items", "safe"); +test_invalid_value("align-items", "self-end unsafe"); +test_invalid_value("align-items", "space-around"); +test_invalid_value("align-items", "space-between"); +test_invalid_value("align-items", "space-evenly"); +test_invalid_value("align-items", "start safe"); +test_invalid_value("align-items", "unsafe right"); +test_invalid_value("align-items", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-valid.html new file mode 100644 index 00000000000..e88845b962a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-valid.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-items with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<meta name="assert" content="align-items supports the full grammar 'normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("align-items", "normal"); +test_valid_value("align-items", "stretch"); + +// <baseline-position> = [ first | last ]? baseline +test_valid_value("align-items", "baseline"); +test_valid_value("align-items", "first baseline", "baseline"); +test_valid_value("align-items", "last baseline"); + +// <overflow-position>? <self-position> +// <overflow-position> = unsafe | safe +// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end +test_valid_value("align-items", "center"); +test_valid_value("align-items", "start"); +test_valid_value("align-items", "end"); +test_valid_value("align-items", "self-start"); +test_valid_value("align-items", "self-end"); +test_valid_value("align-items", "flex-start"); +test_valid_value("align-items", "flex-end"); +test_valid_value("align-items", "unsafe center"); +test_valid_value("align-items", "safe self-end"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-invalid.html new file mode 100644 index 00000000000..27b02500265 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-invalid.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-self with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self"> +<meta name="assert" content="align-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("align-self", "baseline last"); +test_invalid_value("align-self", "center baseline"); +test_invalid_value("align-self", "first"); +test_invalid_value("align-self", "flex-start flex-end"); +test_invalid_value("align-self", "last"); +test_invalid_value("align-self", "left"); +test_invalid_value("align-self", "legacy center"); +test_invalid_value("align-self", "legacy left"); +test_invalid_value("align-self", "legacy"); +test_invalid_value("align-self", "normal baseline"); +test_invalid_value("align-self", "right legacy"); +test_invalid_value("align-self", "safe"); +test_invalid_value("align-self", "self-end unsafe"); +test_invalid_value("align-self", "space-around"); +test_invalid_value("align-self", "space-between"); +test_invalid_value("align-self", "space-evenly"); +test_invalid_value("align-self", "start safe"); +test_invalid_value("align-self", "unsafe right"); +test_invalid_value("align-self", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-valid.html new file mode 100644 index 00000000000..25ea093b209 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-valid.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing align-self with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self"> +<meta name="assert" content="align-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("align-self", "auto"); +test_valid_value("align-self", "normal"); +test_valid_value("align-self", "stretch"); + +// <baseline-position> = [ first | last ]? baseline +test_valid_value("align-self", "baseline"); +test_valid_value("align-self", "first baseline", "baseline"); +test_valid_value("align-self", "last baseline"); + +// <overflow-position>? <self-position> +// <overflow-position> = unsafe | safe +// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end +test_valid_value("align-self", "center"); +test_valid_value("align-self", "start"); +test_valid_value("align-self", "end"); +test_valid_value("align-self", "self-start"); +test_valid_value("align-self", "self-end"); +test_valid_value("align-self", "flex-start"); +test_valid_value("align-self", "flex-end"); +test_valid_value("align-self", "unsafe center"); +test_valid_value("align-self", "safe self-end"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html new file mode 100644 index 00000000000..971f94bcf8b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-content with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content"> +<meta name="assert" content="justify-content supports only the grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("justify-content", "auto"); +test_invalid_value("justify-content", "baseline last"); +test_invalid_value("justify-content", "baseline"); +test_invalid_value("justify-content", "center baseline"); +test_invalid_value("justify-content", "first baseline"); +test_invalid_value("justify-content", "first"); +test_invalid_value("justify-content", "flex-start flex-end"); +test_invalid_value("justify-content", "last baseline"); +test_invalid_value("justify-content", "last"); +test_invalid_value("justify-content", "legacy center"); +test_invalid_value("justify-content", "legacy left"); +test_invalid_value("justify-content", "legacy"); +test_invalid_value("justify-content", "normal baseline"); +test_invalid_value("justify-content", "right legacy"); +test_invalid_value("justify-content", "safe self-end"); +test_invalid_value("justify-content", "safe"); +test_invalid_value("justify-content", "self-end unsafe"); +test_invalid_value("justify-content", "self-start"); +test_invalid_value("justify-content", "start safe"); +test_invalid_value("justify-content", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html new file mode 100644 index 00000000000..d476a268add --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-content with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content"> +<meta name="assert" content="justify-content supports the full grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("justify-content", "normal"); + +// <content-distribution> = space-between | space-around | space-evenly | stretch +test_valid_value("justify-content", "space-between"); +test_valid_value("justify-content", "space-around"); +test_valid_value("justify-content", "space-evenly"); +test_valid_value("justify-content", "stretch"); + +// <overflow-position>? [ <content-position> | left | right ] +// <overflow-position> = unsafe | safe +// <content-position> = center | start | end | flex-start | flex-end +test_valid_value("justify-content", "center"); +test_valid_value("justify-content", "start"); +test_valid_value("justify-content", "end"); +test_valid_value("justify-content", "flex-start"); +test_valid_value("justify-content", "flex-end"); +test_valid_value("justify-content", "unsafe end"); +test_valid_value("justify-content", "safe flex-start"); +test_valid_value("justify-content", "left"); +test_valid_value("justify-content", "unsafe right"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html new file mode 100644 index 00000000000..18da0593760 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-items with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items"> +<meta name="assert" content="justify-items supports only the grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("justify-items", "auto"); +test_invalid_value("justify-items", "baseline last"); +test_invalid_value("justify-items", "center baseline"); +test_invalid_value("justify-items", "first"); +test_invalid_value("justify-items", "flex-start flex-end"); +test_invalid_value("justify-items", "last"); +test_invalid_value("justify-items", "normal baseline"); +test_invalid_value("justify-items", "safe"); +test_invalid_value("justify-items", "self-end unsafe"); +test_invalid_value("justify-items", "space-around"); +test_invalid_value("justify-items", "space-between"); +test_invalid_value("justify-items", "space-evenly"); +test_invalid_value("justify-items", "start safe"); +test_invalid_value("justify-items", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html new file mode 100644 index 00000000000..36584f86feb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-items with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items"> +<meta name="assert" content="justify-items supports the full grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("justify-items", "normal"); +test_valid_value("justify-items", "stretch"); + +// <baseline-position> = [ first | last ]? baseline +test_valid_value("justify-items", "baseline"); +test_valid_value("justify-items", "first baseline", "baseline"); +test_valid_value("justify-items", "last baseline"); + +// <overflow-position>? [ <self-position> | left | right ] +// <overflow-position> = unsafe | safe +// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end +test_valid_value("justify-items", "center"); +test_valid_value("justify-items", "start"); +test_valid_value("justify-items", "end"); +test_valid_value("justify-items", "self-start"); +test_valid_value("justify-items", "self-end"); +test_valid_value("justify-items", "flex-start"); +test_valid_value("justify-items", "flex-end"); +test_valid_value("justify-items", "unsafe center"); +test_valid_value("justify-items", "safe self-end"); +test_valid_value("justify-items", "right"); +test_valid_value("justify-items", "safe left"); + +// legacy | legacy && [ left | right | center ] +test_valid_value("justify-items", "legacy"); +test_valid_value("justify-items", "left legacy", "legacy left"); +test_valid_value("justify-items", "right legacy", "legacy right"); +test_valid_value("justify-items", "center legacy", "legacy center"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html new file mode 100644 index 00000000000..846cdd8a00f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-self with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self"> +<meta name="assert" content="justify-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("justify-self", "baseline last"); +test_invalid_value("justify-self", "center baseline"); +test_invalid_value("justify-self", "first"); +test_invalid_value("justify-self", "flex-start flex-end"); +test_invalid_value("justify-self", "last"); +test_invalid_value("justify-self", "legacy center"); +test_invalid_value("justify-self", "legacy left"); +test_invalid_value("justify-self", "legacy"); +test_invalid_value("justify-self", "normal baseline"); +test_invalid_value("justify-self", "right legacy"); +test_invalid_value("justify-self", "safe"); +test_invalid_value("justify-self", "self-end unsafe"); +test_invalid_value("justify-self", "space-around"); +test_invalid_value("justify-self", "space-between"); +test_invalid_value("justify-self", "space-evenly"); +test_invalid_value("justify-self", "start safe"); +test_invalid_value("justify-self", "unsafe"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html new file mode 100644 index 00000000000..1ee23af200f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: parsing justify-self with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self"> +<meta name="assert" content="justify-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("justify-self", "auto"); +test_valid_value("justify-self", "normal"); +test_valid_value("justify-self", "stretch"); + +// <baseline-position> = [ first | last ]? baseline +test_valid_value("justify-self", "baseline"); +test_valid_value("justify-self", "first baseline", "baseline"); +test_valid_value("justify-self", "last baseline"); + +// <overflow-position>? [ <self-position> | left | right ] +// <overflow-position> = unsafe | safe +// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end +test_valid_value("justify-self", "center"); +test_valid_value("justify-self", "start"); +test_valid_value("justify-self", "end"); +test_valid_value("justify-self", "self-start"); +test_valid_value("justify-self", "self-end"); +test_valid_value("justify-self", "flex-start"); +test_valid_value("justify-self", "flex-end"); +test_valid_value("justify-self", "unsafe center"); +test_valid_value("justify-self", "safe self-end"); +test_valid_value("justify-self", "left"); +test_valid_value("justify-self", "unsafe right"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-fonts/inheritance.html b/tests/wpt/web-platform-tests/css/css-fonts/inheritance.html index 8ff02fb7405..f0c46bec508 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/inheritance.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/inheritance.html @@ -12,7 +12,6 @@ <script src="/css/support/inheritance-testcommon.js"></script> <style> #box { - font: initial; font-size: medium; } </style> @@ -25,10 +24,9 @@ <script> 'use strict'; const box = document.getElementById('box'); -const initialFontFamily = getComputedStyle(box).fontFamily; const mediumFontSize = getComputedStyle(box).fontSize; -assert_inherited('font-family', initialFontFamily, '"Not Initial!"'); +assert_inherited('font-family', null, '"Not Initial!"'); // Initial value depends on user agent. assert_inherited('font-feature-settings', 'normal', '"smcp", "swsh" 2'); assert_inherited('font-kerning', 'auto', 'none'); assert_inherited('font-size', mediumFontSize /* medium */, '123px'); diff --git a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical.html b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical.html new file mode 100644 index 00000000000..a06132feaa0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test flow-relative versions of overscroll-behavior properties</title> +<link rel="author" title="Majid Valipour"> +<link rel="help" href="https://drafts.csswg.org/css-overscroll-behavior-1/#overscroll-behavior-longhands-logical"> +<link rel="help" href="https://drafts.csswg.org/css-logical/#box"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +div { + overscroll-behavior-block: contain; + overscroll-behavior-inline: none; +} +#horizontal { + writing-mode: horizontal-tb; +} +#vertical { + writing-mode: vertical-rl; +} +#horizontalreversed { + writing-mode: horizontal-tb; + direction: rtl; +} +</style> +<body> + <div id="horizontal"></div> + <div id="vertical"></div> + <div id="horizontalreversed"></div> +</body> + +<script> +test(function() { + var element = document.getElementById("horizontal"); + assert_equals(getComputedStyle(element).overscrollBehaviorX, "none"); + assert_equals(getComputedStyle(element).overscrollBehaviorY, "contain"); +}, "Logical overscroll-behavior maps correctly when element has horizontal-tb writing mode"); + +test(function() { + var element = document.getElementById("vertical"); + assert_equals(getComputedStyle(element).overscrollBehaviorX, "contain"); + assert_equals(getComputedStyle(element).overscrollBehaviorY, "none"); +}, "Logical overscroll-behavior maps correctly when element has vertical-rl writing mode"); + +test(function() { + var element = document.getElementById("horizontalreversed"); + assert_equals(getComputedStyle(element).overscrollBehaviorX, "none"); + assert_equals(getComputedStyle(element).overscrollBehaviorY, "contain"); +}, "Logical overscroll-behavior maps correctly when element has horizontal-tb writing mode and is not affected by rtl direction"); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html index af117f19f90..b587ec5cff2 100644 --- a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html +++ b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed.html @@ -6,6 +6,8 @@ <link rel="help" href="https://drafts.csswg.org/css-overscroll-behavior/#overscroll-behavior-properties"> <meta name="assert" content="overscroll-behavior-x computed value is as specified."> <meta name="assert" content="overscroll-behavior-y computed value is as specified."> +<meta name="assert" content="overscroll-behavior-inline computed value is as specified."> +<meta name="assert" content="overscroll-behavior-block computed value is as specified."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/computed-testcommon.js"></script> @@ -14,7 +16,7 @@ <div id="target"></div> <script> 'use strict'; -for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) { +for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) { test_computed_value(property, "contain"); test_computed_value(property, "none"); test_computed_value(property, "auto"); diff --git a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-invalid.html b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-invalid.html index a29722f4657..02ada4576cc 100644 --- a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-invalid.html @@ -18,7 +18,7 @@ test_invalid_value("overscroll-behavior", "0"); test_invalid_value("overscroll-behavior", "contain contain contain"); -for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) { +for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) { test_invalid_value(property, "normal"); test_invalid_value(property, "0"); test_invalid_value(property, "contain contain"); diff --git a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid.html b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid.html index 9dbd4fbb8f9..45d90d485f3 100644 --- a/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid.html +++ b/tests/wpt/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid.html @@ -26,7 +26,7 @@ test_valid_value("overscroll-behavior", "none none", "none"); test_valid_value("overscroll-behavior", "auto auto", "auto"); -for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) { +for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) { test_valid_value(property, "contain"); test_valid_value(property, "none"); test_valid_value(property, "auto"); diff --git a/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html b/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html new file mode 100644 index 00000000000..59541dd679e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<link rel="help" href="https://crbug.com/982403" /> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="Tests the static position of an inline-level absolute-positioned element." /> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div style="overflow: hidden;"> + <div style="float: left; width: 100px; height: 50px; background: green;"></div> + <div style="clear: both; width: 100px; height: 50px; background: red;"> + <div style="position: absolute; display: inline; width: 100px; height: 50px; background: green;"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html b/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html new file mode 100644 index 00000000000..69416c1cd79 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<link rel="help" href="https://crbug.com/982403" /> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="Tests the static position of an inline-level absolute-positioned element." /> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div style="overflow: hidden;"> + <div style="float: left; width: 100px; height: 50px; background: green;"></div> + <div style="clear: both; width: 100px; height: 50px; background: red;"> + <div></div> + <div style="position: absolute; display: inline; width: 100px; height: 50px; background: green;"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html b/tests/wpt/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html index 0ab50d6be3e..5ef2009df18 100644 --- a/tests/wpt/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html +++ b/tests/wpt/web-platform-tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html @@ -6,7 +6,6 @@ <style> body { margin: 0px; - overflow: scroll; scroll-snap-type: both mandatory; } #content { @@ -22,6 +21,7 @@ body { width: 400px; height: 400px; background-color: lightblue; + overflow: hidden; scroll-snap-align: start; } #i1 { @@ -74,10 +74,13 @@ button.onclick = function() { if (!scrolled_x || !scrolled_y) return; - assert_equals(window.scrollX, target.offsetLeft, - "window.scrollX should be at snapped position."); - assert_equals(window.scrollY, target.offsetTop, - "window.scrollY should be at snapped position."); + snap_test.step(() => { + assert_equals(window.scrollX, target.offsetLeft, + "window.scrollX should be at snapped position."); + assert_equals(window.scrollY, target.offsetTop, + "window.scrollY should be at snapped position."); + }); + // To make the test result visible. var content = document.getElementById("content"); body.removeChild(content); diff --git a/tests/wpt/web-platform-tests/css/css-tables/absolute-tables-006.html b/tests/wpt/web-platform-tests/css/css-tables/absolute-tables-006.html new file mode 100644 index 00000000000..91439a69c9b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/absolute-tables-006.html @@ -0,0 +1,36 @@ +<!doctype html> +<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb"> +<link rel="match" href="../reference/ref-filled-green-100px-square-only.html"> +<link rel="bookmark" href="https://crbug.com/977507" /> +<meta name="flags" content="" /> +<meta name="assert" content="Abspos table works when it is dynamically added" /> + +<style> +table { + border-spacing: 0px; +} +td { + padding: 0px; +} +.outerTable { + height: 100px; + width: 100px; + position: relative; +} +.innerTable { + position: absolute; + top: 0px; + width: 100px; + height: 100%; + color: green; + background: green; +} +</style> +<p>Test passes if there is a filled green square.</p> +<table class=outerTable> + <td id=outerCell></td> +</table> +<script> +outerCell.innerHTML = "<table class=innerTable><td>some text</td></table>"; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html new file mode 100644 index 00000000000..fbfdadff0df --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Non-reference case for text-underline-offset</title> + <style> + #text{ + border: black dashed; + overflow-y: auto; + height: 5em; + width: 20em; + font: 20px/1 Ahem; + color: transparent; + text-decoration: red underline; + text-decoration-skip-ink: none; + } + </style> +</head> +<body> + <div>Test fails if there is a red line or scrollbar in the dashed area</div> + <div id="text">XXXXXXX</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html new file mode 100644 index 00000000000..5b321033d35 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-scroll-001-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Reference case for text-underline-offset</title> + <style> + #text{ + border: black dashed; + height: 5em; + width: 20em; + font: 20px/1 Ahem; + color: transparent; + } + </style> +</head> +<body> + <div>Test fails if there is a red line or scrollbar in the dashed area</div> + <div id="text">XXXXXXX</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html new file mode 100644 index 00000000000..7ab3b1dcd99 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-001-ref.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Reference case for text-underline-offset</title> + <style> + span{ + font: 20px/1 Ahem; + color: transparent; + writing-mode: vertical-lr; + text-decoration: green underline; + text-decoration-skip-ink: none; + text-underline-offset: 0; + } + </style> +</head> +<body> + <div>Test passes if the underline is vertical and close to the word left</div> + <div>left<span>XXXXX</span></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html new file mode 100644 index 00000000000..30a85700d8a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-vertical-002-ref.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Reference case for text-underline-offset</title> + <style> + div{ + font: 20px/1 Ahem; + margin-left: 5em; + } + #text{ + color: transparent; + writing-mode: sideways-lr; + text-decoration: green underline; + text-decoration-skip-ink: none; + text-underline-offset: 0; + margin-left: 5em; + } + </style> +</head> +<body> + <p>Test passes if the underline is further to the right of the text</p> + <div> + <p>XXXX</p> + <span id="text">XXXXX</span> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001.html new file mode 100644 index 00000000000..0a046fb33e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Test case for text-underline-offset</title> + <meta name="assert" content="text-underline-offset should influence the placement of the underline"> + <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset"> + <link rel="match" href="reference/text-underline-offset-scroll-001-ref.html"> + <link rel="mismatch" href="reference/text-underline-offset-scroll-001-notref.html"> + <style> + /* + * Testing to make sure that positioning the underline + * outside of the scrollframe does not create scrollable + * overflow and is not visible outside of the div + */ + #scroll{ + border: black dashed; + overflow-y: auto; + height: 5em; + width: 20em; + font: 20px/1 Ahem; + } + + #text{ + color: transparent; + text-decoration: red underline; + text-decoration-skip-ink: none; + text-underline-offset: 5em; + } + </style> +</head> +<body> + <div>Test fails if there is a red line or scrollbar in the dashed area</div> + <div id="scroll"><span id="text">XXXXXXX</span></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-001.html new file mode 100644 index 00000000000..8a7a5ac9d6a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-001.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Test case for text-underline-offset</title> + <meta name="assert" content="text-underline-offset should influence the placement of the underline"> + <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset"> + <link rel="match" href="reference/text-underline-offset-vertical-001-ref.html"> + <style> + span{ + margin-left: 5em; + font: 20px/1 Ahem; + color: transparent; + writing-mode: vertical-lr; + text-decoration: green underline; + text-decoration-skip-ink: none; + text-underline-offset: 5em; + } + </style> +</head> +<body> + <div>Test passes if the underline is vertical and close to the word left</div> + <div>left<span>XXXXX</span></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-002.html new file mode 100644 index 00000000000..74491c823dd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-vertical-002.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Test case for text-underline-offset</title> + <meta name="assert" content="text-underline-offset should influence the placement of the underline"> + <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset"> + <link rel="match" href="reference/text-underline-offset-vertical-002-ref.html"> + <style> + div{ + font: 20px/1 Ahem; + margin-left: 5em; + } + #text{ + color: transparent; + writing-mode: sideways-lr; + text-decoration: green underline; + text-decoration-skip-ink: none; + text-underline-offset: 5em; + } + </style> +</head> +<body> + <p>Test passes if the underline is further to the right of the text</p> + <div> + <p>XXXX</p> + <span id="text">XXXXX</span> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/support/inheritance-testcommon.js b/tests/wpt/web-platform-tests/css/support/inheritance-testcommon.js index 8d1645f9b11..38ac94eb12e 100644 --- a/tests/wpt/web-platform-tests/css/support/inheritance-testcommon.js +++ b/tests/wpt/web-platform-tests/css/support/inheritance-testcommon.js @@ -33,7 +33,8 @@ function assert_initial(property, initial) { * value. */ function assert_inherited(property, initial, other) { - assert_initial(property, initial); + if (initial) + assert_initial(property, initial); test(() => { const container = document.getElementById('container'); diff --git a/tests/wpt/web-platform-tests/element-timing/image-TAO-wildcard.sub.html b/tests/wpt/web-platform-tests/element-timing/image-TAO-wildcard.sub.html deleted file mode 100644 index 3af893a9890..00000000000 --- a/tests/wpt/web-platform-tests/element-timing/image-TAO-wildcard.sub.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE HTML> -<meta charset=utf-8> -<title>Element Timing: observe elements from same-origin iframes</title> -<body> -<style> -body { - margin: 0; -} -</style> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/element-timing-helpers.js"></script> -<script> - async_test((t) => { - if (!window.PerformanceElementTiming) { - assert_unreached("PerformanceElementTiming is not implemented"); - } - let beforeRender; - let img; - const img_src = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/' - + 'resources/TAOImage.py?tao=wildcard'; - const observer = new PerformanceObserver( - t.step_func_done((entryList) => { - assert_equals(entryList.getEntries().length, 1); - const entry = entryList.getEntries()[0]; - checkElement(entry, img_src, 'my_image', 'my_id', beforeRender, img); - // Assume viewport has size at least 20, so the element is fully visible. - checkRect(entry, [0, 20, 0, 20]); - checkNaturalSize(entry, 20, 20); - }) - ); - observer.observe({entryTypes: ['element']}); - // We add the image during onload to be sure that the observer is registered - // in time for it to observe the element timing. - // TODO(npm): change observer to use buffered flag. - window.onload = t.step_func(() => { - img = document.createElement('img'); - img.src = img_src; - img.setAttribute('elementtiming', 'my_image'); - img.setAttribute('id', 'my_id'); - img.onload = t.step_func(() => { - // After a short delay, assume that the entry was not dispatched. - t.step_timeout(() => { - assert_unreached("Should have received an entry!"); - t.done(); - }, 100); - }); - document.body.appendChild(img); - beforeRender = performance.now(); - }); - }, 'Cross-origin element with wildcard TAO is observed.'); -</script> - -</body> diff --git a/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html b/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html new file mode 100644 index 00000000000..83a7a5ca0a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Element Timing: observe cross origin images with various Timing-Allow-Origin headers</title> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/element-timing-helpers.js"></script> +<script> + async_test(t => { + if (!window.PerformanceElementTiming) { + assert_unreached("PerformanceElementTiming is not implemented"); + } + const beforeRender = performance.now(); + const remote_img = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/resources/TAOImage.py?' + + 'origin=' + window.location.origin +'&tao='; + const valid_tao = ['wildcard', 'origin', 'multi', 'multi_wildcard', 'match_origin', 'match_wildcard']; + function addImage(tao) { + const img = document.createElement('img'); + img.src = remote_img + tao; + img.setAttribute('elementtiming', tao); + img.id = 'id_' + tao; + document.body.appendChild(img); + } + valid_tao.forEach(tao => { + addImage(tao); + }); + const invalid_tao = ['null', 'space', 'uppercase']; + invalid_tao.forEach(tao => { + addImage(tao); + }); + let img_count = 0; + const total_images = valid_tao.length + invalid_tao.length; + new PerformanceObserver( + t.step_func(entryList => { + entryList.getEntries().forEach(entry => { + img_count++; + const tao = entry.identifier; + const img = document.getElementById('id_' + tao); + if (valid_tao.includes(tao)) { + checkElement(entry, remote_img + tao, tao, 'id_' + tao, beforeRender, img); + } else if (invalid_tao.includes(tao)) { + assert_equals(entry.startTime, 0, 'Entry with tao=' + tao + ' must have a startTime of 0'); + checkElement(entry, remote_img + tao, tao, 'id_' + tao, 0, img); + } + else { + assert_unreached('Should be in one of valid_tao OR invalid_tao'); + } + checkNaturalSize(entry, 20, 20); + if (img_count == total_images) + t.done(); + }); + }) + ).observe({type: 'element', buffered: true}); + }, 'Cross-origin elements with valid TAO have correct startTime, with invalid TAO have startTime set to 0.'); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py b/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py index 5d042c48941..1e0afb38278 100644 --- a/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py +++ b/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py @@ -1,7 +1,7 @@ import os def main(request, response): - origin = request.GET.first('origin', ''); + origin = request.GET.first('origin') if origin: response.headers.set('Access-Control-Allow-Origin', origin) diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/contains.json b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/contains.json deleted file mode 100644 index 90b3466688c..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "event-definitions-0", - "original_id": "event-definitions-0" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/contains.json b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/contains.json deleted file mode 100644 index 4ebca09bfda..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/unloading-documents/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "event-definition", - "original_id": "event-definition" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/contains.json b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/contains.json deleted file mode 100644 index d311dbb31e3..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "security-location", - "original_id": "security-location" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/offline/introduction-4/contains.json b/tests/wpt/web-platform-tests/html/browsers/offline/introduction-4/contains.json deleted file mode 100644 index 799caa23abe..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/offline/introduction-4/contains.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "supporting-offline-caching-for-legacy-applications", - "original_id": "supporting-offline-caching-for-legacy-applications" - }, - { - "id": "appcacheevents", - "original_id": "appcacheevents" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/offline/manifests/contains.json b/tests/wpt/web-platform-tests/html/browsers/offline/manifests/contains.json deleted file mode 100644 index 3fe509a781c..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/offline/manifests/contains.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "some-sample-manifests", - "original_id": "some-sample-manifests" - }, - { - "id": "writing-cache-manifests", - "original_id": "writing-cache-manifests" - }, - { - "id": "parsing-cache-manifests", - "original_id": "parsing-cache-manifests" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/contains.json b/tests/wpt/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/contains.json deleted file mode 100644 index 9f2ca3b6fa5..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "navigating-auxiliary-browsing-contexts-in-the-dom", - "original_id": "navigating-auxiliary-browsing-contexts-in-the-dom" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/contains.json b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/contains.json deleted file mode 100644 index 121284dca14..00000000000 --- a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "navigating-nested-browsing-contexts-in-the-dom", - "original_id": "navigating-nested-browsing-contexts-in-the-dom" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/dom/elements/content-models/contains.json b/tests/wpt/web-platform-tests/html/dom/elements/content-models/contains.json deleted file mode 100644 index 42f158d3674..00000000000 --- a/tests/wpt/web-platform-tests/html/dom/elements/content-models/contains.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "id": "kinds-of-content", - "original_id": "kinds-of-content", - "children": [ - { - "id": "metadata-content", - "original_id": "metadata-content" - }, - { - "id": "flow-content", - "original_id": "flow-content" - }, - { - "id": "sectioning-content", - "original_id": "sectioning-content" - }, - { - "id": "heading-content", - "original_id": "heading-content" - }, - { - "id": "phrasing-content", - "original_id": "phrasing-content" - }, - { - "id": "embedded-content", - "original_id": "embedded-content" - }, - { - "id": "interactive-content", - "original_id": "interactive-content" - }, - { - "id": "palpable-content", - "original_id": "palpable-content" - } - ] - }, - { - "id": "transparent-content-models", - "original_id": "transparent-content-models" - }, - { - "id": "paragraphs", - "original_id": "paragraphs" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/dom/elements/element-definitions/contains.json b/tests/wpt/web-platform-tests/html/dom/elements/element-definitions/contains.json deleted file mode 100644 index a942e85a239..00000000000 --- a/tests/wpt/web-platform-tests/html/dom/elements/element-definitions/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "attributes", - "original_id": "attributes" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/contains.json b/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/contains.json deleted file mode 100644 index c413488b504..00000000000 --- a/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/contains.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "id": "the-id-attribute", - "original_id": "the-id-attribute" - }, - { - "id": "the-title-attribute", - "original_id": "the-title-attribute" - }, - { - "id": "the-lang-and-xml-lang-attributes", - "original_id": "the-lang-and-xml:lang-attributes" - }, - { - "id": "the-translate-attribute", - "original_id": "the-translate-attribute" - }, - { - "id": "the-xml-base-attribute-xml-only", - "original_id": "the-xml:base-attribute-(xml-only)" - }, - { - "id": "the-dir-attribute", - "original_id": "the-dir-attribute" - }, - { - "id": "classes", - "original_id": "classes" - }, - { - "id": "the-style-attribute", - "original_id": "the-style-attribute" - }, - { - "id": "embedding-custom-non-visible-data-with-the-data-attributes", - "original_id": "embedding-custom-non-visible-data-with-the-data-*-attributes" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/dom/elements/wai-aria/contains.json b/tests/wpt/web-platform-tests/html/dom/elements/wai-aria/contains.json deleted file mode 100644 index 031cde580b2..00000000000 --- a/tests/wpt/web-platform-tests/html/dom/elements/wai-aria/contains.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "id": "aria-role-attribute", - "original_id": "aria-role-attribute" - }, - { - "id": "state-and-property-attributes", - "original_id": "state-and-property-attributes" - }, - { - "id": "sec-strong-native-semantics", - "original_id": "sec-strong-native-semantics" - }, - { - "id": "sec-implicit-aria-semantics", - "original_id": "sec-implicit-aria-semantics" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/infrastructure/common-dom-interfaces/collections/contains.json b/tests/wpt/web-platform-tests/html/infrastructure/common-dom-interfaces/collections/contains.json deleted file mode 100644 index b30f1d0d533..00000000000 --- a/tests/wpt/web-platform-tests/html/infrastructure/common-dom-interfaces/collections/contains.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "htmlallcollection", - "original_id": "htmlallcollection" - }, - { - "id": "htmlformcontrolscollection", - "original_id": "htmlformcontrolscollection" - }, - { - "id": "htmloptionscollection", - "original_id": "htmloptionscollection" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/dates-and-times/contains.json b/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/dates-and-times/contains.json deleted file mode 100644 index 5be31eb48f1..00000000000 --- a/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/dates-and-times/contains.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "id": "months", - "original_id": "months" - }, - { - "id": "dates", - "original_id": "dates" - }, - { - "id": "yearless-dates", - "original_id": "yearless-dates" - }, - { - "id": "times", - "original_id": "times" - }, - { - "id": "local-dates-and-times", - "original_id": "local-dates-and-times" - }, - { - "id": "time-zones", - "original_id": "time-zones" - }, - { - "id": "global-dates-and-times", - "original_id": "global-dates-and-times" - }, - { - "id": "weeks", - "original_id": "weeks" - }, - { - "id": "durations", - "original_id": "durations" - }, - { - "id": "vaguer-moments-in-time", - "original_id": "vaguer-moments-in-time" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/numbers/contains.json b/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/numbers/contains.json deleted file mode 100644 index 39a6ea00588..00000000000 --- a/tests/wpt/web-platform-tests/html/infrastructure/common-microsyntaxes/numbers/contains.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "id": "signed-integers", - "original_id": "signed-integers" - }, - { - "id": "non-negative-integers", - "original_id": "non-negative-integers" - }, - { - "id": "floating-point-numbers", - "original_id": "floating-point-numbers" - }, - { - "id": "percentages-and-dimensions", - "original_id": "percentages-and-dimensions" - }, - { - "id": "lists-of-integers", - "original_id": "lists-of-integers" - }, - { - "id": "lists-of-dimensions", - "original_id": "lists-of-dimensions" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/rendering/dimension-attributes.html b/tests/wpt/web-platform-tests/html/rendering/dimension-attributes.html index 80122ee0e73..bfc70ec1414 100644 --- a/tests/wpt/web-platform-tests/html/rendering/dimension-attributes.html +++ b/tests/wpt/web-platform-tests/html/rendering/dimension-attributes.html @@ -33,6 +33,7 @@ const valid_values = [ [ "1007", "1007px" ], [ " 00523 ", "523px" ], [ "200.25", "200.25px" ], + [ "200.7", "200.7px" ], [ "200.", "200px" ], [ "+200", "200px" ], [ "200in", "200px" ], @@ -99,39 +100,60 @@ function newImageInput() { * Array of tests. Each test consists of the following information: * * 1) An element creation function. - * 2) The name of the attribute to set (and CSS property to get). - * 3) A boolean indicating whether 0 is a valid value for the dimension + * 2) The name of the attribute to set + * 3) The name of the CSS property to get. + * 4) A boolean indicating whether 0 is a valid value for the dimension * attribute. */ const tests = [ - [ newElem("hr"), "width", true ], - [ newElem("iframe"), "width", true ], - [ newElem("iframe"), "height", true ], - [ newImageInput(), "width", true ], - [ newImageInput(), "height", true ], - [ newElem("marquee"), "width", true ], - [ newElem("marquee"), "height", true ], - [ newElem("video"), "width", true ], - [ newElem("video"), "height", true ], - [ newElem("object"), "width", true ], - [ newElem("object"), "height", true ], - [ newElem("embed"), "width", true ], - [ newElem("embed"), "height", true ], - [ newElem("img"), "width", true ], - [ newElem("img"), "height", true ], - [ newElem("td"), "width", false ], - [ newElem("td"), "height", false ], + [ newElem("hr"), "width", "width", true ], + [ newElem("iframe"), "width", "width", true ], + [ newElem("iframe"), "height", "height", true ], + [ newImageInput(), "width", "width", true ], + [ newImageInput(), "height", "height", true ], + [ newElem("marquee"), "width", "width", true ], + [ newElem("marquee"), "height", "height", true ], + [ newElem("video"), "width", "width", true ], + [ newElem("video"), "height", "height", true ], + [ newElem("object"), "width", "width", true ], + [ newElem("object"), "height", "height", true ], + [ newElem("embed"), "width", "width", true ], + [ newElem("embed"), "height", "height", true ], + [ newElem("img"), "width", "width", true ], + [ newElem("img"), "height", "height", true ], + [ newElem("td"), "width", "width", false ], + [ newElem("td"), "height", "height", false ], // https://github.com/whatwg/html/issues/4715 tracks the fact that for // <table width> and <table height> the "0 is valid" boolean should probably // be true. - [ newElem("table"), "width", false ], - [ newElem("table"), "height", false ], + [ newElem("table"), "width", "width", false ], + [ newElem("table"), "height", "height", false ], // https://github.com/whatwg/html/issues/4716 tracks the fact that for the // <tr height> case that "0 is valid" boolean should probably be true. - [ newElem("tr"), "height", false ], + [ newElem("tr"), "height", "height", false ], // https://github.com/whatwg/html/issues/4717 tracks the fact that for the // <col width> case that "0 is valid" boolean should probably be true. - [ newElem("col"), "width", false ], + [ newElem("col"), "width", "width", false ], + [ newElem("embed"), "hspace", "marginLeft", true ], + [ newElem("embed"), "hspace", "marginRight", true ], + [ newElem("embed"), "vspace", "marginTop", true ], + [ newElem("embed"), "vspace", "marginBottom", true ], + [ newElem("img"), "hspace", "marginLeft", true ], + [ newElem("img"), "hspace", "marginRight", true ], + [ newElem("img"), "vspace", "marginTop", true ], + [ newElem("img"), "vspace", "marginBottom", true ], + [ newElem("object"), "hspace", "marginLeft", true ], + [ newElem("object"), "hspace", "marginRight", true ], + [ newElem("object"), "vspace", "marginTop", true ], + [ newElem("object"), "vspace", "marginBottom", true ], + [ newImageInput(), "hspace", "marginLeft", true ], + [ newImageInput(), "hspace", "marginRight", true ], + [ newImageInput(), "vspace", "marginTop", true ], + [ newImageInput(), "vspace", "marginBottom", true ], + [ newElem("marquee"), "hspace", "marginLeft", true ], + [ newElem("marquee"), "hspace", "marginRight", true ], + [ newElem("marquee"), "vspace", "marginTop", true ], + [ newElem("marquee"), "vspace", "marginBottom", true ], ]; @@ -141,7 +163,7 @@ function style(element) { const container = document.getElementById("container"); -for (let [ctor, attr, zero_allowed] of tests) { +for (let [ctor, attr, prop, zero_allowed] of tests) { let valid, invalid; if (zero_allowed) { valid = valid_values_with_0; @@ -157,13 +179,13 @@ for (let [ctor, attr, zero_allowed] of tests) { elem.setAttribute(attr, value); assert_equals(elem.getAttribute(attr), value); container.appendChild(elem); - assert_equals(style(elem)[attr], result); - }, `<${elem.localName} ${attr}="${value}"> mapping`); + assert_equals(style(elem)[prop], result); + }, `<${elem.localName} ${attr}="${value}"> mapping to ${prop}`); } let default_elem = ctor(); container.appendChild(default_elem); - let defaultVal = style(default_elem)[attr]; + let defaultVal = style(default_elem)[prop]; default_elem.remove(); for (let value of invalid) { let elem = ctor(); @@ -172,8 +194,8 @@ for (let [ctor, attr, zero_allowed] of tests) { elem.setAttribute(attr, value); assert_equals(elem.getAttribute(attr), value); container.appendChild(elem); - assert_equals(style(elem)[attr], defaultVal); - }, `<${elem.localName} ${attr}="${value}"> mapping`); + assert_equals(style(elem)[prop], defaultVal); + }, `<${elem.localName} ${attr}="${value}"> mapping to ${prop}`); } } </script> diff --git a/tests/wpt/web-platform-tests/html/rendering/pixel-length-attributes.html b/tests/wpt/web-platform-tests/html/rendering/pixel-length-attributes.html index a66913afb84..888e6d0a3ff 100644 --- a/tests/wpt/web-platform-tests/html/rendering/pixel-length-attributes.html +++ b/tests/wpt/web-platform-tests/html/rendering/pixel-length-attributes.html @@ -1,11 +1,18 @@ <!doctype html> <meta charset=utf-8> +<!-- Creating iframes is slow in browsers --> +<meta name=timeout content=long> <title>Test handling of attributes that map to pixel length properties</title> <link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#maps-to-the-pixel-length-property"> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <body> + <div id="container" style="display: none"> + <img id="defaultImg"> + <object id="defaultObject"></object> + <input type="image" id="defaultInput"></input> + </div> <script> /* * This test tests @@ -69,13 +76,53 @@ const tests = [ [ createFrame, "marginwidth", "marginRight", document.body ], [ createFrame, "marginheight", "marginTop", document.body ], [ createFrame, "marginheight", "marginBottom", document.body ], + [ createBody, "marginwidth", "marginLeft", document.body ], + [ createBody, "marginwidth", "marginRight", document.body ], + [ createBody, "leftmargin", "marginLeft", document.body ], + [ createBody, "rightmargin", "marginRight", document.body ], + [ createBody, "marginheight", "marginTop", document.body ], + [ createBody, "marginheight", "marginBottom", document.body ], + [ createBody, "topmargin", "marginTop", document.body ], + [ createBody, "bottommargin", "marginBottom", document.body ], + [ newElem("img"), "border", "borderTopWidth", defaultImg ], + [ newElem("img"), "border", "borderRightWidth", defaultImg ], + [ newElem("img"), "border", "borderBottomWidth", defaultImg ], + [ newElem("img"), "border", "borderLeftWidth", defaultImg ], + [ newElem("object"), "border", "borderTopWidth", defaultObject ], + [ newElem("object"), "border", "borderRightWidth", defaultObject ], + [ newElem("object"), "border", "borderBottomWidth", defaultObject ], + [ newElem("object"), "border", "borderLeftWidth", defaultObject ], + [ newImageInput, "border", "borderTopWidth", defaultInput ], + [ newImageInput, "border", "borderRightWidth", defaultInput ], + [ newImageInput, "border", "borderBottomWidth", defaultInput ], + [ newImageInput, "border", "borderLeftWidth", defaultInput ], ]; +function newElem(name) { + return () => { + var elem = document.createElement(name); + document.getElementById("container").appendChild(elem); + return [ elem, elem, () => elem.remove() ]; + } +} + +function newImageInput() { + var elem = document.createElement("input"); + elem.type = "image"; + document.getElementById("container").appendChild(elem); + return [ elem, elem, () => elem.remove() ]; +} function createIframe() { let ifr = document.createElement("iframe"); document.body.appendChild(ifr); return [ ifr, ifr.contentDocument.body, () => ifr.remove() ]; + } + +function createBody() { + let ifr = document.createElement("iframe"); + document.body.appendChild(ifr); + return [ ifr.contentDocument.body, ifr.contentDocument.body, () => ifr.remove() ]; } function createFrame() { diff --git a/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html b/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html new file mode 100644 index 00000000000..3f457eb492f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html @@ -0,0 +1,91 @@ +<!doctype html> +<meta charset=utf-8> +<title>Test handling of attributes that should not be mapped into style, but + incorrectly were in some browsers</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<body> +<div id="container" style="display: none"></div> +<iframe></iframe> +<script> + /* + * We wand to test both quirks and standards mode. We can use the fact that + * our document is in standards mode and the about:blank iframe we have is in + * quirks mode. + */ +test(() => { + assert_equals(document.compatMode, "CSS1Compat") +}, "We should be in standards mode"); +const container = document.getElementById("container"); + +const frameDoc = document.querySelector("iframe").contentDocument; +test(() => { + assert_equals(frameDoc.compatMode, "BackCompat") +}, "Subframe should be in quirks mode"); +const frameContainer = frameDoc.createElement("div"); +frameContainer.style.display = "none"; +frameDoc.body.appendChild(frameContainer); + +function newElem(name) { + return (parent) => + parent.appendChild(parent.ownerDocument.createElement(name)); +} + + /* + * Array of tests. Each test consists of the following information: + * + * 1) An element creation function, which takes a parent element as an + * argument. + * 2) The name of the attribute to set + * 3) The name of the CSS property to get. + */ +const tests = [ + [ newElem("table"), "hspace", "marginLeft" ], + [ newElem("table"), "hspace", "marginRight" ], + [ newElem("table"), "vspace", "marginTop" ], + [ newElem("table"), "vspace", "marginBottom" ], + [ newElem("embed"), "border", "borderTopWidth" ], + [ newElem("embed"), "border", "borderRightWidth" ], + [ newElem("embed"), "border", "borderBottomWidth" ], + [ newElem("embed"), "border", "borderLeftWidth" ], + [ newElem("iframe"), "border", "borderTopWidth" ], + [ newElem("iframe"), "border", "borderRightWidth" ], + [ newElem("iframe"), "border", "borderBottomWidth" ], + [ newElem("iframe"), "border", "borderLeftWidth" ], + [ newElem("marquee"), "border", "borderTopWidth" ], + [ newElem("marquee"), "border", "borderRightWidth" ], + [ newElem("marquee"), "border", "borderBottomWidth" ], + [ newElem("marquee"), "border", "borderLeftWidth" ], + // Non-image input + [ newElem("input"), "border", "borderTopWidth" ], + [ newElem("input"), "border", "borderRightWidth" ], + [ newElem("input"), "border", "borderBottomWidth" ], + [ newElem("input"), "border", "borderLeftWidth" ], + [ newElem("input"), "width", "width" ], + [ newElem("input"), "height", "height" ], + [ newElem("input"), "hspace", "marginLeft" ], + [ newElem("input"), "hspace", "marginRight" ], + [ newElem("input"), "vspace", "marginTop" ], + [ newElem("input"), "vspace", "marginBottom" ], +]; + +function style(element) { + return element.ownerDocument.defaultView.getComputedStyle(element); +} + +for (let [ctor, attr, prop] of tests) { + for (let parent of [container, frameContainer]) { + let elem = ctor(parent); + test(function() { + let default_elem = ctor(parent); + this.add_cleanup(() => { + elem.remove(); + default_elem.remove(); + }); + elem.setAttribute(attr, "200"); + assert_equals(elem.getAttribute(attr), "200"); + assert_equals(style(elem)[prop], style(default_elem)[prop]); + }, `<${elem.localName} ${attr}> should not be mapped to style ${prop} in ${parent.ownerDocument.compatMode} mode`); + } +} +</script> diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/contains.json deleted file mode 100644 index 70a4546914b..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/contains.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "id": "standard-metadata-names", - "original_id": "standard-metadata-names" - }, - { - "id": "other-metadata-names", - "original_id": "other-metadata-names" - }, - { - "id": "pragma-directives", - "original_id": "pragma-directives" - }, - { - "id": "other-pragma-directives", - "original_id": "other-pragma-directives" - }, - { - "id": "charset", - "original_id": "charset" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/image-maps/contains.json b/tests/wpt/web-platform-tests/html/semantics/embedded-content/image-maps/contains.json deleted file mode 100644 index bf7a3ddd8de..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/image-maps/contains.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "authoring", - "original_id": "authoring" - }, - { - "id": "image-map-processing-model", - "original_id": "image-map-processing-model" - } -] diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/contains.json b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/contains.json deleted file mode 100644 index 9cf23296cee..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/contains.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - { - "id": "error-codes", - "original_id": "error-codes" - }, - { - "id": "location-of-the-media-resource", - "original_id": "location-of-the-media-resource" - }, - { - "id": "mime-types", - "original_id": "mime-types" - }, - { - "id": "network-states", - "original_id": "network-states" - }, - { - "id": "loading-the-media-resource", - "original_id": "loading-the-media-resource" - }, - { - "id": "offsets-into-the-media-resource", - "original_id": "offsets-into-the-media-resource" - }, - { - "id": "ready-states", - "original_id": "ready-states" - }, - { - "id": "playing-the-media-resource", - "original_id": "playing-the-media-resource" - }, - { - "id": "seeking", - "original_id": "seeking" - }, - { - "id": "media-resources-with-multiple-media-tracks", - "original_id": "media-resources-with-multiple-media-tracks", - "children": [ - { - "id": "audiotracklist-and-videotracklist-objects", - "original_id": "audiotracklist-and-videotracklist-objects" - }, - { - "id": "selecting-specific-audio-and-video-tracks-declaratively", - "original_id": "selecting-specific-audio-and-video-tracks-declaratively" - } - ] - }, - { - "id": "synchronising-multiple-media-elements", - "original_id": "synchronising-multiple-media-elements", - "children": [ - { - "id": "introduction-0", - "original_id": "introduction-0" - }, - { - "id": "media-controllers", - "original_id": "media-controllers" - }, - { - "id": "assigning-a-media-controller-declaratively", - "original_id": "assigning-a-media-controller-declaratively" - } - ] - }, - { - "id": "timed-text-tracks", - "original_id": "timed-text-tracks", - "children": [ - { - "id": "text-track-model", - "original_id": "text-track-model" - }, - { - "id": "sourcing-in-band-text-tracks", - "original_id": "sourcing-in-band-text-tracks" - }, - { - "id": "sourcing-out-of-band-text-tracks", - "original_id": "sourcing-out-of-band-text-tracks" - }, - { - "id": "guidelines-for-exposing-cues-in-various-formats-as-text-track-cues", - "original_id": "guidelines-for-exposing-cues-in-various-formats-as-text-track-cues" - }, - { - "id": "text-track-api", - "original_id": "text-track-api" - }, - { - "id": "text-tracks-describing-chapters", - "original_id": "text-tracks-describing-chapters" - }, - { - "id": "cue-events", - "original_id": "cue-events" - } - ] - }, - { - "id": "user-interface", - "original_id": "user-interface" - }, - { - "id": "time-ranges", - "original_id": "time-ranges" - }, - { - "id": "event-definitions", - "original_id": "event-definitions" - }, - { - "id": "mediaevents", - "original_id": "mediaevents" - }, - { - "id": "security-and-privacy-considerations", - "original_id": "security-and-privacy-considerations" - }, - { - "id": "best-practices-for-authors-using-media-elements", - "original_id": "best-practices-for-authors-using-media-elements" - }, - { - "id": "best-practices-for-implementors-of-media-elements", - "original_id": "best-practices-for-implementors-of-media-elements" - } -] diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/contains.json deleted file mode 100644 index 3f56f4fd8b3..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/contains.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "color-spaces-and-color-correction", - "original_id": "color-spaces-and-color-correction" - }, - { - "id": "security-with-canvas-elements", - "original_id": "security-with-canvas-elements" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/contains.json deleted file mode 100644 index 9ac6d3d4224..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/contains.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "id": "alt", - "original_id": "alt", - "children": [ - { - "id": "general-guidelines", - "original_id": "general-guidelines" - }, - { - "id": "a-link-or-button-containing-nothing-but-the-image", - "original_id": "a-link-or-button-containing-nothing-but-the-image" - }, - { - "id": "a-phrase-or-paragraph-with-an-alternative-graphical-representation-charts-diagrams-graphs-maps-illustrations", - "original_id": "a-phrase-or-paragraph-with-an-alternative-graphical-representation:-charts,-diagrams,-graphs,-maps,-illustrations" - }, - { - "id": "a-short-phrase-or-label-with-an-alternative-graphical-representation-icons-logos", - "original_id": "a-short-phrase-or-label-with-an-alternative-graphical-representation:-icons,-logos" - }, - { - "id": "text-that-has-been-rendered-to-a-graphic-for-typographical-effect", - "original_id": "text-that-has-been-rendered-to-a-graphic-for-typographical-effect" - }, - { - "id": "a-graphical-representation-of-some-of-the-surrounding-text", - "original_id": "a-graphical-representation-of-some-of-the-surrounding-text" - }, - { - "id": "a-purely-decorative-image-that-doesn-t-add-any-information", - "original_id": "a-purely-decorative-image-that-doesn't-add-any-information" - }, - { - "id": "a-group-of-images-that-form-a-single-larger-picture-with-no-links", - "original_id": "a-group-of-images-that-form-a-single-larger-picture-with-no-links" - }, - { - "id": "a-group-of-images-that-form-a-single-larger-picture-with-links", - "original_id": "a-group-of-images-that-form-a-single-larger-picture-with-links" - }, - { - "id": "a-key-part-of-the-content", - "original_id": "a-key-part-of-the-content" - }, - { - "id": "an-image-not-intended-for-the-user", - "original_id": "an-image-not-intended-for-the-user" - }, - { - "id": "guidance-for-markup-generators", - "original_id": "guidance-for-markup-generators" - }, - { - "id": "guidance-for-conformance-checkers", - "original_id": "guidance-for-conformance-checkers" - } - ] - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/contains.json deleted file mode 100644 index 62326d33f87..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/contains.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "id": "naming-form-controls-the-name-attribute", - "original_id": "naming-form-controls:-the-name-attribute" - }, - { - "id": "submitting-element-directionality-the-dirname-attribute", - "original_id": "submitting-element-directionality:-the-dirname-attribute" - }, - { - "id": "limiting-user-input-length-the-maxlength-attribute", - "original_id": "limiting-user-input-length:-the-maxlength-attribute" - }, - { - "id": "enabling-and-disabling-form-controls-the-disabled-attribute", - "original_id": "enabling-and-disabling-form-controls:-the-disabled-attribute" - }, - { - "id": "form-submission", - "original_id": "form-submission" - }, - { - "id": "autofocusing-a-form-control-the-autofocus-attribute", - "original_id": "autofocusing-a-form-control:-the-autofocus-attribute" - }, - { - "id": "input-modalities-the-enterkeyhint-attribute", - "original_id": "input-modalities:-the-enterkeyhint-attribute" - }, - { - "id": "input-modalities-the-inputmode-attribute", - "original_id": "input-modalities:-the-inputmode-attribute" - }, - { - "id": "autofilling-form-controls-the-autocomplete-attribute", - "original_id": "autofilling-form-controls:-the-autocomplete-attribute" - } -] diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/contains.json deleted file mode 100644 index 67e4c3b12e0..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/contains.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "id": "definitions", - "original_id": "definitions" - }, - { - "id": "constraint-validation", - "original_id": "constraint-validation" - }, - { - "id": "the-constraint-validation-api", - "original_id": "the-constraint-validation-api" - }, - { - "id": "security-forms", - "original_id": "security-forms" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/form-control-infrastructure/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/form-control-infrastructure/contains.json deleted file mode 100644 index 754a6901d23..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/form-control-infrastructure/contains.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "a-form-control-s-value", - "original_id": "a-form-control's-value" - }, - { - "id": "mutability", - "original_id": "mutability" - }, - { - "id": "association-of-controls-and-forms", - "original_id": "association-of-controls-and-forms" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/contains.json deleted file mode 100644 index f9d0d63bf68..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/contains.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "id": "introduction-2", - "original_id": "introduction-2" - }, - { - "id": "implicit-submission", - "original_id": "implicit-submission" - }, - { - "id": "form-submission-algorithm", - "original_id": "form-submission-algorithm" - }, - { - "id": "constructing-form-data-set", - "original_id": "constructing-form-data-set" - }, - { - "id": "url-encoded-form-data", - "original_id": "url-encoded-form-data" - }, - { - "id": "multipart-form-data", - "original_id": "multipart-form-data" - }, - { - "id": "plain-text-form-data", - "original_id": "plain-text-form-data" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/introduction-1/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/introduction-1/contains.json deleted file mode 100644 index 12a86681384..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/introduction-1/contains.json +++ /dev/null @@ -1,34 +0,0 @@ -[ - { - "id": "writing-a-form-s-user-interface", - "original_id": "writing-a-form's-user-interface" - }, - { - "id": "implementing-the-server-side-processing-for-a-form", - "original_id": "implementing-the-server-side-processing-for-a-form" - }, - { - "id": "configuring-a-form-to-communicate-with-a-server", - "original_id": "configuring-a-form-to-communicate-with-a-server" - }, - { - "id": "client-side-form-validation", - "original_id": "client-side-form-validation" - }, - { - "id": "enabling-client-side-automatic-filling-of-form-controls", - "original_id": "enabling-client-side-automatic-filling-of-form-controls" - }, - { - "id": "improving-the-user-experience-on-mobile-devices", - "original_id": "improving-the-user-experience-on-mobile-devices" - }, - { - "id": "the-difference-between-the-field-type-the-autofill-field-name-and-the-input-modality", - "original_id": "the-difference-between-the-field-type,-the-autofill-field-name,-and-the-input-modality" - }, - { - "id": "input-author-notes", - "original_id": "input-author-notes" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/contains.json deleted file mode 100644 index c2b780f0b8d..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/contains.json +++ /dev/null @@ -1,154 +0,0 @@ -[ - { - "id": "states-of-the-type-attribute", - "original_id": "states-of-the-type-attribute", - "children": [ - { - "id": "hidden-state-type-hidden", - "original_id": "hidden-state-(type=hidden)" - }, - { - "id": "text-type-text-state-and-search-state-type-search", - "original_id": "text-(type=text)-state-and-search-state-(type=search)" - }, - { - "id": "telephone-state-type-tel", - "original_id": "telephone-state-(type=tel)" - }, - { - "id": "url-state-type-url", - "original_id": "url-state-(type=url)" - }, - { - "id": "e-mail-state-type-email", - "original_id": "e-mail-state-(type=email)" - }, - { - "id": "password-state-type-password", - "original_id": "password-state-(type=password)" - }, - { - "id": "date-and-time-state-type-datetime", - "original_id": "date-and-time-state-(type=datetime)" - }, - { - "id": "date-state-type-date", - "original_id": "date-state-(type=date)" - }, - { - "id": "month-state-type-month", - "original_id": "month-state-(type=month)" - }, - { - "id": "week-state-type-week", - "original_id": "week-state-(type=week)" - }, - { - "id": "time-state-type-time", - "original_id": "time-state-(type=time)" - }, - { - "id": "local-date-and-time-state-type-datetime-local", - "original_id": "local-date-and-time-state-(type=datetime-local)" - }, - { - "id": "number-state-type-number", - "original_id": "number-state-(type=number)" - }, - { - "id": "range-state-type-range", - "original_id": "range-state-(type=range)" - }, - { - "id": "color-state-type-color", - "original_id": "color-state-(type=color)" - }, - { - "id": "checkbox-state-type-checkbox", - "original_id": "checkbox-state-(type=checkbox)" - }, - { - "id": "radio-button-state-type-radio", - "original_id": "radio-button-state-(type=radio)" - }, - { - "id": "file-upload-state-type-file", - "original_id": "file-upload-state-(type=file)" - }, - { - "id": "submit-button-state-type-submit", - "original_id": "submit-button-state-(type=submit)" - }, - { - "id": "image-button-state-type-image", - "original_id": "image-button-state-(type=image)" - }, - { - "id": "reset-button-state-type-reset", - "original_id": "reset-button-state-(type=reset)" - }, - { - "id": "button-state-type-button", - "original_id": "button-state-(type=button)" - } - ] - }, - { - "id": "input-impl-notes", - "original_id": "input-impl-notes" - }, - { - "id": "common-input-element-attributes", - "original_id": "common-input-element-attributes", - "children": [ - { - "id": "the-maxlength-attribute", - "original_id": "the-maxlength-attribute" - }, - { - "id": "the-size-attribute", - "original_id": "the-size-attribute" - }, - { - "id": "the-readonly-attribute", - "original_id": "the-readonly-attribute" - }, - { - "id": "the-required-attribute", - "original_id": "the-required-attribute" - }, - { - "id": "the-multiple-attribute", - "original_id": "the-multiple-attribute" - }, - { - "id": "the-pattern-attribute", - "original_id": "the-pattern-attribute" - }, - { - "id": "the-min-and-max-attributes", - "original_id": "the-min-and-max-attributes" - }, - { - "id": "the-step-attribute", - "original_id": "the-step-attribute" - }, - { - "id": "the-list-attribute", - "original_id": "the-list-attribute" - }, - { - "id": "the-placeholder-attribute", - "original_id": "the-placeholder-attribute" - } - ] - }, - { - "id": "common-input-element-apis", - "original_id": "common-input-element-apis" - }, - { - "id": "common-event-behaviors", - "original_id": "common-event-behaviors" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/commands/contains.json b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/commands/contains.json deleted file mode 100644 index b2ca2e771bd..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/commands/contains.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "id": "using-the-a-element-to-define-a-command", - "original_id": "using-the-a-element-to-define-a-command" - }, - { - "id": "using-the-button-element-to-define-a-command", - "original_id": "using-the-button-element-to-define-a-command" - }, - { - "id": "using-the-input-element-to-define-a-command", - "original_id": "using-the-input-element-to-define-a-command" - }, - { - "id": "using-the-option-element-to-define-a-command", - "original_id": "using-the-option-element-to-define-a-command" - }, - { - "id": "using-the-command-element-to-define-a-command", - "original_id": "using-the-command-element-to-define-a-command" - }, - { - "id": "using-the-command-attribute-on-command-elements-to-define-a-command-indirectly", - "original_id": "using-the-command-attribute-on-command-elements-to-define-a-command-indirectly" - }, - { - "id": "using-the-accesskey-attribute-on-a-label-element-to-define-a-command", - "original_id": "using-the-accesskey-attribute-on-a-label-element-to-define-a-command" - }, - { - "id": "using-the-accesskey-attribute-on-a-legend-element-to-define-a-command", - "original_id": "using-the-accesskey-attribute-on-a-legend-element-to-define-a-command" - }, - { - "id": "using-the-accesskey-attribute-to-define-a-command-on-other-elements", - "original_id": "using-the-accesskey-attribute-to-define-a-command-on-other-elements" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/contains.json deleted file mode 100644 index c865c858857..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "anchor-points", - "original_id": "anchor-points" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/links/downloading-resources/contains.json b/tests/wpt/web-platform-tests/html/semantics/links/downloading-resources/contains.json deleted file mode 100644 index b67f855cfb8..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/links/downloading-resources/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "hyperlink-auditing", - "original_id": "hyperlink-auditing" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/links/linktypes/contains.json b/tests/wpt/web-platform-tests/html/semantics/links/linktypes/contains.json deleted file mode 100644 index 55aa4f6774a..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/links/linktypes/contains.json +++ /dev/null @@ -1,68 +0,0 @@ -[ - { - "id": "rel-alternate", - "original_id": "rel-alternate" - }, - { - "id": "link-type-author", - "original_id": "link-type-author" - }, - { - "id": "link-type-bookmark", - "original_id": "link-type-bookmark" - }, - { - "id": "link-type-help", - "original_id": "link-type-help" - }, - { - "id": "rel-icon", - "original_id": "rel-icon" - }, - { - "id": "link-type-license", - "original_id": "link-type-license" - }, - { - "id": "link-type-nofollow", - "original_id": "link-type-nofollow" - }, - { - "id": "link-type-noreferrer", - "original_id": "link-type-noreferrer" - }, - { - "id": "link-type-prefetch", - "original_id": "link-type-prefetch" - }, - { - "id": "link-type-search", - "original_id": "link-type-search" - }, - { - "id": "link-type-stylesheet", - "original_id": "link-type-stylesheet" - }, - { - "id": "link-type-tag", - "original_id": "link-type-tag" - }, - { - "id": "sequential-link-types", - "original_id": "sequential-link-types", - "children": [ - { - "id": "link-type-next", - "original_id": "link-type-next" - }, - { - "id": "link-type-prev", - "original_id": "link-type-prev" - } - ] - }, - { - "id": "other-link-types", - "original_id": "other-link-types" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/contains.json deleted file mode 100644 index e31ce400312..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/contains.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "id": "scriptinglanguages", - "original_id": "scriptingLanguages" - }, - { - "id": "restrictions-for-contents-of-script-elements", - "original_id": "restrictions-for-contents-of-script-elements" - }, - { - "id": "inline-documentation-for-external-scripts", - "original_id": "inline-documentation-for-external-scripts" - }, - { - "id": "scripttagxslt", - "original_id": "scriptTagXSLT" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/sections/headings-and-sections/contains.json b/tests/wpt/web-platform-tests/html/semantics/sections/headings-and-sections/contains.json deleted file mode 100644 index a9fecf65b9d..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/sections/headings-and-sections/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "outlines", - "original_id": "outlines" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/tabular-data/processing-model-1/contains.json b/tests/wpt/web-platform-tests/html/semantics/tabular-data/processing-model-1/contains.json deleted file mode 100644 index be5a8fdfdd4..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/tabular-data/processing-model-1/contains.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "forming-a-table", - "original_id": "forming-a-table" - }, - { - "id": "header-and-data-cell-semantics", - "original_id": "header-and-data-cell-semantics" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-table-element/contains.json b/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-table-element/contains.json deleted file mode 100644 index ee89be21dc6..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-table-element/contains.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "table-descriptions-techniques", - "original_id": "table-descriptions-techniques" - }, - { - "id": "table-layout-techniques", - "original_id": "table-layout-techniques" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/syntax/parsing/contains.json b/tests/wpt/web-platform-tests/html/syntax/parsing/contains.json deleted file mode 100644 index 249c9fe014a..00000000000 --- a/tests/wpt/web-platform-tests/html/syntax/parsing/contains.json +++ /dev/null @@ -1,490 +0,0 @@ -[ - { - "id": "overview-of-the-parsing-model", - "original_id": "overview-of-the-parsing-model" - }, - { - "id": "the-input-byte-stream", - "original_id": "the-input-byte-stream", - "children": [ - { - "id": "determining-the-character-encoding", - "original_id": "determining-the-character-encoding" - }, - { - "id": "character-encodings-0", - "original_id": "character-encodings-0" - }, - { - "id": "changing-the-encoding-while-parsing", - "original_id": "changing-the-encoding-while-parsing" - }, - { - "id": "preprocessing-the-input-stream", - "original_id": "preprocessing-the-input-stream" - } - ] - }, - { - "id": "parse-state", - "original_id": "parse-state", - "children": [ - { - "id": "the-insertion-mode", - "original_id": "the-insertion-mode" - }, - { - "id": "the-stack-of-open-elements", - "original_id": "the-stack-of-open-elements" - }, - { - "id": "the-list-of-active-formatting-elements", - "original_id": "the-list-of-active-formatting-elements" - }, - { - "id": "the-element-pointers", - "original_id": "the-element-pointers" - }, - { - "id": "other-parsing-state-flags", - "original_id": "other-parsing-state-flags" - } - ] - }, - { - "id": "tokenization", - "original_id": "tokenization", - "children": [ - { - "id": "data-state", - "original_id": "data-state" - }, - { - "id": "character-reference-in-data-state", - "original_id": "character-reference-in-data-state" - }, - { - "id": "rcdata-state", - "original_id": "rcdata-state" - }, - { - "id": "character-reference-in-rcdata-state", - "original_id": "character-reference-in-rcdata-state" - }, - { - "id": "rawtext-state", - "original_id": "rawtext-state" - }, - { - "id": "script-data-state", - "original_id": "script-data-state" - }, - { - "id": "plaintext-state", - "original_id": "plaintext-state" - }, - { - "id": "tag-open-state", - "original_id": "tag-open-state" - }, - { - "id": "end-tag-open-state", - "original_id": "end-tag-open-state" - }, - { - "id": "tag-name-state", - "original_id": "tag-name-state" - }, - { - "id": "rcdata-less-than-sign-state", - "original_id": "rcdata-less-than-sign-state" - }, - { - "id": "rcdata-end-tag-open-state", - "original_id": "rcdata-end-tag-open-state" - }, - { - "id": "rcdata-end-tag-name-state", - "original_id": "rcdata-end-tag-name-state" - }, - { - "id": "rawtext-less-than-sign-state", - "original_id": "rawtext-less-than-sign-state" - }, - { - "id": "rawtext-end-tag-open-state", - "original_id": "rawtext-end-tag-open-state" - }, - { - "id": "rawtext-end-tag-name-state", - "original_id": "rawtext-end-tag-name-state" - }, - { - "id": "script-data-less-than-sign-state", - "original_id": "script-data-less-than-sign-state" - }, - { - "id": "script-data-end-tag-open-state", - "original_id": "script-data-end-tag-open-state" - }, - { - "id": "script-data-end-tag-name-state", - "original_id": "script-data-end-tag-name-state" - }, - { - "id": "script-data-escape-start-state", - "original_id": "script-data-escape-start-state" - }, - { - "id": "script-data-escape-start-dash-state", - "original_id": "script-data-escape-start-dash-state" - }, - { - "id": "script-data-escaped-state", - "original_id": "script-data-escaped-state" - }, - { - "id": "script-data-escaped-dash-state", - "original_id": "script-data-escaped-dash-state" - }, - { - "id": "script-data-escaped-dash-dash-state", - "original_id": "script-data-escaped-dash-dash-state" - }, - { - "id": "script-data-escaped-less-than-sign-state", - "original_id": "script-data-escaped-less-than-sign-state" - }, - { - "id": "script-data-escaped-end-tag-open-state", - "original_id": "script-data-escaped-end-tag-open-state" - }, - { - "id": "script-data-escaped-end-tag-name-state", - "original_id": "script-data-escaped-end-tag-name-state" - }, - { - "id": "script-data-double-escape-start-state", - "original_id": "script-data-double-escape-start-state" - }, - { - "id": "script-data-double-escaped-state", - "original_id": "script-data-double-escaped-state" - }, - { - "id": "script-data-double-escaped-dash-state", - "original_id": "script-data-double-escaped-dash-state" - }, - { - "id": "script-data-double-escaped-dash-dash-state", - "original_id": "script-data-double-escaped-dash-dash-state" - }, - { - "id": "script-data-double-escaped-less-than-sign-state", - "original_id": "script-data-double-escaped-less-than-sign-state" - }, - { - "id": "script-data-double-escape-end-state", - "original_id": "script-data-double-escape-end-state" - }, - { - "id": "before-attribute-name-state", - "original_id": "before-attribute-name-state" - }, - { - "id": "attribute-name-state", - "original_id": "attribute-name-state" - }, - { - "id": "after-attribute-name-state", - "original_id": "after-attribute-name-state" - }, - { - "id": "before-attribute-value-state", - "original_id": "before-attribute-value-state" - }, - { - "id": "attribute-value-double-quoted-state", - "original_id": "attribute-value-(double-quoted)-state" - }, - { - "id": "attribute-value-single-quoted-state", - "original_id": "attribute-value-(single-quoted)-state" - }, - { - "id": "attribute-value-unquoted-state", - "original_id": "attribute-value-(unquoted)-state" - }, - { - "id": "character-reference-in-attribute-value-state", - "original_id": "character-reference-in-attribute-value-state" - }, - { - "id": "after-attribute-value-quoted-state", - "original_id": "after-attribute-value-(quoted)-state" - }, - { - "id": "self-closing-start-tag-state", - "original_id": "self-closing-start-tag-state" - }, - { - "id": "bogus-comment-state", - "original_id": "bogus-comment-state" - }, - { - "id": "markup-declaration-open-state", - "original_id": "markup-declaration-open-state" - }, - { - "id": "comment-start-state", - "original_id": "comment-start-state" - }, - { - "id": "comment-start-dash-state", - "original_id": "comment-start-dash-state" - }, - { - "id": "comment-state", - "original_id": "comment-state" - }, - { - "id": "comment-end-dash-state", - "original_id": "comment-end-dash-state" - }, - { - "id": "comment-end-state", - "original_id": "comment-end-state" - }, - { - "id": "comment-end-bang-state", - "original_id": "comment-end-bang-state" - }, - { - "id": "doctype-state", - "original_id": "doctype-state" - }, - { - "id": "before-doctype-name-state", - "original_id": "before-doctype-name-state" - }, - { - "id": "doctype-name-state", - "original_id": "doctype-name-state" - }, - { - "id": "after-doctype-name-state", - "original_id": "after-doctype-name-state" - }, - { - "id": "after-doctype-public-keyword-state", - "original_id": "after-doctype-public-keyword-state" - }, - { - "id": "before-doctype-public-identifier-state", - "original_id": "before-doctype-public-identifier-state" - }, - { - "id": "doctype-public-identifier-double-quoted-state", - "original_id": "doctype-public-identifier-(double-quoted)-state" - }, - { - "id": "doctype-public-identifier-single-quoted-state", - "original_id": "doctype-public-identifier-(single-quoted)-state" - }, - { - "id": "after-doctype-public-identifier-state", - "original_id": "after-doctype-public-identifier-state" - }, - { - "id": "between-doctype-public-and-system-identifiers-state", - "original_id": "between-doctype-public-and-system-identifiers-state" - }, - { - "id": "after-doctype-system-keyword-state", - "original_id": "after-doctype-system-keyword-state" - }, - { - "id": "before-doctype-system-identifier-state", - "original_id": "before-doctype-system-identifier-state" - }, - { - "id": "doctype-system-identifier-double-quoted-state", - "original_id": "doctype-system-identifier-(double-quoted)-state" - }, - { - "id": "doctype-system-identifier-single-quoted-state", - "original_id": "doctype-system-identifier-(single-quoted)-state" - }, - { - "id": "after-doctype-system-identifier-state", - "original_id": "after-doctype-system-identifier-state" - }, - { - "id": "bogus-doctype-state", - "original_id": "bogus-doctype-state" - }, - { - "id": "cdata-section-state", - "original_id": "cdata-section-state" - }, - { - "id": "tokenizing-character-references", - "original_id": "tokenizing-character-references" - } - ] - }, - { - "id": "tree-construction", - "original_id": "tree-construction", - "children": [ - { - "id": "creating-and-inserting-elements", - "original_id": "creating-and-inserting-elements" - }, - { - "id": "closing-elements-that-have-implied-end-tags", - "original_id": "closing-elements-that-have-implied-end-tags" - }, - { - "id": "foster-parenting", - "original_id": "foster-parenting" - }, - { - "id": "parsing-main-inhtml", - "original_id": "parsing-main-inhtml", - "children": [ - { - "id": "the-initial-insertion-mode", - "original_id": "the-initial-insertion-mode" - }, - { - "id": "the-before-html-insertion-mode", - "original_id": "the-before-html-insertion-mode" - }, - { - "id": "the-before-head-insertion-mode", - "original_id": "the-before-head-insertion-mode" - }, - { - "id": "parsing-main-inhead", - "original_id": "parsing-main-inhead" - }, - { - "id": "parsing-main-inheadnoscript", - "original_id": "parsing-main-inheadnoscript" - }, - { - "id": "the-after-head-insertion-mode", - "original_id": "the-after-head-insertion-mode" - }, - { - "id": "parsing-main-inbody", - "original_id": "parsing-main-inbody" - }, - { - "id": "parsing-main-incdata", - "original_id": "parsing-main-incdata" - }, - { - "id": "parsing-main-intable", - "original_id": "parsing-main-intable" - }, - { - "id": "parsing-main-intabletext", - "original_id": "parsing-main-intabletext" - }, - { - "id": "parsing-main-incaption", - "original_id": "parsing-main-incaption" - }, - { - "id": "parsing-main-incolgroup", - "original_id": "parsing-main-incolgroup" - }, - { - "id": "parsing-main-intbody", - "original_id": "parsing-main-intbody" - }, - { - "id": "parsing-main-intr", - "original_id": "parsing-main-intr" - }, - { - "id": "parsing-main-intd", - "original_id": "parsing-main-intd" - }, - { - "id": "parsing-main-inselect", - "original_id": "parsing-main-inselect" - }, - { - "id": "parsing-main-inselectintable", - "original_id": "parsing-main-inselectintable" - }, - { - "id": "parsing-main-afterbody", - "original_id": "parsing-main-afterbody" - }, - { - "id": "parsing-main-inframeset", - "original_id": "parsing-main-inframeset" - }, - { - "id": "parsing-main-afterframeset", - "original_id": "parsing-main-afterframeset" - }, - { - "id": "the-after-after-body-insertion-mode", - "original_id": "the-after-after-body-insertion-mode" - }, - { - "id": "the-after-after-frameset-insertion-mode", - "original_id": "the-after-after-frameset-insertion-mode" - } - ] - }, - { - "id": "parsing-main-inforeign", - "original_id": "parsing-main-inforeign" - } - ] - }, - { - "id": "the-end", - "original_id": "the-end" - }, - { - "id": "coercing-an-html-dom-into-an-infoset", - "original_id": "coercing-an-html-dom-into-an-infoset" - }, - { - "id": "an-introduction-to-error-handling-and-strange-cases-in-the-parser", - "original_id": "an-introduction-to-error-handling-and-strange-cases-in-the-parser", - "children": [ - { - "id": "misnested-tags-b-i-b-i", - "original_id": "misnested-tags:-b-i-/b-/i" - }, - { - "id": "misnested-tags-b-p-b-p", - "original_id": "misnested-tags:-b-p-/b-/p" - }, - { - "id": "unexpected-markup-in-tables", - "original_id": "unexpected-markup-in-tables" - }, - { - "id": "scripts-that-modify-the-page-as-it-is-being-parsed", - "original_id": "scripts-that-modify-the-page-as-it-is-being-parsed" - }, - { - "id": "the-execution-of-scripts-that-are-moving-across-multiple-documents", - "original_id": "the-execution-of-scripts-that-are-moving-across-multiple-documents" - }, - { - "id": "unclosed-formatting-elements", - "original_id": "unclosed-formatting-elements" - } - ] - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/syntax/writing/elements-0/contains.json b/tests/wpt/web-platform-tests/html/syntax/writing/elements-0/contains.json deleted file mode 100644 index 39711a0a213..00000000000 --- a/tests/wpt/web-platform-tests/html/syntax/writing/elements-0/contains.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "id": "start-tags", - "original_id": "start-tags" - }, - { - "id": "end-tags", - "original_id": "end-tags" - }, - { - "id": "attributes-0", - "original_id": "attributes-0" - }, - { - "id": "optional-tags", - "original_id": "optional-tags" - }, - { - "id": "element-restrictions", - "original_id": "element-restrictions" - }, - { - "id": "cdata-rcdata-restrictions", - "original_id": "cdata-rcdata-restrictions" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/syntax/writing/text/contains.json b/tests/wpt/web-platform-tests/html/syntax/writing/text/contains.json deleted file mode 100644 index 870ff58a342..00000000000 --- a/tests/wpt/web-platform-tests/html/syntax/writing/text/contains.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "id": "newlines", - "original_id": "newlines" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/event-loops/contains.json b/tests/wpt/web-platform-tests/html/webappapis/scripting/event-loops/contains.json deleted file mode 100644 index 5d7e5e600e9..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/event-loops/contains.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "definitions-1", - "original_id": "definitions-1" - }, - { - "id": "processing-model-3", - "original_id": "processing-model-3" - }, - { - "id": "generic-task-sources", - "original_id": "generic-task-sources" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/contains.json b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/contains.json deleted file mode 100644 index 65f3062d2cd..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/contains.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "id": "event-handler-attributes", - "original_id": "event-handler-attributes" - }, - { - "id": "event-handlers-on-elements-document-objects-and-window-objects", - "original_id": "event-handlers-on-elements,-document-objects,-and-window-objects" - }, - { - "id": "event-firing", - "original_id": "event-firing" - }, - { - "id": "events-and-the-window-object", - "original_id": "events-and-the-window-object" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/contains.json b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/contains.json deleted file mode 100644 index b49029277f3..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/contains.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "definitions-0", - "original_id": "definitions-0" - }, - { - "id": "calling-scripts", - "original_id": "calling-scripts" - }, - { - "id": "creating-scripts", - "original_id": "creating-scripts" - }, - { - "id": "killing-scripts", - "original_id": "killing-scripts" - }, - { - "id": "runtime-script-errors", - "original_id": "runtime-script-errors", - "children": [ - { - "id": "runtime-script-errors-in-documents", - "original_id": "runtime-script-errors-in-documents" - } - ] - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html deleted file mode 100644 index 0d559999f3f..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>[[CanBlock]] in a dedicated worker agent</title> -<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> -<link rel="help" href="https://html.spec.whatwg.org/multipage/#dedicated-worker-agent"> -<link rel="help" href="https://tc39.github.io/ecma262/#sec-agentcansuspend"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script> -"use strict"; -fetch_tests_from_worker(new Worker("worker-that-requires-success.js")); -</script> diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html deleted file mode 100644 index 6bfd29e8c74..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html +++ /dev/null @@ -1,14 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>[[CanBlock]] in a service worker agent</title> -<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> -<link rel="help" href="https://html.spec.whatwg.org/multipage/#service-worker-agent"> -<link rel="help" href="https://tc39.github.io/ecma262/#sec-agentcansuspend"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> - -<script> -"use strict"; -service_worker_test("worker-that-requires-failure.js", "Service worker test setup"); -</script> diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html deleted file mode 100644 index beb7c6467b2..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>[[CanBlock]] in a shared worker agent</title> -<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> -<link rel="help" href="https://html.spec.whatwg.org/multipage/#shared-worker-agent"> -<link rel="help" href="https://tc39.github.io/ecma262/#sec-agentcansuspend"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script> -"use strict"; -fetch_tests_from_worker(new SharedWorker("worker-that-requires-success.js")); -</script> diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html deleted file mode 100644 index 369ce77b0b6..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>[[CanBlock]] in a similar-origin window agent</title> -<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> -<link rel="help" href="https://html.spec.whatwg.org/multipage/#similar-origin-window-agent"> -<link rel="help" href="https://tc39.github.io/ecma262/#sec-agentcansuspend"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<script> -"use strict"; - -const sab = new SharedArrayBuffer(16); -const ta = new Int32Array(sab); - -assert_throws(new TypeError(), () => { - Atomics.wait(ta, 0, 0, 10); -}, "Atomics.wait must throw in a window context"); - -done(); -</script> diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js index 586c8ba3876..a890b350198 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.js @@ -1,5 +1,4 @@ -"use strict"; -importScripts("/resources/testharness.js"); +// META: global=!default,window,serviceworker test(() => { const sab = new SharedArrayBuffer(16); @@ -9,5 +8,3 @@ test(() => { Atomics.wait(ta, 0, 0, 10); }); }, `[[CanBlock]] in a ${self.constructor.name}`); - -done(); diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js index 2ed54143ee5..290b44353c8 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.js @@ -1,5 +1,4 @@ -"use strict"; -importScripts("/resources/testharness.js"); +// META: global=!default,dedicatedworker,sharedworker test(() => { const sab = new SharedArrayBuffer(16); @@ -7,5 +6,3 @@ test(() => { assert_equals(Atomics.wait(ta, 0, 0, 10), "timed-out"); }, `[[CanBlock]] in a ${self.constructor.name}`); - -done(); diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/contains.json b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/contains.json deleted file mode 100644 index 441c24cec97..00000000000 --- a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/contains.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "id": "client-identification", - "original_id": "client-identification" - }, - { - "id": "custom-handlers", - "original_id": "custom-handlers" - }, - { - "id": "security-and-privacy", - "original_id": "security-and-privacy" - }, - { - "id": "sample-handler-impl", - "original_id": "sample-handler-impl" - }, - { - "id": "manually-releasing-the-storage-mutex", - "original_id": "manually-releasing-the-storage-mutex" - } -]
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html b/tests/wpt/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html index 5b222cdf277..5d58f1c5466 100644 --- a/tests/wpt/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html +++ b/tests/wpt/web-platform-tests/resource-timing/TAO-case-insensitive-null-opaque-origin.sub.html @@ -34,7 +34,7 @@ let frame_content = "data:text/html;utf8,<body>" + "};" + "let observer = new PerformanceObserver(observe);" + "observer.observe({ entryTypes: ['resource'] });" + - "fetch(url);" + + "fetch(url).then(r => r.text());" + "</" + "script></body>"; document.getElementById("frameContext").src = frame_content; </script> diff --git a/tests/wpt/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub.html b/tests/wpt/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub.html index c78e5900677..0a457637c51 100644 --- a/tests/wpt/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub.html +++ b/tests/wpt/web-platform-tests/resource-timing/TAO-null-opaque-origin.sub.html @@ -34,7 +34,7 @@ let frame_content = "data:text/html;utf8,<body>" + "};" + "let observer = new PerformanceObserver(observe);" + "observer.observe({ entryTypes: ['resource'] });" + - "fetch(url);" + + "fetch(url).then(r => r.text());" + "</" + "script></body>"; document.getElementById("frameContext").src = frame_content; </script> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html index 969446582e0..84d257e4f45 100644 --- a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html @@ -12,7 +12,7 @@ <script> let eventFired = false; let loadRandomResource = () => { - return fetch(window.location.href + "?" + Math.random()); + return fetch(window.location.href + "?" + Math.random()).then(r => r.text()); } setup(() => { diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/iframe-TAO-crossorigin-port.sub.html b/tests/wpt/web-platform-tests/resource-timing/resources/iframe-TAO-crossorigin-port.sub.html index 39f5d13054a..97d77fcc58a 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resources/iframe-TAO-crossorigin-port.sub.html +++ b/tests/wpt/web-platform-tests/resource-timing/resources/iframe-TAO-crossorigin-port.sub.html @@ -23,7 +23,7 @@ } let observer = new PerformanceObserver(observe); observer.observe({ entryTypes: ["resource"] }); - fetch(url); + fetch(url).then(r => r.text()); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js index e584ea37cb3..8257fbdc2b3 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js +++ b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js @@ -3,6 +3,19 @@ // This polyfill library implements the WebXR Test API as specified here: // https://github.com/immersive-web/webxr-test-api + +let default_standing = new gfx.mojom.Transform(); +default_standing.matrix = [1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 1.65, 0, 1]; +const default_stage_parameters = { + standingTransform: default_standing, + sizeX: 0, + sizeZ: 0, + bounds: null +}; + class ChromeXRTest { constructor() { this.mockVRService_ = new MockVRService(mojo.frameInterfaces); @@ -69,6 +82,17 @@ class MockVRService { this.runtimes_ = []; } + removeRuntime(device) { + let index = this.runtimes_.indexOf(device); + if (index >= 0) { + this.runtimes_.splice(index, 1); + if (this.client_) { + console.error("Notifying client"); + this.client_.onDeviceChanged(); + } + } + } + // VRService implementation. requestDevice() { if (this.runtimes_.length > 0) { @@ -147,6 +171,8 @@ class MockRuntime { this.pose_ = null; this.next_frame_id_ = 0; + this.bounds_ = null; + this.send_pose_reset_ = false; this.service_ = service; @@ -168,10 +194,27 @@ class MockRuntime { this.setViewerOrigin(fakeDeviceInit.viewerOrigin); } + if (fakeDeviceInit.localToFloorLevelTransform != null) { + this.setLocalToFloorLevelTransform(fakeDeviceInit.localToFloorLevelTransform); + } + + // This appropriately handles if the coordinates are null + this.setBoundsGeometry(fakeDeviceInit.boundsCoordinates); + this.setViews(fakeDeviceInit.views); } // Test API methods. + disconnect() { + this.service_.removeRuntime(this); + this.presentation_provider_.Close(); + if (this.sessionClient_.ptr.isBound()) { + this.sessionClient_.ptr.reset(); + } + + return Promise.resolve(); + } + setViews(views) { if (views) { let changed = false; @@ -210,7 +253,91 @@ class MockRuntime { this.pose_ = null; } + simulateVisibilityChange(visibilityState) { + // TODO(https://crbug.com/982099): Chrome currently does not have a way for + // devices to bubble up any form of visibilityChange. + } + + setBoundsGeometry(bounds) { + if (bounds == null) { + this.bounds_ = null; + } else if (bounds.length < 3) { + throw new Error("Bounds must have a length of at least 3"); + } else { + this.bounds_ = bounds; + } + + // We can only set bounds if we have stageParameters set; otherwise, we + // don't know the transform from local space to bounds space. + // We'll cache the bounds so that they can be set in the future if the + // floorLevel transform is set, but we won't update them just yet. + if (this.displayInfo_.stageParameters) { + this.displayInfo_.stageParameters.bounds = this.bounds_; + + if (this.sessionClient_.ptr.isBound()) { + this.sessionClient_.onChanged(this.displayInfo_); + } + } + } + + setLocalToFloorLevelTransform(transform) { + if (!this.displayInfo_.stageParameters) { + this.displayInfo_.stageParameters = default_stage_parameters; + this.displayInfo_.stageParameters.bounds = this.bounds_; + } + + this.displayInfo_.stageParameters.standingTransform = new gfx.mojom.Transform(); + this.displayInfo_.stageParameters.standingTransform.matrix = + this.getMatrixFromTransform(transform); + + if (this.sessionClient_.ptr.isBound()) { + this.sessionClient_.onChanged(this.displayInfo_); + } + } + + clearLocalToFloorLevelTransform() { + if (this.displayInfo_.stageParameters) { + this.displayInfo_.stageParameters = null; + + if (this.sessionClient_.ptr.isBound()) { + this.sessionClient_.onChanged(this.displayInfo_); + } + } + } + + simulateResetPose() { + this.send_pose_reset_ = true; + } + // Helper methods + getMatrixFromTransform(transform) { + let x = transform.orientation[0]; + let y = transform.orientation[1]; + let z = transform.orientation[2]; + let w = transform.orientation[3]; + + let m11 = 1.0 - 2.0 * (y * y + z * z); + let m21 = 2.0 * (x * y + z * w); + let m31 = 2.0 * (x * z - y * w); + + let m12 = 2.0 * (x * y - z * w); + let m22 = 1.0 - 2.0 * (x * x + z * z); + let m32 = 2.0 * (y * z + x * w); + + let m13 = 2.0 * (x * z + y * w); + let m23 = 2.0 * (y * z - x * w); + let m33 = 1.0 - 2.0 * (x * x + y * y); + + let m14 = transform.position[0]; + let m24 = transform.position[1]; + let m34 = transform.position[2]; + + // Column-major linearized order is expected. + return [m11, m21, m31, 0, + m12, m22, m32, 0, + m13, m23, m33, 0, + m14, m24, m34, 1]; + } getNonImmersiveDisplayInfo() { let displayInfo = this.getImmersiveDisplayInfo(); @@ -297,6 +424,8 @@ class MockRuntime { getFrameData() { if (this.pose_) { this.pose_.poseIndex++; + this.pose_.poseReset = this.send_pose_reset_; + this.send_pose_reset_ = false; } // Convert current document time to monotonic time. @@ -429,6 +558,11 @@ class MockXRPresentationProvider { this.submitFrameClient_.onSubmitFrameTransferred(true); this.submitFrameClient_.onSubmitFrameRendered(); } + + // Utility methods + Close() { + this.binding_.close(); + } } // This is a temporary workaround for the fact that spinning up webxr before diff --git a/tests/wpt/web-platform-tests/std-toast/actions.html b/tests/wpt/web-platform-tests/std-toast/actions.html new file mode 100644 index 00000000000..018ce21128b --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/actions.html @@ -0,0 +1,105 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Toast: action tests</title> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<main></main> + +<script type="module"> +import { testActionToast, testToastElement, assertActionButtonOnToast } from './resources/helpers.js'; +import { showToast } from 'std:elements/toast'; + +testActionToast((toast) => { + assert_equals(toast.action.textContent, 'action'); +}, 'the action element gets properly captured with this.action'); + +testActionToast((toast) => { + toast.innerHTML = `<button slot='action'>new action</button>` + assert_equals(toast.action.textContent, 'new action'); +}, 'changing the action button changes this.action'); + +testToastElement((toast) => { + assert_equals(toast.action, null); +}, 'the action property of a toast without an action is null'); + +testToastElement((toast) => { + toast.innerHTML = `<button slot="action" id="first">first</button> + <button slot="action" id="second">second</button>`; + + assert_equals(toast.action, toast.querySelector('#first')); +}, 'toast action returns the first item with the action slot'); + +test(() => { + const toast = showToast('Message', {action: 'action'}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); +}, 'passing an action via showToast creates a button'); + +test(() => { + const actionMarkup = '<b>strong text</b>'; + const toast = showToast('Message', {action: actionMarkup}); + const actionButton = toast.querySelector('button'); + + assert_equals(actionButton.textContent, actionMarkup); + assert_equals(toast.querySelector('b'), null); +}, 'passing markup to the action option represents as text'); + +test(() => { + const toast = document.createElement('std-toast'); + toast.textContent = 'Message'; + toast.show({action: 'action'}); + const actionButton = toast.querySelector('button'); + + assert_equals(actionButton, null); +}, 'passing action option to show does not create a button'); + +test(() => { + const toast = showToast('Message', {action: null}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); + assert_equals(actionButton.textContent, 'null'); +}, 'passing non-string (null) as action option stringifies it and creates an action button'); + +test(() => { + const toast = showToast('Message', {action: false}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); + assert_equals(actionButton.textContent, 'false'); +}, 'passing non-string (false) as action option stringifies it and creates an action button'); + +test(() => { + const toast = showToast('Message', {action: 0}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); + assert_equals(actionButton.textContent, '0'); +}, 'passing non-string (0) as action option stringifies it and creates an action button'); + +test(() => { + const toast = showToast('Message', {action: 1}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); + assert_equals(actionButton.textContent, '1'); +}, 'passing non-string (1) as action option stringifies it and creates an action button'); + +test(() => { + const toast = showToast('Message', {action: {field: 'value'}}); + const actionButton = toast.querySelector('button'); + + assertActionButtonOnToast(actionButton, toast); + assert_equals(actionButton.textContent, '[object Object]'); +}, 'passing non-string ({field: value}) as action option stringifies it and creates an action button'); + +test(() => { + const toast = showToast('Message', {}); + const actionButton = toast.querySelector('button'); + + assert_equals(actionButton, null); +}, 'passing non-string (undefined) as action option does not create an action button'); +</script> diff --git a/tests/wpt/web-platform-tests/std-toast/attributes.html b/tests/wpt/web-platform-tests/std-toast/attributes.html index 2aef41aea61..58a515dfc98 100644 --- a/tests/wpt/web-platform-tests/std-toast/attributes.html +++ b/tests/wpt/web-platform-tests/std-toast/attributes.html @@ -115,7 +115,7 @@ testToastElementAsync((t, toast) => { }, 'toggling open attribute does not start timeout'); testToastElement((toast) => { - const permitted_properties = ['constructor', 'show', 'hide', 'toggle', 'open']; + const permitted_properties = ['constructor', 'show', 'hide', 'toggle', 'open', 'action']; assert_array_equals(permitted_properties.sort(), Object.getOwnPropertyNames(toast.__proto__).sort()); }, 'toast only exposes certain properties'); </script> diff --git a/tests/wpt/web-platform-tests/std-toast/events-open.html b/tests/wpt/web-platform-tests/std-toast/events-open.html index 5442b36d261..a49414d2fce 100644 --- a/tests/wpt/web-platform-tests/std-toast/events-open.html +++ b/tests/wpt/web-platform-tests/std-toast/events-open.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Toast: Event tests</title> +<title>Toast: event (open) tests</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -13,9 +13,7 @@ import { testToastElement, EventCollector } from './resources/helpers.js'; testToastElement((toast) => { const counter = new EventCollector(); - toast.addEventListener('show', (e) => { - counter.getCallback()(e); - }); + toast.addEventListener('show', counter.getCallback()); toast.open = true; assert_equals(counter.getCount(), 1); diff --git a/tests/wpt/web-platform-tests/std-toast/events-showhide.html b/tests/wpt/web-platform-tests/std-toast/events-showhide.html index 73f1df4ae55..547f742f713 100644 --- a/tests/wpt/web-platform-tests/std-toast/events-showhide.html +++ b/tests/wpt/web-platform-tests/std-toast/events-showhide.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Toast: Event tests</title> +<title>Toast: event (show/hide) tests</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/std-toast/options.html b/tests/wpt/web-platform-tests/std-toast/options.html index 9cea97146bf..6d4a462d3a9 100644 --- a/tests/wpt/web-platform-tests/std-toast/options.html +++ b/tests/wpt/web-platform-tests/std-toast/options.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <meta charset="utf-8"> <meta name="timeout" content="long"> -<title>Toast: showToast tests</title> +<title>Toast: option tests</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/std-toast/resources/helpers.js b/tests/wpt/web-platform-tests/std-toast/resources/helpers.js index 41b7672ab1b..52d740c144a 100644 --- a/tests/wpt/web-platform-tests/std-toast/resources/helpers.js +++ b/tests/wpt/web-platform-tests/std-toast/resources/helpers.js @@ -53,6 +53,12 @@ export const assertToastNotShown = (toast) => { assert_false(toast.open); }; +export const assertActionButtonOnToast = (action, toast) => { + assert_equals(toast.action, action); + assert_equals(action.getAttribute('slot'), 'action'); + assert_equals(action, toast.querySelector('button')); +}; + export class EventCollector { events = []; diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/constants.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/constants.py index e248280ef36..357a2e6d348 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/constants.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/constants.py @@ -20,7 +20,7 @@ content_types = utils.invert_dict({ "text/css": ["css"], "text/event-stream": ["event_stream"], "text/html": ["htm", "html"], - "text/javascript": ["js"], + "text/javascript": ["js", "mjs"], "text/plain": ["txt", "md"], "text/vtt": ["vtt"], "video/mp4": ["mp4", "m4v"], diff --git a/tests/wpt/web-platform-tests/user-timing/measure-with-dict.html b/tests/wpt/web-platform-tests/user-timing/measure-with-dict.html index cdcc0ff1a36..8ba7b9fe67a 100644 --- a/tests/wpt/web-platform-tests/user-timing/measure-with-dict.html +++ b/tests/wpt/web-platform-tests/user-timing/measure-with-dict.html @@ -96,10 +96,16 @@ test(function() { this.add_cleanup(cleanupPerformanceTimeline); assert_throws(new TypeError(), function() { - self.performance.measure("wrongUsage2", {'start': 2}, 12); + self.performance.measure("optionsAndNumberEnd", {'start': 2}, 12); }, "measure should throw a TypeError when passed an options object and an end time"); assert_throws(new TypeError(), function() { - self.performance.measure("wrongUsage3", {'start': 2}, 'mark1'); + self.performance.measure("optionsAndMarkEnd", {'start': 2}, 'mark1'); }, "measure should throw a TypeError when passed an options object and an end mark"); + assert_throws(new TypeError(), function() { + self.performance.measure("negativeStartInOptions", {'start': -1}); + }, "measure cannot have a negative time stamp."); + assert_throws(new TypeError(), function() { + self.performance.measure("negativeEndInOptions", {'end': -1}); + }, "measure cannot have a negative time stamp for end."); }, "measure should throw a TypeError when passed an invalid argument combination"); </script> diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html index 5703a2a6c7f..2df5d03ac07 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html @@ -133,7 +133,7 @@ // Task: verify if the method chaining actually works. audit.define('verification', (task, should) => { // We pick the lowest sample rate allowed to run the test efficiently. - let context = new OfflineAudioContext(1, 128, 3000); + let context = new OfflineAudioContext(1, 128, 8000); let constantBuffer = createConstantBuffer(context, 1, 1.0); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html new file mode 100644 index 00000000000..fea042ca530 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-ctor.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> + +<html class="a"> + <head> + <title>MediaStreamAudioSourceNode</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body class="a"> + <div id="log"></div> + <script> + setup({explicit_done: true}); + // Wait until the DOM is ready to be able to get a reference to the canvas + // element. + window.addEventListener("load", function() { + const ac = new AudioContext(); + const emptyStream = new MediaStream(); + + test(function() { + assert_throws( + "InvalidStateError", + function() { + ac.createMediaStreamSource(emptyStream); + }, + `A MediaStreamAudioSourceNode can only be constructed via the factory + method with a MediaStream that has at least one track of kind "audio"` + ); + }, "MediaStreamAudioSourceNode created with factory method and MediaStream with no tracks"); + + test(function() { + assert_throws( + "InvalidStateError", + function() { + new MediaStreamAudioSourceNode(ac, { mediaStream: emptyStream }); + }, + `A MediaStreamAudioSourceNode can only be constructed via the constructor + with a MediaStream that has at least one track of kind "audio"` + ); + }, "MediaStreamAudioSourceNode created with constructor and MediaStream with no tracks"); + + const canvas = document.querySelector("canvas"); + const ctx = canvas.getContext("2d"); + const videoOnlyStream = canvas.captureStream(); + + test(function() { + assert_throws( + "InvalidStateError", + function() { + ac.createMediaStreamSource(videoOnlyStream); + }, + `A MediaStreamAudioSourceNode can only be constructed via the factory with a + MediaStream that has at least one track of kind "audio"` + ); + }, `MediaStreamAudioSourceNode created with the factory method and MediaStream with only a video track`); + + test(function() { + assert_throws( + "InvalidStateError", + function() { + new MediaStreamAudioSourceNode(ac, { + mediaStream: videoOnlyStream, + }); + }, + `A MediaStreamAudioSourceNode can only be constructed via the factory with a + MediaStream that has at least one track of kind "audio"` + ); + }, `MediaStreamAudioSourceNode created with constructor and MediaStream with only a video track`); + done(); + }); + </script> + </body> + <canvas></canvas> +</html> diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html new file mode 100644 index 00000000000..b61c318ff00 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html @@ -0,0 +1,135 @@ +<!DOCTYPE html> + +<html class="a"> + <head> + <title>MediaStreamAudioSourceNode</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body class="a"> + <div id="log"></div> + <script> + function binIndexForFrequency(frequency, analyser) { + return ( + 1 + + Math.round( + (frequency * analyser.fftSize) / analyser.context.sampleRate + ) + ); + } + + const t = async_test( + "MediaStreamAudioSourceNode captures the right track." + ); + const ac = new AudioContext(); + // Test that the right track is captured. Set up a MediaStream that has two + // tracks, one with a tone at 100Hz and one with a tone at 1000Hz. + const dest0 = ac.createMediaStreamDestination(); + const dest1 = ac.createMediaStreamDestination(); + const osc0 = ac.createOscillator(); + const osc1 = ac.createOscillator(); + osc0.frequency.value = 100; + osc1.frequency.value = 1000; + osc0.connect(dest0); + osc1.connect(dest1); + osc0.start(0); + osc1.start(0); + const track0 = dest0.stream.getAudioTracks()[0]; + const track0id = track0.id; + const track1 = dest1.stream.getAudioTracks()[0]; + const track1id = track1.id; + + let ids = [track0id, track1id]; + ids.sort(); + let targetFrequency; + let otherFrequency; + if (ids[0] == track0id) { + targetFrequency = 100; + otherFrequency = 1000; + } else { + targetFrequency = 1000; + otherFrequency = 100; + } + + let twoTrackMediaStream = new MediaStream(); + twoTrackMediaStream.addTrack(track0); + twoTrackMediaStream.addTrack(track1); + + const twoTrackSource = ac.createMediaStreamSource(twoTrackMediaStream); + const analyser = ac.createAnalyser(); + + twoTrackSource.connect(analyser); + + const indexToCheckForHighEnergy = binIndexForFrequency( + targetFrequency, + analyser + ); + const indexToCheckForLowEnergy = binIndexForFrequency( + otherFrequency, + analyser + ); + let frequencyData = new Float32Array(1024); + let checkCount = 0; + let numberOfRemovals = 0; + let stopped = false; + function analyse() { + analyser.getFloatFrequencyData(frequencyData); + // there should be high energy in the right bin, higher than 40dbfs because + // it's supposed to be a sine wave at 0dbfs + if (frequencyData[indexToCheckForHighEnergy] > -40 && !stopped) { + assert_true(true, "Correct track routed to the AudioContext."); + checkCount++; + } + if (stopped && frequencyData[indexToCheckForHighEnergy] < -40) { + assert_true( + true, + `After stopping the track, low energy is found in the + same bin` + ); + checkCount++; + } + // Don't assert(false) immediately here if the bin is still higher than + // -40db the analyzer node has a window and it's expecte that it takes some + // time for the volume of this bin to decrease. Similarly, -50 may seem + // quite high but is also a product of windowing. + if (frequencyData[indexToCheckForLowEnergy] < -50) { + assert_true(true, "Correct track routed to the AudioContext."); + } else { + assert_true( + false, + "Other track seem to be routed to the AudioContext?" + ); + } + if (checkCount > 5 && checkCount < 20) { + twoTrackMediaStream.getAudioTracks().forEach(track => { + if (track.id == ids[0]) { + numberOfRemovals++; + window.removedTrack = track; + twoTrackMediaStream.removeTrack(track); + } + }); + assert_true( + numberOfRemovals == 1, + `The mediastreamtrack can only be + removed once from the mediastream` + ); + } else if (checkCount >= 20 && checkCount < 30) { + window.removedTrack.stop(); + stopped = true; + } else if (checkCount >= 30) { + assert_true( + numberOfRemovals == 1, + `After removing the track from the + mediastream, it's still routed to the graph.` + ); + // After some time, consider that it worked. + t.done(); + return; + } + + t.step_timeout(analyse, 100); + } + t.step_timeout(analyse, 100); + </script> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py b/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py index 0c1917cff35..39c28c61216 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py @@ -52,6 +52,8 @@ def test_get_current_url_file_protocol(session, server_config): session.url = url response = get_current_url(session) + if response.status == 200 and response.body['value'].endswith('/'): + url += '/' assert_success(response, url) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/set_window_rect/set.py b/tests/wpt/web-platform-tests/webdriver/tests/set_window_rect/set.py index 81432f29377..adf265127c9 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/set_window_rect/set.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/set_window_rect/set.py @@ -75,15 +75,15 @@ def test_out_of_bounds(session, rect): def test_width_height_floats(session): - response = set_window_rect(session, {"width": 500.5, "height": 420}) + response = set_window_rect(session, {"width": 750.5, "height": 700}) value = assert_success(response) - assert value["width"] == 500 - assert value["height"] == 420 + assert value["width"] == 750 + assert value["height"] == 700 - response = set_window_rect(session, {"width": 500, "height": 450.5}) + response = set_window_rect(session, {"width": 750, "height": 700.5}) value = assert_success(response) - assert value["width"] == 500 - assert value["height"] == 450 + assert value["width"] == 750 + assert value["height"] == 700 def test_x_y_floats(session): @@ -147,10 +147,10 @@ def test_restore_from_minimized(session): session.window.minimize() assert document_hidden(session) - response = set_window_rect(session, {"width": 450, "height": 450}) + response = set_window_rect(session, {"width": 750, "height": 700}) value = assert_success(response) - assert value["width"] == 450 - assert value["height"] == 450 + assert value["width"] == 750 + assert value["height"] == 700 assert not document_hidden(session) @@ -160,10 +160,10 @@ def test_restore_from_maximized(session): session.window.maximize() assert session.window.size != original_size - response = set_window_rect(session, {"width": 400, "height": 400}) + response = set_window_rect(session, {"width": 750, "height": 700}) value = assert_success(response) - assert value["width"] == 400 - assert value["height"] == 400 + assert value["width"] == 750 + assert value["height"] == 700 def test_height_width(session): diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-bufferedAmount.html b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-bufferedAmount.html index b982b29b3b9..89f6b1b4d7a 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-bufferedAmount.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-bufferedAmount.html @@ -1,5 +1,6 @@ <!doctype html> <meta charset=utf-8> +<meta name="timeout" content="long"> <title>RTCDataChannel.prototype.bufferedAmount</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html new file mode 100644 index 00000000000..f15ffc52a88 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let immersiveTestName = "XRSession resetpose from a device properly fires off " + + "the right events for immersive sessions"; +let nonImmersiveTestName = "XRSession resetpose from a device properly fires off " + + "the right events for non-immersive sessions"; + +let watcherDone = new Event("watcherdone"); + +let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; + +let testFunction = function(session, fakeDeviceController, t) { + let resetPromise = session.requestReferenceSpace('local') + .then((refSpace) => { + let eventWatcher = new EventWatcher( + t, refSpace, ["reset", "watcherdone"]); + refSpace.addEventListener("reset", (event) => { + assert_equals(event.referenceSpace, refSpace); + refSpace.dispatchEvent(watcherDone); + }, false); + return eventWatcher.wait_for(["reset", "watcherdone"]); + }); + + fakeDeviceController.simulateResetPose(); + + // The triggered resetPose event should arrive after the next Animation Frame + session.requestAnimationFrame(() => {}); + + return resetPromise; +}; + +xr_session_promise_test( + immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); +xr_session_promise_test( + nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); + +</script> diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants.js index a846f1da75f..aed6ff9c809 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants.js @@ -37,16 +37,25 @@ const VALID_POINTER_OFFSET = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1]; const VALID_GRIP_WITH_POINTER_OFFSET = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 3, 1]; -const VALID_STAGE_TRANSFORM = - [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.0, 1.65, -1.0, 1]; +// A Valid Local to floor matrix/transform for when we don't care about specific +// values. Note that these should be identical, just different representations. +const VALID_LOCAL_TO_FLOOR_MATRIX = [1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 1, 1.65, -1, 1]; + +const VALID_LOCAL_TO_FLOOR_TRANSFORM = { + position: [1.0, 1.65, -1.0], + orientation: [0, 0, 0, 1] +}; const VALID_BOUNDS = [ - { x: 3.0, y: 0, z: -2.0 }, - { x: 3.5, y: 0, z: 0.0 }, - { x: 3.0, y: 0, z: 2.0 }, - { x: -3.0, y: 0, z: 2.0 }, - { x: -3.5, y: 0, z: 0.0 }, - { x: -3.0, y: 0, z: -2.0 } + { x: 3.0, z: -2.0 }, + { x: 3.5, z: 0.0 }, + { x: 3.0, z: 2.0 }, + { x: -3.0, z: 2.0 }, + { x: -3.5, z: 0.0 }, + { x: -3.0, z: -2.0 } ]; const VALID_RESOLUTION = { diff --git a/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html new file mode 100644 index 00000000000..cf1047c8abc --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<script src="resources/xr-test-asserts.js"></script> +<canvas></canvas> + +<script> +let testName = + "'XRBoundedReferenceSpace updates properly when the changes are applied"; + +let fakeDeviceInitParams = { + supportsImmersive: true, + views: VALID_VIEWS, + viewerOrigin: IDENTITY_TRANSFORM, + localToFloorLevelTransform: VALID_LOCAL_TO_FLOOR_TRANSFORM +}; + +let testFunction = function(session, fakeDeviceController, t) { + + return new Promise((resolve, reject) => { + session.requestReferenceSpace('bounded-floor') + .then((referenceSpace) => { + t.step(() => { + assert_unreached("Should not be able to get a bounded space until bounds set"); + }); + }).catch((err) => { + t.step(() => { + assert_equals(err.name, "NotSupportedError"); + }); + + function onFrame(time, xrFrame) { + // After setting the bounds explicitly, we should be able to get a + // reference space + session.requestReferenceSpace('bounded-floor') + .then((referenceSpace) => { + t.step(() => { + assert_equals(referenceSpace.boundsGeometry.length, VALID_BOUNDS.length); + for (i = 0; i < VALID_BOUNDS.length; ++i) { + let valid_point = VALID_BOUNDS[i]; + let bounds_point = referenceSpace.boundsGeometry[i]; + assert_equals(valid_point.x, bounds_point.x); + assert_equals(bounds_point.y, 0.0); + assert_equals(valid_point.z, bounds_point.z); + assert_equals(bounds_point.w, 1.0); + } + }); + + resolve(); + }); + } + + // Now set the bounds explicitly and check again on the next frame. + fakeDeviceController.setBoundsGeometry(VALID_BOUNDS); + session.requestAnimationFrame(onFrame); + }); + }); +}; + +xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr'); + +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_disconnect_ends.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_disconnect_ends.https.html new file mode 100644 index 00000000000..ace64e8f412 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_disconnect_ends.https.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <script src="resources/webxr_test_constants.js"></script> + <canvas></canvas> + + <script> + const testName = "Immersive session ends when device is disconnected"; + let watcherDone = new Event("watcherdone"); + const fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; + + let testFunction = function(session, testDeviceController, t) { + let sessionWatcher = new EventWatcher(t, session, ["end", "watcherdone"]); + let sessionPromise = sessionWatcher.wait_for(["end", "watcherdone"]); + + let xrWatcher = new EventWatcher(t, navigator.xr, ["devicechange"]); + let xrPromise = xrWatcher.wait_for(["devicechange"]); + + function onSessionEnd(event) { + t.step( () => { + assert_equals(event.session, session); + session.dispatchEvent(watcherDone); + }); + } + + session.addEventListener("end", onSessionEnd, false); + + // The javascript needs to yield so that the event registration processes. + t.step_timeout(() => { testDeviceController.disconnect(); }, 0); + + return Promise.all([sessionPromise, xrPromise]); + }; + + xr_session_promise_test(testName, testFunction, + fakeDeviceInitParams, 'immersive-vr'); + </script> +</body> diff --git a/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html new file mode 100644 index 00000000000..68f91fd3150 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<script src="resources/xr-test-asserts.js"></script> +<canvas></canvas> + +<script> +let immersiveTestName = "'floor-level' XRStationaryReferenceSpace updates properly when " + + "the transform changes for immersive sessions"; +let nonImmersiveTestName = "'floor-level' XRStationaryReferenceSpace updates properly when " + + "the transform changes for non-immersive sessions"; + +let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; + +let testFunction = function(session, fakeDeviceController, t) { + // Don't need to request a frame/allow the stage updates to propagate before + // requesting local-floor because if the stage transform is set it just won't + // be emulated on the first frame, and we wait a frame before checking. + return session.requestReferenceSpace('local-floor') + .then((referenceSpace) => new Promise((resolve, reject) => { + function onFirstFrame(time, xrFrame) { + // On the first frame where the pose has been initialized, the stage + // should be using an emulated frame of reference because it has no + // stageParameters yet. So the pose should be ~1.5 meters off the floor. + t.step( () => { + let pose = xrFrame.getViewerPose(referenceSpace); + + let poseMatrix = pose.transform.matrix; + assert_approx_equals(poseMatrix[12], 0.0, FLOAT_EPSILON); + assert_greater_than(poseMatrix[13], 1.0); + assert_approx_equals(poseMatrix[14], 0.0, FLOAT_EPSILON); + + fakeDeviceController.setLocalToFloorLevelTransform(VALID_LOCAL_TO_FLOOR_TRANSFORM); + + // Need to request one animation frame for the new stage transform to + // propagate before we check that it's what we expect. + session.requestAnimationFrame(() => { + session.requestAnimationFrame(onFrame); + }); + }); + } + + function onFrame(time, xrFrame) { + t.step( () => { + // Check that stage transform was updated. + let pose = xrFrame.getViewerPose(referenceSpace); + assert_not_equals(pose, null); + + let poseMatrix = pose.transform.matrix; + assert_matrix_approx_equals(poseMatrix, VALID_LOCAL_TO_FLOOR_MATRIX, FLOAT_EPSILON); + }); + + // Finished. + resolve(); + } + + // Need to wait one frame for the removal to propagate before we check that + // everything is at the expected emulated position. + session.requestAnimationFrame(() => { + session.requestAnimationFrame(onFirstFrame); + }); + })); +}; + +xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); +xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); + +</script> diff --git a/tests/wpt/web-platform-tests/xhr/responsexml-document-properties.htm b/tests/wpt/web-platform-tests/xhr/responsexml-document-properties.htm index 9071fab121f..c27a4482cd2 100644 --- a/tests/wpt/web-platform-tests/xhr/responsexml-document-properties.htm +++ b/tests/wpt/web-platform-tests/xhr/responsexml-document-properties.htm @@ -28,7 +28,7 @@ defaultView:null, body:null, doctype:null, - all:undefined, + all:HTMLAllCollection, cookie:'' } @@ -38,7 +38,11 @@ function runTest(name, value){ test(function(){ - assert_equals(client.responseXML[name], value) + if (name == "all") { + assert_equals(client.responseXML[name].__proto__, value.prototype) + } else { + assert_equals(client.responseXML[name], value) + } }, name) } |