From 27845c244d5d6e84f186a2d155b2d31baa544d96 Mon Sep 17 00:00:00 2001 From: James Graham Date: Sun, 4 Feb 2018 20:56:26 +0000 Subject: [PATCH] Bug 1435868 - Update web-platform-tests to revision 1e5122139897bc70789527960120354b8c640ef0, a=testonly MozReview-Commit-ID: L9ZlgNF4QF1 --HG-- rename : testing/web-platform/tests/webvr/idlharness.html => testing/web-platform/tests/webvr/idlharness.https.html --- testing/web-platform/meta/MANIFEST.json | 1127 +++++++++++++++-- testing/web-platform/meta/mozilla-sync | 4 +- testing/web-platform/tests/.travis.yml | 4 +- .../tests/2dcontext/imagebitmap/common.sub.js | 24 +- .../createImageBitmap-drawImage.html | 46 +- .../createImageBitmap-origin.sub.html | 12 + .../filereader_readAsBinaryString.html | 32 + .../FileAPI/url/url-in-tags-revoke.window.js | 33 + ...m-action-src-allowed-target-blank.sub.html | 34 + ...m-action-src-allowed-target-frame.sub.html | 34 + ...src-redirect-allowed-target-blank.sub.html | 34 + ...src-redirect-allowed-target-frame.sub.html | 34 + .../support/post-message-to-opener.sub.html | 3 + .../support/post-message-to-parent.sub.html | 3 + .../css-flexbox/anonymous-flex-item-004.html | 8 +- .../css-flexbox/anonymous-flex-item-005.html | 10 +- .../css-flexbox/anonymous-flex-item-006.html | 8 +- .../anonymous-flex-item-split-ref.html | 7 + .../tests/css/css-fonts/alternates-order.html | 6 +- ...nt-feature-settings-serialization-001.html | 6 +- .../css-fonts/font-variant-alternates-01.html | 4 +- .../css-fonts/font-variant-alternates-02.html | 4 +- .../css-fonts/font-variant-alternates-03.html | 4 +- .../css-fonts/font-variant-alternates-04.html | 4 +- .../css-fonts/font-variant-alternates-05.html | 4 +- .../css-fonts/font-variant-alternates-06.html | 4 +- .../css-fonts/font-variant-alternates-07.html | 4 +- .../css-fonts/font-variant-alternates-08.html | 4 +- .../css-fonts/font-variant-alternates-09.html | 4 +- .../css-fonts/font-variant-alternates-10.html | 4 +- .../css-fonts/font-variant-alternates-11.html | 4 +- .../css-fonts/font-variant-alternates-12.html | 4 +- .../css-fonts/font-variant-alternates-13.html | 4 +- .../css-fonts/font-variant-alternates-14.html | 4 +- .../css-fonts/font-variant-alternates-15.html | 4 +- .../css-fonts/font-variant-alternates-16.html | 4 +- .../css-fonts/font-variant-alternates-17.html | 4 +- .../css-fonts/font-variant-alternates-18.html | 4 +- .../font-variant-alternates-parsing.html | 2 +- ...alignment-sticky-positioned-items-001.html | 75 ++ ...alignment-sticky-positioned-items-002.html | 75 ++ ...alignment-sticky-positioned-items-001.html | 75 ++ ...alignment-sticky-positioned-items-002.html | 75 ++ .../grid-items/anonymous-grid-item-001.html | 8 + .../snap-at-user-scroll-end-manual.html | 86 ++ .../shape-outside-invalid-position.html | 28 + .../parsing/shape-outside-valid-position.html | 36 + .../perspective-origin-parsing-invalid.html | 34 + .../perspective-origin-parsing-valid.html | 36 + .../parsing/resources/parsing-testcommon.js | 18 +- .../parsing/translate-parsing-valid.html | 2 +- ...ansformed-tr-percent-height-child-ref.html | 38 + ...m-transformed-tr-percent-height-child.html | 48 + .../css/css-typed-om/resources/testhelper.js | 2 +- .../cssMathValue.tentative.html | 131 +- .../cssUnitValue.tentative.html | 12 - .../cssPositionValue-invalid.html | 67 + .../cssPositionValue.html | 61 + .../cssPositionValue.tentative.html | 65 - .../cssUnparsedValue-interface.html | 30 + .../cssUnparsedValue.html | 50 + .../cssUnparsedValue.tentative.html | 28 - .../cssUrlImageValue-interface.html | 22 + .../cssUrlImageValue-invalid.html | 17 + .../cssUrlImageValue.html | 81 ++ .../cssUrlImageValue.tentative.html | 73 -- .../cssVariableReferenceValue-interface.html | 26 + .../cssVariableReferenceValue-invalid.html | 41 + .../cssVariableReferenceValue.html | 45 + .../cssVariableReferenceValue.tentative.html | 42 - .../numeric-objects/arithmetic.tentative.html | 6 + .../cssUnitValue.tentative.html | 14 - .../declared/declared.tentative.html | 4 +- .../declared/test.tentative.html | 24 - .../the-stylepropertymap/interface.html | 2 +- .../css/cssom-view/scroll-no-layout-box.html | 21 + .../css/selectors/invalidation/matches.html | 91 +- ...uirks-mode-stylesheet-dynamic-add-001.html | 27 + ...abspos-staticpos-justify-self-001-ref.html | 8 + ...rid-abspos-staticpos-justify-self-001.html | 8 + ...abspos-staticpos-justify-self-002-ref.html | 8 + ...rid-abspos-staticpos-justify-self-002.html | 8 + ...os-staticpos-justify-self-img-001-ref.html | 12 + ...abspos-staticpos-justify-self-img-001.html | 12 + ...os-staticpos-justify-self-img-002-ref.html | 12 + ...abspos-staticpos-justify-self-img-002.html | 12 + ...os-staticpos-justify-self-rtl-001-ref.html | 8 + ...abspos-staticpos-justify-self-rtl-001.html | 8 + ...os-staticpos-justify-self-rtl-002-ref.html | 8 + ...abspos-staticpos-justify-self-rtl-002.html | 8 + ...os-staticpos-justify-self-rtl-003-ref.html | 8 + ...abspos-staticpos-justify-self-rtl-003.html | 8 + ...os-staticpos-justify-self-rtl-004-ref.html | 8 + ...abspos-staticpos-justify-self-rtl-004.html | 8 + ...staticpos-justify-self-vertWM-001-ref.html | 8 + ...pos-staticpos-justify-self-vertWM-001.html | 8 + ...staticpos-justify-self-vertWM-002-ref.html | 8 + ...pos-staticpos-justify-self-vertWM-002.html | 8 + ...staticpos-justify-self-vertWM-003-ref.html | 8 + ...pos-staticpos-justify-self-vertWM-003.html | 8 + ...staticpos-justify-self-vertWM-004-ref.html | 8 + ...pos-staticpos-justify-self-vertWM-004.html | 8 + .../multicol3/broken-column-rule-1-ref.html | 31 + .../multicol3/broken-column-rule-1.html | 34 + .../multicol3/reftest.list | 1 + .../individual-transform-1-ref.html | 90 ++ .../transforms/individual-transform-1.html | 100 ++ .../individual-transform-2-ref.html | 30 + .../transforms/individual-transform-2a.html | 32 + .../transforms/individual-transform-2b.html | 32 + .../transforms/individual-transform-2c.html | 32 + .../transforms/individual-transform-2d.html | 31 + .../transforms/individual-transform-2e.html | 31 + .../transforms/reftest.list | 9 + .../Document-createElement-svg.svg | 24 + .../Document-createElement.html | 12 + .../reactions/CSSStyleDeclaration.html | 16 +- .../reactions/HTMLElement.html | 2 - .../reactions/HTMLInputElement.html | 83 +- .../docs/_running-tests/chrome_android.md | 24 +- ...-attribute-redirect-on-load.https.sub.html | 30 + ...by-feature-policy-attribute.https.sub.html | 29 + ...e-allowed-by-feature-policy.https.sub.html | 32 + ...d-by-feature-policy.https.sub.html.headers | 1 + ...ture-default-feature-policy.https.sub.html | 33 + ...-disabled-by-feature-policy.https.sub.html | 32 + ...d-by-feature-policy.https.sub.html.headers | 1 + .../feature-policy-picture-in-picture.html | 10 + .../resources/picture-in-picture.js | 13 + .../tests/fetch/data-urls/README.md | 11 + .../tests/fetch/data-urls/base64.any.js | 16 + .../tests/fetch/data-urls/processing.any.js | 20 + .../fetch/data-urls/resources/base64.json | 79 ++ .../fetch/data-urls/resources/data-urls.json | 199 +++ .../global-attributes/title-manual.html | 8 + .../selection-start-end.html | 26 + .../image-click-form-data.html | 28 + .../resources/image-submit-click.html | 15 + .../the-input-element/type-change-state.html | 26 + .../tests/html/webappapis/atob/base64.html | 199 +-- .../promise-rejection-event-constructor.html | 2 +- .../web-platform/tests/interfaces/html.idl | 6 +- .../media-source/mediasource-endofstream.html | 6 +- .../disable-picture-in-picture.html | 61 + .../enter-picture-in-picture.html | 23 + .../exit-picture-in-picture.html | 20 + .../not-processing-user-gesture.html | 11 + .../picture-in-picture-element.html | 23 + .../request-picture-in-picture.html | 13 + .../resources/picture-in-picture-helpers.js | 21 + .../resource-timing/resource_TAO_origin.htm | 36 +- .../resource-timing/resource_TAO_zero.htm | 35 +- .../chromium/chooser_service.mojom.js | 12 +- .../tests/resources/chromium/device.mojom.js | 46 +- .../chromium/device_manager.mojom.js | 19 +- .../chromium/fake_bluetooth.mojom.js | 22 +- .../resources/chromium/string16.mojom.js | 4 +- .../tests/resources/chromium/uuid.mojom.js | 5 +- .../tests/resources/chromium/webusb-test.js | 4 +- .../tests/resources/idlharness.js | 2 +- ...inting-video-with-range-request.https.html | 93 ++ ...spond-with-body-loaded-in-chunk.https.html | 23 + ...pond-with-readable-stream-chunk.https.html | 23 + .../fetch-request-resources.https.html | 193 +-- .../request-end-to-end.https.html | 4 +- .../resources/client-navigate-worker.js | 5 - .../resources/fetch-access-control.py | 33 + .../fetch-event-network-fallback-worker.js | 3 + ...espond-with-body-loaded-in-chunk-worker.js | 7 + ...spond-with-readable-stream-chunk-worker.js | 40 + .../fetch-request-xhr-iframe.https.html | 2 +- ...nge-request-to-different-origins-worker.js | 40 + ...equest-with-different-cors-modes-worker.js | 60 + .../register-closed-window-iframe.html | 9 +- .../pathLength-positive-percentage.svg | 36 + .../pathLength-zero-percentage-ref.svg | 30 + .../distance/pathLength-zero-percentage.svg | 36 + .../web-platform/tests/tools/wpt/browser.py | 38 +- .../wptrunner/browsers/chrome_android.py | 26 +- .../tools/wptrunner/wptrunner/testrunner.py | 1 - .../resources/stereopanner-testing.js | 203 +++ .../no-dezippering.html | 261 ++++ .../stereopannernode-basic.html | 54 + .../stereopannernode-panning.html | 34 + .../waveshaper-copy-curve.html | 100 ++ .../waveshaper-limits.html | 110 ++ .../waveshaper-simple.html | 61 + .../waveshaper.html | 127 ++ .../web-platform/tests/webrtc/historical.html | 1 + ...{idlharness.html => idlharness.https.html} | 0 .../webvtt/api/VTTRegion/constructor.html | 1 - .../tests/webvtt/api/VTTRegion/lines.html | 9 +- 192 files changed, 5803 insertions(+), 1020 deletions(-) create mode 100644 testing/web-platform/tests/FileAPI/reading-data-section/filereader_readAsBinaryString.html create mode 100644 testing/web-platform/tests/FileAPI/url/url-in-tags-revoke.window.js create mode 100644 testing/web-platform/tests/content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html create mode 100644 testing/web-platform/tests/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html create mode 100644 testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html create mode 100644 testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html create mode 100644 testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-opener.sub.html create mode 100644 testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-parent.sub.html create mode 100644 testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-split-ref.html create mode 100644 testing/web-platform/tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html create mode 100644 testing/web-platform/tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html create mode 100644 testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html create mode 100644 testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html create mode 100644 testing/web-platform/tests/css/css-grid/grid-items/anonymous-grid-item-001.html create mode 100644 testing/web-platform/tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html create mode 100644 testing/web-platform/tests/css/css-shapes/parsing/shape-outside-invalid-position.html create mode 100644 testing/web-platform/tests/css/css-shapes/parsing/shape-outside-valid-position.html create mode 100644 testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-invalid.html create mode 100644 testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-valid.html create mode 100644 testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child-ref.html create mode 100644 testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.html delete mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html delete mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html delete mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html create mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html delete mode 100644 testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html delete mode 100644 testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html create mode 100644 testing/web-platform/tests/css/cssom-view/scroll-no-layout-box.html create mode 100644 testing/web-platform/tests/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html create mode 100644 testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html create mode 100644 testing/web-platform/tests/custom-elements/Document-createElement-svg.svg create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-default-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers create mode 100644 testing/web-platform/tests/feature-policy/resources/feature-policy-picture-in-picture.html create mode 100644 testing/web-platform/tests/feature-policy/resources/picture-in-picture.js create mode 100644 testing/web-platform/tests/fetch/data-urls/README.md create mode 100644 testing/web-platform/tests/fetch/data-urls/base64.any.js create mode 100644 testing/web-platform/tests/fetch/data-urls/processing.any.js create mode 100644 testing/web-platform/tests/fetch/data-urls/resources/base64.json create mode 100644 testing/web-platform/tests/fetch/data-urls/resources/data-urls.json create mode 100644 testing/web-platform/tests/html/dom/elements/global-attributes/title-manual.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-input-element/image-click-form-data.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-input-element/resources/image-submit-click.html create mode 100644 testing/web-platform/tests/picture-in-picture/disable-picture-in-picture.html create mode 100644 testing/web-platform/tests/picture-in-picture/enter-picture-in-picture.html create mode 100644 testing/web-platform/tests/picture-in-picture/exit-picture-in-picture.html create mode 100644 testing/web-platform/tests/picture-in-picture/not-processing-user-gesture.html create mode 100644 testing/web-platform/tests/picture-in-picture/picture-in-picture-element.html create mode 100644 testing/web-platform/tests/picture-in-picture/request-picture-in-picture.html create mode 100644 testing/web-platform/tests/picture-in-picture/resources/picture-in-picture-helpers.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/range-request-to-different-origins-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js create mode 100644 testing/web-platform/tests/svg/path/distance/pathLength-positive-percentage.svg create mode 100644 testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage-ref.svg create mode 100644 testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage.svg create mode 100644 testing/web-platform/tests/webaudio/resources/stereopanner-testing.js create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html create mode 100644 testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html rename testing/web-platform/tests/webvr/{idlharness.html => idlharness.https.html} (100%) diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index bdb94e8bc456..3b59ac8e7605 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -9349,6 +9349,12 @@ {} ] ], + "css/css-scroll-snap/snap-at-user-scroll-end-manual.html": [ + [ + "/css/css-scroll-snap/snap-at-user-scroll-end-manual.html", + {} + ] + ], "css/css-speech/Integer.html": [ [ "/css/css-speech/Integer.html", @@ -12727,6 +12733,12 @@ {} ] ], + "html/dom/elements/global-attributes/title-manual.html": [ + [ + "/html/dom/elements/global-attributes/title-manual.html", + {} + ] + ], "html/editing/activation/click-manual.html": [ [ "/html/editing/activation/click-manual.html", @@ -107822,7 +107834,7 @@ "/css/css-flexbox/anonymous-flex-item-004.html", [ [ - "/css/css-flexbox/anonymous-flex-item-ref.html", + "/css/css-flexbox/anonymous-flex-item-split-ref.html", "==" ] ], @@ -107834,7 +107846,7 @@ "/css/css-flexbox/anonymous-flex-item-005.html", [ [ - "/css/css-flexbox/anonymous-flex-item-ref.html", + "/css/css-flexbox/anonymous-flex-item-split-ref.html", "==" ] ], @@ -107846,7 +107858,7 @@ "/css/css-flexbox/anonymous-flex-item-006.html", [ [ - "/css/css-flexbox/anonymous-flex-item-ref.html", + "/css/css-flexbox/anonymous-flex-item-split-ref.html", "==" ] ], @@ -114725,6 +114737,18 @@ {} ] ], + "css/css-grid/grid-items/anonymous-grid-item-001.html": [ + [ + "/css/css-grid/grid-items/anonymous-grid-item-001.html", + [ + [ + "/css/css-flexbox/anonymous-flex-item-split-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html": [ [ "/css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html", @@ -142921,6 +142945,18 @@ {} ] ], + "css/css-transforms/transform-transformed-tr-percent-height-child.html": [ + [ + "/css/css-transforms/transform-transformed-tr-percent-height-child.html", + [ + [ + "/css/css-transforms/transform-transformed-tr-percent-height-child-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-transforms/transform-translate-001.html": [ [ "/css/css-transforms/transform-translate-001.html", @@ -167997,6 +168033,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/multicol-height-002.xht": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/multicol-height-002.xht", @@ -171717,6 +171765,78 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-containing-block-dynamic-1a.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-containing-block-dynamic-1a.html", @@ -178989,6 +179109,18 @@ {} ] ], + "svg/path/distance/pathLength-positive-percentage.svg": [ + [ + "/svg/path/distance/pathLength-positive-percentage.svg", + [ + [ + "/svg/path/distance/pathLength-positive-ref.svg", + "==" + ] + ], + {} + ] + ], "svg/path/distance/pathLength-positive.svg": [ [ "/svg/path/distance/pathLength-positive.svg", @@ -179001,6 +179133,18 @@ {} ] ], + "svg/path/distance/pathLength-zero-percentage.svg": [ + [ + "/svg/path/distance/pathLength-zero-percentage.svg", + [ + [ + "/svg/path/distance/pathLength-zero-percentage-ref.svg", + "==" + ] + ], + {} + ] + ], "svg/path/distance/pathLength-zero.svg": [ [ "/svg/path/distance/pathLength-zero.svg", @@ -210441,6 +210585,16 @@ {} ] ], + "content-security-policy/form-action/support/post-message-to-opener.sub.html": [ + [ + {} + ] + ], + "content-security-policy/form-action/support/post-message-to-parent.sub.html": [ + [ + {} + ] + ], "content-security-policy/frame-ancestors/support/frame-ancestors-and-x-frame-options.sub.html": [ [ {} @@ -235186,6 +235340,11 @@ {} ] ], + "css/css-flexbox/anonymous-flex-item-split-ref.html": [ + [ + {} + ] + ], "css/css-flexbox/auto-margins-001-ref.html": [ [ {} @@ -253711,6 +253870,11 @@ {} ] ], + "css/css-transforms/transform-transformed-tr-percent-height-child-ref.html": [ + [ + {} + ] + ], "css/css-transforms/transform-translate-ref.html": [ [ {} @@ -264481,6 +264645,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/moz-multicol3-column-balancing-break-inside-avoid-1-ref.html": [ [ {} @@ -265626,6 +265795,16 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html": [ + [ + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-zero-2-ref.html": [ [ {} @@ -268601,6 +268780,16 @@ {} ] ], + "feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers": [ + [ + {} + ] + ], + "feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers": [ + [ + {} + ] + ], "feature-policy/resources/autoplay.js": [ [ {} @@ -268621,6 +268810,11 @@ {} ] ], + "feature-policy/resources/feature-policy-picture-in-picture.html": [ + [ + {} + ] + ], "feature-policy/resources/feature-policy-usb.html": [ [ {} @@ -268641,6 +268835,11 @@ {} ] ], + "feature-policy/resources/picture-in-picture.js": [ + [ + {} + ] + ], "feature-policy/resources/redirect-on-load.html": [ [ {} @@ -269041,6 +269240,21 @@ {} ] ], + "fetch/data-urls/README.md": [ + [ + {} + ] + ], + "fetch/data-urls/resources/base64.json": [ + [ + {} + ] + ], + "fetch/data-urls/resources/data-urls.json": [ + [ + {} + ] + ], "fetch/http-cache/README.md": [ [ {} @@ -279251,6 +279465,11 @@ {} ] ], + "html/semantics/forms/the-input-element/resources/image-submit-click.html": [ + [ + {} + ] + ], "html/semantics/forms/the-label-element/.gitkeep": [ [ {} @@ -283716,6 +283935,11 @@ {} ] ], + "picture-in-picture/resources/picture-in-picture-helpers.js": [ + [ + {} + ] + ], "pointerevents/OWNERS": [ [ {} @@ -288461,6 +288685,11 @@ {} ] ], + "service-workers/service-worker/resources/fetch-event-network-fallback-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-event-respond-with-argument-iframe.html": [ [ {} @@ -288471,6 +288700,11 @@ {} ] ], + "service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-event-respond-with-custom-response-worker.js": [ [ {} @@ -288481,6 +288715,11 @@ {} ] ], + "service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-worker.js": [ [ {} @@ -288996,6 +289235,16 @@ {} ] ], + "service-workers/service-worker/resources/range-request-to-different-origins-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/redirect-worker.js": [ [ {} @@ -290166,6 +290415,11 @@ {} ] ], + "svg/path/distance/pathLength-zero-percentage-ref.svg": [ + [ + {} + ] + ], "svg/path/distance/pathLength-zero-ref.svg": [ [ {} @@ -291006,6 +291260,11 @@ {} ] ], + "webaudio/resources/stereopanner-testing.js": [ + [ + {} + ] + ], "webaudio/the-audio-api/the-analysernode-interface/.gitkeep": [ [ {} @@ -299839,6 +300098,12 @@ {} ] ], + "FileAPI/reading-data-section/filereader_readAsBinaryString.html": [ + [ + "/FileAPI/reading-data-section/filereader_readAsBinaryString.html", + {} + ] + ], "FileAPI/reading-data-section/filereader_readAsDataURL.html": [ [ "/FileAPI/reading-data-section/filereader_readAsDataURL.html", @@ -299903,6 +300168,12 @@ {} ] ], + "FileAPI/url/url-in-tags-revoke.window.js": [ + [ + "/FileAPI/url/url-in-tags-revoke.window.html", + {} + ] + ], "FileAPI/url/url-in-tags.window.js": [ [ "/FileAPI/url/url-in-tags.window.html", @@ -304685,6 +304956,18 @@ {} ] ], + "content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html": [ + [ + "/content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html", + {} + ] + ], + "content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html": [ + [ + "/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html", + {} + ] + ], "content-security-policy/form-action/form-action-src-allowed.sub.html": [ [ "/content-security-policy/form-action/form-action-src-allowed.sub.html", @@ -304721,6 +305004,18 @@ {} ] ], + "content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html": [ + [ + "/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html", + {} + ] + ], + "content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html": [ + [ + "/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html", + {} + ] + ], "content-security-policy/form-action/form-action-src-redirect-blocked.sub.html": [ [ "/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html", @@ -308599,6 +308894,18 @@ {} ] ], + "css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html", + {} + ] + ], + "css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html": [ + [ + "/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html", + {} + ] + ], "css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html": [ [ "/css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html", @@ -308707,6 +309014,18 @@ {} ] ], + "css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html", + {} + ] + ], + "css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html": [ + [ + "/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html", + {} + ] + ], "css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [ [ "/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html", @@ -309703,12 +310022,24 @@ {} ] ], + "css/css-shapes/parsing/shape-outside-invalid-position.html": [ + [ + "/css/css-shapes/parsing/shape-outside-invalid-position.html", + {} + ] + ], "css/css-shapes/parsing/shape-outside-invalid.html": [ [ "/css/css-shapes/parsing/shape-outside-invalid.html", {} ] ], + "css/css-shapes/parsing/shape-outside-valid-position.html": [ + [ + "/css/css-shapes/parsing/shape-outside-valid-position.html", + {} + ] + ], "css/css-shapes/parsing/shape-outside-valid.html": [ [ "/css/css-shapes/parsing/shape-outside-valid.html", @@ -311593,6 +311924,18 @@ {} ] ], + "css/css-transforms/parsing/perspective-origin-parsing-invalid.html": [ + [ + "/css/css-transforms/parsing/perspective-origin-parsing-invalid.html", + {} + ] + ], + "css/css-transforms/parsing/perspective-origin-parsing-valid.html": [ + [ + "/css/css-transforms/parsing/perspective-origin-parsing-valid.html", + {} + ] + ], "css/css-transforms/parsing/rotate-parsing-invalid.html": [ [ "/css/css-transforms/parsing/rotate-parsing-invalid.html", @@ -312037,9 +312380,15 @@ {} ] ], - "css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html": [ + "css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html": [ [ - "/css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html", + "/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssPositionValue.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssPositionValue.html", {} ] ], @@ -312073,21 +312422,51 @@ {} ] ], - "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html": [ + "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html": [ [ - "/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html", + "/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html", {} ] ], - "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html": [ + "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html": [ [ - "/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html", + "/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html", {} ] ], - "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html": [ + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html": [ [ - "/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html", + "/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html", {} ] ], @@ -312277,12 +312656,6 @@ {} ] ], - "css/css-typed-om/the-stylepropertymap/declared/test.tentative.html": [ - [ - "/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html", - {} - ] - ], "css/css-typed-om/the-stylepropertymap/declared/update.tentative.html": [ [ "/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html", @@ -313315,6 +313688,12 @@ {} ] ], + "css/cssom-view/scroll-no-layout-box.html": [ + [ + "/css/cssom-view/scroll-no-layout-box.html", + {} + ] + ], "css/cssom-view/scrollIntoView-scrollMargin.html": [ [ "/css/cssom-view/scrollIntoView-scrollMargin.html", @@ -314353,6 +314732,12 @@ {} ] ], + "css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html": [ + [ + "/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html", + {} + ] + ], "css/selectors/invalidation/selectorText-dynamic-001.html": [ [ "/css/selectors/invalidation/selectorText-dynamic-001.html", @@ -314383,6 +314768,12 @@ {} ] ], + "custom-elements/Document-createElement-svg.svg": [ + [ + "/custom-elements/Document-createElement-svg.svg", + {} + ] + ], "custom-elements/Document-createElement.html": [ [ "/custom-elements/Document-createElement.html", @@ -319013,6 +319404,46 @@ {} ] ], + "feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [ + [ + "/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html", + { + "testdriver": true + } + ] + ], + "feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html": [ + [ + "/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html", + { + "testdriver": true + } + ] + ], + "feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html": [ + [ + "/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html", + { + "testdriver": true + } + ] + ], + "feature-policy/picture-in-picture-default-feature-policy.https.sub.html": [ + [ + "/feature-policy/picture-in-picture-default-feature-policy.https.sub.html", + { + "testdriver": true + } + ] + ], + "feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html": [ + [ + "/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html", + { + "testdriver": true + } + ] + ], "fetch/api/abort/cache.https.html": [ [ "/fetch/api/abort/cache.https.html", @@ -319991,6 +320422,26 @@ {} ] ], + "fetch/data-urls/base64.any.js": [ + [ + "/fetch/data-urls/base64.any.html", + {} + ], + [ + "/fetch/data-urls/base64.any.worker.html", + {} + ] + ], + "fetch/data-urls/processing.any.js": [ + [ + "/fetch/data-urls/processing.any.html", + {} + ], + [ + "/fetch/data-urls/processing.any.worker.html", + {} + ] + ], "fetch/http-cache/304-update.html": [ [ "/fetch/http-cache/304-update.html", @@ -327717,6 +328168,12 @@ {} ] ], + "html/semantics/forms/the-input-element/image-click-form-data.html": [ + [ + "/html/semantics/forms/the-input-element/image-click-form-data.html", + {} + ] + ], "html/semantics/forms/the-input-element/input-checkvalidity.html": [ [ "/html/semantics/forms/the-input-element/input-checkvalidity.html", @@ -344741,6 +345198,52 @@ {} ] ], + "picture-in-picture/disable-picture-in-picture.html": [ + [ + "/picture-in-picture/disable-picture-in-picture.html", + { + "testdriver": true + } + ] + ], + "picture-in-picture/enter-picture-in-picture.html": [ + [ + "/picture-in-picture/enter-picture-in-picture.html", + { + "testdriver": true + } + ] + ], + "picture-in-picture/exit-picture-in-picture.html": [ + [ + "/picture-in-picture/exit-picture-in-picture.html", + { + "testdriver": true + } + ] + ], + "picture-in-picture/not-processing-user-gesture.html": [ + [ + "/picture-in-picture/not-processing-user-gesture.html", + {} + ] + ], + "picture-in-picture/picture-in-picture-element.html": [ + [ + "/picture-in-picture/picture-in-picture-element.html", + { + "testdriver": true + } + ] + ], + "picture-in-picture/request-picture-in-picture.html": [ + [ + "/picture-in-picture/request-picture-in-picture.html", + { + "testdriver": true + } + ] + ], "pointerevents/extension/idlharness.html": [ [ "/pointerevents/extension/idlharness.html", @@ -354259,6 +354762,12 @@ {} ] ], + "service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https.html": [ + [ + "/service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https.html", + {} + ] + ], "service-workers/service-worker/fetch-canvas-tainting-video.https.html": [ [ "/service-workers/service-worker/fetch-canvas-tainting-video.https.html", @@ -354321,6 +354830,12 @@ {} ] ], + "service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html": [ + [ + "/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html", + {} + ] + ], "service-workers/service-worker/fetch-event-respond-with-custom-response.https.html": [ [ "/service-workers/service-worker/fetch-event-respond-with-custom-response.https.html", @@ -354333,6 +354848,12 @@ {} ] ], + "service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html": [ + [ + "/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html", + {} + ] + ], "service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html": [ [ "/service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html", @@ -358657,12 +359178,54 @@ {} ] ], + "webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html": [ + [ + "/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html", + {} + ] + ], + "webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html": [ + [ + "/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html", + {} + ] + ], + "webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html": [ + [ + "/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html", + {} + ] + ], "webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html": [ [ "/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html", {} ] ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html": [ + [ + "/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html", + {} + ] + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html": [ + [ + "/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html", + {} + ] + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html": [ + [ + "/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html", + {} + ] + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html": [ + [ + "/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html", + {} + ] + ], "webauthn/createcredential-badargs-rp.https.html": [ [ "/webauthn/createcredential-badargs-rp.https.html", @@ -361911,9 +362474,9 @@ {} ] ], - "webvr/idlharness.html": [ + "webvr/idlharness.https.html": [ [ - "/webvr/idlharness.html", + "/webvr/idlharness.https.html", {} ] ], @@ -384705,7 +385268,7 @@ "support" ], "./.travis.yml": [ - "ae17735a06f31093f06a10b643099cbedaa3c459", + "975f331eb3438e5b66ccd721e1afce796b6af0d5", "support" ], "./CONTRIBUTING.md": [ @@ -387225,11 +387788,11 @@ "testharness" ], "2dcontext/imagebitmap/common.sub.js": [ - "46df9fcac72992d9d47385bfd11854131bcff172", + "03f7c67a1001cdaf46dc5bccb4846ba7d6ab50cd", "support" ], "2dcontext/imagebitmap/createImageBitmap-drawImage.html": [ - "66c294061acec34452fa4d1e9d6743f8f6b2fdf9", + "adef50e6043c6ecb80bdc4a6b7f9d9a599a80656", "testharness" ], "2dcontext/imagebitmap/createImageBitmap-invalid-args.html": [ @@ -387237,7 +387800,7 @@ "testharness" ], "2dcontext/imagebitmap/createImageBitmap-origin.sub.html": [ - "ebd2cd88858411c9dbbcdad0ece647b39b25b368", + "adcaa1b9854555f0cbb804b09ab49f50a5199eb6", "testharness" ], "2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html": [ @@ -389020,6 +389583,10 @@ "66422d5cf81ba73c6bf700eb2e2d755f4d105a54", "testharness" ], + "FileAPI/reading-data-section/filereader_readAsBinaryString.html": [ + "9fc79f63665d48495059542fcb8250f6eb06f17d", + "testharness" + ], "FileAPI/reading-data-section/filereader_readAsDataURL.html": [ "52371f9c51952984ea5cb07e2a6e3d8dfcf50d16", "testharness" @@ -389112,6 +389679,10 @@ "b087f507b342f88240efcee2569da96fee469a5b", "testharness" ], + "FileAPI/url/url-in-tags-revoke.window.js": [ + "b1f54096cb0350066239ec1633be2be6ecb3af00", + "testharness" + ], "FileAPI/url/url-in-tags.window.js": [ "bf67cd8a24215953b0e68e1d046491c7863b05b6", "testharness" @@ -412944,6 +413515,14 @@ "1a4146819d11ae72ddfe1f1eb319aef992af7dda", "testharness" ], + "content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html": [ + "5f65ffa5272178924cff093f16cba217d859d1bb", + "testharness" + ], + "content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html": [ + "1f9935719cc4207260e99bfdfc34be717e115cef", + "testharness" + ], "content-security-policy/form-action/form-action-src-allowed.sub.html": [ "d0c2dcbb18201b72964f4da5f94b8c200fa02cad", "testharness" @@ -412972,10 +413551,26 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], + "content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html": [ + "91f76ecfc3c944449b6a8b886983f05e6dbe1ada", + "testharness" + ], + "content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html": [ + "4c76e058243d87f4fe6bc49755ce2ee77234e6df", + "testharness" + ], "content-security-policy/form-action/form-action-src-redirect-blocked.sub.html": [ "81d61061da04d7f1e9f4f64a4bd18734a736ca96", "testharness" ], + "content-security-policy/form-action/support/post-message-to-opener.sub.html": [ + "fc8ea73c4dcc9943430416c34278e29bd250d7b9", + "support" + ], + "content-security-policy/form-action/support/post-message-to-parent.sub.html": [ + "948f81f196891230c74999a169c14c84b1ba413b", + "support" + ], "content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html": [ "e96b19c03463de925f03a666a173e948c0908302", "testharness" @@ -481493,21 +482088,25 @@ "reftest" ], "css/css-flexbox/anonymous-flex-item-004.html": [ - "d27625d34f2efa147415ef4e78f01cdc154ea579", + "bb323a9ae5e802fb892d8c462bbd733837a6ddf0", "reftest" ], "css/css-flexbox/anonymous-flex-item-005.html": [ - "c967afaa14aff2a6d2a32346c12b3c1b4fbdc7c6", + "a6e054f825e7378729188f39a57b801113f7130f", "reftest" ], "css/css-flexbox/anonymous-flex-item-006.html": [ - "d3d0c005dc2b121906f40e9a093d0feec9182355", + "75b57bad81da6c233d359e7a78a0e7c94f6b8a9b", "reftest" ], "css/css-flexbox/anonymous-flex-item-ref.html": [ "e8b1580d36b15778ca903fefa1ccccaef31b099f", "support" ], + "css/css-flexbox/anonymous-flex-item-split-ref.html": [ + "b248e78a0255b923c4ed4aa269e65f53b6386bf4", + "support" + ], "css/css-flexbox/auto-margins-001-ref.html": [ "dfc6fe046906c564110225d01572aa6aa1e40858", "support" @@ -484421,7 +485020,7 @@ "support" ], "css/css-fonts/alternates-order.html": [ - "b4992b381f6a8f83ee043f379e614b43c7ead393", + "9232ad7768f5bea41d87469113b210b3c663750e", "reftest" ], "css/css-fonts/first-available-font-001-ref.html": [ @@ -484661,7 +485260,7 @@ "support" ], "css/css-fonts/font-feature-settings-serialization-001.html": [ - "51a64b41a9a6bc085804710cf3ab80d860964c71", + "d1032e08aee1e9a7d1309ad94bd5633535ce9315", "testharness" ], "css/css-fonts/font-features-across-space-1-ref.html": [ @@ -484901,7 +485500,7 @@ "support" ], "css/css-fonts/font-variant-alternates-01.html": [ - "445ff998bf052c1f04ab8e33002eedf391cb835d", + "e3518e03e8e02e2b4db6920a1b92c5dfe238e420", "reftest" ], "css/css-fonts/font-variant-alternates-02-ref.html": [ @@ -484909,7 +485508,7 @@ "support" ], "css/css-fonts/font-variant-alternates-02.html": [ - "e9d74f02812d6b947fd88ffe91838cdae65df4cb", + "ff563808733e638fed251bee552a91b4e0072ec6", "reftest" ], "css/css-fonts/font-variant-alternates-03-ref.html": [ @@ -484917,7 +485516,7 @@ "support" ], "css/css-fonts/font-variant-alternates-03.html": [ - "e4ab952f4a9c5f5421b3237f589c08c8f6c04509", + "6e96d53e6baa87241e24d3ff730e39f84d0b5117", "reftest" ], "css/css-fonts/font-variant-alternates-04-ref.html": [ @@ -484925,7 +485524,7 @@ "support" ], "css/css-fonts/font-variant-alternates-04.html": [ - "09306fe9ff6d99d7226811c84702fe451b680e0a", + "2317a9bcd1572a7376a51eb1deb39c5e47abfb7f", "reftest" ], "css/css-fonts/font-variant-alternates-05-ref.html": [ @@ -484933,7 +485532,7 @@ "support" ], "css/css-fonts/font-variant-alternates-05.html": [ - "a40b09abdd8a3f31100184f9f13b1c65d93d6abc", + "79ef4afc32894f8ef4baa976fa75a83cb925d59c", "reftest" ], "css/css-fonts/font-variant-alternates-06-ref.html": [ @@ -484941,7 +485540,7 @@ "support" ], "css/css-fonts/font-variant-alternates-06.html": [ - "eb87b2a0af758871cc856a9ec2aa4e976716c293", + "e89fab4f312af29a434f941ce1327abfcbeba9d7", "reftest" ], "css/css-fonts/font-variant-alternates-07-ref.html": [ @@ -484949,7 +485548,7 @@ "support" ], "css/css-fonts/font-variant-alternates-07.html": [ - "caf337f548657c4e188aa477ccec4b8149d092bf", + "2789bde5b3274fe52484de0eb69d4c4e68f99da6", "reftest" ], "css/css-fonts/font-variant-alternates-08-ref.html": [ @@ -484957,7 +485556,7 @@ "support" ], "css/css-fonts/font-variant-alternates-08.html": [ - "f9fc6c2252064c94ba3e6120b3646faa0bb590f7", + "9c43206b0f1df015aec881da4517576f154c9ead", "reftest" ], "css/css-fonts/font-variant-alternates-09-ref.html": [ @@ -484965,7 +485564,7 @@ "support" ], "css/css-fonts/font-variant-alternates-09.html": [ - "75768372f5747e12bf569e40c1474f3341479552", + "f2ad17a464d0ff1afb1e971face18d0b70b0df81", "reftest" ], "css/css-fonts/font-variant-alternates-10-ref.html": [ @@ -484973,7 +485572,7 @@ "support" ], "css/css-fonts/font-variant-alternates-10.html": [ - "36ec29992f8a3de6a3679c8b89410c7c4fef6e41", + "07a02a19a3a4c34788408814668141fdcabeb5c3", "reftest" ], "css/css-fonts/font-variant-alternates-11-ref.html": [ @@ -484981,7 +485580,7 @@ "support" ], "css/css-fonts/font-variant-alternates-11.html": [ - "70b0db84986c8f982d0cc5fe08d997f7757924bc", + "74b5613071a8e5f2e46363fe9dbe2fff093060f3", "reftest" ], "css/css-fonts/font-variant-alternates-12-ref.html": [ @@ -484989,7 +485588,7 @@ "support" ], "css/css-fonts/font-variant-alternates-12.html": [ - "c173b400c5c247aa13d400efe7a0b7d0440a498c", + "ce637ee75a42b8cb4542c6d9fd888aeded9315af", "reftest" ], "css/css-fonts/font-variant-alternates-13-ref.html": [ @@ -484997,7 +485596,7 @@ "support" ], "css/css-fonts/font-variant-alternates-13.html": [ - "47ed224bd5c03bd2610521defe634776d25ae27f", + "08ebbe94136c784d32b9012cfbe5309641f34963", "reftest" ], "css/css-fonts/font-variant-alternates-14-ref.html": [ @@ -485005,7 +485604,7 @@ "support" ], "css/css-fonts/font-variant-alternates-14.html": [ - "e5d952170c8e4e4ee507550f20e06f4f02358aa7", + "21021ed09cba33880d09e09c8c4149fee09ab14a", "reftest" ], "css/css-fonts/font-variant-alternates-15-ref.html": [ @@ -485013,7 +485612,7 @@ "support" ], "css/css-fonts/font-variant-alternates-15.html": [ - "9ff98fb9ba0a0d8f7dd7eeba46f9fff0cded50d5", + "28b9783fb266c2706a3b1bb803d3f673e8a54961", "reftest" ], "css/css-fonts/font-variant-alternates-16-ref.html": [ @@ -485021,7 +485620,7 @@ "support" ], "css/css-fonts/font-variant-alternates-16.html": [ - "438440aa6dcc401f66d6c9f271221b377e08f12f", + "7ff9e41f619a1049160e6b44757fb3df76027fc1", "reftest" ], "css/css-fonts/font-variant-alternates-17-ref.html": [ @@ -485029,7 +485628,7 @@ "support" ], "css/css-fonts/font-variant-alternates-17.html": [ - "9c7b3567045c4bce12d693df687120534e066c56", + "190ed6df571bb4c3524830312bab44762b8f7caf", "reftest" ], "css/css-fonts/font-variant-alternates-18-ref.html": [ @@ -485037,11 +485636,11 @@ "support" ], "css/css-fonts/font-variant-alternates-18.html": [ - "b85b14eaf76f9c1b89a015b8a5aea9382f61e332", + "099642fe6884b4501cbdb7182910ef296fd7c93f", "reftest" ], "css/css-fonts/font-variant-alternates-parsing.html": [ - "5a15ca070dbddff6e28995c13db825244080fc25", + "521ef26ea50ce2980f5a9026e047a05d54bb7556", "testharness" ], "css/css-fonts/font-variant-caps-01-ref.html": [ @@ -492304,6 +492903,14 @@ "6c58deabf758bee4d8223403d0f7edffede54f64", "testharness" ], + "css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html": [ + "86c3702fc643b0a45a7f5e3588e51cdca3038fcc", + "testharness" + ], + "css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html": [ + "7d1a1c21880b25fe0126affa850fb13bdf80470b", + "testharness" + ], "css/css-grid/alignment/grid-content-distribution-001.html": [ "5622a264eb2dbd6cf621ac97aa4a8ae5db82c6b3", "reftest" @@ -492612,6 +493219,14 @@ "c75eb3edc97f8f01429a26698337c6e3b869563b", "testharness" ], + "css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html": [ + "17b27d1784ada1d09a6e1ae42b6a9c8225699948", + "testharness" + ], + "css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html": [ + "7f95db93458af40478ad2cd6b473e8f34f62f3e8", + "testharness" + ], "css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html": [ "cafc54256ea9d0cbf8990a0e04904c7ada8c5894", "testharness" @@ -493068,6 +493683,10 @@ "7d6dc5106777942ad83e6bc570368af113f32d5f", "support" ], + "css/css-grid/grid-items/anonymous-grid-item-001.html": [ + "1d684c1f3ba7867f711e0bec65f4f665ab6e67dd", + "reftest" + ], "css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html": [ "2d713db8aa5f79164259a2c7b2b3f6b89f8aeed4", "reftest" @@ -499504,6 +500123,10 @@ "de66dba5bce15b7403e9e582d982d4e3e4aed552", "testharness" ], + "css/css-scroll-snap/snap-at-user-scroll-end-manual.html": [ + "51f08f58135901b332ff43d15fbdc8d0a22f962c", + "manual" + ], "css/css-shapes/OWNERS": [ "d26aa70436055346420fd8bae6fd174daf090124", "support" @@ -499532,10 +500155,18 @@ "bf937f106b1d6e5b15abce0971da8773777a0ac0", "testharness" ], + "css/css-shapes/parsing/shape-outside-invalid-position.html": [ + "3f9db0d5ae274b76c5474a097560f97b7f32d80d", + "testharness" + ], "css/css-shapes/parsing/shape-outside-invalid.html": [ "024c4a2789493964b162397bc994b699274e1423", "testharness" ], + "css/css-shapes/parsing/shape-outside-valid-position.html": [ + "be19a2491b17f77d9dfda2fe03f6f099d7fe7d9b", + "testharness" + ], "css/css-shapes/parsing/shape-outside-valid.html": [ "5b90c13064455cff16f5a4d54a6343c76775f3cc", "testharness" @@ -508976,8 +509607,16 @@ "b7f8e44c24d152196d929ace4549ac5e56e7c23f", "reftest" ], + "css/css-transforms/parsing/perspective-origin-parsing-invalid.html": [ + "f12960646ce37cbce073602129d93d72bcc68cbf", + "testharness" + ], + "css/css-transforms/parsing/perspective-origin-parsing-valid.html": [ + "4849602a7ede7e6a9390092525dfcaec42ef9c7f", + "testharness" + ], "css/css-transforms/parsing/resources/parsing-testcommon.js": [ - "bb1376de12185a14f77fd28be757cc8db2a9929d", + "b5cc6f7c0c7729328bbbc45ec2a8147dae8d8668", "support" ], "css/css-transforms/parsing/rotate-parsing-invalid.html": [ @@ -509001,7 +509640,7 @@ "testharness" ], "css/css-transforms/parsing/translate-parsing-valid.html": [ - "5fae7004fc23d69a0d21853254974ce94889f68b", + "f1da23d979a48dd71fab4feb3bc6c9abdc6a9111", "testharness" ], "css/css-transforms/patternTransform/reference/svg-patternTransform-combination-ref.html": [ @@ -511860,6 +512499,14 @@ "7d8d62227d3ee736db2c7477a96ea1e5056ea405", "reftest" ], + "css/css-transforms/transform-transformed-tr-percent-height-child-ref.html": [ + "f7b62cbb0097798a6ed70f7667b45846e17f5a29", + "support" + ], + "css/css-transforms/transform-transformed-tr-percent-height-child.html": [ + "24b9da4401ca71ace4aebefd5f3881384c23fd4f", + "reftest" + ], "css/css-transforms/transform-translate-001.html": [ "f7f3a85ab0cd4a84b5cd7e31a60a22845941fab1", "reftest" @@ -513829,7 +514476,7 @@ "support" ], "css/css-typed-om/resources/testhelper.js": [ - "275f59ac6a15d54a73293b17edd2c6363ec22ad0", + "62fc510703d52cd0894359c29d975920e26b594f", "support" ], "css/css-typed-om/styleMap-update-function.html": [ @@ -513885,7 +514532,7 @@ "testharness" ], "css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html": [ - "4c5bf7630548c90a1397b6f1f215bd3be76b6cf6", + "a71f7f5afdd97a55eeef2adc89914194ad5ecb0a", "testharness" ], "css/css-typed-om/stylevalue-serialization/cssPositionValue.html": [ @@ -513897,7 +514544,7 @@ "testharness" ], "css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html": [ - "022aec2fac9ccdda36adf97bd47aa407e2825f6e", + "e1c27e0baa33d990c83ee3d562a3eeae3106b833", "testharness" ], "css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html": [ @@ -513932,8 +514579,12 @@ "dc32e826e1f840c99f3b4bad4f03bd0f9573ce4e", "testharness" ], - "css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html": [ - "445aa6e5e61d34add060b6870891309bf9e7f71f", + "css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html": [ + "799985863b303910386137217d3641cb5fa550a4", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssPositionValue.html": [ + "ae2b865d7c0d60437e6dda4f2e2bfd36677f95ae", "testharness" ], "css/css-typed-om/stylevalue-subclasses/cssRotate.tentative.html": [ @@ -513956,16 +514607,36 @@ "700fae462f258404f3d0b8fad290613fc1929e1d", "testharness" ], - "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html": [ - "8fe7703ce860a16e6d2f236c3c178fd03c0299d0", + "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html": [ + "aeab5e92558f5b61ab99cab0ed1537e7fcb1092b", "testharness" ], - "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html": [ - "292ae5c272bbe9eee02ab7da2a465c7e941ab562", + "css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html": [ + "cf1e8d553a9ebc111a1a81de48a821f7f7ad0bf1", "testharness" ], - "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html": [ - "ec2ece1febca087374659750049545e6b99fb456", + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html": [ + "5565653081f6615d8d88323b98ed670a653bef9b", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html": [ + "2d776d5a92feebe4803434878c3f76973313063b", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html": [ + "286ec3f30141247b58facd09a17879d29109950c", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html": [ + "0dbf7bb1047b3be816ae6773218788cdf27529cb", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html": [ + "ba012ace40e63718694a8cd91ba74039787ff666", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html": [ + "69014384152e249f0f0ac15aec00ad41b82dbbf4", "testharness" ], "css/css-typed-om/stylevalue-subclasses/numeric-objects/add-two-types.tentative.html": [ @@ -513973,7 +514644,7 @@ "testharness" ], "css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html": [ - "3d527c8633229d53635adff6e425a8af2b56302e", + "1490c7159f3daf01195daf92d869e2f8fa2ca70a", "testharness" ], "css/css-typed-om/stylevalue-subclasses/numeric-objects/create-a-type.tentative.html": [ @@ -513993,7 +514664,7 @@ "testharness" ], "css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue.tentative.html": [ - "a46c2ff1bf221cd52b4546f7c07af90849d3096f", + "9d855c711332b344078fc89bac6ed67091fa1ddd", "testharness" ], "css/css-typed-om/stylevalue-subclasses/numeric-objects/cssnumericvalue-multiply-two-types.tentative.html": [ @@ -514057,7 +514728,7 @@ "testharness" ], "css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html": [ - "0a2097381fd03a532db7e2b1fb85dd7a901fb011", + "a879640d94c42f82bf81f80942f1ed7d181ee642", "testharness" ], "css/css-typed-om/the-stylepropertymap/declared/delete-invalid.html": [ @@ -514096,10 +514767,6 @@ "2e8b919993a68f96008f17a0e95c08d05434e6a6", "testharness" ], - "css/css-typed-om/the-stylepropertymap/declared/test.tentative.html": [ - "eca38801c677a07ebc5e15ec7d11a3338bf0ecc6", - "testharness" - ], "css/css-typed-om/the-stylepropertymap/declared/update.tentative.html": [ "02eff9d89e280182fd065b63d71167041c6a8394", "testharness" @@ -514149,7 +514816,7 @@ "testharness" ], "css/css-typed-om/the-stylepropertymap/interface.html": [ - "73aac61c85d142f38b871ef21c8ce75bd468cf40", + "b4561da47301cde30c37e4f77ff6870b4b6d10b4", "testharness" ], "css/css-ui/OWNERS": [ @@ -523792,6 +524459,10 @@ "966ebff69f91c0ea92f4bc2f943df9ef9dc3bcf9", "testharness" ], + "css/cssom-view/scroll-no-layout-box.html": [ + "8f423a757bd716c9c22e82fd2f35007d05982c08", + "testharness" + ], "css/cssom-view/scrollIntoView-scrollMargin.html": [ "b8f09964bb93bc562992c454cf7779f8bfa3be62", "testharness" @@ -527365,7 +528036,11 @@ "testharness" ], "css/selectors/invalidation/matches.html": [ - "7c0c602803f2de72e1c0ee4977a04c5054fb03c5", + "8b517e6bc3465a2e8569bfe79dcb92aad38b5e78", + "testharness" + ], + "css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html": [ + "de0d6f774f67362551ca7448d06ab6b264ecaa29", "testharness" ], "css/selectors/invalidation/selectorText-dynamic-001.html": [ @@ -528401,99 +529076,99 @@ "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001-ref.html": [ - "df4d7e713c84009826a38155db2e1feca17b87d5", + "ebc61b763e8ad3c809376aa7e436800e45cf4d4f", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001.html": [ - "24d9a60f895669b90d17ffd46874f34cf0e0a4bf", + "3fe1e59ca39fa5624af76f607e756c6bac28d20a", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002-ref.html": [ - "3ff3c3fc34cb9b0b2f9ebf5ce50ff0561fc2caad", + "010a452f17fcce2a5821e0b50ba2bdb62115af3b", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002.html": [ - "bf34963d5516a632fceb9a0df203b41637734250", + "a011b5b839efdfbaf54a23eceafae3135f323ea7", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001-ref.html": [ - "671120ce75717e5d922aa5e50cd23bb0bb99440f", + "35974e8e9e3606548d3fe84c64e6f28f30297c1f", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001.html": [ - "8a7e029632f276be5672be8503a735cb93145ec1", + "09cf8775eac24d4c01b33d8f0f9fc29a4f343b0c", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002-ref.html": [ - "0d6b49d619c70c2c3812763c0515e281c68c1167", + "590adc398556a887cc05f3f37bff3557d195a81c", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002.html": [ - "258958b3a4ef48ccc7ff2ff727b9a7b103eaad79", + "c2a0549ec642d8785e18c0d254b44824f0dc0bdc", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001-ref.html": [ - "1676f2c62c37502b918a8f07574e29bb582bf434", + "8c5574d316afff4c6763d5752861d30d870b4897", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001.html": [ - "10264b8fd4f45e54d41f5529d2f2916c1e0e5d31", + "67b0ca09d6550bfee48fced29085eaa2d74afea4", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002-ref.html": [ - "f98979fb7f26d6d5c5e52db6b3777f0dd520cac8", + "4487634fc067804526dcc8c80840db66f8510843", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002.html": [ - "afce74c97255827757f29b4d19fd987248653a13", + "1eace13a5914ab6e0a295150e0c176108af837f4", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003-ref.html": [ - "8817d61abda7c77afc608798aa1ae628638cec29", + "7a6a10cc35ad9d6d0f69d2970456700d20a0f8b8", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003.html": [ - "0d9e70415f27a4d4f1447a2d6af9544cad92c024", + "1badba0c31003af31a4f949c73163e9ef08d670c", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004-ref.html": [ - "151e078eb255e7c77822701f5c79804b2afcbebf", + "60140d2dad0b5084903d37415bc95854e60b9adf", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004.html": [ - "9637f0d340d72ee5edea76e2bed4e6182cbb0c53", + "453fcaff8730433686a71aeac0268eeecaadabb8", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001-ref.html": [ - "8ef906b99dfab87396ea783505dd774f961cd14d", + "d7ad2e115df3e1f89ff603c6e015bc66dff0140f", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html": [ - "60c2ed16e28326f3e3f1b39b092b931c12ef93b0", + "c7fe198018916bf65e3aa552af24b2f31b55374c", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002-ref.html": [ - "8ef906b99dfab87396ea783505dd774f961cd14d", + "d7ad2e115df3e1f89ff603c6e015bc66dff0140f", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002.html": [ - "56533e4323a6326e300e432afddbd4afc790d754", + "f05e0fe981e1973c70ee7eee943b9e5bf756d59e", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003-ref.html": [ - "32036492ab25b6deb98775c58491ae492be57179", + "e0c0d19423366fc808a21af30928f5647c5715e6", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003.html": [ - "6f5954ff299e9faa9bd80753741946e46e52da72", + "6fcbb2f5218c8b1dd2c2835482d36e25f4403a7b", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004-ref.html": [ - "32036492ab25b6deb98775c58491ae492be57179", + "e0c0d19423366fc808a21af30928f5647c5715e6", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004.html": [ - "f486a79118363126e2b1d65434b2de0ee59bbfc5", + "6e33ad8a2bd85ad27e3d4ac0ac18c4f2490417a8", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/align3/reftest.list": [ @@ -532380,6 +533055,14 @@ "3c4a32d58a8f34a6074efc77bd3d00c21f4ea253", "support" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html": [ + "134248109744dc452beb87c08bb37fe6fba34b06", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html": [ + "e7a7dba52f30626eb256bd6832fd70eea4e23e4b", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/moz-multicol3-column-balancing-break-inside-avoid-1-ref.html": [ "e4c519e59544140de558aff7b13b6ac3e19651c8", "support" @@ -532397,7 +533080,7 @@ "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/reftest.list": [ - "a425424ad71bb67ef8559d032227f383dafb7115", + "a434982c43b87a029e43679270492884ae2937b9", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/reftest.list": [ @@ -534540,6 +535223,38 @@ "1c7fb64084e36d93aec54a7326ffa89d5e60f871", "support" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html": [ + "0fd0f22afe7bdb81b7a40326c172e5ee1c68ccb3", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html": [ + "7a809a56f60c1b9d9306ca3c9b403b5705be2629", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html": [ + "3fbb0ac60628d611fb5a88e316bafda37b28324b", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html": [ + "80c017a0ffd11dd8063839c46390ee1ac2b4753d", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html": [ + "b09793a0629e5b5827b1b1db648f0226b11bd824", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html": [ + "24998fae87313108ed068e7c138e6425331743c9", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html": [ + "220eec725cf95a8adcd5ff71a7fa8a8026671411", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html": [ + "00cc130b13377d1583000a5d8e269fe13d307e81", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/perspective-containing-block-dynamic-1a.html": [ "6a4dd7a18cd9d400fb704eaa8ceb0e63607eb207", "reftest" @@ -534565,7 +535280,7 @@ "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list": [ - "8b00eba5392307c2842c05d18764682c27b625d9", + "a5c020f3f28e25a1540fde327c56df33b89be873", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/transforms/transform-containing-block-dynamic-1a.html": [ @@ -535964,8 +536679,12 @@ "d1661ab1734f7d1a252030aeac7e9842a7a4cb3b", "testharness" ], + "custom-elements/Document-createElement-svg.svg": [ + "9af8f2dc7778feeea4fa8e557d7885b10d325dea", + "testharness" + ], "custom-elements/Document-createElement.html": [ - "14960ee9498f6ff23c1c94d3351a8ef383e60067", + "2275720296bd3ea4ef012ed5ef3ea63a4c5f953d", "testharness" ], "custom-elements/Document-createElementNS.html": [ @@ -536065,7 +536784,7 @@ "testharness" ], "custom-elements/reactions/CSSStyleDeclaration.html": [ - "11d4f8979af248f2c4d5dc28e93e5d15822d2c78", + "cbd44b985a25eeee1c00b5c8e58a6fc0080d2551", "testharness" ], "custom-elements/reactions/ChildNode.html": [ @@ -536097,11 +536816,11 @@ "testharness" ], "custom-elements/reactions/HTMLElement.html": [ - "4c54b3e179c23375334d2b6d667ab17781c2c127", + "4682575e319941a1ccd62a3e1c8c97ac092bdbcc", "testharness" ], "custom-elements/reactions/HTMLInputElement.html": [ - "ad2bdba330235b320eda6636cd30b320d607d74f", + "ee56f4ab2948a3c536a80c9d8954f7e8baee06a4", "testharness" ], "custom-elements/reactions/HTMLOptionElement.html": [ @@ -536281,7 +537000,7 @@ "support" ], "docs/_running-tests/chrome_android.md": [ - "fab045301c74644f3feeed712b43707cac13db53", + "32e0d149423f84c3602ee1f87a83746bf331f582", "support" ], "docs/_running-tests/index.md": [ @@ -541020,6 +541739,34 @@ "09f612159dc367bad5febc8e0a724f0a284517d5", "support" ], + "feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [ + "2cd4247efee0a52e974b9a443c45411545c67578", + "testharness" + ], + "feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html": [ + "9fe872a67a3936f1dd743c8bc13b8c2f464c8002", + "testharness" + ], + "feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html": [ + "78f99383d792f820d3655a5b784a8458e9e9f7e6", + "testharness" + ], + "feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers": [ + "264cecc1cd7264ee488524449df2d95201d6bc56", + "support" + ], + "feature-policy/picture-in-picture-default-feature-policy.https.sub.html": [ + "3d493f9c8c024c4f97a5f0ae3d12977f8719bcc6", + "testharness" + ], + "feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html": [ + "fb7ea1dbfb4bd71aa007bb456ce5528c3f71fb0c", + "testharness" + ], + "feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers": [ + "6b83276039e265cf35762e045d0fbafdf647daf5", + "support" + ], "feature-policy/resources/autoplay.js": [ "6b1dd45e19dff4759b4d165cdfd59970e4212058", "support" @@ -541036,6 +541783,10 @@ "958b32f77b02f2ff80cf174aadac62237d79056b", "support" ], + "feature-policy/resources/feature-policy-picture-in-picture.html": [ + "057973ef7f86c3628948c54d5697fb565e6d0a96", + "support" + ], "feature-policy/resources/feature-policy-usb.html": [ "96ae900bcde19a4ffcab30f1d01b393e07936e99", "support" @@ -541052,6 +541803,10 @@ "d2d5194fab261d7aa0b8d1b31077a42316f5f351", "support" ], + "feature-policy/resources/picture-in-picture.js": [ + "20355b27be4404af59fc2742b43c6600147eccd3", + "support" + ], "feature-policy/resources/redirect-on-load.html": [ "5d9d75fc156f6d5a934a1aca7aa2b4a8e238dd4f", "support" @@ -541940,6 +542695,26 @@ "aba9a9168c083a18a85336948c1ba72ca827562f", "testharness" ], + "fetch/data-urls/README.md": [ + "83d54a0532dd87ab1fa9f5f9b7e01d9a43d91eae", + "support" + ], + "fetch/data-urls/base64.any.js": [ + "ba4acd05372765d0fb03e89f13186e73467db58c", + "testharness" + ], + "fetch/data-urls/processing.any.js": [ + "7ba48c1ab609fd739e5fcd594a93d237e4fc326b", + "testharness" + ], + "fetch/data-urls/resources/base64.json": [ + "8079b52c59420f924df9dfb7d99d1ac49265a315", + "support" + ], + "fetch/data-urls/resources/data-urls.json": [ + "8f2ea63fb10ffe403125fb01b0afb848ed7ccb28", + "support" + ], "fetch/http-cache/304-update.html": [ "2571df43eb57ecbd29f55c2fc57b16f227001787", "testharness" @@ -547100,6 +547875,10 @@ "bec8edb2763e83b4141e92f95b02521cd16fbc02", "testharness" ], + "html/dom/elements/global-attributes/title-manual.html": [ + "62eca26e21572801404647be9e309d9ae3cf689f", + "manual" + ], "html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -556821,7 +557600,7 @@ "testharness" ], "html/semantics/forms/textfieldselection/selection-start-end.html": [ - "3fd1c942f7ac3ed3097bbd1ec89db15fb0805476", + "0fd9c420f831943f0d992076a7828eac066b6596", "testharness" ], "html/semantics/forms/textfieldselection/selection-value-interactions.html": [ @@ -557092,6 +557871,10 @@ "3cc3df0d6b19a14ab979e2fffedce95e8380fca8", "testharness" ], + "html/semantics/forms/the-input-element/image-click-form-data.html": [ + "c258a5ee47cf843585bb65d81841a121eec5316c", + "testharness" + ], "html/semantics/forms/the-input-element/image01-ref.html": [ "9ff11164254c68977111a83071345360b0789812", "support" @@ -557216,6 +557999,10 @@ "4ae5c353389d6b5776acd56a0cdb4bb1a405e6cf", "testharness" ], + "html/semantics/forms/the-input-element/resources/image-submit-click.html": [ + "cf227a340c0a552c665880d1c517cd572d1cf38b", + "support" + ], "html/semantics/forms/the-input-element/search_input.html": [ "09007bf5a204053412838612e97d64c21a596315", "testharness" @@ -557241,7 +558028,7 @@ "testharness" ], "html/semantics/forms/the-input-element/type-change-state.html": [ - "d731573ee091b7e658ea0b1ded46a764e8165f6c", + "6ca94002609dae5548e5c832e4a84639c1094f69", "testharness" ], "html/semantics/forms/the-input-element/url.html": [ @@ -561329,7 +562116,7 @@ "support" ], "html/webappapis/atob/base64.html": [ - "5ee9005c14491a0c33f3fdba4771a8a491f43d8c", + "d720c251750e32d5ba6a76897439128a0eaa8479", "testharness" ], "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-basic.html": [ @@ -561709,7 +562496,7 @@ "testharness" ], "html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html": [ - "8bbb29655a28bc76708e802d617a5a6046b4e4b0", + "98839f498553aba4667c2dce4503f8ccc5189895", "testharness" ], "html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-attached-in-event.html": [ @@ -562305,7 +563092,7 @@ "support" ], "interfaces/html.idl": [ - "f528f0b640aa876f7c80e728a79b846423a5b20b", + "84ed07588763a87bffbe191bf440e820f9d130ec", "support" ], "interfaces/magnetometer.idl": [ @@ -563329,7 +564116,7 @@ "testharness" ], "media-source/mediasource-endofstream.html": [ - "652c8d980e48fc79525f3adc2931af9c3a23d464", + "ca2fc793b97e552b0250e3df9877e10cde930735", "testharness" ], "media-source/mediasource-errors.html": [ @@ -572168,6 +572955,34 @@ "dc978fd8669d67118109fcab245010fdd7d799b0", "testharness" ], + "picture-in-picture/disable-picture-in-picture.html": [ + "887338e9330b4d94d007685c2a511cf285bb0c3e", + "testharness" + ], + "picture-in-picture/enter-picture-in-picture.html": [ + "c0d29867a380b7e780ed14c229fa5598626a75aa", + "testharness" + ], + "picture-in-picture/exit-picture-in-picture.html": [ + "b1103b96927872de07fc6eb5f34668a0267da6a2", + "testharness" + ], + "picture-in-picture/not-processing-user-gesture.html": [ + "0bfb194f9fd96db340177d8ff9e62becb1dd9f5e", + "testharness" + ], + "picture-in-picture/picture-in-picture-element.html": [ + "72f2d3b885be8f7268df828f7758b1bc05334d5e", + "testharness" + ], + "picture-in-picture/request-picture-in-picture.html": [ + "19af9c84b70782925a2f8dad4f712fad94b69c14", + "testharness" + ], + "picture-in-picture/resources/picture-in-picture-helpers.js": [ + "84462753efc9803a053e3675b850654c0e57ca93", + "support" + ], "pointerevents/OWNERS": [ "e76cae8532b1259fa8665b515468d0b25b0a9bb3", "support" @@ -580673,7 +581488,7 @@ "testharness" ], "resource-timing/resource_TAO_origin.htm": [ - "bd7572f9790c69cf76e31c2c1cc7d4c3bd35da4c", + "7e5ddf2c6f14b47b01cf5baa8981f56eba29c48b", "testharness" ], "resource-timing/resource_TAO_origin_uppercase.htm": [ @@ -580689,7 +581504,7 @@ "testharness" ], "resource-timing/resource_TAO_zero.htm": [ - "174444cc2f9b8e505bcf35343522f74c792bd997", + "9a726de380cf901dd8af2d20d6ab7741640bba65", "testharness" ], "resource-timing/resource_cached.htm": [ @@ -582308,6 +583123,10 @@ "68deaada4bc6996777980c0b0b69bf9da4689eb4", "testharness" ], + "service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https.html": [ + "d47dca843653f7ab564d2e006067f756ae1efe97", + "testharness" + ], "service-workers/service-worker/fetch-canvas-tainting-video.https.html": [ "54838009a0f9d724f0088adab56173526597385b", "testharness" @@ -582348,6 +583167,10 @@ "ce7e7cf76aace24a92d455cdb6b54fc9048960e8", "testharness" ], + "service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html": [ + "ce480de45a03c7c9f6b58cf4a91359ffb9a29e74", + "testharness" + ], "service-workers/service-worker/fetch-event-respond-with-custom-response.https.html": [ "fc304fa03a33021e4141d940835824883415279e", "testharness" @@ -582356,6 +583179,10 @@ "c0e976149cf49c09f52b81159d2a48c301a4aa4b", "testharness" ], + "service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html": [ + "3d70e8ed429f0711f480bb3f0c6e01b49cefffa1", + "testharness" + ], "service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html": [ "37c7959e58af70f3feea0f4fb46d778734a0296b", "testharness" @@ -582429,7 +583256,7 @@ "testharness" ], "service-workers/service-worker/fetch-request-resources.https.html": [ - "cb072581704868845fe1ec57b3e7c70d53bac543", + "d21ef5a4263e26cd3053a89171e2597424eaad82", "testharness" ], "service-workers/service-worker/fetch-request-xhr-sync.https.html": [ @@ -582785,7 +583612,7 @@ "testharness" ], "service-workers/service-worker/request-end-to-end.https.html": [ - "ee9f8140b492daf89cb715643ee40557f6ed904e", + "e93efe04f35ff8c9ce15969a7b3f6373b098c4a8", "testharness" ], "service-workers/service-worker/resource-timing.https.html": [ @@ -582889,7 +583716,7 @@ "support" ], "service-workers/service-worker/resources/client-navigate-worker.js": [ - "876f60f8c7112cc0a7a2df2fe2b298a3c9504214", + "6d4712b6398cdafa95fc5101e9fffe10eb43311f", "support" ], "service-workers/service-worker/resources/client-navigated-frame.html": [ @@ -583017,7 +583844,7 @@ "support" ], "service-workers/service-worker/resources/fetch-access-control.py": [ - "be1cb7ce3d6346a98d35a6c19d7a3bf656f9373b", + "7e5031aa9ab0cb40b037f517f620fad3d0314269", "support" ], "service-workers/service-worker/resources/fetch-canvas-tainting-iframe.html": [ @@ -583060,6 +583887,10 @@ "95ae0c97941a6b1645690e8504e7de8c6be634b1", "support" ], + "service-workers/service-worker/resources/fetch-event-network-fallback-worker.js": [ + "de6a6c51a341e60590752c4a147527777146d333", + "support" + ], "service-workers/service-worker/resources/fetch-event-respond-with-argument-iframe.html": [ "6ae750c3e69e6fecde17ba1d026391b151bc0ebb", "support" @@ -583068,6 +583899,10 @@ "b58b92a145a89f71c414de5e837c1db026beb1d6", "support" ], + "service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js": [ + "b044c62224d56bfd1e3b25ce4e2700ed6231f0ed", + "support" + ], "service-workers/service-worker/resources/fetch-event-respond-with-custom-response-worker.js": [ "a5d0d55ccfa7c3c4c285153aa14b81ef205329c9", "support" @@ -583076,6 +583911,10 @@ "6054d723ad0d0d310b02841b696d2357e7137398", "support" ], + "service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js": [ + "fc2c81a984f43bb1a83ed1e830c7a35c0b5f7538", + "support" + ], "service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-worker.js": [ "052da5a0a6b26098fe745fd6d9ca8de0f4dfdc5b", "support" @@ -583193,7 +584032,7 @@ "support" ], "service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html": [ - "72a1a0895f9b511075f77c618c8ab0aabd177346", + "2879ba75fc0135aa9220f5eb5d7e00b8bcf1cbcc", "support" ], "service-workers/service-worker/resources/fetch-request-xhr-sync-iframe.html": [ @@ -583488,6 +584327,14 @@ "4ccc1681cd016327aafed77210afe6ed1cc8c04a", "support" ], + "service-workers/service-worker/resources/range-request-to-different-origins-worker.js": [ + "7f6473346cc122121af96a81709bee384da50ea9", + "support" + ], + "service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js": [ + "5bd4a3d199a24ea091b28bc7d211bdf8612cd10f", + "support" + ], "service-workers/service-worker/resources/redirect-worker.js": [ "1b3f47b922f1bdd14adfdf6eca5bc308a4186301", "support" @@ -583505,7 +584352,7 @@ "support" ], "service-workers/service-worker/resources/register-closed-window-iframe.html": [ - "18ee27c8d6a5497bf16b3315ba9eee2b474154b5", + "aa9a0825844b3bc13eee96dc6eeffcf887ee2b72", "support" ], "service-workers/service-worker/resources/register-iframe.html": [ @@ -588224,6 +589071,10 @@ "62c6ecf218173f1273cbd2bd12f01dcf666170a4", "reftest" ], + "svg/path/distance/pathLength-positive-percentage.svg": [ + "f76d370e573ed5fadcee8e2bd4bb531f969d53e6", + "reftest" + ], "svg/path/distance/pathLength-positive-ref.svg": [ "051786ae8a8510f97dec152a88541f8d16c6767f", "support" @@ -588232,6 +589083,14 @@ "33dc24b00e6ad879519fcfd593179ee2c1903006", "reftest" ], + "svg/path/distance/pathLength-zero-percentage-ref.svg": [ + "eaaf5697c4770475c4db221879e2d6a45e373d8e", + "support" + ], + "svg/path/distance/pathLength-zero-percentage.svg": [ + "64d4bdf51da60cd990774284a7ffc58d9c6409f6", + "reftest" + ], "svg/path/distance/pathLength-zero-ref.svg": [ "b47a9aa3a1a5901e97a5f92d056221b8882a2a19", "support" @@ -591052,6 +591911,10 @@ "70e0f890a721786f8afa4cd032e75ef85b5fc6bb", "support" ], + "webaudio/resources/stereopanner-testing.js": [ + "dc02b4fad40f381d924db447a3d955e4455fd561", + "support" + ], "webaudio/the-audio-api/the-analysernode-interface/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -591260,6 +592123,18 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], + "webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html": [ + "b3525a2c459125281196201216417c39030e79a8", + "testharness" + ], + "webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html": [ + "5654219a5816d603260c33b4d72030e89e8c63d9", + "testharness" + ], + "webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html": [ + "4f49a7d5726c922676d350613679c9c441ff6c65", + "testharness" + ], "webaudio/the-audio-api/the-waveshapernode-interface/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -591268,6 +592143,22 @@ "f88431616d6a8084a3434c1606e3543178d019fb", "testharness" ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html": [ + "28cc01fdd27a3ff88f2e886bc625d4dfd15db742", + "testharness" + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html": [ + "0f0bc85ae22f33e920c3970dd5ffe48507b3e587", + "testharness" + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html": [ + "cb83468955273ba4f280fe99088d724f1da58476", + "testharness" + ], + "webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html": [ + "84975ca29be6d977ed238a46ff6597959ab05047", + "testharness" + ], "webauthn/OWNERS": [ "368ab4153a7f6843ce65ce924a3b4af92f3488ee", "support" @@ -592453,7 +593344,7 @@ "testharness" ], "webrtc/historical.html": [ - "918bdc69f500ff726dc98643b418f14ac5ba3c3a", + "d0579ad82d492ba5cd957561ca70b5b8a344452c", "testharness" ], "webrtc/identity-helper.js": [ @@ -593796,7 +594687,7 @@ "adb04954bffbb33f29864668db95f5c5367d6a05", "support" ], - "webvr/idlharness.html": [ + "webvr/idlharness.https.html": [ "3505e27e1b2668010bf61f05f6b8a759cf42cece", "testharness" ], @@ -593901,7 +594792,7 @@ "testharness" ], "webvtt/api/VTTRegion/constructor.html": [ - "c002fac0ad6077fe44987393159f7d86c1226e84", + "501828089ebb3d3521045c392230379668529f42", "testharness" ], "webvtt/api/VTTRegion/id.html": [ @@ -593909,7 +594800,7 @@ "testharness" ], "webvtt/api/VTTRegion/lines.html": [ - "590cec0b814df0bca2760cde94b2f74b4c9defca", + "ac35f25e77c0430b4776435c07f908f990de1fb0", "testharness" ], "webvtt/api/VTTRegion/non-visible-cue-with-region.html": [ diff --git a/testing/web-platform/meta/mozilla-sync b/testing/web-platform/meta/mozilla-sync index fb4ec1ccb336..9d257c5bfe76 100644 --- a/testing/web-platform/meta/mozilla-sync +++ b/testing/web-platform/meta/mozilla-sync @@ -1,2 +1,2 @@ -local: b53d2fadbdb530bf3d794c1020229eb1526331d1 -upstream: c434326b946e471e50428ed987b5dfe220c85027 +local: cac3a4e6000d7079f8cf0118a5c509b2527b3289 +upstream: 928cae0eb86aaa89cec64f7a1721afb47a97d059 diff --git a/testing/web-platform/tests/.travis.yml b/testing/web-platform/tests/.travis.yml index 287c6337cbda..7e81ffcfe105 100644 --- a/testing/web-platform/tests/.travis.yml +++ b/testing/web-platform/tests/.travis.yml @@ -73,7 +73,7 @@ matrix: python: "2.7" env: - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" - - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=sauce:MicrosoftEdge:14.14393 PLATFORM='Windows 10' + - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=sauce:MicrosoftEdge:16.16299 PLATFORM='Windows 10' - python: 2.7 env: JOB=tools_unittest TOXENV=py27 HYPOTHESIS_PROFILE=ci SCRIPT=tools/ci/ci_tools_unittest.sh - python: 3.6 @@ -97,7 +97,7 @@ matrix: - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=chrome:dev - env: - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" - - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=sauce:MicrosoftEdge:14.14393 PLATFORM='Windows 10' + - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=sauce:MicrosoftEdge:16.16299 PLATFORM='Windows 10' - env: - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" - JOB=stability SCRIPT=tools/ci/ci_stability.sh PRODUCT=sauce:safari:11.0 PLATFORM='macOS 10.12' diff --git a/testing/web-platform/tests/2dcontext/imagebitmap/common.sub.js b/testing/web-platform/tests/2dcontext/imagebitmap/common.sub.js index d76a42d5a1f3..d4d84193919a 100644 --- a/testing/web-platform/tests/2dcontext/imagebitmap/common.sub.js +++ b/testing/web-platform/tests/2dcontext/imagebitmap/common.sub.js @@ -43,13 +43,34 @@ function makeVideo() { }); } +function makeDataUrlVideo() { + const toDataUrl = (type, buffer) => { + const encoded = btoa(String.fromCodePoint(...new Uint8Array(buffer))); + return `data:${type};base64,${encoded}` + }; + + return fetch(getVideoURI("/images/pattern")) + .then(response => Promise.all([response.headers.get("Content-Type"), response.arrayBuffer()])) + .then(([type, data]) => { + return new Promise(function(resolve, reject) { + var video = document.createElement("video"); + video.oncanplaythrough = function() { + resolve(video); + }; + video.onerror = reject; + video.src = toDataUrl(type, data); + }); + }); +} + function makeMakeHTMLImage(src) { return function() { - return new Promise(resolve => { + return new Promise((resolve, reject) => { var img = new Image(); img.onload = function() { resolve(img); }; + img.onerror = reject; img.src = src; }); } @@ -115,6 +136,7 @@ function makeBlob() { var imageSourceTypes = [ { name: 'an HTMLCanvasElement', factory: makeCanvas }, { name: 'an HTMLVideoElement', factory: makeVideo }, + { name: 'an HTMLVideoElement from a data URL', factory: makeDataUrlVideo }, { name: 'a bitmap HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.png") }, { name: 'a vector HTMLImageElement', factory: makeMakeHTMLImage("/images/pattern.svg") }, { name: 'a bitmap SVGImageElement', factory: makeMakeSVGImage("/images/pattern.png") }, diff --git a/testing/web-platform/tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html b/testing/web-platform/tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html index 4fe8a83d87e6..9146a3704bae 100644 --- a/testing/web-platform/tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html +++ b/testing/web-platform/tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html @@ -10,25 +10,28 @@ + + diff --git a/testing/web-platform/tests/FileAPI/url/url-in-tags-revoke.window.js b/testing/web-platform/tests/FileAPI/url/url-in-tags-revoke.window.js new file mode 100644 index 000000000000..e610e0bff28a --- /dev/null +++ b/testing/web-platform/tests/FileAPI/url/url-in-tags-revoke.window.js @@ -0,0 +1,33 @@ +async_test(t => { + const run_result = 'test_frame_OK'; + const blob_contents = '\n\n' + + ''; + const blob = new Blob([blob_contents], {type: 'text/html'}); + const url = URL.createObjectURL(blob); + + const frame = document.createElement('iframe'); + frame.setAttribute('src', url); + frame.setAttribute('style', 'display:none;'); + document.body.appendChild(frame); + URL.revokeObjectURL(url); + + frame.onload = t.step_func_done(() => { + assert_equals(frame.contentWindow.test_result, run_result); + }); +}, 'Fetching a blob URL immediately before revoking it works in an iframe.'); + +async_test(t => { + const run_result = 'test_script_OK'; + const blob_contents = 'window.script_test_result = "' + run_result + '";'; + const blob = new Blob([blob_contents]); + const url = URL.createObjectURL(blob); + + const e = document.createElement('script'); + e.setAttribute('src', url); + e.onload = t.step_func_done(() => { + assert_equals(window.script_test_result, run_result); + }); + + document.body.appendChild(e); + URL.revokeObjectURL(url); +}, 'Fetching a blob URL immediately before revoking it works in + + + + +
+ + +
+ + + diff --git a/testing/web-platform/tests/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html new file mode 100644 index 000000000000..81921d395e31 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html @@ -0,0 +1,34 @@ + + + + form-action-src-allowed-target-frame + + + + + + +
+ + +
+ + + + diff --git a/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html new file mode 100644 index 000000000000..41c68b68f9e6 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html @@ -0,0 +1,34 @@ + + + + form-action-src-redirect-allowed-target-blank + + + + + + +
+ +
+ + + diff --git a/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html new file mode 100644 index 000000000000..6afd4459b0f1 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html @@ -0,0 +1,34 @@ + + + + form-action-src-redirect-allowed-target-frame + + + + + + +
+ +
+ + + + diff --git a/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-opener.sub.html b/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-opener.sub.html new file mode 100644 index 000000000000..0348139057dc --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-opener.sub.html @@ -0,0 +1,3 @@ + diff --git a/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-parent.sub.html b/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-parent.sub.html new file mode 100644 index 000000000000..63e464be21a0 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/form-action/support/post-message-to-parent.sub.html @@ -0,0 +1,3 @@ + diff --git a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-004.html b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-004.html index 471fce3680e1..a3dfbc3e4d02 100644 --- a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-004.html +++ b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-004.html @@ -1,8 +1,8 @@ -CSS Flexbox Test: Flex item - contiguous text runs - position:absolute +CSS Flexbox Test: Flex item - non-contiguous text runs - position:absolute - -

There should be a space between "two" and "words" below.

-
two words
+ +

The words "Two" and "lines" should not be on the same line.

+
Two lines
diff --git a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-005.html b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-005.html index c4a75e5000bc..a7de7b7a8546 100644 --- a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-005.html +++ b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-005.html @@ -1,12 +1,14 @@ -CSS Flexbox Test: Flex item - contiguous text runs - position:absolute dynamic +CSS Flexbox Test: Flex item - non-contiguous text runs - position:absolute dynamic - -

There should be a space between "two" and "words" below.

-
two words
+ +

The words "Two" and "lines" should not be on the same line.

+
Two lines
diff --git a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-006.html b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-006.html index 8544618efa40..6320b814294c 100644 --- a/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-006.html +++ b/testing/web-platform/tests/css/css-flexbox/anonymous-flex-item-006.html @@ -1,12 +1,12 @@ -CSS Flexbox Test: Flex item - contiguous text runs - position:absolute and node removal +CSS Flexbox Test: Flex item - non-contiguous text runs - position:absolute and node removal - + -

There should be a space between "two" and "words" below.

-
two words
+

The words "Two" and "lines" should not be on the same line.

+
Two lines
diff --git a/testing/web-platform/tests/css/css-fonts/font-variant-alternates-01.html b/testing/web-platform/tests/css/css-fonts/font-variant-alternates-01.html index 0cdd2f5ac152..82c465fed557 100644 --- a/testing/web-platform/tests/css/css-fonts/font-variant-alternates-01.html +++ b/testing/web-platform/tests/css/css-fonts/font-variant-alternates-01.html @@ -4,8 +4,8 @@ CSS Test: font-variant-alternates: normal; low level equivalence - - + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html b/testing/web-platform/tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html new file mode 100644 index 000000000000..357cbe13e255 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html @@ -0,0 +1,75 @@ + + +CSS Grid Layout Test: Self-Alignment along column axis of stcky positioned items + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html b/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html new file mode 100644 index 000000000000..31d06b80621b --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html @@ -0,0 +1,75 @@ + + +CSS Grid Layout Test: Self-Alignment along row axis of stcky positioned items + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html b/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html new file mode 100644 index 000000000000..cf14691161a3 --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html @@ -0,0 +1,75 @@ + + +CSS Grid Layout Test: Self-Alignment along row axis of stcky positioned items + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-grid/grid-items/anonymous-grid-item-001.html b/testing/web-platform/tests/css/css-grid/grid-items/anonymous-grid-item-001.html new file mode 100644 index 000000000000..db88ce54b38b --- /dev/null +++ b/testing/web-platform/tests/css/css-grid/grid-items/anonymous-grid-item-001.html @@ -0,0 +1,8 @@ + + +CSS Grid Test: Anonymous grid items - non-contiguous text runs - position:absolute + + + +

The words "Two" and "lines" should not be on the same line.

+
Two lines
diff --git a/testing/web-platform/tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html b/testing/web-platform/tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html new file mode 100644 index 000000000000..d1e4be5a20a2 --- /dev/null +++ b/testing/web-platform/tests/css/css-scroll-snap/snap-at-user-scroll-end-manual.html @@ -0,0 +1,86 @@ + + +Tests that window should snap at user scroll end. + + + + +
+
+

CSSScrollSnap

+

Tests that the window can snap at user scroll end.

+
    +
  1. + Scroll the page vertically and horizontally. + Keep scrolling until background has turned yellow.
  2. +
  3. Press the button "Done"
  4. +
+ +
+
+ + \ No newline at end of file diff --git a/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-invalid-position.html b/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-invalid-position.html new file mode 100644 index 000000000000..4815402949a2 --- /dev/null +++ b/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-invalid-position.html @@ -0,0 +1,28 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with invalid position values + + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-valid-position.html b/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-valid-position.html new file mode 100644 index 000000000000..ca01b352b636 --- /dev/null +++ b/testing/web-platform/tests/css/css-shapes/parsing/shape-outside-valid-position.html @@ -0,0 +1,36 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with valid position values + + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-invalid.html b/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-invalid.html new file mode 100644 index 000000000000..e9bb1740ba44 --- /dev/null +++ b/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-invalid.html @@ -0,0 +1,34 @@ + + + + +CSS Transform Module Level 2: parsing perspective-origin with invalid values + + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-valid.html b/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-valid.html new file mode 100644 index 000000000000..8421376002a9 --- /dev/null +++ b/testing/web-platform/tests/css/css-transforms/parsing/perspective-origin-parsing-valid.html @@ -0,0 +1,36 @@ + + + + +CSS Transform Module Level 2: parsing perspective-origin with valid values + + + + + + + + + + + diff --git a/testing/web-platform/tests/css/css-transforms/parsing/resources/parsing-testcommon.js b/testing/web-platform/tests/css/css-transforms/parsing/resources/parsing-testcommon.js index 688356bd0f9d..9427f53d81bc 100644 --- a/testing/web-platform/tests/css/css-transforms/parsing/resources/parsing-testcommon.js +++ b/testing/web-platform/tests/css/css-transforms/parsing/resources/parsing-testcommon.js @@ -1,5 +1,8 @@ 'use strict'; +// serializedValue can be the expected serialization of value, +// or an array of permitted serializations, +// or omitted if value should serialize as value. function test_valid_value(property, value, serializedValue) { if (arguments.length < 3) serializedValue = value; @@ -9,17 +12,20 @@ function test_valid_value(property, value, serializedValue) { test(function(){ var div = document.createElement('div'); div.style[property] = value; - assert_not_equals(div.style[property], ""); - }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value"); + assert_not_equals(div.style[property], "", "property should be set"); - test(function(){ var div = document.createElement('div'); div.style[property] = value; var readValue = div.style[property]; - assert_equals(readValue, serializedValue); + if (serializedValue instanceof Array) + assert_true(serializedValue.includes(readValue), "serialization should be sound"); + else + assert_equals(readValue, serializedValue, "serialization should be canonical"); + div.style[property] = readValue; - assert_equals(div.style[property], readValue); - }, "Serialization should round-trip after setting e.style['" + property + "'] = " + stringifiedValue); + assert_equals(div.style[property], readValue, "serialization should round-trip"); + + }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value"); } function test_invalid_value(property, value) { diff --git a/testing/web-platform/tests/css/css-transforms/parsing/translate-parsing-valid.html b/testing/web-platform/tests/css/css-transforms/parsing/translate-parsing-valid.html index beab0debf2e5..b117d27ce4fe 100644 --- a/testing/web-platform/tests/css/css-transforms/parsing/translate-parsing-valid.html +++ b/testing/web-platform/tests/css/css-transforms/parsing/translate-parsing-valid.html @@ -23,7 +23,7 @@ test_valid_value("translate", "100% 200px"); test_valid_value("translate", "100px 200px 300px"); test_valid_value("translate", "100% 200% 300px"); -test_valid_value("translate", "calc(10px + 10%) calc(20px + 20%) calc(30px + 30em)"); +test_valid_value("translate", "calc(10% + 10px) calc(20% + 20px) calc(30em + 30px)"); test_valid_value("translate", "0", "0px"); test_valid_value("translate", "1px 2px 0", "1px 2px 0px"); diff --git a/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child-ref.html b/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child-ref.html new file mode 100644 index 000000000000..7e1ac99ba890 --- /dev/null +++ b/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child-ref.html @@ -0,0 +1,38 @@ + + +CSS Test (Transforms): Transformed tr with percent height abspos child reference. + + + +
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child.html b/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child.html new file mode 100644 index 000000000000..91f2a5f05886 --- /dev/null +++ b/testing/web-platform/tests/css/css-transforms/transform-transformed-tr-percent-height-child.html @@ -0,0 +1,48 @@ + + +CSS Test (Transforms): Transformed tr with percent height abspos child. + + + + + + +
+ + + + + + + + +
+
diff --git a/testing/web-platform/tests/css/css-typed-om/resources/testhelper.js b/testing/web-platform/tests/css/css-typed-om/resources/testhelper.js index cca80f2afdd4..f7c7e03d93e6 100644 --- a/testing/web-platform/tests/css/css-typed-om/resources/testhelper.js +++ b/testing/web-platform/tests/css/css-typed-om/resources/testhelper.js @@ -137,7 +137,7 @@ function createRuleWithDeclaredStyleMap(test, cssText) { test.add_cleanup(() => { style.remove(); }); - return [rule, rule.attributeStyleMap]; + return [rule, rule.styleMap]; } // Creates a new element with background image set to |imageValue| diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html index 814812e6a8db..fd9fce861ef4 100644 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html @@ -1,8 +1,6 @@ IDL-constructed CSSMathValue serialization tests - @@ -11,70 +9,105 @@ 'use strict'; const gTestCases = [ - { - description: 'CSSMathSum with 1 argument', - value: new CSSMathSum(CSS.px(1)), - cssText: 'calc(1px)', - }, - { - description: 'CSSMathSum with 2 arguments', - value: new CSSMathSum(CSS.px(1), CSS.px(2)), - cssText: 'calc(1px + 2px)', - }, - { - description: 'CSSMathSum with more than 2 arguments', - value: new CSSMathSum(CSS.px(1), CSS.px(2), CSS.px(3)), - cssText: 'calc((1px + 2px) + 3px)', - }, - { - description: 'CSSMathProduct with 1 argument', - value: new CSSMathProduct(CSS.px(1)), - cssText: 'calc(1px)', - }, - { - description: 'CSSMathProduct with 2 arguments', - value: new CSSMathProduct(CSS.px(1), 2), - cssText: 'calc(1px * 2)', - }, - { - description: 'CSSMathProduct with more than 2 arguments', - value: new CSSMathProduct(CSS.px(1), 2, 3), - cssText: 'calc((1px * 2) * 3)', - }, - { - description: 'CSSMathProduct of two different base types', - value: new CSSMathProduct(CSS.px(1), CSS.s(1)), - cssText: 'calc(1px * 1s)', - }, { description: 'CSSMathMax with one argument', - value: new CSSMathMax(CSS.px(2)), - cssText: 'max(1px)', + value: new CSSMathMax(1), + cssText: 'max(1)', }, { description: 'CSSMathMax with more than one argument', - value: new CSSMathMax(CSS.px(2), CSS.px(1)), - cssText: 'max(1px, 1s)', + value: new CSSMathMax(1, 2, 3), + cssText: 'max(1, 2, 3)', + }, + { + description: 'CSSMathMax containing nested CSSMathValues', + value: new CSSMathMax(new CSSMathSum(1, 2), 3), + cssText: 'max(1 + 2, 3)', }, { description: 'CSSMathMin with one argument', - value: new CSSMathMin(CSS.px(1)), - cssText: 'min(1px)', + value: new CSSMathMin(1), + cssText: 'min(1)', }, { description: 'CSSMathMin with more than one argument', - value: new CSSMathMin(CSS.px(1), CSS.px(2)), - cssText: 'min(1px, 2px)', + value: new CSSMathMin(1, 2, 3), + cssText: 'min(1, 2, 3)', + }, + { + description: 'CSSMathMin containing nested CSSMathValues', + value: new CSSMathMin(new CSSMathSum(1, 2), 3), + cssText: 'min(1 + 2, 3)', + }, + { + description: 'CSSMathSum with one argument', + value: new CSSMathSum(1), + cssText: 'calc(1)', + }, + { + description: 'CSSMathSum with more than one argument', + value: new CSSMathSum(1, 2, 3), + cssText: 'calc(1 + 2 + 3)', + }, + { + description: 'CSSMathSum with a CSSMathNegate as first value', + value: new CSSMathSum(new CSSMathNegate(1), 2, 3), + cssText: 'calc((-1) + 2 + 3)', + }, + { + description: 'CSSMathSum containing a CSSMathNegate after first value', + value: new CSSMathSum(1, new CSSMathNegate(2), 3), + cssText: 'calc(1 - 2 + 3)', + }, + { + description: 'CSSMathSum nested inside a CSSMathValue', + value: new CSSMathSum(new CSSMathSum(1, 2), 3), + cssText: 'calc((1 + 2) + 3)', }, { description: 'CSSMathNegate', - value: new CSSMathNegate(CSS.px(1)), - cssText: 'calc(- 1px)', + value: new CSSMathNegate(1), + cssText: 'calc(-1)', + }, + { + description: 'CSSMathNegate nested inside a CSSMathValue', + value: new CSSMathProduct(new CSSMathNegate(1)), + cssText: 'calc((-1))', + }, + { + description: 'CSSMathProduct with one argument', + value: new CSSMathProduct(1), + cssText: 'calc(1)', + }, + { + description: 'CSSMathProduct with more than one argument', + value: new CSSMathProduct(1, 2, 3), + cssText: 'calc(1 * 2 * 3)', + }, + { + description: 'CSSMathProduct with a CSSMathInvert as first value', + value: new CSSMathProduct(new CSSMathInvert(1), 2, 3), + cssText: 'calc((1 / 1) * 2 * 3)', + }, + { + description: 'CSSMathProduct containing a CSSMathInvert after first value', + value: new CSSMathProduct(1, new CSSMathInvert(2), 3), + cssText: 'calc(1 / 2 * 3)', + }, + { + description: 'CSSMathProduct nested inside a CSSMathValue', + value: new CSSMathProduct(new CSSMathProduct(1, 2), 3), + cssText: 'calc((1 * 2) * 3)', }, { description: 'CSSMathInvert', - value: new CSSMathInvert(CSS.px(1)), - cssText: 'calc(1 / 1px)', + value: new CSSMathInvert(1), + cssText: 'calc(1 / 1)', + }, + { + description: 'CSSMathInvert nested inside a CSSMathValue', + value: new CSSMathSum(new CSSMathInvert(1)), + cssText: 'calc((1 / 1))', }, ]; diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html index 652e0e61350e..fc798ddbbfa9 100644 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html @@ -34,22 +34,10 @@ test(() => { assert_equals(result.toString(), '3.14px'); }, 'CSSKeywordValue from DOMString modified by "value" setter serializes correctly'); -test(() => { - let result = CSSStyleValue.parse('width', '1px'); - result.unit = 's'; - assert_equals(result.toString(), '1s'); -}, 'CSSKeywordValue from DOMString modified by "unit" setter serializes correctly'); - test(t => { let result = createInlineStyleMap(t, 'width: 1px').get('width'); result.value = 3.14; assert_equals(result.toString(), '3.14px'); }, 'CSSKeywordValue from CSSOM modified by "value" setter serializes correctly'); -test(t => { - let result = createInlineStyleMap(t, 'width: 1px').get('width'); - result.unit = 's'; - assert_equals(result.toString(), '1s'); -}, 'CSSKeywordValue from CSSOM modified by "unit" setter serializes correctly'); - diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html new file mode 100644 index 000000000000..d63c0c78694a --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid.html @@ -0,0 +1,67 @@ + + +CSSPositionValue Error Handling + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.html new file mode 100644 index 000000000000..a780a86e0b2c --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.html @@ -0,0 +1,61 @@ + + +CSSPositionValue + + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html deleted file mode 100644 index db07c91b8f69..000000000000 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue.tentative.html +++ /dev/null @@ -1,65 +0,0 @@ - - -CSSPositionValue tests - - - - - diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html new file mode 100644 index 000000000000..b20d0549b391 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue-interface.html @@ -0,0 +1,30 @@ + + +CSSUnparsedValue IDL + + + + + + + diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html new file mode 100644 index 000000000000..3a994dd5861e --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.html @@ -0,0 +1,50 @@ + + +CSSUnparsedValue + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html deleted file mode 100644 index ea65a9b34a5e..000000000000 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUnparsedValue.tentative.html +++ /dev/null @@ -1,28 +0,0 @@ - - -CSSUnparsedValue tests - - - - - diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html new file mode 100644 index 000000000000..ed86054026f0 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html @@ -0,0 +1,22 @@ + + +CSSURLImageValue IDL + + + + + + + diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html new file mode 100644 index 000000000000..8d6370a223a6 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html @@ -0,0 +1,17 @@ + + +CSSURLImageValue Error Handling + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html new file mode 100644 index 000000000000..5025859d1bb3 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html @@ -0,0 +1,81 @@ + + +CSSURLImageValue + + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html deleted file mode 100644 index 0f0625b42319..000000000000 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.tentative.html +++ /dev/null @@ -1,73 +0,0 @@ - - -CSSURLImageValue tests - - - - - - diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html new file mode 100644 index 000000000000..15db3276fb43 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html @@ -0,0 +1,26 @@ + + +CSSVariableReferenceValue IDL + + + + + + + diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html new file mode 100644 index 000000000000..c58bf76bac3c --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html @@ -0,0 +1,41 @@ + + +CSSVariableReferenceValue Error Handling + + + + + +
+ diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html new file mode 100644 index 000000000000..24082ebc71d1 --- /dev/null +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html @@ -0,0 +1,45 @@ + + +CSSVariableReferenceValue tests + + + + + + diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html deleted file mode 100644 index 38a350e46764..000000000000 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html +++ /dev/null @@ -1,42 +0,0 @@ - - -CSSVariableReferenceValue tests - - - - - diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html index 4ba27517976e..d58bb075ce29 100644 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative.html @@ -144,4 +144,10 @@ test(() => { new CSSMathProduct(CSS.number(2), CSS.number(0.5), new CSSMathInvert(CSS.px(2)), CSS.number(2), new CSSMathInvert(new CSSMathSum(2)))); }, 'Calling CSSNumericValue.div inverts all argument values'); +test(() => { + assert_throws(new RangeError(), () => CSS.number(2).div(CSS.number(0))); + assert_throws(new RangeError(), () => CSS.number(3).div(CSS.px(10) ,CSS.number(0))); + assert_throws(new RangeError(), () => CSS.number(2).div(CSS.number(0), CSS.number(0))); +}, 'Can not divide with CSSUnitValue which has zero value and number type'); + diff --git a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue.tentative.html b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue.tentative.html index 9e7401293e3b..24769b3774ee 100644 --- a/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue.tentative.html +++ b/testing/web-platform/tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssUnitValue.tentative.html @@ -19,26 +19,12 @@ for (const {unit, desc} of gInvalidTestUnits) { }, 'Constructing CSSUnitValue with ' + desc + ' as the unit throws a TypeError'); } -for (const {unit, desc} of gInvalidTestUnits) { - test(() => { - let result = new CSSUnitValue(0, 'px'); - assert_throws(new TypeError(), () => result.unit = unit); - assert_equals(result.unit, 'px'); - }, 'Updating CSSUnitValue.unit with ' + desc + ' throws a TypeError'); -} - for (const unit of gValidUnits) { test(() => { const result = new CSSUnitValue(-3.14, unit); assert_equals(result.value, -3.14); assert_equals(result.unit, unit.toLowerCase()); }, 'CSSUnitValue can be constructed with ' + unit); - - test(() => { - let result = new CSSUnitValue(-3.14, 'px'); - result.unit = unit - assert_equals(result.unit, unit.toLowerCase()); - }, 'CSSUnitValue.unit can be updated to ' + unit); } diff --git a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html index 96c1e3e8ff6a..355a5093983e 100644 --- a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html +++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html @@ -28,7 +28,7 @@ div { 'use strict'; const target = document.getElementById('target'); -const styleMap = document.styleSheets[0].rules[0].attributeStyleMap; +const styleMap = document.styleSheets[0].rules[0].styleMap; test(() => { const properties = styleMap.getProperties(); @@ -63,7 +63,7 @@ test(() => { style.sheet.insertRule('.test { width: 10px; }'); let rule = style.sheet.rules[0]; - let styleMap = rule.attributeStyleMap; + let styleMap = rule.styleMap; assert_style_value_equals(styleMap.get('width'), CSS.px(10)); rule.style.width = '20px'; diff --git a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html deleted file mode 100644 index c171769dc178..000000000000 --- a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html +++ /dev/null @@ -1,24 +0,0 @@ - - -Declared StylePropertyMap tests - - - - - - -
- - diff --git a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/interface.html b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/interface.html index 3e8849091842..6e0301093b19 100644 --- a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/interface.html +++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/interface.html @@ -30,7 +30,7 @@ partial interface Element { }; partial interface CSSStyleRule { - [SameObject] readonly attribute StylePropertyMap attributeStyleMap; + [SameObject] readonly attribute StylePropertyMap styleMap; }; partial interface Element { diff --git a/testing/web-platform/tests/css/cssom-view/scroll-no-layout-box.html b/testing/web-platform/tests/css/cssom-view/scroll-no-layout-box.html new file mode 100644 index 000000000000..cc67ce76ed9d --- /dev/null +++ b/testing/web-platform/tests/css/cssom-view/scroll-no-layout-box.html @@ -0,0 +1,21 @@ + + +cssom-view - Scrolling element with no layout box + + + + + +
+
+
+ + diff --git a/testing/web-platform/tests/css/selectors/invalidation/matches.html b/testing/web-platform/tests/css/selectors/invalidation/matches.html index 6fd5b1fc6d9a..ae5531ac5cac 100644 --- a/testing/web-platform/tests/css/selectors/invalidation/matches.html +++ b/testing/web-platform/tests/css/selectors/invalidation/matches.html @@ -1,7 +1,7 @@ - CSS Selectors Invalidation: :any-link + CSS Selectors Invalidation: :matches() @@ -9,15 +9,38 @@ @@ -38,29 +61,73 @@
Blue
+
+
+ Blue +
+ Red +
+
+
+
+ Black +
+
+
+
+ Red +
\ No newline at end of file diff --git a/testing/web-platform/tests/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html b/testing/web-platform/tests/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html new file mode 100644 index 000000000000..3d7be982378f --- /dev/null +++ b/testing/web-platform/tests/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html @@ -0,0 +1,27 @@ + + +Invalidation of style due to a dynamic stylesheet change in quirks mode + + + + + + +Should see a green square below. +
+ diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001-ref.html index 0b87de98813c..6d197e490fe6 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001-ref.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001.html index 3fa15f1d645e..99cfcbb9b4e6 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-001.html @@ -54,6 +54,10 @@

+ +
+
+
@@ -76,6 +80,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002-ref.html index 592cf8933c00..741a795f20ee 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002-ref.html @@ -51,6 +51,10 @@

+ +
+
+
@@ -73,6 +77,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002.html index 8db71d352218..b82d308af1b7 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-002.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001-ref.html index 2fcc585581a1..78d621219ab0 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001-ref.html @@ -54,6 +54,12 @@

+ +
+
+
@@ -88,6 +94,12 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001.html index ad392ccc2138..fdd4f6220be5 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-001.html @@ -53,6 +53,12 @@

+ +
+
+
@@ -87,6 +93,12 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002-ref.html index 65badb02a48a..a1d4e8163fd9 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002-ref.html @@ -52,6 +52,12 @@

+ +
+
+
@@ -86,6 +92,12 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002.html index c17471029184..61c1b97b51f8 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-img-002.html @@ -52,6 +52,12 @@

+ +
+
+
@@ -86,6 +92,12 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001-ref.html index a2899e07feaa..8e5db1efc59b 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001-ref.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001.html index a0a57aee0a8b..18e024bf2e8e 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-001.html @@ -54,6 +54,10 @@

+ +
+
+
@@ -76,6 +80,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002-ref.html index 06312f500b52..c7176a7c2102 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002-ref.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002.html index a309859b5b48..d7e510e1b5ee 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-002.html @@ -55,6 +55,10 @@

+ +
+
+
@@ -77,6 +81,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003-ref.html index 9c243ac5f362..b38590c8021c 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003-ref.html @@ -51,6 +51,10 @@

+ +
+
+
@@ -73,6 +77,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003.html index 19cf377cad20..2224ff684aff 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-003.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004-ref.html index 3cbad644b495..1ebc9e62c976 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004-ref.html @@ -51,6 +51,10 @@

+ +
+
+
@@ -73,6 +77,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004.html index f8170a80d376..a22fdc24fb72 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-rtl-004.html @@ -54,6 +54,10 @@

+ +
+
+
@@ -76,6 +80,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001-ref.html index 0b40e42550b5..9fff3eabcc08 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001-ref.html @@ -55,6 +55,10 @@

+ +
+
+
@@ -77,6 +81,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html index d3ce4007d91c..1bc2a5c33869 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002-ref.html index 0b40e42550b5..9fff3eabcc08 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002-ref.html @@ -55,6 +55,10 @@

+ +
+
+
@@ -77,6 +81,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002.html index 03078a6b4483..7b72c6aaeb17 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-002.html @@ -54,6 +54,10 @@

+ +
+
+
@@ -76,6 +80,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003-ref.html index ecc148a3215a..15507845661d 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003-ref.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003.html index e6a712d00dae..582262bd3deb 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-003.html @@ -52,6 +52,10 @@

+ +
+
+
@@ -74,6 +78,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004-ref.html index ecc148a3215a..15507845661d 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004-ref.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004-ref.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004.html index 070829ba8c6f..63c893b6c4f1 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004.html +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-004.html @@ -53,6 +53,10 @@

+ +
+
+
@@ -75,6 +79,10 @@

+ +
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html new file mode 100644 index 000000000000..c696d079f43e --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1-ref.html @@ -0,0 +1,31 @@ + +CSS Test Reference: breaking of column rule + + + + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html new file mode 100644 index 000000000000..13deaa72cb7d --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/broken-column-rule-1.html @@ -0,0 +1,34 @@ + +CSS Test: breaking of column rule + + + + + + +
+
+
+
+
diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/reftest.list b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/reftest.list index 52e87560ed41..35102af64b63 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/reftest.list +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/multicol3/reftest.list @@ -1,2 +1,3 @@ +== broken-column-rule-1.html broken-column-rule-1-ref.html == moz-multicol3-column-balancing-break-inside-avoid-1.html moz-multicol3-column-balancing-break-inside-avoid-1-ref.html == multicol-height-002.xht reference/multicol-height-002.xht diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html new file mode 100644 index 000000000000..8a568d25d927 --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1-ref.html @@ -0,0 +1,90 @@ + + + + + Individual transform: compare individual transform with transform functions + + + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html new file mode 100644 index 000000000000..4f83e2eac47f --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-1.html @@ -0,0 +1,100 @@ + + + + + Individual transform: compare individual transform with transform functions + + + + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html new file mode 100644 index 000000000000..ee956aa301f7 --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2-ref.html @@ -0,0 +1,30 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html new file mode 100644 index 000000000000..3f6c97386bae --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2a.html @@ -0,0 +1,32 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html new file mode 100644 index 000000000000..94dac2f10ffc --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2b.html @@ -0,0 +1,32 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html new file mode 100644 index 000000000000..f84ae2280650 --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2c.html @@ -0,0 +1,32 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html new file mode 100644 index 000000000000..5b5694f544e2 --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2d.html @@ -0,0 +1,31 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html new file mode 100644 index 000000000000..0350137bedef --- /dev/null +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/individual-transform-2e.html @@ -0,0 +1,31 @@ + + + + + Individual transform: combine individual transform properties + + + + + + + + + +
+ + diff --git a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list index 4bc525b0bd47..ef1d7aa77c6f 100644 --- a/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list +++ b/testing/web-platform/tests/css/vendor-imports/mozilla/mozilla-central-reftests/transforms/reftest.list @@ -4,3 +4,12 @@ == perspective-containing-block-dynamic-1b.html containing-block-dynamic-1-ref.html == perspective-zero.html reference/green.html == perspective-zero-2.html perspective-zero-2-ref.html + +# stylo-vs-gecko comparison fails since we support individual transform on new +# style system only. +== individual-transform-1.html individual-transform-1-ref.html +== individual-transform-2a.html individual-transform-2-ref.html +== individual-transform-2b.html individual-transform-2-ref.html +== individual-transform-2c.html individual-transform-2-ref.html +== individual-transform-2d.html individual-transform-2-ref.html +== individual-transform-2e.html individual-transform-2-ref.html diff --git a/testing/web-platform/tests/custom-elements/Document-createElement-svg.svg b/testing/web-platform/tests/custom-elements/Document-createElement-svg.svg new file mode 100644 index 000000000000..0b53bd830f8e --- /dev/null +++ b/testing/web-platform/tests/custom-elements/Document-createElement-svg.svg @@ -0,0 +1,24 @@ + + +document.createElement in SVG for custom elements + + + + diff --git a/testing/web-platform/tests/custom-elements/Document-createElement.html b/testing/web-platform/tests/custom-elements/Document-createElement.html index 52a68e8e1789..97a56595502e 100644 --- a/testing/web-platform/tests/custom-elements/Document-createElement.html +++ b/testing/web-platform/tests/custom-elements/Document-createElement.html @@ -342,6 +342,18 @@ test(function () { }, 'document.createElement must report an exception thrown by a custom element constructor'); +test(() => { + class MyElement extends HTMLDivElement {} + + // createElement with unknown 'is' should not throw. + // https://github.com/w3c/webcomponents/issues/608 + let div = document.createElement('div', { is: 'my-div' }); + assert_false(div instanceof MyElement); + + customElements.define('my-div', MyElement, { extends: 'div' }); + document.body.appendChild(div); + assert_true(div instanceof MyElement, 'Undefined element is upgraded on connecting to a document'); +}, 'document.createElement with unknown "is" value should create "undefined" state element'); diff --git a/testing/web-platform/tests/custom-elements/reactions/CSSStyleDeclaration.html b/testing/web-platform/tests/custom-elements/reactions/CSSStyleDeclaration.html index bf9e00ab528f..95274d8c7574 100644 --- a/testing/web-platform/tests/custom-elements/reactions/CSSStyleDeclaration.html +++ b/testing/web-platform/tests/custom-elements/reactions/CSSStyleDeclaration.html @@ -26,13 +26,17 @@ test_mutating_style_property_priority(function (instance, propertyName, idlName, instance.style.setProperty(propertyName, instance.style[idlName], isImportant ? 'important': ''); }, 'setProperty on CSSStyleDeclaration'); -test_mutating_style_property_value(function (instance, propertyName, idlName, value) { - instance.style.setPropertyValue(propertyName, value); -}, 'setPropertyValue on CSSStyleDeclaration'); +if (CSSStyleDeclaration.prototype.setPropertyValue) { + test_mutating_style_property_value(function (instance, propertyName, idlName, value) { + instance.style.setPropertyValue(propertyName, value); + }, 'setPropertyValue on CSSStyleDeclaration'); +} -test_mutating_style_property_priority(function (instance, propertyName, idlName, isImportant) { - instance.style.setPropertyPriority(propertyName, isImportant ? 'important': ''); -}, 'setPropertyPriority on CSSStyleDeclaration'); +if (CSSStyleDeclaration.prototype.setPropertyPriority) { + test_mutating_style_property_priority(function (instance, propertyName, idlName, isImportant) { + instance.style.setPropertyPriority(propertyName, isImportant ? 'important': ''); + }, 'setPropertyPriority on CSSStyleDeclaration'); +} test_removing_style_property_value(function (instance, propertyName, idlName) { instance.style.removeProperty(propertyName); diff --git a/testing/web-platform/tests/custom-elements/reactions/HTMLElement.html b/testing/web-platform/tests/custom-elements/reactions/HTMLElement.html index bce4ef1627c9..5fe422cdfc1d 100644 --- a/testing/web-platform/tests/custom-elements/reactions/HTMLElement.html +++ b/testing/web-platform/tests/custom-elements/reactions/HTMLElement.html @@ -22,8 +22,6 @@ testReflectBooleanAttribute('hidden', 'hidden', 'hidden on HTMLElement'); testReflectAttribute('tabIndex', 'tabindex', '0', '1', 'tabIndex on HTMLElement'); testReflectAttribute('accessKey', 'accesskey', 'a', 'b', 'accessKey on HTMLElement'); testReflectAttributeWithContentValues('draggable', 'draggable', true, 'true', false, 'false', 'draggable on HTMLElement'); -testReflectAttribute('dropzone', 'dropzone', 'copy', 'move', 'dropzone on HTMLElement'); -testReflectAttribute('contextMenu', 'contextmenu', 'menu1', 'menu2', 'contextMenu on HTMLElement'); testReflectAttributeWithContentValues('spellcheck', 'spellcheck', true, 'true', false, 'false', 'spellcheck on HTMLElement'); testNodeDisconnector(function (customElement) { diff --git a/testing/web-platform/tests/custom-elements/reactions/HTMLInputElement.html b/testing/web-platform/tests/custom-elements/reactions/HTMLInputElement.html index 8193d2c57f73..dc4b22a22eea 100644 --- a/testing/web-platform/tests/custom-elements/reactions/HTMLInputElement.html +++ b/testing/web-platform/tests/custom-elements/reactions/HTMLInputElement.html @@ -11,51 +11,56 @@ diff --git a/testing/web-platform/tests/docs/_running-tests/chrome_android.md b/testing/web-platform/tests/docs/_running-tests/chrome_android.md index f707995033d8..62a2028eb4e7 100644 --- a/testing/web-platform/tests/docs/_running-tests/chrome_android.md +++ b/testing/web-platform/tests/docs/_running-tests/chrome_android.md @@ -1,6 +1,10 @@ To run WPT on Chrome on an android device, some additional set up is required. -First until we find a better way, we need to root the android device and update -the /etc/hosts file to include + +First of all, as usual Android development, we need to have `adb` and be able to +connect to the device. + +Furthermore, until we find a better way, we need to root the android device and +update the /etc/hosts file to include ``` 127.0.0.1 web-platform.test @@ -12,22 +16,6 @@ the /etc/hosts file to include 0.0.0.0 nonexistent-origin.web-platform.test ``` -Next, we need to start adb and reverse forward the web-platform.tests ports - -``` -adb start-server -``` - -Add any ports that you need based on your config. For example: -``` -adb reverse tcp:8000 tcp:8000 -adb reverse tcp:8001 tcp:8001 -adb reverse tcp:8081 tcp:8081 -adb reverse tcp:8444 tcp:8444 -adb reverse tcp:9001 tcp:9001 -adb reverse tcp:9444 tcp:9444 -``` - After this, we may run wpt with the `chrome_android` product ``` diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html new file mode 100644 index 000000000000..c591be464792 --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html new file mode 100644 index 000000000000..8a0a4374b2df --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html new file mode 100644 index 000000000000..0f8a0c066525 --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers new file mode 100644 index 000000000000..0204b73b18ac --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: picture-in-picture * diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-default-feature-policy.https.sub.html b/testing/web-platform/tests/feature-policy/picture-in-picture-default-feature-policy.https.sub.html new file mode 100644 index 000000000000..6f820166f1d2 --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-default-feature-policy.https.sub.html @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html b/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html new file mode 100644 index 000000000000..5080c806485b --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers b/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers new file mode 100644 index 000000000000..1759381fdc41 --- /dev/null +++ b/testing/web-platform/tests/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: picture-in-picture 'none' diff --git a/testing/web-platform/tests/feature-policy/resources/feature-policy-picture-in-picture.html b/testing/web-platform/tests/feature-policy/resources/feature-policy-picture-in-picture.html new file mode 100644 index 000000000000..436682d8754b --- /dev/null +++ b/testing/web-platform/tests/feature-policy/resources/feature-policy-picture-in-picture.html @@ -0,0 +1,10 @@ + + diff --git a/testing/web-platform/tests/feature-policy/resources/picture-in-picture.js b/testing/web-platform/tests/feature-policy/resources/picture-in-picture.js new file mode 100644 index 000000000000..7ccd0f8837fa --- /dev/null +++ b/testing/web-platform/tests/feature-policy/resources/picture-in-picture.js @@ -0,0 +1,13 @@ +function isPictureInPictureAllowed() { + return new Promise((resolve, reject) => { + const video = document.createElement('video'); + video.requestPictureInPicture() + .then(() => resolve(document.pictureInPictureEnabled)) + .catch(e => { + if (e.name == 'NotAllowedError') + resolve(document.pictureInPictureEnabled); + else + resolve(false); + }); + }); +} \ No newline at end of file diff --git a/testing/web-platform/tests/fetch/data-urls/README.md b/testing/web-platform/tests/fetch/data-urls/README.md new file mode 100644 index 000000000000..64c3d7e95215 --- /dev/null +++ b/testing/web-platform/tests/fetch/data-urls/README.md @@ -0,0 +1,11 @@ +== data: URLs == + +`resources/data-urls.json` contains `data:` URL tests. The tests are encoded as a JSON array. Each value in the array is an array of two or three values. The first value describes the input, the second value describes the expected MIME type, null if the input is expected to fail somehow, or the empty string if the expected value is `text/plain;charset=US-ASCII`. The third value, if present, describes the expected body as an array of integers representing bytes. + +These tests are used for `data:` URLs in this directory (see `processing.any.js`). + +== Forgiving-base64 decode == + +`resources/base64.json` contains [forgiving-base64 decode](https://infra.spec.whatwg.org/#forgiving-base64-decode) tests. The tests are encoded as a JSON array. Each value in the array is an array of two values. The first value describes the input, the second value describes the output as an array of integers representing bytes or null if the input cannot be decoded. + +These tests are used for `data:` URLs in this directory (see `base64.any.js`) and `window.atob()` in `../../html/webappapis/atob/base64.html`. diff --git a/testing/web-platform/tests/fetch/data-urls/base64.any.js b/testing/web-platform/tests/fetch/data-urls/base64.any.js new file mode 100644 index 000000000000..48e4c530a862 --- /dev/null +++ b/testing/web-platform/tests/fetch/data-urls/base64.any.js @@ -0,0 +1,16 @@ +promise_test(() => fetch("resources/base64.json").then(res => res.json()).then(runBase64Tests), "Setup."); +function runBase64Tests(tests) { + for(let i = 0; i < tests.length; i++) { + const input = tests[i][0], + output = tests[i][1], + dataURL = "data:;base64," + input; + promise_test(t => { + if(output === null) { + return promise_rejects(t, new TypeError(), fetch(dataURL)); + } + return fetch(dataURL).then(res => res.arrayBuffer()).then(body => { + assert_array_equals(new Uint8Array(body), output); + }); + }, "data: URL base64 handling: " + format_value(input)); + } +} diff --git a/testing/web-platform/tests/fetch/data-urls/processing.any.js b/testing/web-platform/tests/fetch/data-urls/processing.any.js new file mode 100644 index 000000000000..b66a874f45ca --- /dev/null +++ b/testing/web-platform/tests/fetch/data-urls/processing.any.js @@ -0,0 +1,20 @@ +promise_test(() => fetch("resources/data-urls.json").then(res => res.json()).then(runDataURLTests), "Setup."); +function runDataURLTests(tests) { + for(let i = 0; i < tests.length; i++) { + const input = tests[i][0], + expectedMimeType = tests[i][1], + expectedBody = expectedMimeType !== null ? tests[i][2] : null; + promise_test(t => { + if(expectedMimeType === null) { + return promise_rejects(t, new TypeError(), fetch(input)); + } else { + return fetch(input).then(res => { + return res.arrayBuffer().then(body => { + assert_array_equals(new Uint8Array(body), expectedBody); + assert_equals(res.headers.get("content-type"), expectedMimeType); // We could assert this earlier, but this fails often + }); + }); + } + }, format_value(input)); + } +} diff --git a/testing/web-platform/tests/fetch/data-urls/resources/base64.json b/testing/web-platform/tests/fetch/data-urls/resources/base64.json new file mode 100644 index 000000000000..7de20b282861 --- /dev/null +++ b/testing/web-platform/tests/fetch/data-urls/resources/base64.json @@ -0,0 +1,79 @@ +[ + ["", []], + ["abcd", [105, 183, 29]], + [" abcd", [105, 183, 29]], + ["abcd ", [105, 183, 29]], + [" abcd===", null], + ["abcd=== ", null], + ["abcd ===", null], + ["a", null], + ["ab", [105]], + ["abc", [105, 183]], + ["abcde", null], + ["𐀀", null], + ["=", null], + ["==", null], + ["===", null], + ["====", null], + ["=====", null], + ["a=", null], + ["a==", null], + ["a===", null], + ["a====", null], + ["a=====", null], + ["ab=", null], + ["ab==", [105]], + ["ab===", null], + ["ab====", null], + ["ab=====", null], + ["abc=", [105, 183]], + ["abc==", null], + ["abc===", null], + ["abc====", null], + ["abc=====", null], + ["abcd=", null], + ["abcd==", null], + ["abcd===", null], + ["abcd====", null], + ["abcd=====", null], + ["abcde=", null], + ["abcde==", null], + ["abcde===", null], + ["abcde====", null], + ["abcde=====", null], + ["=a", null], + ["=a=", null], + ["a=b", null], + ["a=b=", null], + ["ab=c", null], + ["ab=c=", null], + ["abc=d", null], + ["abc=d=", null], + ["ab\tcd", [105, 183, 29]], + ["ab\ncd", [105, 183, 29]], + ["ab\fcd", [105, 183, 29]], + ["ab\rcd", [105, 183, 29]], + ["ab cd", [105, 183, 29]], + ["ab\u00a0cd", null], + ["ab\t\n\f\r cd", [105, 183, 29]], + [" \t\n\f\r ab\t\n\f\r cd\t\n\f\r ", [105, 183, 29]], + ["ab\t\n\f\r =\t\n\f\r =\t\n\f\r ", [105]], + ["A", null], + ["/A", [252]], + ["//A", [255, 240]], + ["///A", [255, 255, 192]], + ["////A", null], + ["/", null], + ["A/", [3]], + ["AA/", [0, 15]], + ["AAAA/", null], + ["AAA/", [0, 0, 63]], + ["\u0000nonsense", null], + ["abcd\u0000nonsense", null], + ["YQ", [97]], + ["YR", [97]], + ["~~", null], + ["..", null], + ["--", null], + ["__", null] +] diff --git a/testing/web-platform/tests/fetch/data-urls/resources/data-urls.json b/testing/web-platform/tests/fetch/data-urls/resources/data-urls.json new file mode 100644 index 000000000000..2265b9704958 --- /dev/null +++ b/testing/web-platform/tests/fetch/data-urls/resources/data-urls.json @@ -0,0 +1,199 @@ +[ + ["data://test/,X", + "text/plain;charset=US-ASCII", + [88]], + ["data://test:test/,X", + null], + ["data:,X", + "text/plain;charset=US-ASCII", + [88]], + ["data:", + null], + ["data:text/html", + null], + ["data:text/html ;charset=x ", + null], + ["data:,", + "text/plain;charset=US-ASCII", + []], + ["data:,X#X", + "text/plain;charset=US-ASCII", + [88]], + ["data:,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:text/plain,X", + "text/plain", + [88]], + ["data:text/plain ,X", + "text/plain", + [88]], + ["data:text/plain%20,X", + "text/plain%20", + [88]], + ["data:text/plain\f,X", + "text/plain%0c", + [88]], + ["data:text/plain%0C,X", + "text/plain%0c", + [88]], + ["data:text/plain;,X", + "text/plain", + [88]], + ["data:;x=x;charset=x,X", + "text/plain;x=x;charset=x", + [88]], + ["data:;x=x,X", + "text/plain;x=x", + [88]], + ["data:text/plain;charset=windows-1252,%C2%B1", + "text/plain;charset=windows-1252", + [194, 177]], + ["data:text/plain;Charset=UTF-8,%C2%B1", + "text/plain;charset=UTF-8", + [194, 177]], + ["data:image/gif,%C2%B1", + "image/gif", + [194, 177]], + ["data:IMAGE/gif,%C2%B1", + "image/gif", + [194, 177]], + ["data:IMAGE/gif;hi=x,%C2%B1", + "image/gif;hi=x", + [194, 177]], + ["data:IMAGE/gif;CHARSET=x,%C2%B1", + "image/gif;charset=x", + [194, 177]], + ["data: ,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:%20,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:\f,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:%1F,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:\u0000,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:%00,%FF", + "text/plain;charset=US-ASCII", + [255]], + ["data:text/html ,X", + "text/html", + [88]], + ["data:text / html,X", + "text/plain;charset=US-ASCII", + [88]], + ["data:†,X", + "text/plain;charset=US-ASCII", + [88]], + ["data:†/†,X", + "%e2%80%a0/%e2%80%a0", + [88]], + ["data:X,X", + "text/plain;charset=US-ASCII", + [88]], + ["data:image/png,X X", + "image/png", + [88, 32, 88]], + ["data:application/xml,X X", + "application/xml", + [88, 32, 88]], + ["data:unknown/unknown,X X", + "unknown/unknown", + [88, 32, 88]], + ["data:text/plain;a=\",\",X", + "text/plain", + [34, 44, 88]], + ["data:text/plain;a=%2C,X", + "text/plain;a=%2C", + [88]], + ["data:;base64;base64,WA", + "text/plain", + [88]], + ["data:x/x;base64;base64,WA", + "x/x", + [88]], + ["data:x/x;base64;charset=x,WA", + "x/x;charset=x", + [87, 65]], + ["data:x/x;base64;charset=x;base64,WA", + "x/x;charset=x", + [88]], + ["data:x/x;base64;base64x,WA", + "x/x", + [87, 65]], + ["data:;base64,W%20A", + "text/plain;charset=US-ASCII", + [88]], + ["data:;base64,W%0CA", + "text/plain;charset=US-ASCII", + [88]], + ["data:x;base64x,WA", + "text/plain;charset=US-ASCII", + [87, 65]], + ["data:x;base64;x,WA", + "text/plain;charset=US-ASCII", + [87, 65]], + ["data:x;base64=x,WA", + "text/plain;charset=US-ASCII", + [87, 65]], + ["data:; base64,WA", + "text/plain;charset=US-ASCII", + [88]], + ["data:; base64,WA", + "text/plain;charset=US-ASCII", + [88]], + ["data: ;charset=x ; base64,WA", + "text/plain;charset=x", + [88]], + ["data:;base64;,WA", + "text/plain", + [87, 65]], + ["data:;base64 ,WA", + "text/plain;charset=US-ASCII", + [88]], + ["data:;base64 ,WA", + "text/plain;charset=US-ASCII", + [88]], + ["data:;base 64,WA", + "text/plain", + [87, 65]], + ["data:;BASe64,WA", + "text/plain;charset=US-ASCII", + [88]], + ["data:;%62ase64,WA", + "text/plain", + [87, 65]], + ["data:%3Bbase64,WA", + "text/plain;charset=US-ASCII", + [87, 65]], + ["data:;charset=x,X", + "text/plain;charset=x", + [88]], + ["data:; charset=x,X", + "text/plain;charset=x", + [88]], + ["data:;charset =x,X", + "text/plain", + [88]], + ["data:;charset= x,X", + "text/plain;charset=\" x\"", + [88]], + ["data:;charset=,X", + "text/plain", + [88]], + ["data:;charset,X", + "text/plain", + [88]], + ["data:;charset=\"x\",X", + "text/plain;charset=x", + [88]], + ["data:;CHARSET=\"X\",X", + "text/plain;charset=X", + [88]] +] diff --git a/testing/web-platform/tests/html/dom/elements/global-attributes/title-manual.html b/testing/web-platform/tests/html/dom/elements/global-attributes/title-manual.html new file mode 100644 index 000000000000..d781172bbadc --- /dev/null +++ b/testing/web-platform/tests/html/dom/elements/global-attributes/title-manual.html @@ -0,0 +1,8 @@ + +The title attribute + +

Hover each word below. The tooltip for each of them should be "PASS".

+
div dfn abbr menuitem
diff --git a/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-start-end.html b/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-start-end.html index 17fd28c2ef66..0c4deb93ed6c 100644 --- a/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-start-end.html +++ b/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-start-end.html @@ -143,4 +143,30 @@ el.remove(); } }, "selectionEnd edge-case values"); + + test(() => { + for (let el of createTestElements(testValue)) { + const start = 1; + const end = testValue.length - 1; + + el.setSelectionRange(start, end); + + assert_equals(el.selectionStart, start, `selectionStart on ${el.id}`); + assert_equals(el.selectionEnd, end, `selectionEnd on ${el.id}`); + + el.selectionDirection = "backward"; + + assert_equals(el.selectionStart, start, + `selectionStart on ${el.id} after setting selectionDirection to "backward"`); + assert_equals(el.selectionEnd, end, + `selectionEnd on ${el.id} after setting selectionDirection to "backward"`); + + el.selectionDirection = "forward"; + + assert_equals(el.selectionStart, start, + `selectionStart on ${el.id} after setting selectionDirection to "forward"`); + assert_equals(el.selectionEnd, end, + `selectionEnd on ${el.id} after setting selectionDirection to "forward"`); + } + }, "selectionStart and selectionEnd should remain the same when selectionDirection is changed"); diff --git a/testing/web-platform/tests/html/semantics/forms/the-input-element/image-click-form-data.html b/testing/web-platform/tests/html/semantics/forms/the-input-element/image-click-form-data.html new file mode 100644 index 000000000000..87b77e4805d3 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/image-click-form-data.html @@ -0,0 +1,28 @@ + + +Check form-data for image submit button with non-empty 'value' attribute + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/html/semantics/forms/the-input-element/resources/image-submit-click.html b/testing/web-platform/tests/html/semantics/forms/the-input-element/resources/image-submit-click.html new file mode 100644 index 000000000000..8461a03d7a52 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/resources/image-submit-click.html @@ -0,0 +1,15 @@ + +
+ +
+ + \ No newline at end of file diff --git a/testing/web-platform/tests/html/semantics/forms/the-input-element/type-change-state.html b/testing/web-platform/tests/html/semantics/forms/the-input-element/type-change-state.html index 82d36cda4816..34cfd438cb6a 100644 --- a/testing/web-platform/tests/html/semantics/forms/the-input-element/type-change-state.html +++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/type-change-state.html @@ -31,6 +31,11 @@ { type: "reset" }, { type: "button" } ]; + + const selectionStart = 2; + const selectionEnd = 5; + const selectionDirection = "backward"; + for (var i = 0; i < types.length; i++) { for (var j = 0; j < types.length; j++) { if (types[i] != types[j]) { @@ -49,6 +54,13 @@ assert_equals(input.value, ""); } else { input.value = expected; + + const previouslySelectable = (input.selectionStart !== null); + + if (previouslySelectable) { + input.setSelectionRange(selectionStart, selectionEnd, selectionDirection); + } + input.type = types[j].type; // change state // type[i] sanitization @@ -69,6 +81,20 @@ } assert_equals(input.value, expected, "input.value should be '" + expected + "' after change of state"); + + const nowSelectable = (input.selectionStart !== null); + + if (nowSelectable) { + if (previouslySelectable) { + assert_equals(input.selectionStart, selectionStart, "selectionStart should be unchanged"); + assert_equals(input.selectionEnd, selectionEnd, "selectionEnd should be unchanged"); + assert_equals(input.selectionDirection, selectionDirection, "selectionDirection should be unchanged"); + } else { + assert_equals(input.selectionStart, 0, "selectionStart should be 0"); + assert_equals(input.selectionEnd, 0, "selectionEnd should be 0"); + assert_equals(input.selectionDirection, "none", "selectionDirection should be 'none'"); + } + } } }, "change state from " + types[i].type + " to " + types[j].type); } diff --git a/testing/web-platform/tests/html/webappapis/atob/base64.html b/testing/web-platform/tests/html/webappapis/atob/base64.html index c33ab228f94a..c522afdd56c7 100644 --- a/testing/web-platform/tests/html/webappapis/atob/base64.html +++ b/testing/web-platform/tests/html/webappapis/atob/base64.html @@ -70,124 +70,6 @@ function btoaLookup(idx) { // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the tests. } -/** - * Implementation of atob() according to the HTML spec, except that instead of - * throwing INVALID_CHARACTER_ERR we return null. - */ -function myatob(input) { - // WebIDL requires DOMStrings to just be converted using ECMAScript - // ToString, which in our case amounts to calling String(). - input = String(input); - - // "Remove all space characters from input." - input = input.replace(/[ \t\n\f\r]/g, ""); - - // "If the length of input divides by 4 leaving no remainder, then: if - // input ends with one or two U+003D EQUALS SIGN (=) characters, remove - // them from input." - if (input.length % 4 == 0 && /==?$/.test(input)) { - input = input.replace(/==?$/, ""); - } - - // "If the length of input divides by 4 leaving a remainder of 1, throw an - // INVALID_CHARACTER_ERR exception and abort these steps." - // - // "If input contains a character that is not in the following list of - // characters and character ranges, throw an INVALID_CHARACTER_ERR - // exception and abort these steps: - // - // U+002B PLUS SIGN (+) - // U+002F SOLIDUS (/) - // U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9) - // U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z - // U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z" - if (input.length % 4 == 1 - || !/^[+/0-9A-Za-z]*$/.test(input)) { - return null; - } - - // "Let output be a string, initially empty." - var output = ""; - - // "Let buffer be a buffer that can have bits appended to it, initially - // empty." - // - // We append bits via left-shift and or. accumulatedBits is used to track - // when we've gotten to 24 bits. - var buffer = 0; - var accumulatedBits = 0; - - // "While position does not point past the end of input, run these - // substeps:" - for (var i = 0; i < input.length; i++) { - // "Find the character pointed to by position in the first column of - // the following table. Let n be the number given in the second cell of - // the same row." - // - // "Append to buffer the six bits corresponding to number, most - // significant bit first." - // - // atobLookup() implements the table from the spec. - buffer <<= 6; - buffer |= atobLookup(input[i]); - - // "If buffer has accumulated 24 bits, interpret them as three 8-bit - // big-endian numbers. Append the three characters with code points - // equal to those numbers to output, in the same order, and then empty - // buffer." - accumulatedBits += 6; - if (accumulatedBits == 24) { - output += String.fromCharCode((buffer & 0xff0000) >> 16); - output += String.fromCharCode((buffer & 0xff00) >> 8); - output += String.fromCharCode(buffer & 0xff); - buffer = accumulatedBits = 0; - } - - // "Advance position by one character." - } - - // "If buffer is not empty, it contains either 12 or 18 bits. If it - // contains 12 bits, discard the last four and interpret the remaining - // eight as an 8-bit big-endian number. If it contains 18 bits, discard the - // last two and interpret the remaining 16 as two 8-bit big-endian numbers. - // Append the one or two characters with code points equal to those one or - // two numbers to output, in the same order." - if (accumulatedBits == 12) { - buffer >>= 4; - output += String.fromCharCode(buffer); - } else if (accumulatedBits == 18) { - buffer >>= 2; - output += String.fromCharCode((buffer & 0xff00) >> 8); - output += String.fromCharCode(buffer & 0xff); - } - - // "Return output." - return output; -} - -/** - * A lookup table for atob(), which converts an ASCII character to the - * corresponding six-bit number. - */ -function atobLookup(chr) { - if (/[A-Z]/.test(chr)) { - return chr.charCodeAt(0) - "A".charCodeAt(0); - } - if (/[a-z]/.test(chr)) { - return chr.charCodeAt(0) - "a".charCodeAt(0) + 26; - } - if (/[0-9]/.test(chr)) { - return chr.charCodeAt(0) - "0".charCodeAt(0) + 52; - } - if (chr == "+") { - return 62; - } - if (chr == "/") { - return 63; - } - // Throw exception; should not be hit in tests -} - function btoaException(input) { input = String(input); for (var i = 0; i < input.length; i++) { @@ -252,55 +134,40 @@ tests.push(["btoa(first 256 code points concatenated)", everything]); generate_tests(testBtoa, tests); -function testAtob(input) { - var expected = myatob(input); - if (expected === null) { - assert_throws("InvalidCharacterError", function() { atob(input) }); - return; - } +promise_test(() => fetch("../../../fetch/data-urls/resources/base64.json").then(res => res.json()).then(runAtobTests), "atob() setup."); - assert_equals(atob(input), expected); -} - -var tests = ["", "abcd", " abcd", "abcd ", " abcd===", "abcd=== ", - "abcd ===", "a", "ab", "abc", "abcde", String.fromCharCode(0xd800, 0xdc00), - "=", "==", "===", "====", "=====", - "a=", "a==", "a===", "a====", "a=====", - "ab=", "ab==", "ab===", "ab====", "ab=====", - "abc=", "abc==", "abc===", "abc====", "abc=====", - "abcd=", "abcd==", "abcd===", "abcd====", "abcd=====", - "abcde=", "abcde==", "abcde===", "abcde====", "abcde=====", - "=a", "=a=", "a=b", "a=b=", "ab=c", "ab=c=", "abc=d", "abc=d=", - // With whitespace - "ab\tcd", "ab\ncd", "ab\fcd", "ab\rcd", "ab cd", "ab\u00a0cd", - "ab\t\n\f\r cd", " \t\n\f\r ab\t\n\f\r cd\t\n\f\r ", - "ab\t\n\f\r =\t\n\f\r =\t\n\f\r ", - // Test if any bits are set at the end. These should all be fine, since - // they end with A, which becomes 0: - "A", "/A", "//A", "///A", "////A", - // These are all bad, since they end in / (= 63, all bits set) but their - // length isn't a multiple of four characters, so they can't be output by - // btoa(). Thus one might expect some UAs to throw exceptions or otherwise - // object, since they could never be output by btoa(), so they're good to - // test. - "/", "A/", "AA/", "AAAA/", - // But this one is possible: - "AAA/", - // Binary-safety tests - "\0nonsense", "abcd\0nonsense", - // WebIDL tests - undefined, null, 7, 12, 1.5, true, false, NaN, +Infinity, -Infinity, 0, -0, - {toString: function() { return "foo" }}, - {toString: function() { return "abcd" }}, +const idlTests = [ + [undefined, null], + [null, [158, 233, 101]], + [7, null], + [12, [215]], + [1.5, null], + [true, [182, 187]], + [false, null], + [NaN, [53, 163]], + [+Infinity, [34, 119, 226, 158, 43, 114]], + [-Infinity, null], + [0, null], + [-0, null], + [{toString: function() { return "foo" }}, [126, 138]], + [{toString: function() { return "abcd" }}, [105, 183, 29]] ]; -tests = tests.map( - function(elem) { - if (myatob(elem) === null) { - return ["atob(" + format_value(elem) + ") must raise InvalidCharacterError", elem]; - } - return ["atob(" + format_value(elem) + ") == " + format_value(myatob(elem)), elem]; - } -); -generate_tests(testAtob, tests); +function runAtobTests(tests) { + const allTests = tests.concat(idlTests); + for(let i = 0; i < allTests.length; i++) { + const input = allTests[i][0], + output = allTests[i][1]; + test(() => { + if(output === null) { + assert_throws("InvalidCharacterError", () => window.atob(input)); + } else { + const result = window.atob(input); + for(let ii = 0; ii < output.length; ii++) { + assert_equals(result.charCodeAt(ii), output[ii]); + } + } + }, "atob(" + format_value(input) + ")"); + } +} diff --git a/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html b/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html index 109b10ead44e..17cc35c21b0a 100644 --- a/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html +++ b/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html @@ -33,7 +33,7 @@ test(function() { // reason is passed. var r = new Error(); assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: r }).reason, r); - + assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: null }).reason, null); // All initializers are passed. assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).bubbles, true); diff --git a/testing/web-platform/tests/interfaces/html.idl b/testing/web-platform/tests/interfaces/html.idl index a6068c044881..49348a723b35 100644 --- a/testing/web-platform/tests/interfaces/html.idl +++ b/testing/web-platform/tests/interfaces/html.idl @@ -1141,7 +1141,7 @@ interface HTMLCanvasElement : HTMLElement { [CEReactions] attribute unsigned long width; [CEReactions] attribute unsigned long height; - RenderingContext? getContext(DOMString contextId, any... arguments); + RenderingContext? getContext(DOMString contextId, optional any options = null); USVString toDataURL(optional DOMString type, optional any quality); void toBlob(BlobCallback _callback, optional DOMString type, optional any quality); @@ -1401,14 +1401,14 @@ dictionary ImageEncodeOptions { unrestricted double quality = 1.0; }; -enum OffscreenRenderingContextType { "2d", "webgl" }; +enum OffscreenRenderingContextId { "2d", "webgl" }; [Constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height), Exposed=(Window,Worker), Transferable] interface OffscreenCanvas : EventTarget { attribute unsigned long long width; attribute unsigned long long height; - OffscreenRenderingContext? getContext(OffscreenRenderingContextType contextType, any... arguments); + OffscreenRenderingContext? getContext(OffscreenRenderingContextId contextId, optional any options = null); ImageBitmap transferToImageBitmap(); Promise convertToBlob(optional ImageEncodeOptions options); }; diff --git a/testing/web-platform/tests/media-source/mediasource-endofstream.html b/testing/web-platform/tests/media-source/mediasource-endofstream.html index bca80af81623..5b6114fa716a 100644 --- a/testing/web-platform/tests/media-source/mediasource-endofstream.html +++ b/testing/web-platform/tests/media-source/mediasource-endofstream.html @@ -52,7 +52,8 @@ // Note that segmentInfo.duration is expected to also be the // highest track buffer range end time. Therefore, endOfStream() should // not change duration with this media. - assert_equals(threeDecimalPlaces(segmentInfo.duration), threeDecimalPlaces(mediaSource.duration)); + assert_equals(threeDecimalPlaces(segmentInfo.duration), threeDecimalPlaces(mediaSource.duration), + 'SegmentInfo duration should initially roughly match mediaSource duration'); assert_less_than_equal(highestEndTime, mediaSource.duration, 'Media duration may be slightly longer than intersected track buffered ranges'); @@ -64,7 +65,8 @@ assert_equals(sourceBuffer.buffered.length, 1, 'Media data properly buffered after endOfStream'); - assert_equals(threeDecimalPlaces(segmentInfo.duration), threeDecimalPlaces(mediaSource.duration)); + assert_equals(threeDecimalPlaces(segmentInfo.duration), threeDecimalPlaces(mediaSource.duration), + 'SegmentInfo duration should still roughly match mediaSource duration'); assert_less_than_equal(highestEndTime, mediaSource.duration, 'Media duration may be slightly longer than intersected track buffered ranges'); assert_equals(sourceBuffer.buffered.end(0), mediaSource.duration, diff --git a/testing/web-platform/tests/picture-in-picture/disable-picture-in-picture.html b/testing/web-platform/tests/picture-in-picture/disable-picture-in-picture.html new file mode 100644 index 000000000000..8726d1aaf88b --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/disable-picture-in-picture.html @@ -0,0 +1,61 @@ + +Test disable Picture-in-Picture + + + + + + + diff --git a/testing/web-platform/tests/picture-in-picture/enter-picture-in-picture.html b/testing/web-platform/tests/picture-in-picture/enter-picture-in-picture.html new file mode 100644 index 000000000000..e44087c3ff13 --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/enter-picture-in-picture.html @@ -0,0 +1,23 @@ + +Test enterpictureinpicture event + + + + + + + diff --git a/testing/web-platform/tests/picture-in-picture/exit-picture-in-picture.html b/testing/web-platform/tests/picture-in-picture/exit-picture-in-picture.html new file mode 100644 index 000000000000..e0ab7acd8f91 --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/exit-picture-in-picture.html @@ -0,0 +1,20 @@ + +Test exit Picture-in-Picture + + + + + + + diff --git a/testing/web-platform/tests/picture-in-picture/not-processing-user-gesture.html b/testing/web-platform/tests/picture-in-picture/not-processing-user-gesture.html new file mode 100644 index 000000000000..00758946b80f --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/not-processing-user-gesture.html @@ -0,0 +1,11 @@ + +Test request Picture-in-Picture requires a user gesture + + + + diff --git a/testing/web-platform/tests/picture-in-picture/picture-in-picture-element.html b/testing/web-platform/tests/picture-in-picture/picture-in-picture-element.html new file mode 100644 index 000000000000..71e399618166 --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/picture-in-picture-element.html @@ -0,0 +1,23 @@ + +Test Picture-in-Picture element + + + + + + + diff --git a/testing/web-platform/tests/picture-in-picture/request-picture-in-picture.html b/testing/web-platform/tests/picture-in-picture/request-picture-in-picture.html new file mode 100644 index 000000000000..eaabcb7a2050 --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/request-picture-in-picture.html @@ -0,0 +1,13 @@ + +Test request Picture-in-Picture + + + + + + + diff --git a/testing/web-platform/tests/picture-in-picture/resources/picture-in-picture-helpers.js b/testing/web-platform/tests/picture-in-picture/resources/picture-in-picture-helpers.js new file mode 100644 index 000000000000..0808a991a268 --- /dev/null +++ b/testing/web-platform/tests/picture-in-picture/resources/picture-in-picture-helpers.js @@ -0,0 +1,21 @@ +function callWithTrustedClick(callback) { + return new Promise(resolve => { + let button = document.createElement('button'); + button.textContent = 'click to continue test'; + button.style.display = 'block'; + button.style.fontSize = '20px'; + button.style.padding = '10px'; + button.onclick = () => { + document.body.removeChild(button); + resolve(callback()); + }; + document.body.appendChild(button); + test_driver.click(button); + }); +} + +// Calls requestPictureInPicture() in a context that's 'allowed to request PiP'. +function requestPictureInPictureWithTrustedClick(videoElement) { + return callWithTrustedClick( + () => videoElement.requestPictureInPicture()); +} \ No newline at end of file diff --git a/testing/web-platform/tests/resource-timing/resource_TAO_origin.htm b/testing/web-platform/tests/resource-timing/resource_TAO_origin.htm index dc5efa43ee2b..a0c0465e7266 100644 --- a/testing/web-platform/tests/resource-timing/resource_TAO_origin.htm +++ b/testing/web-platform/tests/resource-timing/resource_TAO_origin.htm @@ -12,19 +12,12 @@ + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html new file mode 100644 index 000000000000..824b6f3217be --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html @@ -0,0 +1,23 @@ + + +respondWith with a response whose body is being loaded from the network by chunks + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html new file mode 100644 index 000000000000..4544a9e08f56 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream-chunk.https.html @@ -0,0 +1,23 @@ + + +respondWith with a response built from a ReadableStream + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html index 92ef4684668e..336e6ed89d7f 100644 --- a/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html @@ -8,6 +8,14 @@ var url_count = 0; var expected_results = {}; +function add_promise_to_test(url) +{ + var expected = expected_results[url]; + return new Promise((resolve) => { + expected.resolve = resolve; + }); +} + function image_test(frame, url, cross_origin, expected_mode, expected_credentials) { var actual_url = url + (++url_count); @@ -20,7 +28,8 @@ function image_test(frame, url, cross_origin, expected_mode, message: 'Image load (url:' + actual_url + ' cross_origin:' + cross_origin + ')' }; - return frame.contentWindow.load_image(actual_url, cross_origin); + frame.contentWindow.load_image(actual_url, cross_origin); + return add_promise_to_test(actual_url); } function script_test(frame, url, cross_origin, expected_mode, @@ -35,7 +44,8 @@ function script_test(frame, url, cross_origin, expected_mode, message: 'Script load (url:' + actual_url + ' cross_origin:' + cross_origin + ')' }; - return frame.contentWindow.load_script(actual_url, cross_origin); + frame.contentWindow.load_script(actual_url, cross_origin); + return add_promise_to_test(actual_url); } function css_test(frame, url, cross_origin, expected_mode, @@ -50,7 +60,8 @@ function css_test(frame, url, cross_origin, expected_mode, message: 'CSS load (url:' + actual_url + ' cross_origin:' + cross_origin + ')' }; - return frame.contentWindow.load_css(actual_url, cross_origin); + frame.contentWindow.load_css(actual_url, cross_origin); + return add_promise_to_test(actual_url); } function font_face_test(frame, url, expected_mode, expected_credentials) { @@ -63,7 +74,8 @@ function font_face_test(frame, url, expected_mode, expected_credentials) { integrity: '', message: 'FontFace load (url:' + actual_url + ')' }; - return frame.contentWindow.load_font(actual_url); + frame.contentWindow.load_font(actual_url); + return add_promise_to_test(actual_url); } function script_integrity_test(frame, url, integrity, expected_integrity) { @@ -76,7 +88,8 @@ function script_integrity_test(frame, url, integrity, expected_integrity) { integrity: expected_integrity, message: 'Script load (url:' + actual_url + ')' }; - return frame.contentWindow.load_script_with_integrity(actual_url, integrity); + frame.contentWindow.load_script_with_integrity(actual_url, integrity); + return add_promise_to_test(actual_url); } function css_integrity_test(frame, url, integrity, expected_integrity) { @@ -89,7 +102,8 @@ function css_integrity_test(frame, url, integrity, expected_integrity) { integrity: expected_integrity, message: 'CSS load (url:' + actual_url + ')' }; - return frame.contentWindow.load_css_with_integrity(actual_url, integrity); + frame.contentWindow.load_css_with_integrity(actual_url, integrity); + return add_promise_to_test(actual_url); } function fetch_test(frame, url, mode, credentials, @@ -103,8 +117,10 @@ function fetch_test(frame, url, mode, credentials, message: 'fetch (url:' + actual_url + ' mode:' + mode + ' credentials:' + credentials + ')' }; - return frame.contentWindow.fetch( - new Request(actual_url, {mode: mode, credentials: credentials})); + frame.contentWindow.fetch( + new Request(actual_url, {mode: mode, credentials: credentials})).then(() => { + }, () => { }); + return add_promise_to_test(actual_url); } function audio_test(frame, url, cross_origin, @@ -118,10 +134,11 @@ function audio_test(frame, url, cross_origin, message: 'Audio load (url:' + actual_url + ' cross_origin:' + cross_origin + ')' }; - return frame.contentWindow.load_audio(actual_url, cross_origin); + frame.contentWindow.load_audio(actual_url, cross_origin); + return add_promise_to_test(actual_url); } -async_test(function(t) { +promise_test(function(t) { var SCOPE = 'resources/fetch-request-resources-iframe.https.html'; var SCRIPT = 'resources/fetch-request-resources-worker.js'; var host_info = get_host_info(); @@ -131,13 +148,13 @@ async_test(function(t) { host_info['HTTPS_REMOTE_ORIGIN'] + base_path() + 'resources/dummy?test'; var worker; var frame; - service_worker_unregister_and_register(t, SCRIPT, SCOPE) + return service_worker_unregister_and_register(t, SCRIPT, SCOPE) .then(function(registration) { worker = registration.installing; return wait_for_state(t, worker, 'activated'); }) .then(function() { - return new Promise(function(resolve) { + return new Promise(function(resolve, reject) { var channel = new MessageChannel(); channel.port1.onmessage = t.step_func(function(msg) { if (msg.data.ready) { @@ -149,110 +166,110 @@ async_test(function(t) { if (!expected) { return; } - assert_equals( + test(() => { + assert_equals( result.mode, expected.mode, 'mode of ' + expected.message + ' must be ' + expected.mode + '.'); - assert_equals( + assert_equals( result.credentials, expected.credentials, 'credentials of ' + expected.message + ' must be ' + expected.credentials + '.'); - assert_equals( + assert_equals( result.redirect, expected.redirect, 'redirect mode of ' + expected.message + ' must be ' + expected.redirect + '.'); - assert_equals( + assert_equals( result.integrity, expected.integrity, 'integrity of ' + expected.message + ' must be ' + expected.integrity + '.'); - --url_count; + }, expected.message); + expected.resolve(); delete expected_results[result.url]; - if (url_count == 0) { - frame.remove(); - service_worker_unregister_and_done(t, SCOPE); - } }); worker.postMessage( {port: channel.port2}, [channel.port2]); }); }) .then(function() { return with_iframe(SCOPE); }) - .then(function(f) { + .then(async function(f) { frame = f; - image_test(f, LOCAL_URL, '', 'no-cors', 'include'); - image_test(f, REMOTE_URL, '', 'no-cors', 'include'); - css_test(f, LOCAL_URL, '', 'no-cors', 'include'); - css_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await image_test(f, LOCAL_URL, '', 'no-cors', 'include'); + await image_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await css_test(f, LOCAL_URL, '', 'no-cors', 'include'); + await css_test(f, REMOTE_URL, '', 'no-cors', 'include'); - image_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); - image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); - image_test(f, REMOTE_URL, '', 'no-cors', 'include'); - image_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); - image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); + await image_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); + await image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); + await image_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await image_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); + await image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); - script_test(f, LOCAL_URL, '', 'no-cors', 'include'); - script_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); - script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); - script_test(f, REMOTE_URL, '', 'no-cors', 'include'); - script_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); - script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); + await script_test(f, LOCAL_URL, '', 'no-cors', 'include'); + await script_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); + await script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); + await script_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await script_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); + await script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); - css_test(f, LOCAL_URL, '', 'no-cors', 'include'); - css_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); - css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); - css_test(f, REMOTE_URL, '', 'no-cors', 'include'); - css_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); - css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); + await css_test(f, LOCAL_URL, '', 'no-cors', 'include'); + await css_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); + await css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); + await css_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await css_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); + await css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); - font_face_test(f, LOCAL_URL, 'cors', 'same-origin'); - font_face_test(f, REMOTE_URL, 'cors', 'same-origin'); + await font_face_test(f, LOCAL_URL, 'cors', 'same-origin'); + await font_face_test(f, REMOTE_URL, 'cors', 'same-origin'); - script_integrity_test(f, LOCAL_URL, ' ', ' '); - script_integrity_test(f, LOCAL_URL, - 'This is not a valid integrity because it has no dashes', - 'This is not a valid integrity because it has no dashes'); - script_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); - script_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); - script_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo sha384-abc '); - script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); + await script_integrity_test(f, LOCAL_URL, ' ', ' '); + await script_integrity_test(f, LOCAL_URL, + 'This is not a valid integrity because it has no dashes', + 'This is not a valid integrity because it has no dashes'); + await script_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); + await script_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); + await script_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo sha384-abc '); + await script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); - css_integrity_test(f, LOCAL_URL, ' ', ' '); - css_integrity_test(f, LOCAL_URL, - 'This is not a valid integrity because it has no dashes', - 'This is not a valid integrity because it has no dashes'); - css_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); - css_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); - css_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo sha384-abc '); - css_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); + await css_integrity_test(f, LOCAL_URL, ' ', ' '); + await css_integrity_test(f, LOCAL_URL, + 'This is not a valid integrity because it has no dashes', + 'This is not a valid integrity because it has no dashes'); + await css_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); + await css_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); + await css_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo sha384-abc '); + await css_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); - fetch_test(f, LOCAL_URL, 'same-origin', 'omit', 'same-origin', 'omit'); - fetch_test(f, LOCAL_URL, 'same-origin', 'same-origin', - 'same-origin', 'same-origin'); - fetch_test(f, LOCAL_URL, 'same-origin', 'include', - 'same-origin', 'include'); - fetch_test(f, LOCAL_URL, 'no-cors', 'omit', 'no-cors', 'omit'); - fetch_test(f, LOCAL_URL, 'no-cors', 'same-origin', - 'no-cors', 'same-origin'); - fetch_test(f, LOCAL_URL, 'no-cors', 'include', 'no-cors', 'include'); - fetch_test(f, LOCAL_URL, 'cors', 'omit', 'cors', 'omit'); - fetch_test(f, LOCAL_URL, 'cors', 'same-origin', 'cors', 'same-origin'); - fetch_test(f, LOCAL_URL, 'cors', 'include', 'cors', 'include'); - fetch_test(f, REMOTE_URL, 'no-cors', 'omit', 'no-cors', 'omit'); - fetch_test(f, REMOTE_URL, 'no-cors', 'same-origin', - 'no-cors', 'same-origin'); - fetch_test(f, REMOTE_URL, 'no-cors', 'include', 'no-cors', 'include'); - fetch_test(f, REMOTE_URL, 'cors', 'omit', 'cors', 'omit'); - fetch_test(f, REMOTE_URL, 'cors', 'same-origin', 'cors', 'same-origin'); - fetch_test(f, REMOTE_URL, 'cors', 'include', 'cors', 'include'); + await fetch_test(f, LOCAL_URL, 'same-origin', 'omit', 'same-origin', 'omit'); + await fetch_test(f, LOCAL_URL, 'same-origin', 'same-origin', + 'same-origin', 'same-origin'); + await fetch_test(f, LOCAL_URL, 'same-origin', 'include', + 'same-origin', 'include'); + await fetch_test(f, LOCAL_URL, 'no-cors', 'omit', 'no-cors', 'omit'); + await fetch_test(f, LOCAL_URL, 'no-cors', 'same-origin', + 'no-cors', 'same-origin'); + await fetch_test(f, LOCAL_URL, 'no-cors', 'include', 'no-cors', 'include'); + await fetch_test(f, LOCAL_URL, 'cors', 'omit', 'cors', 'omit'); + await fetch_test(f, LOCAL_URL, 'cors', 'same-origin', 'cors', 'same-origin'); + await fetch_test(f, LOCAL_URL, 'cors', 'include', 'cors', 'include'); + await fetch_test(f, REMOTE_URL, 'no-cors', 'omit', 'no-cors', 'omit'); + await fetch_test(f, REMOTE_URL, 'no-cors', 'same-origin', + 'no-cors', 'same-origin'); + await fetch_test(f, REMOTE_URL, 'no-cors', 'include', 'no-cors', 'include'); + await fetch_test(f, REMOTE_URL, 'cors', 'omit', 'cors', 'omit'); + await fetch_test(f, REMOTE_URL, 'cors', 'same-origin', 'cors', 'same-origin'); + await fetch_test(f, REMOTE_URL, 'cors', 'include', 'cors', 'include'); - audio_test(f, LOCAL_URL, '', 'no-cors', 'include'); - audio_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); - audio_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); - audio_test(f, REMOTE_URL, '', 'no-cors', 'include'); - audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); - audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); - }) - .catch(unreached_rejection(t)); + await audio_test(f, LOCAL_URL, '', 'no-cors', 'include'); + await audio_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); + await audio_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); + await audio_test(f, REMOTE_URL, '', 'no-cors', 'include'); + await audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); + await audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); + + frame.remove(); + service_worker_unregister(t, SCOPE); + }).catch(unreached_rejection(t)); }, 'Verify FetchEvent for resources.'); diff --git a/testing/web-platform/tests/service-workers/service-worker/request-end-to-end.https.html b/testing/web-platform/tests/service-workers/service-worker/request-end-to-end.https.html index 7b594aac57d4..a39ceadd9f3f 100644 --- a/testing/web-platform/tests/service-workers/service-worker/request-end-to-end.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/request-end-to-end.https.html @@ -23,9 +23,9 @@ promise_test(t => { assert_equals(result.method, 'GET', 'request.method'); assert_equals(result.referrer, location.href, 'request.referrer'); assert_equals(result.mode, 'navigate', 'request.mode'); - assert_equals(result.request_construct_error, 'TypeError', + assert_equals(result.request_construct_error, '', 'Constructing a Request with a Request whose mode ' + - 'is navigate and non-empty RequestInit must throw a ' + + 'is navigate and non-empty RequestInit must not throw a ' + 'TypeError.') assert_equals(result.credentials, 'include', 'request.credentials'); assert_equals(result.redirect, 'manual', 'request.redirect'); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/client-navigate-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/client-navigate-worker.js index 09d11fe6181d..aff2b37ae02a 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/client-navigate-worker.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/client-navigate-worker.js @@ -5,11 +5,6 @@ importScripts("testharness-helpers.js") self.onfetch = function(e) { if (e.request.url.indexOf("client-navigate-frame.html") >= 0) { - if (e.clientId === null) { - e.respondWith(fetch(e.request)); - } else { - e.respondWith(Response.error()); - } return; } e.respondWith(new Response(e.clientId)); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-access-control.py b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-access-control.py index c82ffbe0930c..61b89cbd95b4 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-access-control.py +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-access-control.py @@ -36,6 +36,39 @@ def main(request, response): if "VIDEO" in request.GET: headers.append(("Content-Type", "video/webm")) body = open(os.path.join(request.doc_root, "media", "movie_5.ogv"), "rb").read() + length = len(body) + # If "PartialContent" is specified, the requestor wants to test range + # requests. For the initial request, respond with "206 Partial Content" + # and don't send the entire content. Then expect subsequent requests to + # have a "Range" header with a byte range. Respond with that range. + if "PartialContent" in request.GET: + if length < 1: + return 500, headers, "file is too small for range requests" + start = 0 + end = length - 1 + if "Range" in request.headers: + range_header = request.headers["Range"] + prefix = "bytes=" + split_header = range_header[len(prefix):].split("-") + # The first request might be "bytes=0-". We want to force a range + # request, so just return the first byte. + if split_header[0] == "0" and split_header[1] == "": + end = start + # Otherwise, it is a range request. Respect the values sent. + if split_header[0] != "": + start = int(split_header[0]) + if split_header[1] != "": + end = int(split_header[1]) + else: + # The request doesn't have a range. Force a range request by + # returning the first byte. + end = start + + headers.append(("Accept-Ranges", "bytes")) + headers.append(("Content-Length", str(end -start + 1))) + headers.append(("Content-Range", "bytes %d-%d/%d" % (start, end, length))) + chunk = body[start:(end + 1)] + return 206, headers, chunk return headers, body username = request.auth.username if request.auth.username else "undefined" diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js new file mode 100644 index 000000000000..daa200c2badb --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js @@ -0,0 +1,3 @@ +self.addEventListener('fetch', () => { + // Do nothing. + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js new file mode 100644 index 000000000000..d3ba8a8df2e7 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-body-loaded-in-chunk-worker.js @@ -0,0 +1,7 @@ +'use strict'; + +self.addEventListener('fetch', event => { + if (!event.request.url.match(/body-in-chunk$/)) + return; + event.respondWith(fetch("../../../fetch/api/resources/trickle.py?count=4&delay=50")); +}); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js new file mode 100644 index 000000000000..f954e3a18a5e --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-chunk-worker.js @@ -0,0 +1,40 @@ +'use strict'; + +self.addEventListener('fetch', event => { + if (!event.request.url.match(/body-stream$/)) + return; + + var counter = 0; + const encoder = new TextEncoder(); + const stream = new ReadableStream({ pull: controller => { + switch (++counter) { + case 1: + controller.enqueue(encoder.encode('')); + return; + case 2: + controller.enqueue(encoder.encode('chunk #1')); + return; + case 3: + controller.enqueue(encoder.encode(' ')); + return; + case 4: + controller.enqueue(encoder.encode('chunk #2')); + return; + case 5: + controller.enqueue(encoder.encode(' ')); + return; + case 6: + controller.enqueue(encoder.encode('chunk #3')); + return; + case 7: + controller.enqueue(encoder.encode(' ')); + return; + case 8: + controller.enqueue(encoder.encode('chunk #4')); + return; + default: + controller.close(); + } + }}); + event.respondWith(new Response(stream)); +}); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html index 867bf2385de0..ab3e2a1280b9 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html @@ -179,7 +179,7 @@ function form_data_test() { '\r\n' + 'file content\r\n' + '--' + boundary + '--\r\n'; - assert_equals(response.body, expected_body); + assert_true(response.body === expected_body, "form data response content is as expected"); }); } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/range-request-to-different-origins-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/range-request-to-different-origins-worker.js new file mode 100644 index 000000000000..cab605833905 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/range-request-to-different-origins-worker.js @@ -0,0 +1,40 @@ +// This worker is meant to test range requests where the responses come from +// multiple origins. It forwards the first request to a cross-origin URL +// (generating an opaque response). The server is expected to return a 206 +// Partial Content response. Then the worker lets subsequent range requests +// fall back to network (generating same-origin responses). The intent is to try +// to trick the browser into treating the resource as same-origin. +// +// It would also be interesting to do the reverse test where the first request +// goes to the same-origin URL, and subsequent range requests go cross-origin in +// 'no-cors' mode to receive opaque responses. But the service worker cannot do +// this, because in 'no-cors' mode the 'range' HTTP header is disallowed. + +importScripts('/common/get-host-info.sub.js') + +let initial = true; +function is_initial_request() { + const old = initial; + initial = false; + return old; +} + +self.addEventListener('fetch', e => { + const url = new URL(e.request.url); + if (url.search.indexOf('VIDEO') == -1) { + // Fall back for non-video. + return; + } + + // Make the first request go cross-origin. + if (is_initial_request()) { + const cross_origin_url = get_host_info().HTTPS_REMOTE_ORIGIN + + url.pathname + url.search; + const cross_origin_request = new Request(cross_origin_url, + {mode: 'no-cors', headers: e.request.headers}); + e.respondWith(fetch(cross_origin_request)); + return; + } + + // Fall back to same origin for subsequent range requests. + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js new file mode 100644 index 000000000000..7580b0b68a95 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/range-request-with-different-cors-modes-worker.js @@ -0,0 +1,60 @@ +// This worker is meant to test range requests where the responses are a mix of +// opaque ones and non-opaque ones. It forwards the first request to a +// cross-origin URL (generating an opaque response). The server is expected to +// return a 206 Partial Content response. Then the worker forwards subsequent +// range requests to that URL, with CORS sharing generating a non-opaque +// responses. The intent is to try to trick the browser into treating the +// resource as non-opaque. +// +// It would also be interesting to do the reverse test where the first request +// uses 'cors', and subsequent range requests use 'no-cors' mode. But the +// service worker cannot do this, because in 'no-cors' mode the 'range' HTTP +// header is disallowed. + +importScripts('/common/get-host-info.sub.js') + +let initial = true; +function is_initial_request() { + const old = initial; + initial = false; + return old; +} + +self.addEventListener('fetch', e => { + const url = new URL(e.request.url); + if (url.search.indexOf('VIDEO') == -1) { + // Fall back for non-video. + return; + } + + let cross_origin_url = get_host_info().HTTPS_REMOTE_ORIGIN + + url.pathname + url.search; + + // The first request is no-cors. + if (is_initial_request()) { + const init = { mode: 'no-cors', headers: e.request.headers }; + const cross_origin_request = new Request(cross_origin_url, init); + e.respondWith(fetch(cross_origin_request)); + return; + } + + // Subsequent range requests are cors. + + // Copy headers needed for range requests. + let my_headers = new Headers; + if (e.request.headers.get('accept')) + my_headers.append('accept', e.request.headers.get('accept')); + if (e.request.headers.get('range')) + my_headers.append('range', e.request.headers.get('range')); + + // Add &ACAOrigin to allow CORS. + cross_origin_url += '&ACAOrigin=' + get_host_info().HTTPS_ORIGIN; + // Add &ACAHeaders to allow range requests. + cross_origin_url += '&ACAHeaders=accept,range'; + + // Make the CORS request. + const init = { mode: 'cors', headers: my_headers }; + const cross_origin_request = new Request(cross_origin_url, init); + e.respondWith(fetch(cross_origin_request)); + }); + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/register-closed-window-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/register-closed-window-iframe.html index ed743ea056e7..117f25477b02 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/register-closed-window-iframe.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/register-closed-window-iframe.html @@ -1,14 +1,17 @@ diff --git a/testing/web-platform/tests/svg/path/distance/pathLength-positive-percentage.svg b/testing/web-platform/tests/svg/path/distance/pathLength-positive-percentage.svg new file mode 100644 index 000000000000..d8e28b0889de --- /dev/null +++ b/testing/web-platform/tests/svg/path/distance/pathLength-positive-percentage.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + diff --git a/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage-ref.svg b/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage-ref.svg new file mode 100644 index 000000000000..dca91c1b5fca --- /dev/null +++ b/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage-ref.svg @@ -0,0 +1,30 @@ + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + diff --git a/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage.svg b/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage.svg new file mode 100644 index 000000000000..24213e443d0f --- /dev/null +++ b/testing/web-platform/tests/svg/path/distance/pathLength-zero-percentage.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + diff --git a/testing/web-platform/tests/tools/wpt/browser.py b/testing/web-platform/tests/tools/wpt/browser.py index c6cc38afd67c..ef3b7d6694bc 100644 --- a/testing/web-platform/tests/tools/wpt/browser.py +++ b/testing/web-platform/tests/tools/wpt/browser.py @@ -281,6 +281,7 @@ class Chrome(Browser): logger.critical("dbus not running and can't be started") sys.exit(1) + class ChromeAndroid(Browser): """Chrome-specific interface for android. @@ -293,49 +294,16 @@ class ChromeAndroid(Browser): def install(self, dest=None): raise NotImplementedError - def platform_string(self): - raise NotImplementedError - def find_webdriver(self): return find_executable("chromedriver") def install_webdriver(self, dest=None): - """Install latest Webdriver.""" - if dest is None: - dest = os.pwd - latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip() - url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_%s.zip" % (latest, - self.platform_string()) - unzip(get(url).raw, dest) - - path = find_executable("chromedriver", dest) - st = os.stat(path) - os.chmod(path, st.st_mode | stat.S_IEXEC) - return path + chrome = Chrome() + return chrome.install_webdriver(dest) def version(self, root): raise NotImplementedError - def prepare_environment(self): - # https://bugs.chromium.org/p/chromium/issues/detail?id=713947 - logger.debug("DBUS_SESSION_BUS_ADDRESS %s" % os.environ.get("DBUS_SESSION_BUS_ADDRESS")) - if "DBUS_SESSION_BUS_ADDRESS" not in os.environ: - if find_executable("dbus-launch"): - logger.debug("Attempting to start dbus") - dbus_conf = subprocess.check_output(["dbus-launch"]) - logger.debug(dbus_conf) - - # From dbus-launch(1): - # - # > When dbus-launch prints bus information to standard output, - # > by default it is in a simple key-value pairs format. - for line in dbus_conf.strip().split("\n"): - key, _, value = line.partition("=") - os.environ[key] = value - else: - logger.critical("dbus not running and can't be started") - sys.exit(1) - class Opera(Browser): """Opera-specific interface. diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py index 9e53bc660e28..47090be04391 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py @@ -1,3 +1,6 @@ +import subprocess + +from ..config import * from .base import Browser, ExecutorBrowser, require_arg from ..webdriver_server import ChromeDriverServer from ..executors import executor_kwargs as base_executor_kwargs @@ -17,6 +20,8 @@ __wptrunner__ = {"product": "chrome_android", "env_extras": "env_extras", "env_options": "env_options"} +_wptserve_ports = set() + def check_args(**kwargs): require_arg(kwargs, "webdriver_binary") @@ -32,13 +37,19 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data, **kwargs): from selenium.webdriver import DesiredCapabilities + # Use extend() to modify the global list in place. + _wptserve_ports.update(set( + server_config['ports']['http'] + server_config['ports']['https'] + + server_config['ports']['ws'] + server_config['ports']['wss'] + )) + executor_kwargs = base_executor_kwargs(test_type, server_config, cache_manager, **kwargs) executor_kwargs["close_after_done"] = True capabilities = dict(DesiredCapabilities.CHROME.items()) capabilities["chromeOptions"] = {} # required to start on mobile - capabilities["chromeOptions"]["androidPackage"] = "com.android.chrome" + capabilities["chromeOptions"]["androidPackage"] = "com.google.android.apps.chrome" for (kwarg, capability) in [("binary", "binary"), ("binary_args", "args")]: if kwargs[kwarg] is not None: @@ -76,6 +87,17 @@ class ChromeAndroidBrowser(Browser): binary=webdriver_binary, args=webdriver_args) + def _adb_run(self, args): + self.logger.info('adb ' + ' '.join(args)) + subprocess.check_call(['adb'] + args) + + def setup(self): + self._adb_run(['wait-for-device']) + self._adb_run(['forward', '--remove-all']) + self._adb_run(['reverse', '--remove-all']) + for port in _wptserve_ports: + self._adb_run(['reverse', 'tcp:%d' % port, 'tcp:%d' % port]) + def start(self, **kwargs): self.server.start(block=False) @@ -93,6 +115,8 @@ class ChromeAndroidBrowser(Browser): def cleanup(self): self.stop() + self._adb_run(['forward', '--remove-all']) + self._adb_run(['reverse', '--remove-all']) def executor_browser(self): return ExecutorBrowser, {"webdriver_url": self.server.url} diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/testrunner.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/testrunner.py index 85ffbe3741ab..16623f76867c 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/testrunner.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/testrunner.py @@ -229,7 +229,6 @@ class BrowserManager(object): def cleanup(self): if self.init_timer is not None: self.init_timer.cancel() - self.browser.cleanup() def check_for_crashes(self): self.browser.check_for_crashes() diff --git a/testing/web-platform/tests/webaudio/resources/stereopanner-testing.js b/testing/web-platform/tests/webaudio/resources/stereopanner-testing.js new file mode 100644 index 000000000000..d6238a9cd367 --- /dev/null +++ b/testing/web-platform/tests/webaudio/resources/stereopanner-testing.js @@ -0,0 +1,203 @@ +let StereoPannerTest = (function() { + + // Constants + let PI_OVER_TWO = Math.PI * 0.5; + + let gSampleRate = 44100; + + // Time step when each panner node starts. + let gTimeStep = 0.001; + + // How many panner nodes to create for the test + let gNodesToCreate = 100; + + // Total render length for all of our nodes. + let gRenderLength = gTimeStep * (gNodesToCreate + 1) + gSampleRate; + + // Calculates channel gains based on equal power panning model. + // See: http://webaudio.github.io/web-audio-api/#panning-algorithm + function getChannelGain(pan, numberOfChannels) { + // The internal panning clips the pan value between -1, 1. + pan = Math.min(Math.max(pan, -1), 1); + let gainL, gainR; + // Consider number of channels and pan value's polarity. + if (numberOfChannels == 1) { + let panRadian = (pan * 0.5 + 0.5) * PI_OVER_TWO; + gainL = Math.cos(panRadian); + gainR = Math.sin(panRadian); + } else { + let panRadian = (pan <= 0 ? pan + 1 : pan) * PI_OVER_TWO; + if (pan <= 0) { + gainL = 1 + Math.cos(panRadian); + gainR = Math.sin(panRadian); + } else { + gainL = Math.cos(panRadian); + gainR = 1 + Math.sin(panRadian); + } + } + return {gainL: gainL, gainR: gainR}; + } + + + /** + * Test implementation class. + * @param {Object} options Test options + * @param {Object} options.description Test description + * @param {Object} options.numberOfInputChannels Number of input channels + */ + function Test(should, options) { + // Primary test flag. + this.success = true; + + this.should = should; + this.context = null; + this.prefix = options.prefix; + this.numberOfInputChannels = (options.numberOfInputChannels || 1); + switch (this.numberOfInputChannels) { + case 1: + this.description = 'Test for mono input'; + break; + case 2: + this.description = 'Test for stereo input'; + break; + } + + // Onset time position of each impulse. + this.onsets = []; + + // Pan position value of each impulse. + this.panPositions = []; + + // Locations of where the impulses aren't at the expected locations. + this.errors = []; + + // The index of the current impulse being verified. + this.impulseIndex = 0; + + // The max error we allow between the rendered impulse and the + // expected value. This value is experimentally determined. Set + // to 0 to make the test fail to see what the actual error is. + this.maxAllowedError = 1.3e-6; + + // Max (absolute) error and the index of the maxima for the left + // and right channels. + this.maxErrorL = 0; + this.maxErrorR = 0; + this.maxErrorIndexL = 0; + this.maxErrorIndexR = 0; + + // The maximum value to use for panner pan value. The value will range from + // -panLimit to +panLimit. + this.panLimit = 1.0625; + } + + + Test.prototype.init = function() { + this.context = new OfflineAudioContext(2, gRenderLength, gSampleRate); + }; + + // Prepare an audio graph for testing. Create multiple impulse generators and + // panner nodes, then play them sequentially while varying the pan position. + Test.prototype.prepare = function() { + let impulse; + let impulseLength = Math.round(gTimeStep * gSampleRate); + let sources = []; + let panners = []; + + // Moves the pan value for each panner by pan step unit from -2 to 2. + // This is to check if the internal panning value is clipped properly. + let panStep = (2 * this.panLimit) / (gNodesToCreate - 1); + + if (this.numberOfInputChannels === 1) { + impulse = createImpulseBuffer(this.context, impulseLength); + } else { + impulse = createStereoImpulseBuffer(this.context, impulseLength); + } + + for (let i = 0; i < gNodesToCreate; i++) { + sources[i] = this.context.createBufferSource(); + panners[i] = this.context.createStereoPanner(); + sources[i].connect(panners[i]); + panners[i].connect(this.context.destination); + sources[i].buffer = impulse; + panners[i].pan.value = this.panPositions[i] = panStep * i - this.panLimit; + + // Store the onset time position of impulse. + this.onsets[i] = gTimeStep * i; + + sources[i].start(this.onsets[i]); + } + }; + + + Test.prototype.verify = function() { + let chanL = this.renderedBufferL; + let chanR = this.renderedBufferR; + for (let i = 0; i < chanL.length; i++) { + // Left and right channels must start at the same instant. + if (chanL[i] !== 0 || chanR[i] !== 0) { + // Get amount of error between actual and expected gain. + let expected = getChannelGain( + this.panPositions[this.impulseIndex], this.numberOfInputChannels); + let errorL = Math.abs(chanL[i] - expected.gainL); + let errorR = Math.abs(chanR[i] - expected.gainR); + + if (errorL > this.maxErrorL) { + this.maxErrorL = errorL; + this.maxErrorIndexL = this.impulseIndex; + } + if (errorR > this.maxErrorR) { + this.maxErrorR = errorR; + this.maxErrorIndexR = this.impulseIndex; + } + + // Keep track of the impulses that didn't show up where we expected + // them to be. + let expectedOffset = + timeToSampleFrame(this.onsets[this.impulseIndex], gSampleRate); + if (i != expectedOffset) { + this.errors.push({actual: i, expected: expectedOffset}); + } + + this.impulseIndex++; + } + } + }; + + + Test.prototype.showResult = function() { + this.should(this.impulseIndex, this.prefix + 'Number of impulses found') + .beEqualTo(gNodesToCreate); + + this.should( + this.errors.length, + this.prefix + 'Number of impulse at the wrong offset') + .beEqualTo(0); + + this.should(this.maxErrorL, this.prefix + 'Left channel error magnitude') + .beLessThanOrEqualTo(this.maxAllowedError); + + this.should(this.maxErrorR, this.prefix + 'Right channel error magnitude') + .beLessThanOrEqualTo(this.maxAllowedError); + }; + + Test.prototype.run = function() { + + this.init(); + this.prepare(); + + return this.context.startRendering().then(renderedBuffer => { + this.renderedBufferL = renderedBuffer.getChannelData(0); + this.renderedBufferR = renderedBuffer.getChannelData(1); + this.verify(); + this.showResult(); + }); + }; + + return { + create: function(should, options) { + return new Test(should, options); + } + }; + +})(); diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html new file mode 100644 index 000000000000..a61f3983049f --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html @@ -0,0 +1,261 @@ + + + + + Test StereoPannerNode Has No Dezippering + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html new file mode 100644 index 000000000000..48bacb08c6df --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-basic.html @@ -0,0 +1,54 @@ + + + + + stereopannernode-basic.html + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html new file mode 100644 index 000000000000..f683fd78bf98 --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning.html @@ -0,0 +1,34 @@ + + + + + stereopannernode-panning.html + + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html new file mode 100644 index 000000000000..e897ac08a10a --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve.html @@ -0,0 +1,100 @@ + + + + + Test WaveShaper Copies Curve Data + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html new file mode 100644 index 000000000000..13e88be567b3 --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits.html @@ -0,0 +1,110 @@ + + + + + waveshaper-limits.html + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html new file mode 100644 index 000000000000..affd0c58afaf --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple.html @@ -0,0 +1,61 @@ + + + + + Simple Tests of WaveShaperNode + + + + + + + + + + diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html new file mode 100644 index 000000000000..8bfa009b181d --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper.html @@ -0,0 +1,127 @@ + + + + + waveshaper.html + + + + + + + + + + + diff --git a/testing/web-platform/tests/webrtc/historical.html b/testing/web-platform/tests/webrtc/historical.html index c57a1ca362e9..d49503e16d6c 100644 --- a/testing/web-platform/tests/webrtc/historical.html +++ b/testing/web-platform/tests/webrtc/historical.html @@ -25,6 +25,7 @@ test(function() { }); [ + "DataChannel", "mozRTCIceCandidate", "mozRTCPeerConnection", "mozRTCSessionDescription", diff --git a/testing/web-platform/tests/webvr/idlharness.html b/testing/web-platform/tests/webvr/idlharness.https.html similarity index 100% rename from testing/web-platform/tests/webvr/idlharness.html rename to testing/web-platform/tests/webvr/idlharness.https.html diff --git a/testing/web-platform/tests/webvtt/api/VTTRegion/constructor.html b/testing/web-platform/tests/webvtt/api/VTTRegion/constructor.html index 59eeaf8a108f..cddde0a07170 100644 --- a/testing/web-platform/tests/webvtt/api/VTTRegion/constructor.html +++ b/testing/web-platform/tests/webvtt/api/VTTRegion/constructor.html @@ -40,7 +40,6 @@ test(function() { } } - assert_throws("IndexSizeError", function() { region.lines = -1; }); assert_equals(region.lines, 3); region.lines = 130; diff --git a/testing/web-platform/tests/webvtt/api/VTTRegion/lines.html b/testing/web-platform/tests/webvtt/api/VTTRegion/lines.html index a9be61067548..90e08b489303 100644 --- a/testing/web-platform/tests/webvtt/api/VTTRegion/lines.html +++ b/testing/web-platform/tests/webvtt/api/VTTRegion/lines.html @@ -17,8 +17,12 @@ test(function() { // https://heycam.github.io/webidl/#abstract-opdef-converttoint [[0, 0], [-0, 0], + [-1, 4294967295], + [-100, 4294967196], [101, 101], + [-2147483648, 2147483648], [2147483647, 2147483647], + [2147483648, 2147483648], [NaN, 0], [Infinity, 0], [-Infinity, 0]].forEach(function (pair) { @@ -28,10 +32,5 @@ test(function() { assert_equals(region.lines, expected); }); - [-1, -100, -2147483648, 2147483648 /* wraps to -2147483648 */].forEach(function (invalid) { - assert_throws('IndexSizeError', function() { - region.lines = invalid; - }, invalid); - }); }, document.title + ' script-created region');