diff --git a/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini b/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini index 3e76435960d..a812f00415f 100644 --- a/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini +++ b/tests/wpt/metadata/FileAPI/file/File-constructor.html.ini @@ -18,6 +18,3 @@ [Invalid bits argument: "hello"] expected: FAIL - [Using object fileName] - expected: FAIL - diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 1e5937ddc0c..29e8265a446 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -79733,6 +79733,54 @@ {} ] ], + "css/CSS2/selectors/class-selector-009.xht": [ + [ + "/css/CSS2/selectors/class-selector-009.xht", + [ + [ + "/css/CSS2/reference/ref-green-background.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/class-selector-010.xht": [ + [ + "/css/CSS2/selectors/class-selector-010.xht", + [ + [ + "/css/CSS2/reference/ref-green-background.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/class-selector-011.xht": [ + [ + "/css/CSS2/selectors/class-selector-011.xht", + [ + [ + "/css/CSS2/reference/ref-green-background.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/class-selector-012.xht": [ + [ + "/css/CSS2/selectors/class-selector-012.xht", + [ + [ + "/css/CSS2/selectors/class-selector-012-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/combinator-001.xht": [ [ "/css/CSS2/selectors/combinator-001.xht", @@ -79973,6 +80021,42 @@ {} ] ], + "css/CSS2/selectors/first-child-selector-001.xht": [ + [ + "/css/CSS2/selectors/first-child-selector-001.xht", + [ + [ + "/css/CSS2/selectors/first-child-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-child-selector-002.xht": [ + [ + "/css/CSS2/selectors/first-child-selector-002.xht", + [ + [ + "/css/CSS2/selectors/first-child-selector-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-child-selector-003.xht": [ + [ + "/css/CSS2/selectors/first-child-selector-003.xht", + [ + [ + "/css/CSS2/reference/ref-this-text-should-be-green.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/first-letter-001.xht": [ [ "/css/CSS2/selectors/first-letter-001.xht", @@ -85073,6 +85157,114 @@ {} ] ], + "css/CSS2/selectors/first-letter-selector-000.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-000.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-000-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-001.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-001.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-002.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-002.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-003.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-003.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-004.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-004.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-005.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-005.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-005-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-007.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-007.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-007-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-008.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-008.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-019.xht": [ + [ + "/css/CSS2/selectors/first-letter-selector-019.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/first-letter-selector-028.xht": [ [ "/css/CSS2/selectors/first-letter-selector-028.xht", @@ -85253,6 +85445,54 @@ {} ] ], + "css/CSS2/selectors/first-line-pseudo-019.xht": [ + [ + "/css/CSS2/selectors/first-line-pseudo-019.xht", + [ + [ + "/css/CSS2/reference/ref-this-text-should-be-green.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-line-pseudo-020.xht": [ + [ + "/css/CSS2/selectors/first-line-pseudo-020.xht", + [ + [ + "/css/CSS2/reference/ref-this-text-should-be-green.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-line-pseudo-021.xht": [ + [ + "/css/CSS2/selectors/first-line-pseudo-021.xht", + [ + [ + "/css/CSS2/reference/ref-this-text-should-be-green.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/first-line-selector-010.xht": [ + [ + "/css/CSS2/selectors/first-line-selector-010.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-005-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/first-line-selector-013.xht": [ [ "/css/CSS2/selectors/first-line-selector-013.xht", @@ -85305,6 +85545,18 @@ {} ] ], + "css/CSS2/selectors/id-selector-002.xht": [ + [ + "/css/CSS2/selectors/id-selector-002.xht", + [ + [ + "/css/CSS2/reference/filler-text-below-green.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/id-selector-004.xht": [ [ "/css/CSS2/selectors/id-selector-004.xht", @@ -85377,6 +85629,42 @@ {} ] ], + "css/CSS2/selectors/lang-selector-004.xht": [ + [ + "/css/CSS2/selectors/lang-selector-004.xht", + [ + [ + "/css/CSS2/selectors/lang-selector-004-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/lang-selector-005.xht": [ + [ + "/css/CSS2/selectors/lang-selector-005.xht", + [ + [ + "/css/CSS2/reference/filler-text-below-green.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/lang-selector-006.xht": [ + [ + "/css/CSS2/selectors/lang-selector-006.xht", + [ + [ + "/css/CSS2/reference/filler-text-below-green.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/pseudo-001.xht": [ [ "/css/CSS2/selectors/pseudo-001.xht", @@ -85401,6 +85689,42 @@ {} ] ], + "css/CSS2/selectors/pseudo-006.xht": [ + [ + "/css/CSS2/selectors/pseudo-006.xht", + [ + [ + "/css/CSS2/selectors/first-letter-selector-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/pseudo-007.xht": [ + [ + "/css/CSS2/selectors/pseudo-007.xht", + [ + [ + "/css/CSS2/selectors/universal-selector-002-ref.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/selectors/pseudo-008.xht": [ + [ + "/css/CSS2/selectors/pseudo-008.xht", + [ + [ + "/css/CSS2/selectors/pseudo-008-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/selectors/pseudo-014.xht": [ [ "/css/CSS2/selectors/pseudo-014.xht", @@ -87910,7 +88234,7 @@ "/css/CSS2/syntax/ident-003.xht", [ [ - "/css/CSS2/syntax/ident-000-ref.xht", + "/css/CSS2/syntax/ident-003-ref.xht", "==" ] ], @@ -88109,18 +88433,6 @@ {} ] ], - "css/CSS2/syntax/ident-020.xht": [ - [ - "/css/CSS2/syntax/ident-020.xht", - [ - [ - "/css/CSS2/syntax/ident-000-ref.xht", - "==" - ] - ], - {} - ] - ], "css/CSS2/syntax/ignored-rules-001.xht": [ [ "/css/CSS2/syntax/ignored-rules-001.xht", @@ -89249,6 +89561,174 @@ {} ] ], + "css/CSS2/tables/caption-side-applies-to-001.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-001.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-002.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-002.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-003.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-003.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-005.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-005.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-006.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-006.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-006-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-007.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-007.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-006-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-008.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-008.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-009.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-009.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-010.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-010.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-011.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-011.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-012.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-012.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-013.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-013.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-014.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-014.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-008-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-015.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-015.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-006-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/tables/caption-side-applies-to-016.xht": [ [ "/css/CSS2/tables/caption-side-applies-to-016.xht", @@ -89261,6 +89741,90 @@ {} ] ], + "css/CSS2/tables/caption-side-applies-to-017.xht": [ + [ + "/css/CSS2/tables/caption-side-applies-to-017.xht", + [ + [ + "/css/CSS2/tables/caption-side-applies-to-017-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-001.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-001.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-003.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-003.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-004.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-004.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-007.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-007.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-008.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-008.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-009.xht": [ + [ + "/css/CSS2/tables/collapsing-border-model-009.xht", + [ + [ + "/css/CSS2/tables/collapsing-border-model-003-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/tables/collapsing-border-model-010a.xht": [ [ "/css/CSS2/tables/collapsing-border-model-010a.xht", @@ -90377,6 +90941,30 @@ {} ] ], + "css/CSS2/tables/row-visibility-001.xht": [ + [ + "/css/CSS2/tables/row-visibility-001.xht", + [ + [ + "/css/CSS2/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/CSS2/tables/row-visibility-002.xht": [ + [ + "/css/CSS2/tables/row-visibility-002.xht", + [ + [ + "/css/CSS2/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/tables/separated-border-model-003a.xht": [ [ "/css/CSS2/tables/separated-border-model-003a.xht", @@ -92593,6 +93181,18 @@ {} ] ], + "css/CSS2/tables/table-cell-001.xht": [ + [ + "/css/CSS2/tables/table-cell-001.xht", + [ + [ + "/css/CSS2/reference/ref-filled-black-96px-square.xht", + "==" + ] + ], + {} + ] + ], "css/CSS2/tables/table-column-rendering-001.xht": [ [ "/css/CSS2/tables/table-column-rendering-001.xht", @@ -104481,6 +105081,18 @@ {} ] ], + "css/css-content/element-replacement.html": [ + [ + "/css/css-content/element-replacement.html", + [ + [ + "/css/css-content/element-replacement-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-display/display-contents-alignment-001.html": [ [ "/css/css-display/display-contents-alignment-001.html", @@ -105081,6 +105693,18 @@ {} ] ], + "css/css-display/display-contents-text-inherit-002.html": [ + [ + "/css/css-display/display-contents-text-inherit-002.html", + [ + [ + "/css/css-display/display-contents-text-inherit-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-display/display-contents-text-inherit.html": [ [ "/css/css-display/display-contents-text-inherit.html", @@ -123177,6 +123801,18 @@ {} ] ], + "css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [ + [ + "/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html", + [ + [ + "/css/css-scoping/reference/green-box.html", + "==" + ] + ], + {} + ] + ], "css/css-scoping/css-scoping-shadow-root-hides-children.html": [ [ "/css/css-scoping/css-scoping-shadow-root-hides-children.html", @@ -146809,6 +147445,30 @@ {} ] ], + "css/css-values/lh-unit-001.html": [ + [ + "/css/css-values/lh-unit-001.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/css-values/lh-unit-002.html": [ + [ + "/css/css-values/lh-unit-002.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-values/vh-calc-support-pct.html": [ [ "/css/css-values/vh-calc-support-pct.html", @@ -158769,6 +159429,18 @@ {} ] ], + "css/motion/offset-anchor-transform-box-fill-box.html": [ + [ + "/css/motion/offset-anchor-transform-box-fill-box.html", + [ + [ + "/css/motion/offset-anchor-transform-box-fill-box-ref.html", + "==" + ] + ], + {} + ] + ], "css/motion/offset-path-ray.html": [ [ "/css/motion/offset-path-ray.html", @@ -163197,6 +163869,30 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/fonts3/font-size-adjust-zero-1.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/fonts3/font-size-adjust-zero-1.html", @@ -175941,6 +176637,30 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html", + [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html", + "==" + ] + ], + {} + ] + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html", + [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html", + "==" + ] + ], + {} + ] + ], "html/semantics/embedded-content/the-audio-element/audio_001.htm": [ [ "/html/semantics/embedded-content/the-audio-element/audio_001.htm", @@ -177561,6 +178281,54 @@ {} ] ], + "svg/path/closepath/segment-completing.svg": [ + [ + "/svg/path/closepath/segment-completing.svg", + [ + [ + "/svg/path/closepath/segment-completing-ref.svg", + "==" + ] + ], + {} + ] + ], + "svg/path/distance/pathLength-positive.svg": [ + [ + "/svg/path/distance/pathLength-positive.svg", + [ + [ + "/svg/path/distance/pathLength-positive-ref.svg", + "==" + ] + ], + {} + ] + ], + "svg/path/distance/pathLength-zero.svg": [ + [ + "/svg/path/distance/pathLength-zero.svg", + [ + [ + "/svg/path/distance/pathLength-zero-ref.svg", + "==" + ] + ], + {} + ] + ], + "svg/path/error-handling/render-until-error.svg": [ + [ + "/svg/path/error-handling/render-until-error.svg", + [ + [ + "/svg/path/error-handling/render-until-error-ref.svg", + "==" + ] + ], + {} + ] + ], "svg/path/property/priority.svg": [ [ "/svg/path/property/priority.svg", @@ -183003,11 +183771,6 @@ {} ] ], - "WebCryptoAPI/WebCryptoAPI.idl": [ - [ - {} - ] - ], "WebCryptoAPI/derive_bits_keys/ecdh_bits.js": [ [ {} @@ -186388,6 +187151,16 @@ {} ] ], + "bluetooth/generate.py": [ + [ + {} + ] + ], + "bluetooth/generate_test.py": [ + [ + {} + ] + ], "bluetooth/resources/bluetooth-helpers.js": [ [ {} @@ -186398,6 +187171,101 @@ {} ] ], + "bluetooth/script-tests/base_test_html.template": [ + [ + {} + ] + ], + "bluetooth/script-tests/characteristic/characteristic-is-removed.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/characteristic/descriptor-get-same-object.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/disconnect-called-before.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/disconnect-called-during-error.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/disconnect-called-during-success.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/disconnect-invalidates-objects.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/disconnected-device.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/discovery-complete-service-not-found.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/garbage-collection-ran-during-error.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/garbage-collection-ran-during-success.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/get-different-service-after-reconnection.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/get-same-object.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/invalid-service-name.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/no-permission-absent-service.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/no-permission-for-any-service.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/no-permission-present-service.js": [ + [ + {} + ] + ], + "bluetooth/script-tests/server/service-not-found.js": [ + [ + {} + ] + ], "clear-site-data/support/echo-clear-site-data.py": [ [ {} @@ -209008,6 +209876,11 @@ {} ] ], + "content-security-policy/prefetch-src/prefetch-header-allowed.html.headers": [ + [ + {} + ] + ], "content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html.sub.headers": [ [ {} @@ -209433,11 +210306,31 @@ {} ] ], + "content-security-policy/support/postmessage-pass-to-opener.html": [ + [ + {} + ] + ], "content-security-policy/support/postmessage-pass.html": [ [ {} ] ], + "content-security-policy/support/prefetch-helper.js": [ + [ + {} + ] + ], + "content-security-policy/support/prefetch-subresource.css": [ + [ + {} + ] + ], + "content-security-policy/support/prefetch-subresource.css.headers": [ + [ + {} + ] + ], "content-security-policy/support/report.py": [ [ {} @@ -222358,6 +223251,11 @@ {} ] ], + "css/CSS2/selectors/class-selector-012-ref.html": [ + [ + {} + ] + ], "css/CSS2/selectors/descendent-selector-002-ref.xht": [ [ {} @@ -222373,6 +223271,16 @@ {} ] ], + "css/CSS2/selectors/first-child-selector-001-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-child-selector-002-ref.html": [ + [ + {} + ] + ], "css/CSS2/selectors/first-letter-001-ref.xht": [ [ {} @@ -224438,6 +225346,36 @@ {} ] ], + "css/CSS2/selectors/first-letter-selector-000-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-001-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-002-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-003-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-005-ref.html": [ + [ + {} + ] + ], + "css/CSS2/selectors/first-letter-selector-007-ref.html": [ + [ + {} + ] + ], "css/CSS2/selectors/first-letter-selector-028-ref.xht": [ [ {} @@ -224503,11 +225441,21 @@ {} ] ], + "css/CSS2/selectors/lang-selector-004-ref.html": [ + [ + {} + ] + ], "css/CSS2/selectors/lang-selector-005.xht.headers": [ [ {} ] ], + "css/CSS2/selectors/pseudo-008-ref.html": [ + [ + {} + ] + ], "css/CSS2/selectors/selectors-001-ref.xht": [ [ {} @@ -225318,11 +226266,6 @@ {} ] ], - "css/CSS2/syntax/support/.htaccess": [ - [ - {} - ] - ], "css/CSS2/syntax/support/1x1-green.png": [ [ {} @@ -225378,27 +226321,27 @@ {} ] ], + "css/CSS2/syntax/support/at-charset-001.css.headers": [ + [ + {} + ] + ], "css/CSS2/syntax/support/at-charset-002.css": [ [ {} ] ], + "css/CSS2/syntax/support/at-charset-002.css.headers": [ + [ + {} + ] + ], "css/CSS2/syntax/support/at-charset-003.css": [ [ {} ] ], - "css/CSS2/syntax/support/at-charset-004.css": [ - [ - {} - ] - ], - "css/CSS2/syntax/support/at-charset-005.css": [ - [ - {} - ] - ], - "css/CSS2/syntax/support/at-charset-006.css": [ + "css/CSS2/syntax/support/at-charset-003.css.headers": [ [ {} ] @@ -225963,6 +226906,11 @@ {} ] ], + "css/CSS2/syntax/support/plaintext.css.headers": [ + [ + {} + ] + ], "css/CSS2/syntax/support/ring.png": [ [ {} @@ -226178,6 +227126,46 @@ {} ] ], + "css/CSS2/tables/caption-side-applies-to-001-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-002-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-003-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-006-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-008-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/caption-side-applies-to-017-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-001-ref.html": [ + [ + {} + ] + ], + "css/CSS2/tables/collapsing-border-model-003-ref.html": [ + [ + {} + ] + ], "css/CSS2/tables/column-visibility-004-ref.xht": [ [ {} @@ -233038,6 +234026,16 @@ {} ] ], + "css/css-content/element-replacement-ref.html": [ + [ + {} + ] + ], + "css/css-content/resources/rect.svg": [ + [ + {} + ] + ], "css/css-counter-styles/OWNERS": [ [ {} @@ -242963,6 +243961,11 @@ {} ] ], + "css/css-grid/alignment/support/style-change.js": [ + [ + {} + ] + ], "css/css-grid/grid-definition/grid-template-columns-fit-content-001-ref.html": [ [ {} @@ -243118,11 +244121,6 @@ {} ] ], - "css/css-grid/support/style-change.js": [ - [ - {} - ] - ], "css/css-grid/test-plan/index.html": [ [ {} @@ -243683,6 +244681,11 @@ {} ] ], + "css/css-masking/parsing/resources/parsing-testcommon.js": [ + [ + {} + ] + ], "css/css-masking/test-mask-ref.html": [ [ {} @@ -244758,6 +245761,11 @@ {} ] ], + "css/css-paint-api/resources/html5.png": [ + [ + {} + ] + ], "css/css-paint-api/style-background-image-ref.html": [ [ {} @@ -246143,6 +247151,11 @@ {} ] ], + "css/css-shapes/parsing/resources/parsing-testcommon.js": [ + [ + {} + ] + ], "css/css-shapes/shape-outside/shape-box/reference/shape-outside-box-001-ref.html": [ [ {} @@ -252193,6 +253206,16 @@ {} ] ], + "css/css-typed-om/resources/1x1-green.png": [ + [ + {} + ] + ], + "css/css-typed-om/resources/testhelper.js": [ + [ + {} + ] + ], "css/css-ui/OWNERS": [ [ {} @@ -257793,6 +258816,11 @@ {} ] ], + "css/motion/offset-anchor-transform-box-fill-box-ref.html": [ + [ + {} + ] + ], "css/motion/offset-path-ray-ref.html": [ [ {} @@ -261718,6 +262746,16 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [ + [ + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list": [ [ {} @@ -264118,6 +265156,11 @@ {} ] ], + "docs/_running-tests/chrome_android.md": [ + [ + {} + ] + ], "docs/_running-tests/index.md": [ [ {} @@ -275548,6 +276591,11 @@ {} ] ], + "html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py": [ + [ + {} + ] + ], "html/semantics/document-metadata/styling/.gitkeep": [ [ {} @@ -275973,6 +277021,11 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt": [ + [ + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-no-separation.vtt": [ [ {} @@ -276218,6 +277271,16 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [ + [ + {} + ] + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [ + [ + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/track-helpers.js": [ [ {} @@ -279463,6 +280526,11 @@ {} ] ], + "images/pattern.mp4": [ + [ + {} + ] + ], "images/pattern.ogv": [ [ {} @@ -279618,6 +280686,11 @@ {} ] ], + "interfaces/WebCryptoAPI.idl": [ + [ + {} + ] + ], "interfaces/accelerometer.idl": [ [ {} @@ -279663,6 +280736,11 @@ {} ] ], + "interfaces/gamepad.idl": [ + [ + {} + ] + ], "interfaces/generic-sensor.idl": [ [ {} @@ -279718,6 +280796,11 @@ {} ] ], + "interfaces/proximity.idl": [ + [ + {} + ] + ], "interfaces/remoteplayback.idl": [ [ {} @@ -279758,6 +280841,16 @@ {} ] ], + "interfaces/webxr.idl": [ + [ + {} + ] + ], + "interfaces/xhr.idl": [ + [ + {} + ] + ], "intersection-observer/observer-in-iframe.html": [ [ {} @@ -280133,6 +281226,11 @@ {} ] ], + "media-source/generate-config-change-tests.py": [ + [ + {} + ] + ], "media-source/import_tests.sh": [ [ {} @@ -284463,11 +285561,26 @@ {} ] ], + "resource-timing/resources/all_resource_types.htm": [ + [ + {} + ] + ], + "resource-timing/resources/blank_page_green.htm": [ + [ + {} + ] + ], "resource-timing/resources/blue.png": [ [ {} ] ], + "resource-timing/resources/empty_script.js": [ + [ + {} + ] + ], "resource-timing/resources/fake_responses.html": [ [ {} @@ -284478,6 +285591,11 @@ {} ] ], + "resource-timing/resources/green_frame.htm": [ + [ + {} + ] + ], "resource-timing/resources/gzip_xml.py": [ [ {} @@ -284533,6 +285651,11 @@ {} ] ], + "resource-timing/resources/nested.css": [ + [ + {} + ] + ], "resource-timing/resources/notify_parent.html": [ [ {} @@ -284578,6 +285701,11 @@ {} ] ], + "resource-timing/resources/worker_with_images.js": [ + [ + {} + ] + ], "resource-timing/test_resource_timing.js": [ [ {} @@ -284703,6 +285831,846 @@ {} ] ], + "server-timing/resources/parsing/0.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/0.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/1.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/1.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/10.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/10.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/11.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/11.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/12.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/12.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/13.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/13.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/14.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/14.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/15.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/15.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/16.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/16.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/17.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/17.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/18.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/18.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/19.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/19.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/2.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/2.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/20.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/20.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/21.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/21.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/22.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/22.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/23.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/23.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/24.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/24.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/25.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/25.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/26.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/26.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/27.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/27.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/28.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/28.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/29.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/29.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/3.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/3.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/30.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/30.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/31.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/31.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/32.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/32.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/33.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/33.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/34.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/34.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/35.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/35.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/36.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/36.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/37.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/37.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/38.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/38.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/39.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/39.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/4.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/4.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/40.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/40.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/41.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/41.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/42.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/42.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/43.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/43.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/44.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/44.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/45.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/45.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/46.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/46.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/47.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/47.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/48.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/48.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/49.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/49.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/5.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/5.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/50.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/50.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/51.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/51.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/52.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/52.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/53.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/53.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/54.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/54.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/55.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/55.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/56.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/56.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/57.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/57.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/58.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/58.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/59.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/59.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/6.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/6.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/60.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/60.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/61.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/61.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/62.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/62.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/63.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/63.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/64.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/64.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/65.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/65.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/66.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/66.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/67.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/67.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/68.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/68.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/69.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/69.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/7.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/7.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/70.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/70.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/71.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/71.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/72.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/72.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/73.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/73.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/74.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/74.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/75.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/75.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/76.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/76.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/77.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/77.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/78.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/78.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/79.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/79.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/8.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/8.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/80.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/80.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/81.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/81.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/82.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/82.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/83.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/83.js.sub.headers": [ + [ + {} + ] + ], + "server-timing/resources/parsing/9.js": [ + [ + {} + ] + ], + "server-timing/resources/parsing/9.js.sub.headers": [ + [ + {} + ] + ], "server-timing/test_server_timing.html.sub.headers": [ [ {} @@ -286998,6 +288966,26 @@ {} ] ], + "svg/path/closepath/segment-completing-ref.svg": [ + [ + {} + ] + ], + "svg/path/distance/pathLength-positive-ref.svg": [ + [ + {} + ] + ], + "svg/path/distance/pathLength-zero-ref.svg": [ + [ + {} + ] + ], + "svg/path/error-handling/render-until-error-ref.svg": [ + [ + {} + ] + ], "svg/path/property/priority-ref.svg": [ [ {} @@ -287418,6 +289406,106 @@ {} ] ], + "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/dummy.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html": [ + [ + {} + ] + ], + "upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html": [ + [ + {} + ] + ], "upgrade-insecure-requests/support/pass.png": [ [ {} @@ -298779,27 +300867,27 @@ } ] ], - "WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js": [ + "WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js": [ [ - "/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.html", + "/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.html", {} ] ], - "WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js": [ + "WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js": [ [ - "/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.html", + "/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.html", {} ] ], - "WebCryptoAPI/derive_bits_keys/hkdf.worker.js": [ + "WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js": [ [ - "/WebCryptoAPI/derive_bits_keys/hkdf.worker.html", + "/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.html", {} ] ], - "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js": [ + "WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js": [ [ - "/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.html", + "/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.html", { "timeout": "long" } @@ -298901,9 +300989,9 @@ } ] ], - "WebCryptoAPI/digest/digest.worker.js": [ + "WebCryptoAPI/digest/digest.https.worker.js": [ [ - "/WebCryptoAPI/digest/digest.worker.html", + "/WebCryptoAPI/digest/digest.https.worker.html", {} ] ], @@ -298915,27 +301003,27 @@ } ] ], - "WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js": [ [ - "/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.html", + "/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.html", {} ] ], - "WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js": [ [ - "/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.html", + "/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.html", {} ] ], - "WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js": [ [ - "/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.html", + "/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.html", {} ] ], - "WebCryptoAPI/encrypt_decrypt/rsa.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js": [ [ - "/WebCryptoAPI/encrypt_decrypt/rsa.worker.html", + "/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.html", {} ] ], @@ -299317,39 +301405,33 @@ {} ] ], - "WebCryptoAPI/idlharness.html": [ - [ - "/WebCryptoAPI/idlharness.html", - {} - ] - ], "WebCryptoAPI/idlharness.https.html": [ [ "/WebCryptoAPI/idlharness.https.html", {} ] ], - "WebCryptoAPI/idlharness.worker.js": [ + "WebCryptoAPI/idlharness.https.worker.js": [ [ - "/WebCryptoAPI/idlharness.worker.html", + "/WebCryptoAPI/idlharness.https.worker.html", {} ] ], - "WebCryptoAPI/import_export/ec_importKey.worker.js": [ + "WebCryptoAPI/import_export/ec_importKey.https.worker.js": [ [ - "/WebCryptoAPI/import_export/ec_importKey.worker.html", + "/WebCryptoAPI/import_export/ec_importKey.https.worker.html", {} ] ], - "WebCryptoAPI/import_export/rsa_importKey.worker.js": [ + "WebCryptoAPI/import_export/rsa_importKey.https.worker.js": [ [ - "/WebCryptoAPI/import_export/rsa_importKey.worker.html", + "/WebCryptoAPI/import_export/rsa_importKey.https.worker.html", {} ] ], - "WebCryptoAPI/import_export/symmetric_importKey.worker.js": [ + "WebCryptoAPI/import_export/symmetric_importKey.https.worker.js": [ [ - "/WebCryptoAPI/import_export/symmetric_importKey.worker.html", + "/WebCryptoAPI/import_export/symmetric_importKey.https.worker.html", {} ] ], @@ -299383,27 +301465,27 @@ {} ] ], - "WebCryptoAPI/sign_verify/ecdsa.worker.js": [ + "WebCryptoAPI/sign_verify/ecdsa.https.worker.js": [ [ - "/WebCryptoAPI/sign_verify/ecdsa.worker.html", + "/WebCryptoAPI/sign_verify/ecdsa.https.worker.html", {} ] ], - "WebCryptoAPI/sign_verify/hmac.worker.js": [ + "WebCryptoAPI/sign_verify/hmac.https.worker.js": [ [ - "/WebCryptoAPI/sign_verify/hmac.worker.html", + "/WebCryptoAPI/sign_verify/hmac.https.worker.html", {} ] ], - "WebCryptoAPI/sign_verify/rsa_pkcs.worker.js": [ + "WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js": [ [ - "/WebCryptoAPI/sign_verify/rsa_pkcs.worker.html", + "/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.html", {} ] ], - "WebCryptoAPI/sign_verify/rsa_pss.worker.js": [ + "WebCryptoAPI/sign_verify/rsa_pss.https.worker.js": [ [ - "/WebCryptoAPI/sign_verify/rsa_pss.worker.html", + "/WebCryptoAPI/sign_verify/rsa_pss.https.worker.html", {} ] ], @@ -299447,9 +301529,9 @@ } ] ], - "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js": [ + "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js": [ [ - "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.html", + "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.html", { "timeout": "long" } @@ -299895,6 +301977,142 @@ {} ] ], + "bluetooth/characteristic/characteristicProperties.https.html": [ + [ + "/bluetooth/characteristic/characteristicProperties.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html": [ + [ + "/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html": [ + [ + "/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html": [ + [ + "/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/notifications/characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/notifications/characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html": [ + [ + "/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/readValue/characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/event-is-fired.https.html": [ + [ + "/bluetooth/characteristic/readValue/event-is-fired.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/read-succeeds.https.html": [ + [ + "/bluetooth/characteristic/readValue/read-succeeds.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/readValue/read-updates-value.https.html": [ + [ + "/bluetooth/characteristic/readValue/read-updates-value.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/writeValue/characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html": [ + [ + "/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/characteristic/writeValue/write-succeeds.https.html": [ + [ + "/bluetooth/characteristic/writeValue/write-succeeds.https.html", + { + "testdriver": true + } + ] + ], "bluetooth/idl/idl-Bluetooth.html": [ [ "/bluetooth/idl/idl-Bluetooth.html", @@ -300009,6 +302227,342 @@ } ] ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-disconnected-device.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-get-same-object.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-get-same-object.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryService/gen-service-not-found.https.html": [ + [ + "/bluetooth/server/getPrimaryService/gen-service-not-found.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-get-same-object.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html", + { + "testdriver": true + } + ] + ], + "bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html": [ + [ + "/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html", + { + "testdriver": true + } + ] + ], "bluetooth/service/getCharacteristic/characteristic-found.https.html": [ [ "/bluetooth/service/getCharacteristic/characteristic-found.https.html", @@ -300473,6 +303027,12 @@ {} ] ], + "content-security-policy/form-action/form-action-self-allowed-target-blank.html": [ + [ + "/content-security-policy/form-action/form-action-self-allowed-target-blank.html", + {} + ] + ], "content-security-policy/form-action/form-action-src-allowed.sub.html": [ [ "/content-security-policy/form-action/form-action-src-allowed.sub.html", @@ -301119,6 +303679,30 @@ {} ] ], + "content-security-policy/prefetch-src/prefetch-allowed.html": [ + [ + "/content-security-policy/prefetch-src/prefetch-allowed.html", + {} + ] + ], + "content-security-policy/prefetch-src/prefetch-blocked.html": [ + [ + "/content-security-policy/prefetch-src/prefetch-blocked.html", + {} + ] + ], + "content-security-policy/prefetch-src/prefetch-header-allowed.html": [ + [ + "/content-security-policy/prefetch-src/prefetch-header-allowed.html", + {} + ] + ], + "content-security-policy/prefetch-src/prefetch-header-blocked.html": [ + [ + "/content-security-policy/prefetch-src/prefetch-header-blocked.html", + {} + ] + ], "content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html": [ [ "/content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html", @@ -304717,6 +307301,42 @@ {} ] ], + "css/css-masking/parsing/clip-invalid.html": [ + [ + "/css/css-masking/parsing/clip-invalid.html", + {} + ] + ], + "css/css-masking/parsing/clip-path-invalid.html": [ + [ + "/css/css-masking/parsing/clip-path-invalid.html", + {} + ] + ], + "css/css-masking/parsing/clip-path-valid.html": [ + [ + "/css/css-masking/parsing/clip-path-valid.html", + {} + ] + ], + "css/css-masking/parsing/clip-rule-invalid.html": [ + [ + "/css/css-masking/parsing/clip-rule-invalid.html", + {} + ] + ], + "css/css-masking/parsing/clip-rule-valid.html": [ + [ + "/css/css-masking/parsing/clip-rule-valid.html", + {} + ] + ], + "css/css-masking/parsing/clip-valid.html": [ + [ + "/css/css-masking/parsing/clip-valid.html", + {} + ] + ], "css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html": [ [ "/css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html", @@ -304939,6 +307559,42 @@ {} ] ], + "css/css-shapes/parsing/shape-image-threshold-invalid.html": [ + [ + "/css/css-shapes/parsing/shape-image-threshold-invalid.html", + {} + ] + ], + "css/css-shapes/parsing/shape-image-threshold-valid.html": [ + [ + "/css/css-shapes/parsing/shape-image-threshold-valid.html", + {} + ] + ], + "css/css-shapes/parsing/shape-margin-invalid.html": [ + [ + "/css/css-shapes/parsing/shape-margin-invalid.html", + {} + ] + ], + "css/css-shapes/parsing/shape-margin-valid.html": [ + [ + "/css/css-shapes/parsing/shape-margin-valid.html", + {} + ] + ], + "css/css-shapes/parsing/shape-outside-invalid.html": [ + [ + "/css/css-shapes/parsing/shape-outside-invalid.html", + {} + ] + ], + "css/css-shapes/parsing/shape-outside-valid.html": [ + [ + "/css/css-shapes/parsing/shape-outside-valid.html", + {} + ] + ], "css/css-shapes/shape-outside-invalid-001.html": [ [ "/css/css-shapes/shape-outside-invalid-001.html", @@ -307123,6 +309779,36 @@ {} ] ], + "css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html", + {} + ] + ], "css/css-typed-om/stylevalue-objects/interface.html": [ [ "/css/css-typed-om/stylevalue-objects/interface.html", @@ -307153,12 +309839,222 @@ {} ] ], + "css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssPositionValue.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssPositionValue.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html", + {} + ] + ], + "css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html", + {} + ] + ], "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html": [ [ "/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html", {} ] ], + "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html", + {} + ] + ], + "css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html": [ + [ + "/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/get.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/has.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/append.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/get.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/has.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/declared/set.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html", + {} + ] + ], + "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", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/append.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/get.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/has.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/set.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html", + {} + ] + ], + "css/css-typed-om/the-stylepropertymap/inline/update.tentative.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html", + {} + ] + ], "css/css-typed-om/the-stylepropertymap/interface.html": [ [ "/css/css-typed-om/the-stylepropertymap/interface.html", @@ -307249,6 +310145,12 @@ {} ] ], + "css/css-values/lh-rlh-on-root-001.html": [ + [ + "/css/css-values/lh-rlh-on-root-001.html", + {} + ] + ], "css/css-values/unset-value-storage.html": [ [ "/css/css-values/unset-value-storage.html", @@ -314835,6 +317737,12 @@ {} ] ], + "fetch/security/redirect-to-url-with-credentials.https.html": [ + [ + "/fetch/security/redirect-to-url-with-credentials.https.html", + {} + ] + ], "fullscreen/api/document-exit-fullscreen-active-document.html": [ [ "/fullscreen/api/document-exit-fullscreen-active-document.html", @@ -318679,6 +321587,12 @@ {} ] ], + "html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html": [ + [ + "/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html", + {} + ] + ], "html/semantics/document-metadata/styling/LinkStyle.html": [ [ "/html/semantics/document-metadata/styling/LinkStyle.html", @@ -320057,6 +322971,18 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html", + {} + ] + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html", + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html": [ [ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html", @@ -320075,6 +323001,18 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html", + {} + ] + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html", + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html": [ [ "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html", @@ -327501,27 +330439,27 @@ {} ] ], - "keyboard-lock/navigator-cancelKeyboardLock.https.html": [ + "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [ [ - "/keyboard-lock/navigator-cancelKeyboardLock.https.html", + "/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html", {} ] ], - "keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html": [ + "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [ [ - "/keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html", + "/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html", {} ] ], - "keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html": [ + "keyboard-lock/navigator-keyboardLock.https.html": [ [ - "/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html", + "/keyboard-lock/navigator-keyboardLock.https.html", {} ] ], - "keyboard-lock/navigator-requestKeyboardLock.https.html": [ + "keyboard-lock/navigator-keyboardUnlock.https.html": [ [ - "/keyboard-lock/navigator-requestKeyboardLock.https.html", + "/keyboard-lock/navigator-keyboardUnlock.https.html", {} ] ], @@ -339415,6 +342353,12 @@ {} ] ], + "performance-timeline/po-takeRecords.html": [ + [ + "/performance-timeline/po-takeRecords.html", + {} + ] + ], "performance-timeline/worker-with-performance-observer.html": [ [ "/performance-timeline/worker-with-performance-observer.html", @@ -339673,9 +342617,9 @@ {} ] ], - "proximity/idlharness.html": [ + "proximity/idlharness.https.html": [ [ - "/proximity/idlharness.html", + "/proximity/idlharness.https.html", {} ] ], @@ -347997,12 +350941,66 @@ {} ] ], + "resource-timing/resource_dedicated_worker.html": [ + [ + "/resource-timing/resource_dedicated_worker.html", + {} + ] + ], "resource-timing/resource_dynamic_insertion.html": [ [ "/resource-timing/resource_dynamic_insertion.html", {} ] ], + "resource-timing/resource_frame_initiator_type.html": [ + [ + "/resource-timing/resource_frame_initiator_type.html", + {} + ] + ], + "resource-timing/resource_ignore_data_url.html": [ + [ + "/resource-timing/resource_ignore_data_url.html", + {} + ] + ], + "resource-timing/resource_ignore_failures.html": [ + [ + "/resource-timing/resource_ignore_failures.html", + {} + ] + ], + "resource-timing/resource_initiator_types.html": [ + [ + "/resource-timing/resource_initiator_types.html", + {} + ] + ], + "resource-timing/resource_memory_cached.sub.html": [ + [ + "/resource-timing/resource_memory_cached.sub.html", + {} + ] + ], + "resource-timing/resource_redirects.html": [ + [ + "/resource-timing/resource_redirects.html", + {} + ] + ], + "resource-timing/resource_reparenting.html": [ + [ + "/resource-timing/resource_reparenting.html", + {} + ] + ], + "resource-timing/resource_script_types.html": [ + [ + "/resource-timing/resource_script_types.html", + {} + ] + ], "resource-timing/resource_subframe_self_navigation.html": [ [ "/resource-timing/resource_subframe_self_navigation.html", @@ -348375,6 +351373,12 @@ {} ] ], + "server-timing/server_timing_header-parsing.html": [ + [ + "/server-timing/server_timing_header-parsing.html", + {} + ] + ], "server-timing/test_server_timing.html": [ [ "/server-timing/test_server_timing.html", @@ -351597,6 +354601,18 @@ {} ] ], + "svg/path/error-handling/bounding.svg": [ + [ + "/svg/path/error-handling/bounding.svg", + {} + ] + ], + "svg/path/interfaces/SVGAnimatedPathData-removed.svg": [ + [ + "/svg/path/interfaces/SVGAnimatedPathData-removed.svg", + {} + ] + ], "svg/path/property/d-interpolation-discrete.svg": [ [ "/svg/path/property/d-interpolation-discrete.svg", @@ -351627,6 +354643,12 @@ {} ] ], + "svg/types/elements/SVGGeometryElement-rect.svg": [ + [ + "/svg/types/elements/SVGGeometryElement-rect.svg", + {} + ] + ], "svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html": [ [ "/svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html", @@ -351985,6 +355007,12 @@ {} ] ], + "upgrade-insecure-requests/link-upgrade.sub.https.html": [ + [ + "/upgrade-insecure-requests/link-upgrade.sub.https.html", + {} + ] + ], "upgrade-insecure-requests/websocket-upgrade.https.html": [ [ "/upgrade-insecure-requests/websocket-upgrade.https.html", @@ -354135,6 +357163,12 @@ {} ] ], + "webrtc/RTCPeerConnection-track-stats.https.html": [ + [ + "/webrtc/RTCPeerConnection-track-stats.https.html", + {} + ] + ], "webrtc/RTCPeerConnectionIceEvent-constructor.html": [ [ "/webrtc/RTCPeerConnectionIceEvent-constructor.html", @@ -356859,6 +359893,12 @@ {} ] ], + "webxr/interfaces.https.html": [ + [ + "/webxr/interfaces.https.html", + {} + ] + ], "webxr/webxr_availability.http.sub.html": [ [ "/webxr/webxr_availability.http.sub.html", @@ -357993,6 +361033,36 @@ {} ] ], + "worklets/layout-worklet-credentials.https.html": [ + [ + "/worklets/layout-worklet-credentials.https.html", + {} + ] + ], + "worklets/layout-worklet-csp.https.html": [ + [ + "/worklets/layout-worklet-csp.https.html", + {} + ] + ], + "worklets/layout-worklet-import.https.html": [ + [ + "/worklets/layout-worklet-import.https.html", + {} + ] + ], + "worklets/layout-worklet-referrer.https.html": [ + [ + "/worklets/layout-worklet-referrer.https.html", + {} + ] + ], + "worklets/layout-worklet-service-worker-interception.https.html": [ + [ + "/worklets/layout-worklet-service-worker-interception.https.html", + {} + ] + ], "worklets/paint-worklet-credentials.https.html": [ [ "/worklets/paint-worklet-credentials.https.html", @@ -367053,30 +370123,6 @@ {} ] ], - "css/CSS2/selectors/class-selector-009.xht": [ - [ - "/css/CSS2/selectors/class-selector-009.xht", - {} - ] - ], - "css/CSS2/selectors/class-selector-010.xht": [ - [ - "/css/CSS2/selectors/class-selector-010.xht", - {} - ] - ], - "css/CSS2/selectors/class-selector-011.xht": [ - [ - "/css/CSS2/selectors/class-selector-011.xht", - {} - ] - ], - "css/CSS2/selectors/class-selector-012.xht": [ - [ - "/css/CSS2/selectors/class-selector-012.xht", - {} - ] - ], "css/CSS2/selectors/default-attribute-selector-005.xht": [ [ "/css/CSS2/selectors/default-attribute-selector-005.xht", @@ -367101,78 +370147,12 @@ {} ] ], - "css/CSS2/selectors/first-child-selector-001.xht": [ - [ - "/css/CSS2/selectors/first-child-selector-001.xht", - {} - ] - ], - "css/CSS2/selectors/first-child-selector-002.xht": [ - [ - "/css/CSS2/selectors/first-child-selector-002.xht", - {} - ] - ], - "css/CSS2/selectors/first-child-selector-003.xht": [ - [ - "/css/CSS2/selectors/first-child-selector-003.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-000.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-000.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-001.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-001.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-002.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-002.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-003.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-003.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-004.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-004.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-005.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-005.xht", - {} - ] - ], "css/CSS2/selectors/first-letter-selector-006.xht": [ [ "/css/CSS2/selectors/first-letter-selector-006.xht", {} ] ], - "css/CSS2/selectors/first-letter-selector-007.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-007.xht", - {} - ] - ], - "css/CSS2/selectors/first-letter-selector-008.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-008.xht", - {} - ] - ], "css/CSS2/selectors/first-letter-selector-009.xht": [ [ "/css/CSS2/selectors/first-letter-selector-009.xht", @@ -367233,12 +370213,6 @@ {} ] ], - "css/CSS2/selectors/first-letter-selector-019.xht": [ - [ - "/css/CSS2/selectors/first-letter-selector-019.xht", - {} - ] - ], "css/CSS2/selectors/first-letter-selector-020.xht": [ [ "/css/CSS2/selectors/first-letter-selector-020.xht", @@ -367341,24 +370315,6 @@ {} ] ], - "css/CSS2/selectors/first-line-pseudo-019.xht": [ - [ - "/css/CSS2/selectors/first-line-pseudo-019.xht", - {} - ] - ], - "css/CSS2/selectors/first-line-pseudo-020.xht": [ - [ - "/css/CSS2/selectors/first-line-pseudo-020.xht", - {} - ] - ], - "css/CSS2/selectors/first-line-pseudo-021.xht": [ - [ - "/css/CSS2/selectors/first-line-pseudo-021.xht", - {} - ] - ], "css/CSS2/selectors/first-line-selector-001.xht": [ [ "/css/CSS2/selectors/first-line-selector-001.xht", @@ -367407,12 +370363,6 @@ {} ] ], - "css/CSS2/selectors/first-line-selector-010.xht": [ - [ - "/css/CSS2/selectors/first-line-selector-010.xht", - {} - ] - ], "css/CSS2/selectors/first-line-selector-011.xht": [ [ "/css/CSS2/selectors/first-line-selector-011.xht", @@ -367443,48 +370393,6 @@ {} ] ], - "css/CSS2/selectors/id-selector-002.xht": [ - [ - "/css/CSS2/selectors/id-selector-002.xht", - {} - ] - ], - "css/CSS2/selectors/lang-selector-004.xht": [ - [ - "/css/CSS2/selectors/lang-selector-004.xht", - {} - ] - ], - "css/CSS2/selectors/lang-selector-005.xht": [ - [ - "/css/CSS2/selectors/lang-selector-005.xht", - {} - ] - ], - "css/CSS2/selectors/lang-selector-006.xht": [ - [ - "/css/CSS2/selectors/lang-selector-006.xht", - {} - ] - ], - "css/CSS2/selectors/pseudo-006.xht": [ - [ - "/css/CSS2/selectors/pseudo-006.xht", - {} - ] - ], - "css/CSS2/selectors/pseudo-007.xht": [ - [ - "/css/CSS2/selectors/pseudo-007.xht", - {} - ] - ], - "css/CSS2/selectors/pseudo-008.xht": [ - [ - "/css/CSS2/selectors/pseudo-008.xht", - {} - ] - ], "css/CSS2/syntax/case-sensitive-008.xht": [ [ "/css/CSS2/syntax/case-sensitive-008.xht", @@ -370335,96 +373243,6 @@ {} ] ], - "css/CSS2/tables/caption-side-applies-to-001.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-001.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-002.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-002.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-003.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-003.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-005.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-005.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-006.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-006.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-007.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-007.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-008.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-008.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-009.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-009.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-010.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-010.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-011.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-011.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-012.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-012.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-013.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-013.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-014.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-014.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-015.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-015.xht", - {} - ] - ], - "css/CSS2/tables/caption-side-applies-to-017.xht": [ - [ - "/css/CSS2/tables/caption-side-applies-to-017.xht", - {} - ] - ], "css/CSS2/tables/caption-side-example-001.xht": [ [ "/css/CSS2/tables/caption-side-example-001.xht", @@ -370455,30 +373273,12 @@ {} ] ], - "css/CSS2/tables/collapsing-border-model-001.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-001.xht", - {} - ] - ], "css/CSS2/tables/collapsing-border-model-002.xht": [ [ "/css/CSS2/tables/collapsing-border-model-002.xht", {} ] ], - "css/CSS2/tables/collapsing-border-model-003.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-003.xht", - {} - ] - ], - "css/CSS2/tables/collapsing-border-model-004.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-004.xht", - {} - ] - ], "css/CSS2/tables/collapsing-border-model-005.xht": [ [ "/css/CSS2/tables/collapsing-border-model-005.xht", @@ -370491,24 +373291,6 @@ {} ] ], - "css/CSS2/tables/collapsing-border-model-007.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-007.xht", - {} - ] - ], - "css/CSS2/tables/collapsing-border-model-008.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-008.xht", - {} - ] - ], - "css/CSS2/tables/collapsing-border-model-009.xht": [ - [ - "/css/CSS2/tables/collapsing-border-model-009.xht", - {} - ] - ], "css/CSS2/tables/collapsing-table-borders-001.xht": [ [ "/css/CSS2/tables/collapsing-table-borders-001.xht", @@ -370989,18 +373771,6 @@ {} ] ], - "css/CSS2/tables/row-visibility-001.xht": [ - [ - "/css/CSS2/tables/row-visibility-001.xht", - {} - ] - ], - "css/CSS2/tables/row-visibility-002.xht": [ - [ - "/css/CSS2/tables/row-visibility-002.xht", - {} - ] - ], "css/CSS2/tables/row-visibility-003.xht": [ [ "/css/CSS2/tables/row-visibility-003.xht", @@ -371559,12 +374329,6 @@ {} ] ], - "css/CSS2/tables/table-cell-001.xht": [ - [ - "/css/CSS2/tables/table-cell-001.xht", - {} - ] - ], "css/CSS2/tables/table-cell-002.xht": [ [ "/css/CSS2/tables/table-cell-002.xht", @@ -378645,6 +381409,12 @@ {} ] ], + "css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html": [ + [ + "/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html", + {} + ] + ], "css/css-values/absolute_length_units.html": [ [ "/css/css-values/absolute_length_units.html", @@ -379445,7 +382215,7 @@ "support" ], "./.travis.yml": [ - "3ded1c75d66882f00fe588318e373e802dddf15e", + "ae17735a06f31093f06a10b643099cbedaa3c459", "support" ], "./CONTRIBUTING.md": [ @@ -379473,7 +382243,7 @@ "support" ], "./lint.whitelist": [ - "e2ff823a37fdb49a64d144ac380ac00ab4d35655", + "c55f23203c2e4b158dc13d25617031fcbb791744", "support" ], "./serve.py": [ @@ -381965,15 +384735,15 @@ "testharness" ], "2dcontext/imagebitmap/common.js": [ - "9c16b63a9a724f46e543a32649c21f04c6540893", + "c20732ce1e92624a3d3982154d5aba92eba7adc1", "support" ], "2dcontext/imagebitmap/createImageBitmap-drawImage.html": [ - "d709088a1850b25a89a4ad5cd58a0c9387aa4840", + "ac183f2abd04f0561433083040190cdadb8ac86a", "testharness" ], "2dcontext/imagebitmap/createImageBitmap-invalid-args.html": [ - "0f8e0a2a9099ac869e2435dfe018bc1fb65ec71f", + "05ccfd7c45806ee919ccef8bb45c76c147bded63", "testharness" ], "2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html": [ @@ -383649,7 +386419,7 @@ "testharness" ], "FileAPI/file/File-constructor.html": [ - "95198c8156dadc851d279a863b883c8befdc3930", + "68673d38dcf818edf59bbc5996d2aa1b2105a481", "testharness" ], "FileAPI/file/Worker-read-file-constructor.worker.js": [ @@ -383837,7 +386607,7 @@ "support" ], "FileAPI/url/sandboxed-iframe.html": [ - "f7de4337c0f154668d24d85753daea9e4636ac52", + "b610b4d0f18472d9eb7ba50f68424e8731d9efff", "testharness" ], "FileAPI/url/unicode-origin.sub.html": [ @@ -383845,7 +386615,7 @@ "testharness" ], "FileAPI/url/url-format.any.js": [ - "b2e72a48146973a4d2e95b815758d688c8acb2e0", + "b087f507b342f88240efcee2569da96fee469a5b", "testharness" ], "FileAPI/url/url-in-tags.window.js": [ @@ -385312,46 +388082,42 @@ "de7dd2ee8b4d23b5170349e7c2dc94862e5faed2", "support" ], - "WebCryptoAPI/WebCryptoAPI.idl": [ - "87b02fc82a1b204ac59a51932e58f9369b4a77c6", - "support" + "WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js": [ + "b5b14e550d5dbff9f63666b42bd46e29b5be8709", + "testharness" ], "WebCryptoAPI/derive_bits_keys/ecdh_bits.js": [ "becf212639e53f6cae83994feeb2a2d0ecb6feeb", "support" ], - "WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js": [ - "b5b14e550d5dbff9f63666b42bd46e29b5be8709", + "WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js": [ + "25bcc549b62ecc99df4e2af27753e311c3910e70", "testharness" ], "WebCryptoAPI/derive_bits_keys/ecdh_keys.js": [ "c030ebe3984538c73ee1fca4ec378e4356bccbf4", "support" ], - "WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js": [ - "25bcc549b62ecc99df4e2af27753e311c3910e70", + "WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js": [ + "0ea6fb5e51a60e8a521da7a2853fde9a4ff2af8f", "testharness" ], "WebCryptoAPI/derive_bits_keys/hkdf.js": [ "7c50dfe98c29038cc758cf90d56cf4b328d1fc37", "support" ], - "WebCryptoAPI/derive_bits_keys/hkdf.worker.js": [ - "0ea6fb5e51a60e8a521da7a2853fde9a4ff2af8f", - "testharness" - ], "WebCryptoAPI/derive_bits_keys/hkdf_vectors.js": [ "766a7184da406918e9dc6718125975a59d3d5d36", "support" ], + "WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js": [ + "1149c335951baa52b7d1ad3192292fb46176d491", + "testharness" + ], "WebCryptoAPI/derive_bits_keys/pbkdf2.js": [ "dfd8eea5707720186820549837c8a1a319a8ecc4", "support" ], - "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js": [ - "1149c335951baa52b7d1ad3192292fb46176d491", - "testharness" - ], "WebCryptoAPI/derive_bits_keys/pbkdf2_vectors.js": [ "0a073cb726ad239110545eb3cecada2a0ce5daf7", "support" @@ -385404,14 +388170,14 @@ "5e776aa3f202bb72a328947983b020f03ba6ec4d", "testharness" ], + "WebCryptoAPI/digest/digest.https.worker.js": [ + "a9a6b7a15bf0b795729190a94bdda6ed1ddc013d", + "testharness" + ], "WebCryptoAPI/digest/digest.js": [ "e68b81bd47af7373a63466ebe2fd13050d5d246d", "support" ], - "WebCryptoAPI/digest/digest.worker.js": [ - "a9a6b7a15bf0b795729190a94bdda6ed1ddc013d", - "testharness" - ], "WebCryptoAPI/digest/test_digest.https.html": [ "1f5893b2c01a60e1e49b8ba5dee8f3d6507cc604", "testharness" @@ -385420,7 +388186,7 @@ "b05d96920d4ea99e4cd8cbcbb3c92251aac81963", "support" ], - "WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js": [ "348e7d6daf461c90ad2f141aee0ec5fb178e33d6", "testharness" ], @@ -385428,7 +388194,7 @@ "11b8c11b8fba29f1ce4dd9dc7ed7dd73ddb93322", "support" ], - "WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js": [ "aa500eac7a17c4994a84b63bac007199e989ddb7", "testharness" ], @@ -385436,7 +388202,7 @@ "bd8aa30846061ba3c1b99a73048ea17b5c9c0567", "support" ], - "WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js": [ + "WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js": [ "fe553a2dbe69cc75c51f7951dbf3812b3522fcd5", "testharness" ], @@ -385444,14 +388210,14 @@ "09fe2fc446bd7a5f0039f4ec20d364cab6d6697d", "support" ], + "WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js": [ + "89c6a19f939936a2947a3a5acd9cf37929e46caa", + "testharness" + ], "WebCryptoAPI/encrypt_decrypt/rsa.js": [ "49ddd58c86e0168917b8404d5a3f0ccf0715ef37", "support" ], - "WebCryptoAPI/encrypt_decrypt/rsa.worker.js": [ - "89c6a19f939936a2947a3a5acd9cf37929e46caa", - "testharness" - ], "WebCryptoAPI/encrypt_decrypt/rsa_vectors.js": [ "e833d10f83ac5cff26e076371a545d60a8d37b8f", "support" @@ -385652,42 +388418,38 @@ "44475110f616c78bc04b93246f015e7a83e78fa7", "testharness" ], - "WebCryptoAPI/idlharness.html": [ - "f97da6e12fbd08b0fe93a6bc0fb9724053d147a8", - "testharness" - ], "WebCryptoAPI/idlharness.https.html": [ - "f97da6e12fbd08b0fe93a6bc0fb9724053d147a8", + "a0ac6f063c49d9c14b614dee18b681968eee05ad", "testharness" ], - "WebCryptoAPI/idlharness.worker.js": [ - "e3478f4259364d773dab9ca5e0c7194a0b78d5b3", + "WebCryptoAPI/idlharness.https.worker.js": [ + "2ef22c6a9f185492c5bca7e52b3a7a6b363a2e2f", + "testharness" + ], + "WebCryptoAPI/import_export/ec_importKey.https.worker.js": [ + "18e1f688107b6f2ec4d37f593567ec65ac95c9f9", "testharness" ], "WebCryptoAPI/import_export/ec_importKey.js": [ "9da62f7432c2bf0268189f3ba58d5f6910b8de09", "support" ], - "WebCryptoAPI/import_export/ec_importKey.worker.js": [ - "18e1f688107b6f2ec4d37f593567ec65ac95c9f9", + "WebCryptoAPI/import_export/rsa_importKey.https.worker.js": [ + "4d67403cda8df77690309ac7e6ed1bff65ce0bc6", "testharness" ], "WebCryptoAPI/import_export/rsa_importKey.js": [ "7499196d47910b7e06ca369b008e74d8b0c85bfa", "support" ], - "WebCryptoAPI/import_export/rsa_importKey.worker.js": [ - "4d67403cda8df77690309ac7e6ed1bff65ce0bc6", + "WebCryptoAPI/import_export/symmetric_importKey.https.worker.js": [ + "e9d9758d0478ecdf93a5fda9f196501e992de614", "testharness" ], "WebCryptoAPI/import_export/symmetric_importKey.js": [ "105065232cebaa7ceeb8436ce257b76c6db274e8", "support" ], - "WebCryptoAPI/import_export/symmetric_importKey.worker.js": [ - "e9d9758d0478ecdf93a5fda9f196501e992de614", - "testharness" - ], "WebCryptoAPI/import_export/test_ec_importKey.https.html": [ "2c173849dd35c551b71983fb8efc20f650599da2", "testharness" @@ -385708,26 +388470,26 @@ "4df3813485b7277571d61ce38a5811729f91ddbe", "testharness" ], + "WebCryptoAPI/sign_verify/ecdsa.https.worker.js": [ + "bb414663a4a65e9b55028b0a7433753b3f749a95", + "testharness" + ], "WebCryptoAPI/sign_verify/ecdsa.js": [ "55c99894ea3ba9186de1082c189f37f77dfe12e1", "support" ], - "WebCryptoAPI/sign_verify/ecdsa.worker.js": [ - "bb414663a4a65e9b55028b0a7433753b3f749a95", - "testharness" - ], "WebCryptoAPI/sign_verify/ecdsa_vectors.js": [ "cc71e74a07a65072c004f262a987097aa68a8e75", "support" ], + "WebCryptoAPI/sign_verify/hmac.https.worker.js": [ + "725bbd226a49624a63d168a84ae63d73ce26d73c", + "testharness" + ], "WebCryptoAPI/sign_verify/hmac.js": [ "de5464f41c68d7fd6f4c9cb0653c6e1d591344af", "support" ], - "WebCryptoAPI/sign_verify/hmac.worker.js": [ - "725bbd226a49624a63d168a84ae63d73ce26d73c", - "testharness" - ], "WebCryptoAPI/sign_verify/hmac_vectors.js": [ "c7744822c4c292b4eccf623242f1dc46aaffb91e", "support" @@ -385736,7 +388498,7 @@ "b828453ea1f8db421bf08b02d3067f91b6867657", "support" ], - "WebCryptoAPI/sign_verify/rsa_pkcs.worker.js": [ + "WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js": [ "a1a0de477cc1e275fa4e874112b11016099fb78d", "testharness" ], @@ -385744,7 +388506,7 @@ "1f10e9144cb5e08e5371d956c0410350f3a90b1e", "support" ], - "WebCryptoAPI/sign_verify/rsa_pss.worker.js": [ + "WebCryptoAPI/sign_verify/rsa_pss.https.worker.js": [ "a0e46ac878fc7178cefb52e7e5a398d5e5b80f3b", "testharness" ], @@ -385784,14 +388546,14 @@ "2f0070bafc5079f3b70dd8da567fde0ea6bfb113", "testharness" ], + "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js": [ + "901c6df896c5f9bccd2e680fbd6fc56afce8d364", + "testharness" + ], "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.js": [ "963ed1da346e78fce5217210cd1608b88bea1172", "support" ], - "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js": [ - "901c6df896c5f9bccd2e680fbd6fc56afce8d364", - "testharness" - ], "WebIDL/OWNERS": [ "f9c94ab08fa997459cba17e61d8cd00ee8b07b46", "support" @@ -386289,7 +389051,7 @@ "support" ], "accelerometer/Accelerometer-disabled-by-feature-policy.https.html": [ - "37ec335921c5e3cb6011986e76da04254106f4f6", + "96e5a86bf78239f3aa4a79b32bb4308de0d5f60e", "testharness" ], "accelerometer/Accelerometer-disabled-by-feature-policy.https.html.headers": [ @@ -386297,15 +389059,15 @@ "support" ], "accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "b03ee7c22f1dd78e2681632f2f67598da67a09cb", + "f20f89a31daf399a7946b928e8deca9651d38487", "testharness" ], "accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html": [ - "6f5a595f9ee8d8e0dcd29eae9816210846c43557", + "7ce8c39f0af6c932d1e6b6f75843c090f7274b80", "testharness" ], "accelerometer/Accelerometer-enabled-by-feature-policy.https.html": [ - "9997d07beb3ef1c711dcfd6308c58d11c938244d", + "dbda7cfa838c1f2d4296b545034d42f0064f331a", "testharness" ], "accelerometer/Accelerometer-enabled-by-feature-policy.https.html.headers": [ @@ -386313,7 +389075,7 @@ "support" ], "accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html": [ - "3b4500e2ff0f8a3efae8ace952a8993ed3005bd6", + "b8fb07cdd23dce9690de719387b9d505382772f5", "testharness" ], "accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -386321,15 +389083,15 @@ "support" ], "accelerometer/Accelerometer.https.html": [ - "c0ca55250886c6a8c6194b658ed362e8b10ccae3", + "3ff5f61b25c52142e9796f3903d7f2bcaa30314c", "testharness" ], "accelerometer/Accelerometer_insecure_context.html": [ - "ad29f70c8f506002154e6ffa430b87f5e5ae0923", + "82be1b9a5c6e75291fdc1aabe230af28e22823a8", "testharness" ], "accelerometer/Accelerometer_onerror-manual.https.html": [ - "f20acb4b4e2f774fc13c870f972aaa2ca82afd27", + "c82f9595dc2582b2da40549a358da1c3fc2ff820", "manual" ], "accelerometer/OWNERS": [ @@ -386465,15 +389227,15 @@ "support" ], "ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "c062b275f18a69d092fe4f8d20d01f93a631556f", + "06862bb58d13bf4355cbe66cb7060c7a5ea4a750", "testharness" ], "ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html": [ - "e719162b3001f7a6ef307a1f3af9ac048a0f7ce3", + "acdf8d84bc3e8708af250d8825c93d130ade435f", "testharness" ], "ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html": [ - "605f76f34e24f91ca9e2a6538624ec89633c6d1a", + "da2cc1cc0de186731e38512219cdfaf8357b9301", "testharness" ], "ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html.headers": [ @@ -386481,7 +389243,7 @@ "support" ], "ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html": [ - "6ed23575a7dc16c7044970d81d7768796e9968d4", + "2a7a1dadbf5d9d05116128633598da781f5f0003", "testharness" ], "ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -388665,11 +391427,11 @@ "testharness" ], "beacon/beacon-common.sub.js": [ - "75bee9ae7588c181a9a4f3eb9bced109a0190bfc", + "67226dd8db05540bd79bf5d4983c51fc985ff906", "support" ], "beacon/beacon-cors.sub.window.js": [ - "1821072ced64052cea6d2fc3ccb73cfe23a4235e", + "378281325f0a8d02d32b584179577babfeb7b013", "testharness" ], "beacon/beacon-error.window.js": [ @@ -388729,7 +391491,7 @@ "support" ], "beacon/resources/beacon.py": [ - "12c892f085e2498f4c4abfda2409c61b0243a27f", + "fb2e689ef46d36e3d17b99d9dfad3994110b2033", "support" ], "beacon/resources/content-type.py": [ @@ -388745,11 +391507,87 @@ "support" ], "bluetooth/README.md": [ - "570b51035ed737c73da8b266cbe0eb658745286e", + "2406b51635145355309f8e8778a5669ff561813d", + "support" + ], + "bluetooth/characteristic/characteristicProperties.https.html": [ + "65cc6c0367c0c2860677d2b22a8483c90eac6f2a", + "testharness" + ], + "bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html": [ + "6ba1c71fa5c34f7b0321b5430fa79c75c907fc14", + "testharness" + ], + "bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html": [ + "be7359ed375b28af9aab39c5b06ffbd0da1843bc", + "testharness" + ], + "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html": [ + "fa068af0ac6d1629622f207b77ae95fe3f50b6cc", + "testharness" + ], + "bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html": [ + "82084e965ad35f176505631cb0b9007422bf3fd4", + "testharness" + ], + "bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html": [ + "6a02e3fe8ca88b405e4183bc56c5f0bd2d6a426e", + "testharness" + ], + "bluetooth/characteristic/notifications/characteristic-is-removed.https.html": [ + "f5b14288aad807a4aaaeee5c3ac24f8a43eb4589", + "testharness" + ], + "bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html": [ + "4bb6355e47507c0e57498533d060106dda0051d4", + "testharness" + ], + "bluetooth/characteristic/readValue/characteristic-is-removed.https.html": [ + "69e6a733b4d72a1f7f41b26d65fd874fa944aff5", + "testharness" + ], + "bluetooth/characteristic/readValue/event-is-fired.https.html": [ + "ce736454ce04bcb34be9d1e76f77903ba3f3e805", + "testharness" + ], + "bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html": [ + "1700dfa9ba6e1aa44d42630ef7ba61d4beeed330", + "testharness" + ], + "bluetooth/characteristic/readValue/read-succeeds.https.html": [ + "a87d20692160f3a26fbfde8cfbc8750c0eeb7a65", + "testharness" + ], + "bluetooth/characteristic/readValue/read-updates-value.https.html": [ + "e8daa0dedd43a87996093e5b2507a83572eadb43", + "testharness" + ], + "bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [ + "97f5d01743721207c5addfb9625fd3da7c0c61e3", + "testharness" + ], + "bluetooth/characteristic/writeValue/characteristic-is-removed.https.html": [ + "08efca72e1b522baf8f704f8589cf453b4c2b64b", + "testharness" + ], + "bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html": [ + "62b4bd66196c9c833631916761b41e973aa2a554", + "testharness" + ], + "bluetooth/characteristic/writeValue/write-succeeds.https.html": [ + "8dcaba2c0c6d277c006dd131f1f306918ac80c49", + "testharness" + ], + "bluetooth/generate.py": [ + "ef112d89bc14d0e9ebbb457798609f6000a80935", + "support" + ], + "bluetooth/generate_test.py": [ + "b8749e25c58da9a903feb5edc84c2d6ed8ebda67", "support" ], "bluetooth/idl/idl-Bluetooth.html": [ - "5d4d8278b1f24798765974c35777f70fcbfc9cfa", + "9ef91a8214b3a46278d8b9b442b34d9052342342", "testharness" ], "bluetooth/idl/idl-BluetoothUUID.html": [ @@ -388757,23 +391595,23 @@ "testharness" ], "bluetooth/idl/idl-NavigatorBluetooth.html": [ - "9367593c5bfe07afb4629791cf6aab70460dcd4c", + "fa121bcbea3d19898a71f7dda79708ee941e4b6c", "testharness" ], "bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html": [ - "6e17536a0e3f9d9a0fe6ce075905954b23c83b00", + "850418b4a67df894ac4b21d2e5a18c5c266d03fd", "testharness" ], "bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html": [ - "e212d4609a7f295a564417a22c984c6ddeeeb0c3", + "e156278ff3af38ebc2695ffd3116039be7889e3e", "testharness" ], "bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html": [ - "899200ebcc741fd99b7c8a4e09cb6877c66c6bf5", + "c6e28d2c8509ea2f0e3633b2517ad68631119ffe", "testharness" ], "bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html": [ - "4478ad0afabf3adcd1f84e8165f1a3f185698974", + "50eaac3e0c94933fa995c102d53b6b00b3087ea6", "testharness" ], "bluetooth/resources/bluetooth-helpers.js": [ @@ -388781,59 +391619,303 @@ "support" ], "bluetooth/resources/health-thermometer-iframe.html": [ - "badf5e78964f9979d6870c08fb78eb3987027c00", + "d42691b2621c13a28c3cfd675de4d95c8a585902", + "support" + ], + "bluetooth/script-tests/base_test_html.template": [ + "abe5c81d5d9be9b0c6069ba0a465ca3efc24b442", + "support" + ], + "bluetooth/script-tests/characteristic/characteristic-is-removed.js": [ + "7b7cd34d4c480e62fcde4667f50212cbae7f7b07", + "support" + ], + "bluetooth/script-tests/characteristic/descriptor-get-same-object.js": [ + "2664262ff94976691ab7811e7b342cfd40e11190", + "support" + ], + "bluetooth/script-tests/server/disconnect-called-before.js": [ + "3ea0ed09ee2197401437b4d89c335181b2983b17", + "support" + ], + "bluetooth/script-tests/server/disconnect-called-during-error.js": [ + "43089297c181c29f633ed9dc574313aac34d4ba3", + "support" + ], + "bluetooth/script-tests/server/disconnect-called-during-success.js": [ + "25835e2c53793ad800774de819b88939f12ebb82", + "support" + ], + "bluetooth/script-tests/server/disconnect-invalidates-objects.js": [ + "0d113b9ec03ccb4f971710b06156cabc1f97e471", + "support" + ], + "bluetooth/script-tests/server/disconnected-device.js": [ + "9b537f1e9d3b2416fcf27ff7c65c2a548693fc77", + "support" + ], + "bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js": [ + "bd9f91f6dc624574f616f62295b3dbede30fdc84", + "support" + ], + "bluetooth/script-tests/server/discovery-complete-service-not-found.js": [ + "3bd0c4c170efe30bfdbdbae30bfa6cf4563e5193", + "support" + ], + "bluetooth/script-tests/server/garbage-collection-ran-during-error.js": [ + "e25a59e154898a964822190021cd6bd6f7784df8", + "support" + ], + "bluetooth/script-tests/server/garbage-collection-ran-during-success.js": [ + "6bd2f4c2f0585ed078cef61b3867627bc0aeb682", + "support" + ], + "bluetooth/script-tests/server/get-different-service-after-reconnection.js": [ + "4b4c9fcadb0ae28becc1888ffc0c738a898f15a5", + "support" + ], + "bluetooth/script-tests/server/get-same-object.js": [ + "30382d56a15bb8b8a2825e265ddf00b489829151", + "support" + ], + "bluetooth/script-tests/server/invalid-service-name.js": [ + "0c2b3d759291d4e247df131f82daa2be847cb1d9", + "support" + ], + "bluetooth/script-tests/server/no-permission-absent-service.js": [ + "78388409359e9e5bc36b304865e6e14d30769e12", + "support" + ], + "bluetooth/script-tests/server/no-permission-for-any-service.js": [ + "f9230d7d66815561f575ba55409f2ca4fc0a67b8", + "support" + ], + "bluetooth/script-tests/server/no-permission-present-service.js": [ + "0f2e002be9842eb06f31f63de31c96fcd2820258", + "support" + ], + "bluetooth/script-tests/server/service-not-found.js": [ + "b18022b48d354825fa747abda81bc870142d9c59", "support" ], "bluetooth/server/connect/connection-succeeds.https.html": [ - "16fe2bccd7e8f8f626222cc49c1df70401463f3a", + "167880b07f855325a35a81a8ea833b0d006c7957", "testharness" ], "bluetooth/server/connect/garbage-collection-ran-during-success.https.html": [ - "ff136c9e9b463cb8c545a6f51433743347a50db6", + "9186c8cef9bc2e170175b811cfd85f69883b14ec", "testharness" ], "bluetooth/server/connect/get-same-gatt-server.https.html": [ - "8f7a9a177770c9a44ed5e6fe8f3833ef18a60c1d", + "39cf93a9afa8cf4d377ed3746f5184cb61967b0e", "testharness" ], "bluetooth/server/device-same-object.https.html": [ - "13abe70e2d5bf768007a2c6e4119ebfe086d38aa", + "642394343df7f8d4aa924c330b57f2d4e891c3d5", "testharness" ], "bluetooth/server/disconnect/connect-disconnect-twice.https.html": [ - "04b2728be0ed8044629828f015b0d4f78dab6031", + "0a815341854fb89ba140dc66546cad449d997b42", "testharness" ], "bluetooth/server/disconnect/detach-gc.https.html": [ - "8e9e10665b091c6a7817e1b7d058e48c12163dbd", + "a0df0f4983e44466705e57bfcbcde8fc74c504dc", "testharness" ], "bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html": [ - "26efe3bc26f792baf0ff087d02730be62cc80f0b", + "06f821cc5fd28c776bbf2c2fc76ffdf80d66742d", "testharness" ], "bluetooth/server/disconnect/gc-detach.https.html": [ - "e673c3120276ffb6a4e8d03f47b049ff72ac0a9c", + "cba04d22660d31b5b9ad0d21b41f42d7761f5092", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html": [ + "d1f9a8a640ae96589e7406e6c296137a08c4ea01", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html": [ + "7eb6d88b2ac33e3426144ba374bc2b6730be1b01", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html": [ + "013b1adff7a583f2706943edef16219a4ef12a50", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html": [ + "babca3978d09c505ba002c5790142f45c09409f0", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-disconnected-device.https.html": [ + "64579c81d08bf9753e4cdc319064b70d4e93c19d", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html": [ + "ebb340c97a7dd41203889fb8514bce2202efa6b9", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html": [ + "f2733d37d96e85581302f9cc65ea33fbd436c2f2", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html": [ + "906d8a13230d427eb018b4bf65eb6800523c99bc", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html": [ + "458c0b316c4e0bb06d0825dca372070d5961091e", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html": [ + "cbd51c9175418a8c4bd031de3b2a2e4ef2ae7bb6", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-get-same-object.https.html": [ + "a064dd7e8fe4137f0a7a83967907b88766f6466f", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html": [ + "5728e27aba6861ddfc7cb4278b116ee9d94fbb7a", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html": [ + "ed7a5e4ab959f5d8b5e72154c68e397128c4d071", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html": [ + "86fab4a334c37e61ff9acbeafba071fd0aab5d30", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html": [ + "46717e75f676ff426773a79c4c01b2412b2c70ee", + "testharness" + ], + "bluetooth/server/getPrimaryService/gen-service-not-found.https.html": [ + "9169ed84f3502d5e3e675d5e0e317d0d895b4ca7", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html": [ + "ff1af939fa2b5b77523712a4281839349f00e43b", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html": [ + "b579d5e4ea1762930d2831b082fa6d92810e59c3", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html": [ + "5bf7c1c17795a136624b149d1c63c423de21a22d", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html": [ + "c9b596491a06833d6dca56cd0dc92895056ccb45", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html": [ + "a2e353e4812795ee397320add5faf764b0fcd776", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html": [ + "22dc609a8be624fad4aeae9b29a280fd2524f180", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html": [ + "962c58b5ebf1ec9b7f8801e666d0fb593a75f4bd", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html": [ + "7ed5669e52a931920ad1e622b916e3ef9738813b", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html": [ + "c240a2232591d9dde3501d8bf7476660e44f75bd", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html": [ + "7bbf8a63ec4cf8b14e4cca6c34f92c861b73b78a", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html": [ + "1c9ef6cbb708206b700a06b6d20441e7e4d08e3e", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html": [ + "eed768bcd0f0b6cd0504a5e255176b53566cf50c", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html": [ + "010e58796de1ddfa69a5861ed8f8361e0ff22338", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html": [ + "a913ac938d4d0ae148f7165759e26aa9ad04f110", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html": [ + "51fd1e4d6a25f7877c08d6415a8e5b5d4cab3bf2", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html": [ + "1fdc6561901486f088f911cca14ec6ecf3d7ff98", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html": [ + "eb6b10cb0f59a3eedeed6dd38ffd7d6bb5192dc8", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html": [ + "159cf4869e074917cf01923fbdf41acab1bde40d", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html": [ + "ad2f743b2dab04828ef996ce1912f9d03ddd9d36", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-get-same-object.https.html": [ + "62d689a2a97e3f5d2bb22040faf3725d750caae0", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html": [ + "878c93bcea918a0d008ab44552f7b26ff6f7a151", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html": [ + "f96b80beb4c79a2bda3cc06bc11d6aa5fb392ada", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html": [ + "96a195a1b25cf1985ccbc949431a28226f3ee684", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html": [ + "618cf409fffba7679abe515982695db4bb1a5f68", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html": [ + "3126e3b157670506442b0032de53e6d29e4c30f6", + "testharness" + ], + "bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html": [ + "e9b4e0205d5d30589356aea481e469a746ee419a", "testharness" ], "bluetooth/service/getCharacteristic/characteristic-found.https.html": [ - "1861b9bde75f02ed8d7375b97946149ff1c4bf0a", + "53479f342ef4aab9a24aaaa4580a63b5e6bcd30b", "testharness" ], "bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html": [ - "be1a9c7d2cbc633430c07fd13006893dfc5b952b", + "cb0ff8a9913b54ef624a38d367d84b1656b2a536", "testharness" ], "bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html": [ - "3f2cb4123c32d9866c44e3946ae9f54410b6cf7b", + "b0fe70ff6c0f473079469a21984baf59143d51e9", "testharness" ], "bluetooth/service/getCharacteristics/characteristics-found.https.html": [ - "06831d211fb838073c73ca8daa842a833232e01d", + "3012c0752b641e8c8de994fbdb13ff2d3f7ea559", "testharness" ], "bluetooth/service/getCharacteristics/characteristics-not-found.https.html": [ - "4b57c4ec7579f4a9e625fb6b8a7cda50678b8a41", + "694b69270065eb15a7129f9359a2b71d90ed9226", "testharness" ], "clear-site-data/navigation-insecure.html": [ @@ -407112,6 +410194,10 @@ "888d3e58d3d094b767067e16494803af432ee057", "testharness" ], + "content-security-policy/form-action/form-action-self-allowed-target-blank.html": [ + "1a4146819d11ae72ddfe1f1eb319aef992af7dda", + "testharness" + ], "content-security-policy/form-action/form-action-src-allowed.sub.html": [ "d0c2dcbb18201b72964f4da5f94b8c200fa02cad", "testharness" @@ -407696,6 +410782,26 @@ "cae24a6958eae450d1b21a47f4e13c407cac33be", "testharness" ], + "content-security-policy/prefetch-src/prefetch-allowed.html": [ + "8c88fefbffb6f5270b64cd8d81b405857a9c1123", + "testharness" + ], + "content-security-policy/prefetch-src/prefetch-blocked.html": [ + "0c228cef4140a4a9ca5e7704cf4356e13e8f844a", + "testharness" + ], + "content-security-policy/prefetch-src/prefetch-header-allowed.html": [ + "8b3e0d248e70c2d7587b0ff560f41a42b5bf92f4", + "testharness" + ], + "content-security-policy/prefetch-src/prefetch-header-allowed.html.headers": [ + "81464314b28226f895ba738b0496b66f60e43b91", + "support" + ], + "content-security-policy/prefetch-src/prefetch-header-blocked.html": [ + "55c94363465c252a3c24622a56020a8981e01f8e", + "testharness" + ], "content-security-policy/reporting/reporting-api-doesnt-send-reports-without-violation.https.sub.html": [ "7be3a72eb885841e8ccb674eeae3761f638adf2c", "testharness" @@ -408437,7 +411543,7 @@ "support" ], "content-security-policy/support/checkReport.sub.js": [ - "50b8b274a0a846ad527c2a369ba870def28e45e6", + "06b0c4f4a36a7bd4d323d1920a1a3e2caa9b52dc", "support" ], "content-security-policy/support/document-write-alert-fail.js": [ @@ -408512,12 +411618,28 @@ "5ccfe2ec548aa6e16649c319c8252e608777fe64", "support" ], + "content-security-policy/support/postmessage-pass-to-opener.html": [ + "52e8144873f4a3eb414e4aa029dff4b97ea1f3d6", + "support" + ], "content-security-policy/support/postmessage-pass.html": [ "ddfde964afded9ff5189c8c7554bcb2b1b1e5938", "support" ], + "content-security-policy/support/prefetch-helper.js": [ + "d64724d09dbd36c15c3cd097c1d1e65a44cfbf2a", + "support" + ], + "content-security-policy/support/prefetch-subresource.css": [ + "e89eb14c8cee8b2c8711a5db7bd3fe3849ba136c", + "support" + ], + "content-security-policy/support/prefetch-subresource.css.headers": [ + "f5821ebb091ec8effe575972e0ec086238b7beee", + "support" + ], "content-security-policy/support/report.py": [ - "8cd779a8017cba678a565475271b892e8ed53e58", + "1ad83e152ddc0e2e840862ba6ffc81d73f969725", "support" ], "content-security-policy/support/resource.py": [ @@ -446985,52 +450107,56 @@ "reftest" ], "css/CSS2/selectors/class-selector-001.xht": [ - "5648918099b8bb652d02b24475778f6c42747cca", + "f782cf42934491f229730c448f44c6bfe4fd25d0", "reftest" ], "css/CSS2/selectors/class-selector-002.xht": [ - "bf8e4920df3d0a43f5ec89c749234ef7c53e95a3", + "0847589d090e549aa9cb1353fb093ff9aac28334", "reftest" ], "css/CSS2/selectors/class-selector-003.xht": [ - "43ef23aec5bc549e172ae9ef7b48a43219618923", + "2e34022ef08f771c1d1da65e37b33745cc8bb285", "reftest" ], "css/CSS2/selectors/class-selector-004.xht": [ - "ac7dc5bb4e81a2f4cfe6e68c313eb3ed5481b4a6", + "1d6a32197d70f39d08afd1eebe34eff0c0564ddc", "reftest" ], "css/CSS2/selectors/class-selector-005.xht": [ - "3de44a047f43b471e90ed81fe5341dd4869923fa", + "31779ddbe67569ce616694ec32984f628e2fda4f", "reftest" ], "css/CSS2/selectors/class-selector-006.xht": [ - "2faa55faa4a6ef02f7f70ad691d4e122a245cb18", + "ad253e995f900cfa227bd5c60fc887a73a61b3d3", "reftest" ], "css/CSS2/selectors/class-selector-007.xht": [ - "0d2836c5d5cc65ef88865bac69a9935f82418d03", + "843e53a7f82dc6fae88bf491869256eef835742d", "reftest" ], "css/CSS2/selectors/class-selector-008.xht": [ - "428d5b4bcdfc689675e49b0a17795c2eca4da57e", + "a4eb1a6043f89e6dde3b6533a4b0fc23b6d83e6b", "reftest" ], "css/CSS2/selectors/class-selector-009.xht": [ - "6c422bc9f62331610cf53d2a309fbb4e24feea2d", - "visual" + "d1169fd2567d73afa2fb5e82823367849b34b685", + "reftest" ], "css/CSS2/selectors/class-selector-010.xht": [ - "e96a88870884d00155bf3a25f89982c86a068429", - "visual" + "0b95a99da54820d1686a68ab4c5b24b29e300f07", + "reftest" ], "css/CSS2/selectors/class-selector-011.xht": [ - "1a82978e5bd525e211e1885471264f9763530b74", - "visual" + "483a463cd02fdfc4fa1c13d465394804850962c5", + "reftest" + ], + "css/CSS2/selectors/class-selector-012-ref.html": [ + "d13cdb06ce469f4d9415baa7bf73ce49be781fc7", + "support" ], "css/CSS2/selectors/class-selector-012.xht": [ - "6321e3da4d9d19849566a30d82c03d5e5a3c8058", - "visual" + "1a2657f6a85ac5b36214d6017d95c706271c6419", + "reftest" ], "css/CSS2/selectors/combinator-001.xht": [ "1fe5f1760fc25f31656459b8112907295696988f", @@ -447148,17 +450274,25 @@ "9dbdc9af0cc734ba71d24babefc27789ff2dbfdb", "reftest" ], + "css/CSS2/selectors/first-child-selector-001-ref.html": [ + "6106c458659377bc6d1540b33bd13f92cd4e7859", + "support" + ], "css/CSS2/selectors/first-child-selector-001.xht": [ - "f0c0419341b9f2f2677bef20c864d63ca3d19f06", - "visual" + "73e0e50f7abc3b4016dac296b8efa80d132a195d", + "reftest" + ], + "css/CSS2/selectors/first-child-selector-002-ref.html": [ + "fb0430966695bc0004d8ce980f9c5a588ab4bc65", + "support" ], "css/CSS2/selectors/first-child-selector-002.xht": [ - "e8695799372216306711c0dd3f69e16e13e4c94d", - "visual" + "a5d4c1c651bec9fcc9b3f182050d8e4fd44a2067", + "reftest" ], "css/CSS2/selectors/first-child-selector-003.xht": [ - "d4f74f7eb20614c277950bb95741000116b2e048", - "visual" + "89d82c26002157c9bce5059480d360efcf3f6e76", + "reftest" ], "css/CSS2/selectors/first-letter-001-ref.xht": [ "a374dbdf5e818f625b3b24690ac52e2443edd330", @@ -450512,41 +453646,65 @@ "7887d7447a6e83fa4a5cf62291b2550963fd09cd", "reftest" ], + "css/CSS2/selectors/first-letter-selector-000-ref.html": [ + "41c6e1a118791457c4fa366e64236079a676d0e2", + "support" + ], "css/CSS2/selectors/first-letter-selector-000.xht": [ - "dde783ae8f5bad85a98aa2d0bba101c48d2c0403", - "visual" + "354f7772a494e4f83e0ff346ef6c63e9a9cfd2aa", + "reftest" + ], + "css/CSS2/selectors/first-letter-selector-001-ref.html": [ + "df974758e92b5745dc487c5a30901057848b79d7", + "support" ], "css/CSS2/selectors/first-letter-selector-001.xht": [ - "dddd83cf893fe823c11dbce07f81ca8a98cad61b", - "visual" + "8987f8880b711803af4deaac69c92d57afae2659", + "reftest" + ], + "css/CSS2/selectors/first-letter-selector-002-ref.html": [ + "7bb98994faf5d24bd7b4abe1f7e13d4a9d473b5a", + "support" ], "css/CSS2/selectors/first-letter-selector-002.xht": [ - "5e68f979ae695e92f5135a6b0cae0bfc4d784567", - "visual" + "74c5c78870d8a776067e35c6542e64523b7685c0", + "reftest" + ], + "css/CSS2/selectors/first-letter-selector-003-ref.html": [ + "addc58522c98706146deffc112a95be2b46992cf", + "support" ], "css/CSS2/selectors/first-letter-selector-003.xht": [ - "fcfa7cf2aeb2926f568e4cc7732ad9e7d2998d8b", - "visual" + "3417822d446e4d1e17a18b5041c44757b4cec7f8", + "reftest" ], "css/CSS2/selectors/first-letter-selector-004.xht": [ - "faa17b3bfdcdbe249f70e47b5a338ce6036d712e", - "visual" + "039d40f7b40087f4358ccca683fb178814a0dd99", + "reftest" + ], + "css/CSS2/selectors/first-letter-selector-005-ref.html": [ + "d6c181a3a7bbf713c83ff4884d95e2da392cfbd0", + "support" ], "css/CSS2/selectors/first-letter-selector-005.xht": [ - "403795228552dabcd7b74654fa8ab0a39aebe1e9", - "visual" + "0bb54184e7895cd38b8b4f35336b0b7f0fec0a84", + "reftest" ], "css/CSS2/selectors/first-letter-selector-006.xht": [ "bfd35783aee6b60dbe8c51a6359acc49a511b881", "visual" ], + "css/CSS2/selectors/first-letter-selector-007-ref.html": [ + "df406bb15f44fd0b5a976911c951a520dd03c6f2", + "support" + ], "css/CSS2/selectors/first-letter-selector-007.xht": [ - "6cfa147b1579217d5039526a1394fed7526d5385", - "visual" + "b3f74216dc8510efaebd0a6614b5d25a7de3e901", + "reftest" ], "css/CSS2/selectors/first-letter-selector-008.xht": [ - "fd859cc37299e2b805f2ef686131b055cbc38e91", - "visual" + "834b8447d99c8d7dec2a0be801121d5b1f263d0c", + "reftest" ], "css/CSS2/selectors/first-letter-selector-009.xht": [ "21656d6c13cef9d55e67e254577120c1f8375a98", @@ -450589,8 +453747,8 @@ "visual" ], "css/CSS2/selectors/first-letter-selector-019.xht": [ - "2b718ea24e68c7e83706961ef62f3b112dd1dd2a", - "visual" + "9da2d6dd4cfe451b00471ad6380edc7549b50407", + "reftest" ], "css/CSS2/selectors/first-letter-selector-020.xht": [ "86e79eacf0e5a2ed4cd7266200583208412f88bc", @@ -450753,7 +453911,7 @@ "reftest" ], "css/CSS2/selectors/first-line-pseudo-017.xht": [ - "21853a26f2632750f953c4089896e5b63e332f82", + "3cdb96056d0565ee1dd083e380176e02515d651b", "visual" ], "css/CSS2/selectors/first-line-pseudo-018.xht": [ @@ -450761,16 +453919,16 @@ "reftest" ], "css/CSS2/selectors/first-line-pseudo-019.xht": [ - "8c8b6c3ebd182d2e3f8b3706694681f6f4684844", - "visual" + "c7653bfb7b9bc546f041f64dd20c6021dfc39e9d", + "reftest" ], "css/CSS2/selectors/first-line-pseudo-020.xht": [ - "a11b4a2cbcd2f91ad8afe3f7dda40d35e69ac60d", - "visual" + "b51d47dc42a15b868d1a3ae3d2834515b8f2d85a", + "reftest" ], "css/CSS2/selectors/first-line-pseudo-021.xht": [ - "cc5386cda420799feab17dab36ba996646d81d82", - "visual" + "af4f8bd5e6574cd622eecb56dd5945d15bdf57a1", + "reftest" ], "css/CSS2/selectors/first-line-pseudo-README": [ "d135c53808c7b08a60dd28484545e37c7c2050a9", @@ -450809,8 +453967,8 @@ "visual" ], "css/CSS2/selectors/first-line-selector-010.xht": [ - "d6467bf0235b2ee9b183930125344f69aa37d00e", - "visual" + "3601bf26d3674ce0407a1c369823bc677a6c9886", + "reftest" ], "css/CSS2/selectors/first-line-selector-011.xht": [ "5580babec217ff169ab34fb93c6ef579165eed98", @@ -450889,8 +454047,8 @@ "reftest" ], "css/CSS2/selectors/id-selector-002.xht": [ - "680910791cac641da5e1cad7c54d3c92036166ec", - "visual" + "97d323171ef3a0c571b6800c9db3d119cfab1506", + "reftest" ], "css/CSS2/selectors/id-selector-004.xht": [ "49082e851cfe003e8e501c5a51c76f88a0b14e1e", @@ -450920,21 +454078,25 @@ "b60d14eb9f201effc13b77446cd402322b8c51d2", "reftest" ], + "css/CSS2/selectors/lang-selector-004-ref.html": [ + "2f01fcfb8e87774c8862e0f69eadcd8002ff6834", + "support" + ], "css/CSS2/selectors/lang-selector-004.xht": [ - "5dd95963da95ae8ec1ede71f317f0fb062bc98b0", - "visual" + "4c288f74876a197f8e1942f9204e84264f5a391f", + "reftest" ], "css/CSS2/selectors/lang-selector-005.xht": [ - "131ec3a98ac25150fada2724c87ce463297eb682", - "visual" + "4ba7c718773b17a6b64b8b4464eea855622184c1", + "reftest" ], "css/CSS2/selectors/lang-selector-005.xht.headers": [ "9d32780bb7dcc87f872222e49ca4aed4b437f5f4", "support" ], "css/CSS2/selectors/lang-selector-006.xht": [ - "80553c10655b0efa5c1d2bceffcace36e27a70e2", - "visual" + "1e374a6c24b7c2c398ebb296c2e502103d81ed29", + "reftest" ], "css/CSS2/selectors/link-visited-selector-001.xht": [ "f26ff1d0a8e15ac910bfa3e6e056e9804c4e125e", @@ -450973,16 +454135,20 @@ "manual" ], "css/CSS2/selectors/pseudo-006.xht": [ - "b5cd0c152a5ae4f5668523c7b6090cc772bc08ba", - "visual" + "714289f41e5984c9aebe059ebd502020064329d0", + "reftest" ], "css/CSS2/selectors/pseudo-007.xht": [ - "a45c61157960ee0068a2976d769ce869a1d1d5f7", - "visual" + "644d39c5e4c8a0d3acadcf4e247edd3d40bcb9bb", + "reftest" + ], + "css/CSS2/selectors/pseudo-008-ref.html": [ + "e03231cfc884e858dd3bde9a7750cc9c4ba6e261", + "support" ], "css/CSS2/selectors/pseudo-008.xht": [ - "e7f76c8ff2cbc3784f3d54e4779166a80daf063f", - "visual" + "a4aea999241a8822f383da0216445889acb9a146", + "reftest" ], "css/CSS2/selectors/pseudo-009.xht": [ "f4a15140bd17de62eccdc2d4bb1e55885f878077", @@ -451521,15 +454687,15 @@ "reftest" ], "css/CSS2/syntax/at-charset-004.xht": [ - "abf22e6c2cb3a62a8cf0a769433944fe767645d6", + "4be54f24add87fa928e2a626b01bb386834464ef", "reftest" ], "css/CSS2/syntax/at-charset-005.xht": [ - "50e0b983c5b9da991749aca73b813f88ed66cecc", + "0d8fc695d9eec9ce8e7a2eca8a181781c4b8d5e2", "reftest" ], "css/CSS2/syntax/at-charset-006.xht": [ - "91255df72b78144f58619440c084c81f34096602", + "ccb61b4f7657b866fc73096c3d03edbd39a114a6", "reftest" ], "css/CSS2/syntax/at-charset-007.xht": [ @@ -452121,7 +455287,7 @@ "reftest" ], "css/CSS2/syntax/comments-005.xht": [ - "68cac0bb97b4d05b56fae95131ead1723f303418", + "43df4d6db913c7044fd14f99235ed263a19894e5", "reftest" ], "css/CSS2/syntax/comments-006.xht": [ @@ -452481,7 +455647,7 @@ "support" ], "css/CSS2/syntax/ident-003.xht": [ - "c60d9157d642240dba18739f3304b86a9acb0a09", + "5e1b8bfc9103962c40180bf61e72f0fab9568c8d", "reftest" ], "css/CSS2/syntax/ident-004.xht": [ @@ -452552,10 +455718,6 @@ "52344643762a293f247235ca1860a3d82b134009", "reftest" ], - "css/CSS2/syntax/ident-020.xht": [ - "dbc6a7c3921e6b50bc0a839ad5ba5c792cc70700", - "reftest" - ], "css/CSS2/syntax/ignored-rules-001.xht": [ "07506eee3478a63ee68550c2d9a4305b49c3cbed", "reftest" @@ -452760,10 +455922,6 @@ "c51a03a807743f59e3027371ccfbd8e80235a485", "support" ], - "css/CSS2/syntax/support/.htaccess": [ - "7f6c0bd932e4c213e919689e54d80a3035151ee0", - "support" - ], "css/CSS2/syntax/support/1x1-green.png": [ "51e7b6974a09eda6cb31337717c5eaeb9c44b443", "support" @@ -452808,24 +455966,24 @@ "bf760baf57311ad536ba734f29e7e89bf7b26131", "support" ], + "css/CSS2/syntax/support/at-charset-001.css.headers": [ + "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509", + "support" + ], "css/CSS2/syntax/support/at-charset-002.css": [ "076ea5f1245eadb58678b486b40dec79ebbe7d15", "support" ], + "css/CSS2/syntax/support/at-charset-002.css.headers": [ + "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509", + "support" + ], "css/CSS2/syntax/support/at-charset-003.css": [ "a0fb89bd89da4327c1f4e0b84f76b6e598b556da", "support" ], - "css/CSS2/syntax/support/at-charset-004.css": [ - "a0fb89bd89da4327c1f4e0b84f76b6e598b556da", - "support" - ], - "css/CSS2/syntax/support/at-charset-005.css": [ - "a0fb89bd89da4327c1f4e0b84f76b6e598b556da", - "support" - ], - "css/CSS2/syntax/support/at-charset-006.css": [ - "a0fb89bd89da4327c1f4e0b84f76b6e598b556da", + "css/CSS2/syntax/support/at-charset-003.css.headers": [ + "8c0fa1a7ffc1f2a3a7d3b97d8080a8fa6ed43509", "support" ], "css/CSS2/syntax/support/at-charset-007.css": [ @@ -453276,6 +456434,10 @@ "250e49627027fb261bc023cad47a0ba5bdfcf188", "support" ], + "css/CSS2/syntax/support/plaintext.css.headers": [ + "4abca84cbd566bb501053408ca983b17b5eae889", + "support" + ], "css/CSS2/syntax/support/ring.png": [ "11dd9e78a68b2fc5eb69c401920b43070751a569", "support" @@ -455524,69 +458686,93 @@ "4c8d8123470efe103c3041d1b07a9f4cc9fde6f1", "visual" ], + "css/CSS2/tables/caption-side-applies-to-001-ref.html": [ + "c7c39e671a33b41746184d0754f3f191b4c6d309", + "support" + ], "css/CSS2/tables/caption-side-applies-to-001.xht": [ - "a33828fb6ef755cbd122adf8c36924297367a18e", - "visual" + "8cfb1967c9f9f00ffc1ad0e4487ccc4f3d4d1eed", + "reftest" + ], + "css/CSS2/tables/caption-side-applies-to-002-ref.html": [ + "9dc6fee0ede5482fc998e2b97795442853ed19a8", + "support" ], "css/CSS2/tables/caption-side-applies-to-002.xht": [ - "60a1856140f8fa5cda9da3e00d26ac7965d3d049", - "visual" + "a567cb5206e2927fcdf84074c4ab01066a26ee44", + "reftest" + ], + "css/CSS2/tables/caption-side-applies-to-003-ref.html": [ + "31ba9c2a4e8006a3e056a0f1afb8575f925568cc", + "support" ], "css/CSS2/tables/caption-side-applies-to-003.xht": [ - "c760b23d4d23bacc858484f7281901b788f4eb46", - "visual" + "e38f584d9f50b6c63b5aba96d23985e4835361be", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-005.xht": [ - "5e4431bc587669fba72de3f6edebe61686a6ef88", - "visual" + "83204fa51853aa755b7b2a0281e013d66712f290", + "reftest" + ], + "css/CSS2/tables/caption-side-applies-to-006-ref.html": [ + "5c2277f81ef8b2ddf6bc7bd7c672a71e3eb8e198", + "support" ], "css/CSS2/tables/caption-side-applies-to-006.xht": [ - "841a1d7586697e71d86899a77195db78f9a4400d", - "visual" + "b7b930de8476845990e91763af72a02d7d2e5f1f", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-007.xht": [ - "d8a78135f717b130139affde9a9f0b25c0d7d499", - "visual" + "0afcb39831c07ae9f2a2a7042fc9c1028d508a05", + "reftest" + ], + "css/CSS2/tables/caption-side-applies-to-008-ref.html": [ + "fc5b655d43de07bf86f77884d3f53378ad487d77", + "support" ], "css/CSS2/tables/caption-side-applies-to-008.xht": [ - "1b76e5c2f19ead45b1fb99cd69e79099b371e0f0", - "visual" + "285b2351f9d1dc3abfbea064e9cae7fd7ecf9147", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-009.xht": [ - "7cfabbf9a7e8619d49c079c9b7bf1cebf880705e", - "visual" + "c738519e99fe530224c794525dfa95d7ab324716", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-010.xht": [ - "92c3634c8b2a29dec357b324e358cdc024d2f4a5", - "visual" + "ac4615f06a1b4b3659a9893893fdb7d6b2ed82df", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-011.xht": [ - "789d8b815d7c8cb1627e141c5032a90fc40191cf", - "visual" + "5628655fd66d4975060558e1748b0f3e4b778e42", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-012.xht": [ - "06dbab8a12fbd4b2049f2676eee948842a34970b", - "visual" + "5d0d8a6a96ea0ecd4cb1534f48562cd6f9b6e3d7", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-013.xht": [ - "6c2ce04226c1bb6d8b187716ea1df86d9a89d569", - "visual" + "5c420a560262f1f64713fa6890a4f6ca3661bfe8", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-014.xht": [ - "983fd4da6c9eadabe93420bb049e552006d5ef52", - "visual" + "9d756193fe6044cc0af10988ee8018200b1f6d6a", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-015.xht": [ - "18f6665adbaf40ac0c8b09ab39da281dc438d3f7", - "visual" + "a11fcd0eced488fe19af503cd67c39e3cf4a6295", + "reftest" ], "css/CSS2/tables/caption-side-applies-to-016.xht": [ "6852ac3b59e6a26fbe9670378986b1c7a28e9df2", "reftest" ], + "css/CSS2/tables/caption-side-applies-to-017-ref.html": [ + "6ac039c92d9dca1c5589e6043cf3d8664436823c", + "support" + ], "css/CSS2/tables/caption-side-applies-to-017.xht": [ - "2cb060bbacb37e1b8a30894c76a878f0eac7b61d", - "visual" + "b6b5c2fa8a4d21840ae52a9c1f5f62378c303993", + "reftest" ], "css/CSS2/tables/caption-side-example-001.xht": [ "79311fa5fe281463fba7038c3a22f635a6d511a1", @@ -455608,21 +458794,29 @@ "45732277d51f78c96aaccb811a8d0b80b63bbf20", "visual" ], + "css/CSS2/tables/collapsing-border-model-001-ref.html": [ + "307324990ad6d9ca2381fe54aae8b3a9a4ba84af", + "support" + ], "css/CSS2/tables/collapsing-border-model-001.xht": [ - "3cdcfc78858fa0beb9fe6ef00d4261d821f1dd48", - "visual" + "aebaa741e96a58b885f4e3c37df77d8c1ed1bac7", + "reftest" ], "css/CSS2/tables/collapsing-border-model-002.xht": [ "90f06ee14259e475b5a644acbd31f8e6b52d8255", "visual" ], + "css/CSS2/tables/collapsing-border-model-003-ref.html": [ + "a3800cdbf2321ea23fee866753c96e401386560f", + "support" + ], "css/CSS2/tables/collapsing-border-model-003.xht": [ - "a14eb152cfd413fbfae9693111bd4b36dd0ac8aa", - "visual" + "5567414471f502b550d4c81bfb7b521d154359a3", + "reftest" ], "css/CSS2/tables/collapsing-border-model-004.xht": [ - "5668da0f3f1115b41b9747dbb8dd95640f315e4a", - "visual" + "5942b3adbbb03cc2e3060e0baf13f6853bcc9d34", + "reftest" ], "css/CSS2/tables/collapsing-border-model-005.xht": [ "97306577aad589918d1b1febb83a609300ad3f18", @@ -455633,16 +458827,16 @@ "visual" ], "css/CSS2/tables/collapsing-border-model-007.xht": [ - "137fa735c948f369e502c20ec762df7a430e3f72", - "visual" + "e38919cd16785ab2448678b3c25d20a104dcb6cb", + "reftest" ], "css/CSS2/tables/collapsing-border-model-008.xht": [ - "571db2a677a174e10e668821c7c10ca102ff6d51", - "visual" + "4a7575c04bde514dcf0c98795a1d9ec68617a810", + "reftest" ], "css/CSS2/tables/collapsing-border-model-009.xht": [ - "d08d7959e15c817dca83f4bf85acfad643861d8b", - "visual" + "eca3fb31b72cfcbc79d74a54be207afafcf2d57d", + "reftest" ], "css/CSS2/tables/collapsing-border-model-010a.xht": [ "e439734ebbe198bbf77066db3275a58b1be686b3", @@ -456525,12 +459719,12 @@ "support" ], "css/CSS2/tables/row-visibility-001.xht": [ - "5f8962c6026581ddd659cb96617f79330ccae7ed", - "visual" + "bf888162e2f031ba7fc148fa2620866edf024f15", + "reftest" ], "css/CSS2/tables/row-visibility-002.xht": [ - "2496e438c6d776a3b8332bfc911f14d00aac53de", - "visual" + "ce966c71fd29af94b2bab86c2a9faf8f2d630201", + "reftest" ], "css/CSS2/tables/row-visibility-003.xht": [ "14f51e20306bcb7f01872f91f808cee5abe834b1", @@ -457869,8 +461063,8 @@ "visual" ], "css/CSS2/tables/table-cell-001.xht": [ - "55b32dcd32789ee78a131f5a8db78b5c7faeb807", - "visual" + "4c60202579bc55ba74b03219d6fd6ebf92c9ed3d", + "reftest" ], "css/CSS2/tables/table-cell-002.xht": [ "21ecd5040224235a46864e54acc2f70627672bd1", @@ -473008,6 +476202,18 @@ "056b3597f3555c803c74a8f6277a06626efd12ea", "reftest" ], + "css/css-content/element-replacement-ref.html": [ + "f1ad3fca133b1b671e45ae1307fbe9454c40e3ec", + "support" + ], + "css/css-content/element-replacement.html": [ + "f491ddf2b3062ea2f9b616c968c88b9cc95f22eb", + "reftest" + ], + "css/css-content/resources/rect.svg": [ + "e0c37ea653aee58f962133219edc4484a734c6e0", + "support" + ], "css/css-counter-styles/OWNERS": [ "820cad495f069d1badb3a727b9a2514269c6008e", "support" @@ -473932,6 +477138,10 @@ "073573175b4ef24f0ba26ae7456e161f775a7d40", "reftest" ], + "css/css-display/display-contents-text-inherit-002.html": [ + "4ab5c9c2b6c5a0c5e148e550ef16662e6b3575b0", + "reftest" + ], "css/css-display/display-contents-text-inherit-ref.html": [ "b248e78a0255b923c4ed4aa269e65f53b6386bf4", "support" @@ -478557,19 +481767,19 @@ "reftest" ], "css/css-fonts/font-variant-alternates-01-ref.html": [ - "fee60b0c399502744f3188df83c86f19d3fc6efc", + "2d7df070714d9efa07d70e434666ff4f780b55be", "support" ], "css/css-fonts/font-variant-alternates-01.html": [ - "e2360e9b1465384a6f29476838508af3b6ec71ab", + "445ff998bf052c1f04ab8e33002eedf391cb835d", "reftest" ], "css/css-fonts/font-variant-alternates-02-ref.html": [ - "7c8dd8a6f9a3d42fe04a90bef6c843351793539e", + "712b40e7dae774153502defd5206d4da8d592ccc", "support" ], "css/css-fonts/font-variant-alternates-02.html": [ - "7dce91351ff56b97ce966b102f6f00d0574fb63a", + "e9d74f02812d6b947fd88ffe91838cdae65df4cb", "reftest" ], "css/css-fonts/font-variant-alternates-03-ref.html": [ @@ -478577,7 +481787,7 @@ "support" ], "css/css-fonts/font-variant-alternates-03.html": [ - "a26b895506ba1d3f29b2343bb635867bc099f386", + "e4ab952f4a9c5f5421b3237f589c08c8f6c04509", "reftest" ], "css/css-fonts/font-variant-alternates-04-ref.html": [ @@ -478585,15 +481795,15 @@ "support" ], "css/css-fonts/font-variant-alternates-04.html": [ - "157455c29dc696127ce5c3b45b581c5bd03b6909", + "09306fe9ff6d99d7226811c84702fe451b680e0a", "reftest" ], "css/css-fonts/font-variant-alternates-05-ref.html": [ - "9a2081e861f551b8b22ede7686ea8e6636f8e579", + "d426d7ac09177d75146fbb04cf13e4b2e7c6326a", "support" ], "css/css-fonts/font-variant-alternates-05.html": [ - "3c86787c1e81bc8db802428f5522bc7b5f15b8f9", + "a40b09abdd8a3f31100184f9f13b1c65d93d6abc", "reftest" ], "css/css-fonts/font-variant-alternates-06-ref.html": [ @@ -478601,7 +481811,7 @@ "support" ], "css/css-fonts/font-variant-alternates-06.html": [ - "ae40f2db209b804d7589ef03b69557e71995b9ae", + "eb87b2a0af758871cc856a9ec2aa4e976716c293", "reftest" ], "css/css-fonts/font-variant-alternates-07-ref.html": [ @@ -478609,7 +481819,7 @@ "support" ], "css/css-fonts/font-variant-alternates-07.html": [ - "8b44a336d7f7f6b69e401c86733e978b2bb52cfc", + "caf337f548657c4e188aa477ccec4b8149d092bf", "reftest" ], "css/css-fonts/font-variant-alternates-08-ref.html": [ @@ -478617,7 +481827,7 @@ "support" ], "css/css-fonts/font-variant-alternates-08.html": [ - "e67a8cc7e4b3de219f3862329f8b916fac7e8b90", + "f9fc6c2252064c94ba3e6120b3646faa0bb590f7", "reftest" ], "css/css-fonts/font-variant-alternates-09-ref.html": [ @@ -478625,7 +481835,7 @@ "support" ], "css/css-fonts/font-variant-alternates-09.html": [ - "5c00521c873d41c049acf23a9b8fa178def49636", + "75768372f5747e12bf569e40c1474f3341479552", "reftest" ], "css/css-fonts/font-variant-alternates-10-ref.html": [ @@ -478633,7 +481843,7 @@ "support" ], "css/css-fonts/font-variant-alternates-10.html": [ - "0cd86b6749badec6551407c069b211f262e8aec1", + "36ec29992f8a3de6a3679c8b89410c7c4fef6e41", "reftest" ], "css/css-fonts/font-variant-alternates-11-ref.html": [ @@ -478641,7 +481851,7 @@ "support" ], "css/css-fonts/font-variant-alternates-11.html": [ - "7d926b680fef01676946fb6dc16511f8a3cc1b6b", + "70b0db84986c8f982d0cc5fe08d997f7757924bc", "reftest" ], "css/css-fonts/font-variant-alternates-12-ref.html": [ @@ -478649,7 +481859,7 @@ "support" ], "css/css-fonts/font-variant-alternates-12.html": [ - "f180da31bb437d71b81fa2fe91a7ba46ee8f3060", + "c173b400c5c247aa13d400efe7a0b7d0440a498c", "reftest" ], "css/css-fonts/font-variant-alternates-13-ref.html": [ @@ -478657,7 +481867,7 @@ "support" ], "css/css-fonts/font-variant-alternates-13.html": [ - "cc84ecb5ca83bba5b95d6fab9761edd3985f297e", + "47ed224bd5c03bd2610521defe634776d25ae27f", "reftest" ], "css/css-fonts/font-variant-alternates-14-ref.html": [ @@ -478665,7 +481875,7 @@ "support" ], "css/css-fonts/font-variant-alternates-14.html": [ - "2f76c2d8eea0fa73be08ec1baf09c8603c410c0a", + "e5d952170c8e4e4ee507550f20e06f4f02358aa7", "reftest" ], "css/css-fonts/font-variant-alternates-15-ref.html": [ @@ -478673,7 +481883,7 @@ "support" ], "css/css-fonts/font-variant-alternates-15.html": [ - "b52acb2a3c7ea8b3a94efd4fec55651c76b63531", + "9ff98fb9ba0a0d8f7dd7eeba46f9fff0cded50d5", "reftest" ], "css/css-fonts/font-variant-alternates-16-ref.html": [ @@ -478681,7 +481891,7 @@ "support" ], "css/css-fonts/font-variant-alternates-16.html": [ - "37b2e733219908a78b72d5ccec71e3fd82d60d6e", + "438440aa6dcc401f66d6c9f271221b377e08f12f", "reftest" ], "css/css-fonts/font-variant-alternates-17-ref.html": [ @@ -478689,7 +481899,7 @@ "support" ], "css/css-fonts/font-variant-alternates-17.html": [ - "b42d28fb6df88c1f955080fedf7c60298c4caa64", + "9c7b3567045c4bce12d693df687120534e066c56", "reftest" ], "css/css-fonts/font-variant-alternates-18-ref.html": [ @@ -478697,7 +481907,7 @@ "support" ], "css/css-fonts/font-variant-alternates-18.html": [ - "de45acb63b567c5318b014ebab07098ca8c317b6", + "b85b14eaf76f9c1b89a015b8a5aea9382f61e332", "reftest" ], "css/css-fonts/font-variant-alternates-parsing.html": [ @@ -485753,147 +488963,147 @@ "reftest" ], "css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [ - "4d7695956abc3d5589e22ae6e2a8fb687a631698", + "6a98b19084f09099a83cd1e150dcc99e58967596", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-002.html": [ - "126a23ef4ad9fafe013f423de81ecad914dfc354", + "de9c39a8cf8a34cf3fabcc54250fce96f0da97f2", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-003.html": [ - "322cd468bd9e554b7152549b6a59f577ddc1f522", + "f900fe7f668b23d0263b8f6c0c75aa7e3cbd94db", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-004.html": [ - "5270072349ede83f9c4819d897205fdb0561675a", + "9bd03a88898d05c43c37746b14faeba4ec76fee1", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-005.html": [ - "9175d7ba9eab2525278bccc19ce67580629e1394", + "0cccd51996f9802335781decffff868a4952f7b1", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-006.html": [ - "a0b444c6bc8050b957fcf2dc0f01e9d9a2745b7f", + "eb27b625fe24bfa2c82782f135c5003b7626f55b", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-007.html": [ - "1a7924d186eaf96c34ef327b53eaad9dc232e59a", + "4ece5545866128327b8b5d4dd9375c65cab6def5", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-008.html": [ - "dc9642f2940dbd5cfd063c6618f3e582bf6f13b2", + "80962fbd4435119db662903b0a201286e9bf91cf", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-009.html": [ - "2b911d9a088e2498916f71d3fae6690ec9e7ae30", + "384f6b6b006da58c897b896c4f474b90e6dade1e", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-010.html": [ - "26a41689f987213e209f2e7a334d546c47c8120b", + "cc2954da9e8a924770e0802c132a8d5d05ff6a67", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-011.html": [ - "1039c62b02bf29117616070d7c69fa702be2a0d4", + "e1befaf27f4defef626b8c423f3a82f661160655", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-012.html": [ - "2f2f560cead46e8d4dc6a0199f34cbecd94a2545", + "84eb6de9bb892de373129df60f10bdf0cf9b59d8", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-013.html": [ - "24268a6bd064461d595f27fd19449e667767a153", + "f527bc3b0669b048268a8c59274150f3adeabd01", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-014.html": [ - "56936df344200f196bfad7149b04269b307c89e5", + "eee651407a75b74ba32d60312a347bef95a6501f", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-015.html": [ - "c0579a49665ae2b8125dfeb5d7bd1514cab24bbf", + "cccb3afaab2bb61b26229a5bb5713348c9d4a519", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-016.html": [ - "2aaf17aa7217d6eea98a6f39cc5f22676ff83514", + "661f7bbd9c211bb29f14bf9124676e40e44d21cd", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-017.html": [ - "bf62dfb709848b87734a19c033a4c74e9c868aff", + "c5aeba430655c90997b790b922ba7aaed087211b", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-018.html": [ - "2e7bb50061ee0af312a3249df5ff05313f61c80e", + "89abc2805c57b1c79b65288efbf82fb9f98fc31a", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-019.html": [ - "ed2833b2bd7b74425a7daa3f0f58394286dd1110", + "dd94f62a1bcf515c8667466ef2a4680089c9bef5", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-020.html": [ - "ae305d831dd2b461bfd8f2ca47c5e5d1d302485f", + "5e04f379860ecd2b7c6870d10444e0e022d30b9d", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-021.html": [ - "f649e11557664937aeb2a465d00563642afb7884", + "a3f885dd5ac3a87bf272d17fc996c9aba32e175a", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-022.html": [ - "d2e1f4a999a7377421ea4b9e8cb4b4ae5e320bbd", + "7b64b2643498ea16f3718f1f85de0c59374fed47", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-023.html": [ - "a223e17741b3a0ef6cd22e54466fc02fb4b77b8e", + "2cac611759cb41fe10ef080b459a23b93bfeb5d9", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-024.html": [ - "d5c7d56e74ab8f6b6986e272ef998dd0212abcc9", + "b379721b172702289188baf3bc86b1cc5d5e3793", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-025.html": [ - "725f50b1f9d3be9fb368ae613eae9377baf8d43f", + "3437429a0baacfc0770a28aee7e7c5922b83968a", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-026.html": [ - "a6370fe0c3e9f987f9a0766c93165ecefec85132", + "3b9c36585804926a99157ef5f1707b54318da971", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-027.html": [ - "f82bae8883376515e7faaa7f0ed667576f5fad37", + "e51d98a565264448dd2c39ac556bba8073236ab0", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-028.html": [ - "396f4f823eb6e2115a9d5ce390fbdb529e799063", + "4c5c94ae2ac166374725a53604f0b50a9b09fa34", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-029.html": [ - "411ed5d2577ac0c2839bbb829efc170ba7136c19", + "2c99765c101af32aff4ef16b615930a650db52f2", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-030.html": [ - "1d0ac6855db55908602d543660d9ae14a18edf1f", + "6c3e1b09a0a8e1268a3e2c513b7959972fee1632", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-031.html": [ - "97b2b7231b6f7f812c3ee8ff89317281b1ecfa6e", + "627a1e421cbcc93dbf5b5beb028482495aa96ea9", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-032.html": [ - "4c55498e0a14acdded1563a4890b18da9b464201", + "a3b9af60a41c8baa60f5ec891a56d3c2e075d6c1", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-033.html": [ - "222a1a659ae09f78641551a369a2bf4fc01f86eb", + "ab9eda7db315fdd67240c93d5544fe3230101509", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-034.html": [ - "f0ea292f1996f5635e2f8c382bb14baa71c1840d", + "1f506f17eeaf10ca4728c0b3b40ec825e85a4438", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-035.html": [ - "029a04b0ba3297c3b357454f2b5cba743dfcb90a", + "2bfd66cdd546bf0151c1aaa800903bf974a10b75", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-036.html": [ - "201ebb99796766165de76c4d762214102157129d", + "d9ab0bc1deb8a9a8b29c80b446ee9f7cb720d214", "testharness" ], "css/css-grid/alignment/grid-column-axis-alignment-positioned-items-001.html": [ @@ -486624,6 +489834,10 @@ "dc9d15b18538afb38790de51e31095ce9f93e0a9", "reftest" ], + "css/css-grid/alignment/support/style-change.js": [ + "021db5d6c4e974ab0c8d7e59666a785db03942c4", + "support" + ], "css/css-grid/grid-definition/fr-unit-with-percentage.html": [ "0dc90f8d107fe96a35cd837a224d4a28dd971f92", "reftest" @@ -487332,10 +490546,6 @@ "6bb300b8baebf700481ea162fb7b41913fcca29c", "support" ], - "css/css-grid/support/style-change.js": [ - "a92e1d3f5be007d10fdf432bb198f87b00bdc35a", - "support" - ], "css/css-grid/test-plan/index.html": [ "e633dc7584fbc7bfe99177aa5dd9fbd107a2d3f5", "support" @@ -488508,6 +491718,34 @@ "8853e79d6e9c3d262ebb38c569e97932f3b27cd4", "support" ], + "css/css-masking/parsing/clip-invalid.html": [ + "fad5d0257532a5c1572d41f83d045c92a6fe0d61", + "testharness" + ], + "css/css-masking/parsing/clip-path-invalid.html": [ + "791ea3c564f629ed8d679499f5483e122ad9f602", + "testharness" + ], + "css/css-masking/parsing/clip-path-valid.html": [ + "4ac5715cdba374d3b702157ffce4a0a45009995a", + "testharness" + ], + "css/css-masking/parsing/clip-rule-invalid.html": [ + "5a7673c56ae29a10133ed1395ae1e61ee2a7dd81", + "testharness" + ], + "css/css-masking/parsing/clip-rule-valid.html": [ + "9236b88f0ac03139210fe6f5fd5f9fa08a613c09", + "testharness" + ], + "css/css-masking/parsing/clip-valid.html": [ + "e7805a38a0634d760bdc31e4c331da1a56582bc9", + "testharness" + ], + "css/css-masking/parsing/resources/parsing-testcommon.js": [ + "b5cc6f7c0c7729328bbbc45ec2a8147dae8d8668", + "support" + ], "css/css-masking/test-mask-ref.html": [ "6307ecf282b941dbe1475bdb603208f4140b2f26", "support" @@ -488953,11 +492191,11 @@ "reftest" ], "css/css-multicol/multicol-nested-column-rule-001-ref.xht": [ - "d53e71b2a82e6d519fa7fffcc62ba832717cd7a5", + "ae91439c53426782f29ed92e1f75da836d978ba5", "support" ], "css/css-multicol/multicol-nested-column-rule-001.xht": [ - "7157a7f0a6dc740d9a12561118c2aa71923511c7", + "0dfe07fddd84a8eab8b0ed71e48cd40ab7117e7e", "reftest" ], "css/css-multicol/multicol-nested-margin-001-ref.xht": [ @@ -490165,11 +493403,11 @@ "reftest" ], "css/css-paint-api/paint2d-image-ref.html": [ - "c71e0b960177b13614d2c11392c94ea155927ebe", + "d4abe5cfd1d2416da7e390d28bc359feac91a2e7", "support" ], "css/css-paint-api/paint2d-image.https.html": [ - "5df17bc61598b6687091b3da4b626ed0938cd89e", + "df6ce0e992726401b8b3eec1ee72029c2f113316", "reftest" ], "css/css-paint-api/paint2d-paths-ref.html": [ @@ -490304,6 +493542,10 @@ "4eee3e45f32779df4464132fa43717a3afc135b2", "reftest" ], + "css/css-paint-api/resources/html5.png": [ + "0b71ad4f2c95d41419082c2f1a2fc8370b14ebd2", + "support" + ], "css/css-paint-api/style-background-image-ref.html": [ "0985e20363c8aac715c534ad59f1209889244fb0", "support" @@ -492952,6 +496194,10 @@ "7e780a2c98d134a62aeea85f8695c39bef1d63b5", "reftest" ], + "css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [ + "6779dddd0b63ddfcecf33584fd8196b43d698f5a", + "reftest" + ], "css/css-scoping/css-scoping-shadow-root-hides-children.html": [ "ecf7c1427ea8556476506f618eef7ad25e11a2bf", "reftest" @@ -493100,6 +496346,34 @@ "b0841c5c1e328846aaa95376ae62178173cdf5a5", "testharness" ], + "css/css-shapes/parsing/resources/parsing-testcommon.js": [ + "b5cc6f7c0c7729328bbbc45ec2a8147dae8d8668", + "support" + ], + "css/css-shapes/parsing/shape-image-threshold-invalid.html": [ + "72fb606c460752043db729e7157483fd01f7ce0b", + "testharness" + ], + "css/css-shapes/parsing/shape-image-threshold-valid.html": [ + "040363d13bbed463d1e5e02fea84566da39853cb", + "testharness" + ], + "css/css-shapes/parsing/shape-margin-invalid.html": [ + "678fe576221b82b6a85927de3337cef02f85da8d", + "testharness" + ], + "css/css-shapes/parsing/shape-margin-valid.html": [ + "bf937f106b1d6e5b15abce0971da8773777a0ac0", + "testharness" + ], + "css/css-shapes/parsing/shape-outside-invalid.html": [ + "024c4a2789493964b162397bc994b699274e1423", + "testharness" + ], + "css/css-shapes/parsing/shape-outside-valid.html": [ + "5b90c13064455cff16f5a4d54a6343c76775f3cc", + "testharness" + ], "css/css-shapes/shape-outside-invalid-001.html": [ "550e970032ac78ada40b7b8b3e7159c4160d60da", "testharness" @@ -507260,10 +510534,42 @@ "4bcfaa7a22cbe8fa2ca234583403d26bd520474c", "testharness" ], + "css/css-typed-om/resources/1x1-green.png": [ + "51e7b6974a09eda6cb31337717c5eaeb9c44b443", + "support" + ], + "css/css-typed-om/resources/testhelper.js": [ + "08f2394f7dfa11460d1e67b8d0c6e556620bf65a", + "support" + ], "css/css-typed-om/styleMap-update-function.html": [ "a1dee75d914b68753af742ce8e6dbbac0397a9a6", "testharness" ], + "css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html": [ + "162ce70613e78bb007ea24ea525ec78ef17cd3bd", + "testharness" + ], + "css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html": [ + "65c2418988148bf9662f5f502bb4650cc6105a85", + "testharness" + ], + "css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html": [ + "a52fdeadf8f0663e5e8f455e60a233da816e05ca", + "testharness" + ], + "css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html": [ + "4bc704fca50d3a114fe0fde76b6030516662d43a", + "visual" + ], + "css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html": [ + "9334ee684f4a2897f6a191d9217e63af5630cc0d", + "testharness" + ], + "css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html": [ + "3a5ea9eef361accde1e0166d9defa186bae5c602", + "testharness" + ], "css/css-typed-om/stylevalue-objects/interface.html": [ "5c9086db5b7f3a9d6e3109f1ce47385ad345f474", "testharness" @@ -507284,10 +510590,150 @@ "2b6761e72a7867218d2f9d9f780569b342c1d89c", "testharness" ], + "css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html": [ + "004752ad2e9682845697d668af158679031f65dc", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html": [ + "9bcb4ff6461793d61925d173da7650230e3b4555", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssPositionValue.html": [ + "155be052f2810afb0560b72e7c223293c02e61a8", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html": [ + "d255d5d406d5620d4ed1cdd2979c7dc720475399", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html": [ + "022aec2fac9ccdda36adf97bd47aa407e2825f6e", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html": [ + "7ba0e1c9db3799bad925036de1da7c51fd102610", + "testharness" + ], + "css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html": [ + "7b7fa7d06c5dcf614864bab0adef083359278ab6", + "testharness" + ], "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-interface.html": [ "53394d04d67fa9526240c2c0af8b71f54a60a0c3", "testharness" ], + "css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html": [ + "63600cc74e62ecbaf98bf786de17362764ec947e", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html": [ + "236520d8ac6199066d1e082b9860f2381ff61be6", + "testharness" + ], + "css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html": [ + "dc32e826e1f840c99f3b4bad4f03bd0f9573ce4e", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html": [ + "f217ed58d7f56ea588aa942fddfec0322d557283", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/get.tentative.html": [ + "caf3a345b03a2b929af25a8b360d5da9bb59fb5a", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html": [ + "4393dba1aea1936ac0ff0f08ef6b5810eaaa8b6b", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html": [ + "9e0018aed64fbca86d25f5ec466f88212ebd4906", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/has.tentative.html": [ + "b7b16ab44745e235883303b8c495aa1ceb874d0c", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html": [ + "71dc6c117d3b0e17ddcee46c9db11953197edb75", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/append.tentative.html": [ + "6a408857cd88d03a4a00ee2127a3825380d2565f", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html": [ + "0a2097381fd03a532db7e2b1fb85dd7a901fb011", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/get.tentative.html": [ + "944052a99d1b5cc1a574c07339c33fdb6b1423d4", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html": [ + "ba694cbe689837f183601aab4872c4525613ebd4", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html": [ + "7cb65bf76de24fe33a48178f5193bc05c5ec3f44", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/has.tentative.html": [ + "3299b5537f2d535988f2f6dac65b3eaba63833b2", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html": [ + "3652cf0e25de23c04beadbaf2e4ddfffb244333d", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/declared/set.tentative.html": [ + "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" + ], + "css/css-typed-om/the-stylepropertymap/inline/append.tentative.html": [ + "df640de5b24c8276459a1a7fbc8a02cc97db6223", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html": [ + "352917486fa593e0d3f6f645c9c67846aa303ed8", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/get.tentative.html": [ + "28c506dae933e33e536f02e17b110cced9ea0278", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html": [ + "a149643634642b6277c4ada8da9b712f40ccf9b5", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html": [ + "5187e1eb4fb23b6b9a7fba8130d2649c4ea9152e", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/has.tentative.html": [ + "89b6d05db8717f1bc1f82690706d849a57104ec7", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html": [ + "e8317c96cea894eaa47d361ba5adbb15d237726e", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/set.tentative.html": [ + "00d06230cd8f21d522ab895c853201f9910d0d90", + "testharness" + ], + "css/css-typed-om/the-stylepropertymap/inline/update.tentative.html": [ + "30ee6179d77f18692867217c18852db94b1d10bb", + "testharness" + ], "css/css-typed-om/the-stylepropertymap/interface.html": [ "73aac61c85d142f38b871ef21c8ce75bd468cf40", "testharness" @@ -509708,6 +513154,18 @@ "5e071d71a9cc355a62d0165b4ca2840ba0ab8c66", "reftest" ], + "css/css-values/lh-rlh-on-root-001.html": [ + "ecac1ab87e66bddd777f8799c11fde8909e2e408", + "testharness" + ], + "css/css-values/lh-unit-001.html": [ + "441da6e10585655372496de1d640e8a41259dbc3", + "reftest" + ], + "css/css-values/lh-unit-002.html": [ + "bc74010a3b7e81f008277cad91ba8adea5382787", + "reftest" + ], "css/css-values/reference/200-200-green.html": [ "1ac64ebcfdbff6285f24dae29e32767646145082", "support" @@ -518480,6 +521938,14 @@ "51a3f4808392b7bcce4f2569256c540a3be817dc", "support" ], + "css/motion/offset-anchor-transform-box-fill-box-ref.html": [ + "0cd13108479de1850b6457cce41fee37dcd022fc", + "support" + ], + "css/motion/offset-anchor-transform-box-fill-box.html": [ + "bed35419a1cb479707bca1e4e23db725d1925da9", + "reftest" + ], "css/motion/offset-path-ray-ref.html": [ "dfea2bd9cadf9d1b83e95bc2dbffef3539937ff1", "support" @@ -523556,8 +527022,24 @@ "471738f74a0754bea39a0d48ac71c75d26aa9130", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [ + "0d84c9abc0971826e7ab6a4167c90075c052357f", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html": [ + "200c7bb0fb583bf4f7d6e85213be498cb88659ba", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html": [ + "f7656df52db5f8b601dd10c3b827f96c7f66b74b", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html": [ + "f741f790f2effdc45525e63863318540415824df", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list": [ - "4dfb8e7cd5345f510d05ccf683cacdbed8c80bfa", + "a0d4a43edbe193d5e2cf2dc949b3e3ccf5726263", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/support/Ahem.ttf": [ @@ -529112,6 +532594,10 @@ "e1b4b49cbd7ea1fd703c7ab3814deee0669e9336", "support" ], + "docs/_running-tests/chrome_android.md": [ + "fab045301c74644f3feeed712b43707cac13db53", + "support" + ], "docs/_running-tests/index.md": [ "15811229e77d2949a6cb5d1848cff7136d8f11af", "support" @@ -534864,6 +538350,10 @@ "678e1f80a090021a240933034d1a9206cddde8a4", "testharness" ], + "fetch/security/redirect-to-url-with-credentials.https.html": [ + "6eb9c75887afd084c12dee609dd4c4a7cf7a6a5e", + "testharness" + ], "fetch/security/support/embedded-credential-window.sub.html": [ "09ab38acc0bc980af3e96a61390cd000885b2fe5", "support" @@ -535389,11 +538879,11 @@ "manual" ], "gamepad/idlharness-manual.html": [ - "b7feb12fc02bc656eb41f406999481d204293c08", + "e570c8f2defac5b53f5f18fa3a09b184e8adb845", "manual" ], "gamepad/idlharness.html": [ - "cafa75af045a99b74e979b8905671d8b4bde107c", + "302f0796746f252a1a851d306d7e96cf86d7d402", "testharness" ], "gamepad/timestamp-manual.html": [ @@ -535413,7 +538903,7 @@ "support" ], "generic-sensor/generic-sensor-tests.js": [ - "2209b4cc293aefecded2d325b664d494820d38af", + "22c64a2145caa9eeaf4e53243dc971d832a478e0", "support" ], "generic-sensor/idlharness.https.html": [ @@ -535481,7 +538971,7 @@ "testharness" ], "geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html": [ - "ae1bdcf06fbf8dc8189950593b83bdd749e37880", + "f67a0c9e416e45326d7301c2a40c758029011738", "testharness" ], "geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html.headers": [ @@ -535489,15 +538979,15 @@ "support" ], "geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "6b0ea48ea2fb1cb6b81348bf5e28618716a34166", + "fb033fd0f0d891e9b6ed2b54b835f8f06364643e", "testharness" ], "geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html": [ - "f1b108ddd2f5b1ea915410f4cdb28c2e1a812cf9", + "06e4487981f8e6e062d9e9fea14d52e64b6b5035", "testharness" ], "geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html": [ - "35fea3e77f992df2861bea97405e9c75f7a1f994", + "e8287121361749246b874207dcffb92e459dfbec", "testharness" ], "geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html.headers": [ @@ -535505,7 +538995,7 @@ "support" ], "geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html": [ - "a9da2c50d4bde9eb24ef343979afcbc6547684e2", + "4222f48c8c2a932c5b65b6426bb9a0ad476ddd0c", "testharness" ], "geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -535533,7 +539023,7 @@ "testharness" ], "gyroscope/Gyroscope-disabled-by-feature-policy.https.html": [ - "03457271ec8c254bf74f89afa7532a595b837404", + "bc6f85cb3506d3e3e062eef43dca88bf3a4ebe89", "testharness" ], "gyroscope/Gyroscope-disabled-by-feature-policy.https.html.headers": [ @@ -535541,15 +539031,15 @@ "support" ], "gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "68df44bc71f1aaba74188f70dc916e9ee1dcc330", + "cc1f4082fa420a9076f929d88268f5a1d921a44a", "testharness" ], "gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html": [ - "e7c53323038c11a977e547ebe9d7ae94646f1a06", + "75429c87bbebd19df7b4edaddc5869c6202b3fab", "testharness" ], "gyroscope/Gyroscope-enabled-by-feature-policy.https.html": [ - "e4e170946a0289e8b1b6be83083aeeb92ddc4a8f", + "5129c05f9b226650a9b7fed4841871045525bf15", "testharness" ], "gyroscope/Gyroscope-enabled-by-feature-policy.https.html.headers": [ @@ -535557,7 +539047,7 @@ "support" ], "gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html": [ - "f48401e0e04294624ebb864224a6d2126e849870", + "2603bd858929ae6f84ebbe0cce34c5417ccdae06", "testharness" ], "gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -535953,11 +539443,11 @@ "testharness" ], "html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html": [ - "d1a0dcf7e544066d7d30454e9915fad22c6966dc", + "3924bc14b2b90880c939e384bf4b075531793a57", "testharness" ], "html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_3.html": [ - "7feaab2a60b39d697819571136463ce26936d3db", + "4ceab904264ef4e4151a3fac41f662d83a80072e", "testharness" ], "html/browsers/browsing-the-web/history-traversal/contains.json": [ @@ -540125,7 +543615,7 @@ "testharness" ], "html/dom/usvstring-reflection.html": [ - "c0f3943df125b3042abb5ef891e01f2b61fea0e5", + "a48e32b268a8117ed803c8ede806a879e1556d76", "testharness" ], "html/editing/.gitkeep": [ @@ -545872,6 +549362,14 @@ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" ], + "html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html": [ + "e30982d8f6490bfd4b3c124b281d13a1f93e0e18", + "testharness" + ], + "html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py": [ + "fde4968951519e82db85aa8624470f5256e16396", + "support" + ], "html/semantics/document-metadata/styling/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -547132,6 +550630,10 @@ "fee519ec5f5afc13be7c7f5a4387e746135c3747", "support" ], + "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt": [ + "c99c03bde6cc607a6b0c2b0831527bf8a3081e13", + "support" + ], "html/semantics/embedded-content/media-elements/track/track-element/resources/cues-no-separation.vtt": [ "251de0c5026da00c2b18469ee99924cf70ad1b4e", "support" @@ -547376,8 +550878,16 @@ "c8ab03c7d84d150befa8152e552d99e889ce4ec0", "testharness" ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html": [ + "32cb1d3aec235d98b1f4654bb81f2bafd24a2e56", + "testharness" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html": [ + "703a140689ca43502dd3e2922c9718034bc9f7fd", + "testharness" + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html": [ - "ac23d5be03b500a264d3bf919d88396e318b4e89", + "1ab49530360602eee786211576774956d8f5cc2b", "testharness" ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html": [ @@ -547388,6 +550898,30 @@ "688c592e8fc4b4dbc2d7d6ea16e17380c13f440a", "testharness" ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [ + "0fe944a0ec2df071f3d0ea5bfa8a69720d52af86", + "support" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [ + "5405472fee1eb767d8b95e64206737e238d60407", + "reftest" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [ + "e8bb477c297f47d5f39e25fcf232bd686bf9a36b", + "support" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [ + "18072ac5f58f1b84a8574432f9de44e44d4811c8", + "reftest" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [ + "135b766f1a8e76914ca9b96385465bbc0b086e9c", + "testharness" + ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html": [ + "3eea15ded06b5c4786f223993407c9d78ac40f96", + "testharness" + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cues-missed.html": [ "a87ad9da0dad43e1b68183feeabce59a5c864087", "testharness" @@ -551909,7 +555443,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html": [ - "996d1aa45c5975e13ac0f1e9c9249b3d452ed2e2", + "3365d69d34e442962370a1f0ed22017876efe4fe", "testharness" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html": [ @@ -552977,7 +556511,7 @@ "testharness" ], "html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html": [ - "4714117714f350db0174189e6fd2a5acf8280f0f", + "aff1352988cb70e52cff99e1fde379a807dd6984", "testharness" ], "html/semantics/text-level-semantics/the-a-element/resources/a-download-404.html": [ @@ -552993,7 +556527,7 @@ "support" ], "html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html": [ - "e328666c9e386349db0cf51bee0838d2dcb83415", + "d51356778b9a9e87e79c33b64ea9cf31a091cb07", "testharness" ], "html/semantics/text-level-semantics/the-b-element/.gitkeep": [ @@ -554712,6 +558246,10 @@ "1f29964d20d88de0d659fd76b864b51681582870", "support" ], + "images/pattern.mp4": [ + "341b777522809f50a88b366566069ee7b77cba80", + "support" + ], "images/pattern.ogv": [ "340a255f9e8e06dad2a766f4b3e7bb5e15bf697e", "support" @@ -554901,7 +558439,11 @@ "manual" ], "interfaces/OWNERS": [ - "f9c94ab08fa997459cba17e61d8cd00ee8b07b46", + "b2cece17c61be3b2d6ebf3294c268ebf1061026e", + "support" + ], + "interfaces/WebCryptoAPI.idl": [ + "87b02fc82a1b204ac59a51932e58f9369b4a77c6", "support" ], "interfaces/accelerometer.idl": [ @@ -554940,6 +558482,10 @@ "fda57b55aabdc54d674851851451c6c69c514ed1", "support" ], + "interfaces/gamepad.idl": [ + "89fa62f6e0d1fdb497ce6550804b57a5d4ee0d0f", + "support" + ], "interfaces/generic-sensor.idl": [ "3b2cb524838f2274463664621fddc7c927ac95af", "support" @@ -554961,7 +558507,7 @@ "support" ], "interfaces/html.idl": [ - "b93b108cc7ce46595b701a6631b5b8536f0e7eb2", + "5eead97f7b1cc2e511f268cb5a40011a33519bf0", "support" ], "interfaces/magnetometer.idl": [ @@ -554984,6 +558530,10 @@ "3a5f9a4e768409532916c751e7169c35ec0e23a8", "support" ], + "interfaces/proximity.idl": [ + "74f2bf81a497589e7b3ed323368df218a70925a3", + "support" + ], "interfaces/remoteplayback.idl": [ "fc724b70bc1e1d30e538ee5154a99d4871414302", "support" @@ -555016,6 +558566,14 @@ "7b5749e1fece69552e0a8bfac7af401fac15394d", "support" ], + "interfaces/webxr.idl": [ + "7a275cb5317c967a1058cab3a711c9262abfbf59", + "support" + ], + "interfaces/xhr.idl": [ + "5363c96002f96f796f4800b92f8748b1141f0821", + "support" + ], "intersection-observer/bounding-box.html": [ "a3ac1b70ba26234b7c968055171e652f3a8a14d8", "testharness" @@ -555201,23 +558759,23 @@ "testharness" ], "keyboard-lock/idlharness.https.html": [ - "bcaf4f063cd423d5fb0e1055761e8880e4b63220", + "4b41c1c46a8f7d2374d0ff9d796f3f938c1f74d8", "testharness" ], - "keyboard-lock/navigator-cancelKeyboardLock.https.html": [ - "5109eb45591bba9ce48d3db91fa02c0590397886", + "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [ + "ee6fe59233abea9325bf7f5e14c1472a72e45a11", "testharness" ], - "keyboard-lock/navigator-requestKeyboardLock-two-parallel-requests.https.html": [ - "6a05080698fbeff768c4f5c85dbbc89cf3cfa09a", + "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [ + "02ad8f54b7cebed96553bd96bbd7e8fc0227d3b1", "testharness" ], - "keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html": [ - "79ed9f93e2f72bf8e11d04e25c6fa847c91971e4", + "keyboard-lock/navigator-keyboardLock.https.html": [ + "572f4e827bc3807f4c71641e102d7bac9df3e391", "testharness" ], - "keyboard-lock/navigator-requestKeyboardLock.https.html": [ - "6f8091035f4aa18131c548a81cbe80ba328169c9", + "keyboard-lock/navigator-keyboardUnlock.https.html": [ + "c4de12456714a34fb791b070304da31c99da080f", "testharness" ], "longtask-timing/OWNERS": [ @@ -555285,7 +558843,7 @@ "support" ], "magnetometer/Magnetometer-disabled-by-feature-policy.https.html": [ - "e7c3f45ece750fd22149ea34ee968a6f7f795ac3", + "9af542095f2fcd57691c0432ef3248b04a0207a0", "testharness" ], "magnetometer/Magnetometer-disabled-by-feature-policy.https.html.headers": [ @@ -555293,15 +558851,15 @@ "support" ], "magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "d9963541021955e037dec0b443e4a80f4ffe4ee0", + "47829ff5747eed99ba22e79b12ddfff288fd031e", "testharness" ], "magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html": [ - "2ff0ea0df581c878201bc89e05dfc3e82ffadc01", + "3b6314e9176a24976d9d882644c30f00554eed6d", "testharness" ], "magnetometer/Magnetometer-enabled-by-feature-policy.https.html": [ - "ef9490c36c40ee6fe2f1bb09c6fd30519d70796c", + "05128cdb7171ba230143e7b68b09968a484b602a", "testharness" ], "magnetometer/Magnetometer-enabled-by-feature-policy.https.html.headers": [ @@ -555309,7 +558867,7 @@ "support" ], "magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html": [ - "3e96f42d58b119e42b261f0ae641f56a7c685f47", + "3240dafd2bc810dea0dc1ebc31728c86a29f2ec5", "testharness" ], "magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -555836,6 +559394,10 @@ "c446fd2ec7e9a940b66a297d9d6a5de9015dc42f", "testharness" ], + "media-source/generate-config-change-tests.py": [ + "044023540660d9b81484d1ae14851e13af907055", + "support" + ], "media-source/import_tests.sh": [ "943d26f264d59f2a7c01db30f5d91e72dafa9935", "support" @@ -555945,7 +559507,7 @@ "testharness" ], "media-source/mediasource-config-changes.js": [ - "08d405df023b14f73bb2490d5e8037feb7ae0ad2", + "9bafe96e2a478adf28b0c6fd4186d2bae588e921", "support" ], "media-source/mediasource-detach.html": [ @@ -555993,7 +559555,7 @@ "testharness" ], "media-source/mediasource-play.html": [ - "fb9a01c9d1aeecec782726b347aeec7f703de07d", + "e9b1b8b37dc3e850e175383997fe68d6935af539", "testharness" ], "media-source/mediasource-preload.html": [ @@ -564265,7 +567827,7 @@ "manual" ], "orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html": [ - "a87d0228b022235fd00eb345cc39f764afd8a64a", + "0c7657e32b46c64e5f050f04e40ccfc0dce32e47", "testharness" ], "orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html.headers": [ @@ -564273,15 +567835,15 @@ "support" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "7b827dd86f0ec3fd63e7f37d90c9eb85a61be8e2", + "71a6966fb91f8ddfe15ee690c843e4621a3b4720", "testharness" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html": [ - "7bd1a53f63f8ce9cf4421dd173ee9772dd8ab739", + "9bbe39e1be4a669f31f0fb3960aca22d7d159c5e", "testharness" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html": [ - "8eaf4b91ba622a454a1f4bae08b5e59905b0deeb", + "9f110b8ceca3dd3ce3d2a9e2567d92a3fc6462bf", "testharness" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html.headers": [ @@ -564289,7 +567851,7 @@ "support" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html": [ - "02840fd195f2891fcb9d2159e92dad004ec94608", + "c4404cf0b16c4d9ad15308392ecf52caee445b86", "testharness" ], "orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -564313,7 +567875,7 @@ "manual" ], "orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html": [ - "721b7ba79a90408c073a00383e84966368602b0e", + "8c6c5f8f3bc4421f5143a3e4fab287564cf4907d", "testharness" ], "orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html.headers": [ @@ -564321,15 +567883,15 @@ "support" ], "orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html": [ - "69bcd956cb76f80481eb867a34fc755f96963d4c", + "34a79c9033a41c0aceab3fa6a470dd5a76f2ac81", "testharness" ], "orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html": [ - "2c86a4a1a9d71e1ebc8909cedc3cd11a82d59db1", + "0e6260ccdaa8163b8db96516960be226a4d85ba7", "testharness" ], "orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html": [ - "14c83011b5ebcc04b64a3b958e272801f7cd2895", + "243b2d60d4c528a77e9cfb68fa256b35234e7346", "testharness" ], "orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html.headers": [ @@ -564337,7 +567899,7 @@ "support" ], "orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html": [ - "a469f03dcf3ce4c8b93fe1498935c6507b1bde87", + "c9f234f6508fb778fdf91277bb8950c99479979d", "testharness" ], "orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html.headers": [ @@ -564529,7 +568091,7 @@ "testharness" ], "payment-request/PaymentRequestUpdateEvent/constructor.https.html": [ - "91210fe058e95195ff5f999a1540ce0f2914f552", + "2b47979bae7fcc90fa5162dd597d6e55c96f2c15", "testharness" ], "payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html": [ @@ -564617,7 +568179,7 @@ "testharness" ], "payment-request/payment-request-abort-method.https.html": [ - "5c1ddf4e9e2a896036912983462f51f8ff6aa82b", + "30c62af4a05a4d83cbbd1e82d0df62bae9a85e96", "testharness" ], "payment-request/payment-request-canmakepayment-method.https.html": [ @@ -564625,7 +568187,7 @@ "testharness" ], "payment-request/payment-request-constructor-crash.https.html": [ - "9983391839ed64c41f9a7ecfb48a9b4abe6b497c", + "383d1c3f9505ee63d504bee87e13efa90ba49f3d", "testharness" ], "payment-request/payment-request-constructor.https.html": [ @@ -564792,6 +568354,10 @@ "e06354c2fd72bb868f8964cbf9ab393b629a3789", "testharness" ], + "performance-timeline/po-takeRecords.html": [ + "e674c882ca331e48c92e6b9bf88d8b8a054316e4", + "testharness" + ], "performance-timeline/resources/square.png": [ "f2f3c2b3cef895f514f595932b767299cd6dade0", "support" @@ -565165,7 +568731,7 @@ "testharness" ], "pointerlock/movementX_Y_basic-manual.html": [ - "b8567207aa3112562738cc6ffd2f2e5e2af652c5", + "eb22c6fb2fbae178f2b662a09a9153635bdb17e6", "manual" ], "pointerlock/movementX_Y_no-jumps-manual.html": [ @@ -565577,7 +569143,7 @@ "support" ], "presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html": [ - "9f18b9602f6866fd9b56ca4759a66b8624b05d17", + "f665499c4310075541d7eef79140e1386c651f36", "support" ], "presentation-api/receiving-ua/support/PresentationConnection_onclose_receiving-ua.html": [ @@ -565648,8 +569214,8 @@ "ba9b710aa4213f10edc7131a3879821f38f2ef19", "support" ], - "proximity/idlharness.html": [ - "8505e5ef30a561c82b7732fd24789387cf8f654e", + "proximity/idlharness.https.html": [ + "25c63ad4caa047d13ef9be748d6c880df4193b0d", "testharness" ], "quirks/active-and-hover-manual.html": [ @@ -573333,11 +576899,47 @@ "testharness" ], "resource-timing/resource_connection_reuse.html": [ - "8ab91aeb45b1db42af8c87681fcd793d71f05254", + "b20162d02cad807fc2b250b7d73042822fcb9030", + "testharness" + ], + "resource-timing/resource_dedicated_worker.html": [ + "8a4f853bdffe110bc15c04aaed4d4436a5ea3a23", "testharness" ], "resource-timing/resource_dynamic_insertion.html": [ - "1b6e111056101c88623eda6148042c310a5b7a6d", + "a6cd75583f6363a83b18f1bc77d89821de344ff7", + "testharness" + ], + "resource-timing/resource_frame_initiator_type.html": [ + "dcea1111a2c9a40a1d3de7246a5295e84dcf08b5", + "testharness" + ], + "resource-timing/resource_ignore_data_url.html": [ + "f8513b4ae7cc26c07cea1c16d872e0594f05041c", + "testharness" + ], + "resource-timing/resource_ignore_failures.html": [ + "c22e136e1c942a2fd652985a660ca0acd6c3a8b6", + "testharness" + ], + "resource-timing/resource_initiator_types.html": [ + "b04269a158aadf5a178decc306481c15f2c310b0", + "testharness" + ], + "resource-timing/resource_memory_cached.sub.html": [ + "7bd3af7679a4e628090bbc1e7114f416457144d6", + "testharness" + ], + "resource-timing/resource_redirects.html": [ + "76f977ff494e0c7899b616909b0dab1832ed44c5", + "testharness" + ], + "resource-timing/resource_reparenting.html": [ + "8df6e1b7d03e0480a24535124e72808f061b2bc1", + "testharness" + ], + "resource-timing/resource_script_types.html": [ + "11ead0e7600ea288f78582f8ee194a903490e6e1", "testharness" ], "resource-timing/resource_subframe_self_navigation.html": [ @@ -573348,10 +576950,22 @@ "9e8051a2ff8fff72b36ed1cecb61f9e7bba29071", "support" ], + "resource-timing/resources/all_resource_types.htm": [ + "c7f698888c64e5b750fac45e22dbb85e5979b3c5", + "support" + ], + "resource-timing/resources/blank_page_green.htm": [ + "2d6d55d85e17a9fe978db6dbe25ae35a599d5683", + "support" + ], "resource-timing/resources/blue.png": [ "99949c515749e66f471c3589ee7a0ef518aaccb5", "support" ], + "resource-timing/resources/empty_script.js": [ + "da39a3ee5e6b4b0d3255bfef95601890afd80709", + "support" + ], "resource-timing/resources/fake_responses.html": [ "c942abc1e8c1672935ffc8ce34821891345bacb9", "support" @@ -573360,6 +576974,10 @@ "09568d5f64474184cde594a47e26e374bcc8ac4d", "support" ], + "resource-timing/resources/green_frame.htm": [ + "08f8ca19b61ab0ac68014d5b406a952669fbe104", + "support" + ], "resource-timing/resources/gzip_xml.py": [ "cf637a4389fd259dee3a2df56194a68b3744b4c6", "support" @@ -573404,6 +577022,10 @@ "f53513f6f47fd4a6d4994a4ef7d6e37d1777ea57", "support" ], + "resource-timing/resources/nested.css": [ + "b89daf15601a711f6046d9e2fe1cc43ae1f0fd27", + "support" + ], "resource-timing/resources/notify_parent.html": [ "91790b717d0922dcd58237137c9728afbe488e46", "support" @@ -573440,6 +577062,10 @@ "59692fb2ebe890d65acba54aa2f814fcf9b46d39", "support" ], + "resource-timing/resources/worker_with_images.js": [ + "161473f1cd2157a69c506c80dba6ef25f76122ee", + "support" + ], "resource-timing/single-entry-per-resource.html": [ "e23e9cab8d42a3bb6b0635cd3916d9131ccc6ba2", "testharness" @@ -573449,7 +577075,7 @@ "testharness" ], "resource-timing/test_resource_timing.js": [ - "504f20a00b7be9c3b15666dfe34df02856a8bc72", + "a68dca4f542588b705f126df73dfad8c88c69506", "support" ], "screen-orientation/OWNERS": [ @@ -573760,8 +577386,684 @@ "ed768e3cc679a1fef5c47088443fdaec83838394", "support" ], + "server-timing/resources/parsing/0.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/0.js.sub.headers": [ + "17fa2c18304bcee509c7786fd34e456994360a10", + "support" + ], + "server-timing/resources/parsing/1.js": [ + "1a6924ba411a7f92aef048336bd117ece499f90a", + "support" + ], + "server-timing/resources/parsing/1.js.sub.headers": [ + "1f65859f60eea48564091b7f853e3a1c306d91fe", + "support" + ], + "server-timing/resources/parsing/10.js": [ + "1a6924ba411a7f92aef048336bd117ece499f90a", + "support" + ], + "server-timing/resources/parsing/10.js.sub.headers": [ + "adf8886166350be375d41de58da0d8a72ae8d2ce", + "support" + ], + "server-timing/resources/parsing/11.js": [ + "1a6924ba411a7f92aef048336bd117ece499f90a", + "support" + ], + "server-timing/resources/parsing/11.js.sub.headers": [ + "20c6f242511b2055249eb7bfb0e775af483a6c40", + "support" + ], + "server-timing/resources/parsing/12.js": [ + "1c6ca0aa58035fba39cfe8284c04468787149469", + "support" + ], + "server-timing/resources/parsing/12.js.sub.headers": [ + "802c68f944f30b273d71f59c77289e7d2a08becf", + "support" + ], + "server-timing/resources/parsing/13.js": [ + "266ee41ae7b440ab43e87a087d10fa2b1e193a8f", + "support" + ], + "server-timing/resources/parsing/13.js.sub.headers": [ + "144652b4740f0d42e3ff0685eaac5c4c1223ddfb", + "support" + ], + "server-timing/resources/parsing/14.js": [ + "b45df4c8581d127f4738887a009611092e06fae9", + "support" + ], + "server-timing/resources/parsing/14.js.sub.headers": [ + "ef0ce7496aecd6c2efc4eee9e8a2b35723f68dcd", + "support" + ], + "server-timing/resources/parsing/15.js": [ + "57529824e71a124c2ff69e9153163de9f4c3433d", + "support" + ], + "server-timing/resources/parsing/15.js.sub.headers": [ + "d686b34f5a4b3ca534ad55ca36a0c10775f21212", + "support" + ], + "server-timing/resources/parsing/16.js": [ + "8d82b5abff0bfc1884a350836cb27c8b124129bd", + "support" + ], + "server-timing/resources/parsing/16.js.sub.headers": [ + "aa781c76e32bfaa1a0e05cd2202b3e4e3ce28b35", + "support" + ], + "server-timing/resources/parsing/17.js": [ + "b45df4c8581d127f4738887a009611092e06fae9", + "support" + ], + "server-timing/resources/parsing/17.js.sub.headers": [ + "d8b7e49b673a39e6028b8aeb6241a3be5fa79935", + "support" + ], + "server-timing/resources/parsing/18.js": [ + "e37a27e8de7cb0d7da20de4b4738f868321f4f7d", + "support" + ], + "server-timing/resources/parsing/18.js.sub.headers": [ + "19ea20ca46a0dd73a0f22175c03ea1aa5bfdb560", + "support" + ], + "server-timing/resources/parsing/19.js": [ + "945c0786a390786f6bc648fb80ffe2da2c14c4b1", + "support" + ], + "server-timing/resources/parsing/19.js.sub.headers": [ + "602127ea29736860e5291c9243d2de54c06a1b7c", + "support" + ], + "server-timing/resources/parsing/2.js": [ + "1bc5932490ce45826ee11e124924c9588b3e8c4d", + "support" + ], + "server-timing/resources/parsing/2.js.sub.headers": [ + "49c763e3a400aaa6bc19e02188496a94b952b7f2", + "support" + ], + "server-timing/resources/parsing/20.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/20.js.sub.headers": [ + "c9003e0ef6e05d0aa3066a06ae404da09d0d1ca8", + "support" + ], + "server-timing/resources/parsing/21.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/21.js.sub.headers": [ + "babbb8839dae15581d70d50133b7e7dcecb72c60", + "support" + ], + "server-timing/resources/parsing/22.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/22.js.sub.headers": [ + "60656825b940e844d5b658b15a558d4bf8aeb5a2", + "support" + ], + "server-timing/resources/parsing/23.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/23.js.sub.headers": [ + "fb73ea7ff1d6c98cf18e8cdc9ae2106988a3c5cd", + "support" + ], + "server-timing/resources/parsing/24.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/24.js.sub.headers": [ + "b63c644ae9025bce231ff4d3be572e4f5968d1e1", + "support" + ], + "server-timing/resources/parsing/25.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/25.js.sub.headers": [ + "8761b10c42d5117d5917cd2bafff717f0a5e0d3a", + "support" + ], + "server-timing/resources/parsing/26.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/26.js.sub.headers": [ + "a25b4947fb552c63ffc4bebcde9748d8b5d3654e", + "support" + ], + "server-timing/resources/parsing/27.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/27.js.sub.headers": [ + "6256524e6218d7f1da03ffde037c3808cd09ee64", + "support" + ], + "server-timing/resources/parsing/28.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/28.js.sub.headers": [ + "15bf03440d58c800a88a9bbc493889803e2962e1", + "support" + ], + "server-timing/resources/parsing/29.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/29.js.sub.headers": [ + "d61f4f751e96db5f3fb2668d581fb04442545adf", + "support" + ], + "server-timing/resources/parsing/3.js": [ + "1bc5932490ce45826ee11e124924c9588b3e8c4d", + "support" + ], + "server-timing/resources/parsing/3.js.sub.headers": [ + "e37b008d0de07fdd300f0fef181cfaaac0c2ac9f", + "support" + ], + "server-timing/resources/parsing/30.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/30.js.sub.headers": [ + "68899f453cbe896880b91add876a2dcf0aa7862c", + "support" + ], + "server-timing/resources/parsing/31.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/31.js.sub.headers": [ + "23aa6e0121b3efbd010187aef45ec1e343dcc6f8", + "support" + ], + "server-timing/resources/parsing/32.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/32.js.sub.headers": [ + "13f8e002a56499f19d248968d4da2446c457818c", + "support" + ], + "server-timing/resources/parsing/33.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/33.js.sub.headers": [ + "3d4b4717629e4564e7e86a8b98eeee76b4278e2e", + "support" + ], + "server-timing/resources/parsing/34.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/34.js.sub.headers": [ + "b34910643944972a5fd3cd4323c3e460b764acd6", + "support" + ], + "server-timing/resources/parsing/35.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/35.js.sub.headers": [ + "f9055d1f55a5fdb38691374bd7de69b45d979e27", + "support" + ], + "server-timing/resources/parsing/36.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/36.js.sub.headers": [ + "87fe726634ad6dae4e348db74a6c64fa19929638", + "support" + ], + "server-timing/resources/parsing/37.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/37.js.sub.headers": [ + "39fd3379982b21de04a3c280ba4fcdfe84a4e55d", + "support" + ], + "server-timing/resources/parsing/38.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/38.js.sub.headers": [ + "0b4fa5ed0edc8378cc8ce4c482a49f8a02b8dbd2", + "support" + ], + "server-timing/resources/parsing/39.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/39.js.sub.headers": [ + "19af60081837aa38b2d14bbe55f1210d3dd75e72", + "support" + ], + "server-timing/resources/parsing/4.js": [ + "b45df4c8581d127f4738887a009611092e06fae9", + "support" + ], + "server-timing/resources/parsing/4.js.sub.headers": [ + "3449afe167f6e32a27f682e79ba8aa19d3e5be64", + "support" + ], + "server-timing/resources/parsing/40.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/40.js.sub.headers": [ + "d822691ba762df6d798567a2610e9973bca07236", + "support" + ], + "server-timing/resources/parsing/41.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/41.js.sub.headers": [ + "b72a4f5360c93e53338c25ba40e9993859424159", + "support" + ], + "server-timing/resources/parsing/42.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/42.js.sub.headers": [ + "973f84b410e397abf7123fe86e03b14684b5b0fb", + "support" + ], + "server-timing/resources/parsing/43.js": [ + "dcf2d8477422cfa60c7eb5da68629925fcc653e2", + "support" + ], + "server-timing/resources/parsing/43.js.sub.headers": [ + "d6fba3c154dce3d074e1e38c744e291a0c4f9e51", + "support" + ], + "server-timing/resources/parsing/44.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/44.js.sub.headers": [ + "c447cfda7cf55ee2384842b45a604412e403d8ec", + "support" + ], + "server-timing/resources/parsing/45.js": [ + "72dcb467c3d7fb4a2491a0ba68b612a4033738f3", + "support" + ], + "server-timing/resources/parsing/45.js.sub.headers": [ + "ba5cdefb1d89a1ab8b0a556f15ce1f7b722e9a45", + "support" + ], + "server-timing/resources/parsing/46.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/46.js.sub.headers": [ + "aa0c172f597b9b669fb32823e2dc99147a164387", + "support" + ], + "server-timing/resources/parsing/47.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/47.js.sub.headers": [ + "34fbb72ad299b3f8da81a55d3357b29b3fb19077", + "support" + ], + "server-timing/resources/parsing/48.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/48.js.sub.headers": [ + "c893b1918c565f30f6afeac72507636c1181fc6b", + "support" + ], + "server-timing/resources/parsing/49.js": [ + "6c2c1b45ab69ed8b1da28849accaa69a99d07340", + "support" + ], + "server-timing/resources/parsing/49.js.sub.headers": [ + "11e6ee5677c66ee62c1c973f5a4a455e178666ef", + "support" + ], + "server-timing/resources/parsing/5.js": [ + "b45df4c8581d127f4738887a009611092e06fae9", + "support" + ], + "server-timing/resources/parsing/5.js.sub.headers": [ + "d8b7e49b673a39e6028b8aeb6241a3be5fa79935", + "support" + ], + "server-timing/resources/parsing/50.js": [ + "71068640ee55f176c283ce788237e26059c043c5", + "support" + ], + "server-timing/resources/parsing/50.js.sub.headers": [ + "4e80dc4689ac1622f9df3cfde8f2667c0c334b14", + "support" + ], + "server-timing/resources/parsing/51.js": [ + "1c6ca0aa58035fba39cfe8284c04468787149469", + "support" + ], + "server-timing/resources/parsing/51.js.sub.headers": [ + "1ff4aed6798c6dfe7b22e11ffbd7db7fbe2e248f", + "support" + ], + "server-timing/resources/parsing/52.js": [ + "d0a406b076d345dc36d1792781bd078fb9b65ef3", + "support" + ], + "server-timing/resources/parsing/52.js.sub.headers": [ + "1191714a3f2cdb14c10d7b7f7637bb7fb331826d", + "support" + ], + "server-timing/resources/parsing/53.js": [ + "235f1ee6973489be765e8edec753b94c9f6d5773", + "support" + ], + "server-timing/resources/parsing/53.js.sub.headers": [ + "ce3c065722c2f84b4ea8c958465db0cbfac3046a", + "support" + ], + "server-timing/resources/parsing/54.js": [ + "235f1ee6973489be765e8edec753b94c9f6d5773", + "support" + ], + "server-timing/resources/parsing/54.js.sub.headers": [ + "4d2f64fb627d52fb965fba226648b0078f90e732", + "support" + ], + "server-timing/resources/parsing/55.js": [ + "2209fc9eff24dc4f0d7df2f31e5911dd4e05d78d", + "support" + ], + "server-timing/resources/parsing/55.js.sub.headers": [ + "735e9c9e7e9b4a54a8da1f1ed1893c67a0e5e66e", + "support" + ], + "server-timing/resources/parsing/56.js": [ + "1bc5932490ce45826ee11e124924c9588b3e8c4d", + "support" + ], + "server-timing/resources/parsing/56.js.sub.headers": [ + "e44253ff3485c86895c3b3bcf60633d73136a0a9", + "support" + ], + "server-timing/resources/parsing/57.js": [ + "235f1ee6973489be765e8edec753b94c9f6d5773", + "support" + ], + "server-timing/resources/parsing/57.js.sub.headers": [ + "653481a7bb1305cc776531b990651fd5570ddaed", + "support" + ], + "server-timing/resources/parsing/58.js": [ + "3fddff4eee055bf54f23be4ddd0e277cb79d492d", + "support" + ], + "server-timing/resources/parsing/58.js.sub.headers": [ + "9f9c4e085f0bdc083314fb97d4f485fd7ccf259c", + "support" + ], + "server-timing/resources/parsing/59.js": [ + "63d1c9fc862e586f387e1715c47c14075b9dc39e", + "support" + ], + "server-timing/resources/parsing/59.js.sub.headers": [ + "86c7827becd92238fde74e13321031e48240f8e0", + "support" + ], + "server-timing/resources/parsing/6.js": [ + "1c6ca0aa58035fba39cfe8284c04468787149469", + "support" + ], + "server-timing/resources/parsing/6.js.sub.headers": [ + "2810bd2697637785f251aacb3af4704fe3b612fe", + "support" + ], + "server-timing/resources/parsing/60.js": [ + "63d1c9fc862e586f387e1715c47c14075b9dc39e", + "support" + ], + "server-timing/resources/parsing/60.js.sub.headers": [ + "8bd1fc4b0ede3ae2d20ecaa2f1133b2a7951b48b", + "support" + ], + "server-timing/resources/parsing/61.js": [ + "3560177cc96b27c6ca4dfd3f4755685f067a9c77", + "support" + ], + "server-timing/resources/parsing/61.js.sub.headers": [ + "2cb76e965e4e10e84dc39f7a367171209a7f1c58", + "support" + ], + "server-timing/resources/parsing/62.js": [ + "3560177cc96b27c6ca4dfd3f4755685f067a9c77", + "support" + ], + "server-timing/resources/parsing/62.js.sub.headers": [ + "6ca23860d81e08d87342e5fdc0bdc1b191dfb427", + "support" + ], + "server-timing/resources/parsing/63.js": [ + "5c07fca48386d2d35c248c2053a7cb426ade6b7b", + "support" + ], + "server-timing/resources/parsing/63.js.sub.headers": [ + "4296079454e413eabe5e48799183d37955b25f14", + "support" + ], + "server-timing/resources/parsing/64.js": [ + "df2fb9e4e7999d2bda0c6e435b541fa37a55c788", + "support" + ], + "server-timing/resources/parsing/64.js.sub.headers": [ + "162b4c31d0a7894d2d16a8000694171132384a27", + "support" + ], + "server-timing/resources/parsing/65.js": [ + "5c07fca48386d2d35c248c2053a7cb426ade6b7b", + "support" + ], + "server-timing/resources/parsing/65.js.sub.headers": [ + "889218df84c44751603a94f889abd7f0d4275408", + "support" + ], + "server-timing/resources/parsing/66.js": [ + "df2fb9e4e7999d2bda0c6e435b541fa37a55c788", + "support" + ], + "server-timing/resources/parsing/66.js.sub.headers": [ + "95a5d28f5fc8519b09676ac1fd92bfae2d3fe211", + "support" + ], + "server-timing/resources/parsing/67.js": [ + "1a6924ba411a7f92aef048336bd117ece499f90a", + "support" + ], + "server-timing/resources/parsing/67.js.sub.headers": [ + "8c13333e069ade7cd299d89d4f4e49ea0cc13aa8", + "support" + ], + "server-timing/resources/parsing/68.js": [ + "b5b95d8349cbbc3b92edb61891608b04d004527b", + "support" + ], + "server-timing/resources/parsing/68.js.sub.headers": [ + "3267edb59ffdfcb7994cad0b0b82fbd1f96295e0", + "support" + ], + "server-timing/resources/parsing/69.js": [ + "235f1ee6973489be765e8edec753b94c9f6d5773", + "support" + ], + "server-timing/resources/parsing/69.js.sub.headers": [ + "70735c24c164159739a7d33353715910b7058266", + "support" + ], + "server-timing/resources/parsing/7.js": [ + "266ee41ae7b440ab43e87a087d10fa2b1e193a8f", + "support" + ], + "server-timing/resources/parsing/7.js.sub.headers": [ + "4f66fcaa07aaf41da5597d9a051768239cf9046d", + "support" + ], + "server-timing/resources/parsing/70.js": [ + "1a6924ba411a7f92aef048336bd117ece499f90a", + "support" + ], + "server-timing/resources/parsing/70.js.sub.headers": [ + "eadacef5c09ddfe284c1b04eb88d1ee7b58406b7", + "support" + ], + "server-timing/resources/parsing/71.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/71.js.sub.headers": [ + "262f7940893d9dc71881c4dd05a3abc632e164a6", + "support" + ], + "server-timing/resources/parsing/72.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/72.js.sub.headers": [ + "86acd52721c5aaa6ed6069f192e8be53e61fa691", + "support" + ], + "server-timing/resources/parsing/73.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/73.js.sub.headers": [ + "3cd0b25e1eda63ec48390f3aeb5e7b62afe64dab", + "support" + ], + "server-timing/resources/parsing/74.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/74.js.sub.headers": [ + "3a340394523d7772baa452e4c02f1b428898d9a7", + "support" + ], + "server-timing/resources/parsing/75.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/75.js.sub.headers": [ + "7776357b71f9ff29156489833884bd9263db23b0", + "support" + ], + "server-timing/resources/parsing/76.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/76.js.sub.headers": [ + "62fc9db1810ab0c4c4154f91195cdb29d3e6ac4f", + "support" + ], + "server-timing/resources/parsing/77.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/77.js.sub.headers": [ + "3b60dd6d0bf7c97a468d8a05afcadd29ec769349", + "support" + ], + "server-timing/resources/parsing/78.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/78.js.sub.headers": [ + "66b4011969e248d9ab872bea30776b5e7bd72dfb", + "support" + ], + "server-timing/resources/parsing/79.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/79.js.sub.headers": [ + "9496c56d010e4652f3d0a0ff628abaadeb717c15", + "support" + ], + "server-timing/resources/parsing/8.js": [ + "e30f08cfab17bcd0229ebbf0da701f65a193485b", + "support" + ], + "server-timing/resources/parsing/8.js.sub.headers": [ + "4aa86aa36c632e297433b03a6e63516679ff2cfb", + "support" + ], + "server-timing/resources/parsing/80.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/80.js.sub.headers": [ + "bc541f7873810c93ade3ad836a38c4bfe12b7bdb", + "support" + ], + "server-timing/resources/parsing/81.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/81.js.sub.headers": [ + "5bc9a24481b1d2f242d6361cda38d7325c83d6e5", + "support" + ], + "server-timing/resources/parsing/82.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/82.js.sub.headers": [ + "32d55b5dd32ade7283d69fcf242e757d3dc7eb8f", + "support" + ], + "server-timing/resources/parsing/83.js": [ + "4b374f4e2751e3c75af68df671c0287e41d617ae", + "support" + ], + "server-timing/resources/parsing/83.js.sub.headers": [ + "ba24e1d89104fb25d5100dfa0b38388ca19ee9c1", + "support" + ], + "server-timing/resources/parsing/9.js": [ + "30695307f7a50b46a799f3cf6f5763a359acc0ce", + "support" + ], + "server-timing/resources/parsing/9.js.sub.headers": [ + "6a8feff546c8564268b238e01a0470588b4739e7", + "support" + ], + "server-timing/server_timing_header-parsing.html": [ + "15768941cac8f5adeed09e6d204715d5fa59e5aa", + "testharness" + ], "server-timing/test_server_timing.html": [ - "2c8420d5bc6ac45923f0c5cbc43c6bd88caa877c", + "7c778ca856e5cff0bbc785f59c9ccf1ec86456fb", "testharness" ], "server-timing/test_server_timing.html.sub.headers": [ @@ -577701,7 +582003,7 @@ "support" ], "svg/OWNERS": [ - "13652f4cb17762fe755e81d2a015493ad1a6bc11", + "09ddeebeb4f8ad8622d76143f276d90a1d9aebdc", "support" ], "svg/README.md": [ @@ -577709,7 +582011,7 @@ "support" ], "svg/extensibility/foreignObject/properties.svg": [ - "946999ca1917a5069103c025197c2903ab0bae64", + "974affbb2c135c9aaa7a3f27687157b5e1250a9f", "testharness" ], "svg/extensibility/interfaces/foreignObject-graphics.svg": [ @@ -580064,6 +584366,46 @@ "e7e8508ebb527e97e1f4e289652121b1d070c219", "reftest" ], + "svg/path/closepath/segment-completing-ref.svg": [ + "67576a75312e20803e4a67a479ce9e8262ccb341", + "support" + ], + "svg/path/closepath/segment-completing.svg": [ + "62c6ecf218173f1273cbd2bd12f01dcf666170a4", + "reftest" + ], + "svg/path/distance/pathLength-positive-ref.svg": [ + "051786ae8a8510f97dec152a88541f8d16c6767f", + "support" + ], + "svg/path/distance/pathLength-positive.svg": [ + "33dc24b00e6ad879519fcfd593179ee2c1903006", + "reftest" + ], + "svg/path/distance/pathLength-zero-ref.svg": [ + "b47a9aa3a1a5901e97a5f92d056221b8882a2a19", + "support" + ], + "svg/path/distance/pathLength-zero.svg": [ + "91a81a96729daca9e421cf37a8aeb61dc743a857", + "reftest" + ], + "svg/path/error-handling/bounding.svg": [ + "83b6c27ecc4ae4394040e15eff96cd178e281994", + "testharness" + ], + "svg/path/error-handling/render-until-error-ref.svg": [ + "d6b80a84ade1979ab19debe5bf80d2262c08b097", + "support" + ], + "svg/path/error-handling/render-until-error.svg": [ + "9583661d708ffcd2baeb2eff2e8585f767e5c232", + "reftest" + ], + "svg/path/interfaces/SVGAnimatedPathData-removed.svg": [ + "bcdadce009a8238a4326e36051876a10bccccbea", + "testharness" + ], "svg/path/property/d-interpolation-discrete.svg": [ "6e27bfe4467b16b9e8c29bb66894bbb9dfbaf077", "testharness" @@ -580128,6 +584470,10 @@ "42ecd7bc94a3379d920687c79c12e2d3c55b9e98", "testharness" ], + "svg/types/elements/SVGGeometryElement-rect.svg": [ + "08237002915323f41dd5590ce4226f95ae79f285", + "testharness" + ], "svg/types/scripted/SVGAnimatedEnumeration-SVGClipPathElement.html": [ "0f81d16badaade09929ca0b35faf89cc420ef199", "testharness" @@ -580760,6 +585106,90 @@ "22f2a05853efc4977d7c427f80898cd8671f3aaa", "testharness" ], + "upgrade-insecure-requests/link-upgrade.sub.https.html": [ + "0c7c3915c24e355f3353a242843c76bb17b13c62", + "testharness" + ], + "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html": [ + "05d450051981b22ac2b9e903b60435ca695b3ad2", + "support" + ], + "upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html": [ + "877348106949c192bd9eb0ce9c283e973d873ffd", + "support" + ], + "upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html": [ + "41dc71d6369a07746a0151b16f2d2eb01029ccc6", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html": [ + "eac4924c1057d4e5da7f8f128b7c7ee501b5f6e6", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html": [ + "d02531c22a97a72d307b7dfb32c5f55f64ae0369", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html": [ + "e90305f8a31486c4eea12415b7d04d731f17d1be", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html": [ + "6510e3dc659975c1d4cd7826f683ca5d30b05afa", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html": [ + "28f98b49860dcc8ba80cdd217adc15b3ed93be71", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html": [ + "6c770a1da89f93c00a1ce22302dfbdddd4de6f99", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/dummy.html": [ + "2409542664fbfec691cc4cc420a3a047524c4e22", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html": [ + "d9a3b0b7aa254c929a89a75938c3b8115cfb7b39", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers": [ + "658f2c2be22add1a5be72b1e19ba340d024a4832", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html": [ + "d9a3b0b7aa254c929a89a75938c3b8115cfb7b39", + "support" + ], + "upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html": [ + "ba4d17350d4e1fdb369e058240d4bb72b24f7175", + "support" + ], "upgrade-insecure-requests/support/pass.png": [ "c06160c04726a02f1583caa0f380d632b6019179", "support" @@ -581085,7 +585515,7 @@ "manual" ], "visual-viewport/viewport-resize-event-on-load-overflowing-page.html": [ - "cd13682091b00c182e570a87eac642613a3c05c2", + "2fe468f0e4460e201de84deeb1291e74e0757518", "testharness" ], "visual-viewport/viewport-scale-iframe-manual.html": [ @@ -583197,7 +587627,7 @@ "wdspec" ], "webdriver/tests/sessions/new_session/invalid_capabilities.py": [ - "4caa08542f61ebe73c020d15d559704af037a97c", + "fcc36e5ca46cb8a9fb9927d5f618c7e9433a0260", "wdspec" ], "webdriver/tests/sessions/new_session/merge.py": [ @@ -583213,7 +587643,7 @@ "support" ], "webdriver/tests/sessions/new_session/support/create.py": [ - "440d88462cc418e4d5e1df6f73074d3a722bd2fd", + "2c79b22324aa0c318522ac3930e314b4f2b32a86", "support" ], "webdriver/tests/sessions/status.py": [ @@ -583992,6 +588422,10 @@ "2a2e3f9ff0a5912fa260d7124f7f5a9c3862c533", "testharness" ], + "webrtc/RTCPeerConnection-track-stats.https.html": [ + "92fbaf0f4c596222975edae433725d616dac6082", + "testharness" + ], "webrtc/RTCPeerConnectionIceEvent-constructor.html": [ "f273bd7fdfc883a15e8fb16fef5309061254c6cc", "testharness" @@ -584077,7 +588511,7 @@ "testharness" ], "webrtc/RTCSctpTransport-maxMessageSize.html": [ - "95a1a701ff1ea46c782131dcd2012d3b4d5d57d2", + "4534a810f47cdca106f5300939acc36275222637", "testharness" ], "webrtc/RTCStats-helper.js": [ @@ -588344,6 +592778,10 @@ "13f9441d368248225df5adc3396a05061ba2924d", "support" ], + "webxr/interfaces.https.html": [ + "22e2278ab484ced51fd0a3880d2bfbf610650371", + "testharness" + ], "webxr/resources/webxr_check.html": [ "3fa96e39a073bda2e813f0b2c2411c26b73d374e", "support" @@ -589444,6 +593882,26 @@ "395ebb855280779c248cc587141568fe0f089715", "testharness" ], + "worklets/layout-worklet-credentials.https.html": [ + "ffab9e5cdf8e3d1c759fa484512b24b45fca9cc8", + "testharness" + ], + "worklets/layout-worklet-csp.https.html": [ + "217dfbcbc3f36128f3e984c44e20013cff3793dd", + "testharness" + ], + "worklets/layout-worklet-import.https.html": [ + "33cf33b95b66020e10fef9515fce2956c27b75ba", + "testharness" + ], + "worklets/layout-worklet-referrer.https.html": [ + "3de86e7b122d6e8403858279e280d7e6ea5af389", + "testharness" + ], + "worklets/layout-worklet-service-worker-interception.https.html": [ + "4d3e8556924545768a0d59309a2460532c7192df", + "testharness" + ], "worklets/paint-worklet-credentials.https.html": [ "fd0d5e0e34454755ddd693916476af809dfd9bb1", "testharness" @@ -589581,7 +594039,7 @@ "support" ], "worklets/resources/worklet-test-utils.js": [ - "f05d557ba57bca35228a5ebbc418816cc3d01ee4", + "2984dfb09c88d7a1831a60d62c64c9b2ec2f6673", "support" ], "x-frame-options/deny.sub.html": [ @@ -590045,7 +594503,7 @@ "testharness" ], "xhr/interfaces.html": [ - "a4c597d2bdb85e37ffe5f5ebba961d7f8a3aeb29", + "eb4babf67805d1d65bcbc44c6dcc1cb3ca793695", "testharness" ], "xhr/loadstart-and-state.html": [ @@ -591073,7 +595531,7 @@ "testharness" ], "xhr/xmlhttprequest-sync-default-feature-policy.sub.html": [ - "a702c102155a1399c4a53477fc079d61b739976f", + "f83a057d1874e5e633c4529d3fac91249de652b3", "testharness" ], "xhr/xmlhttprequest-sync-not-hang-scriptloader-subframe.html": [ diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini new file mode 100644 index 00000000000..125c7716ec1 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js.ini @@ -0,0 +1,4 @@ +[ecdh_bits.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini deleted file mode 100644 index 743a1f3083d..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[ecdh_bits.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini new file mode 100644 index 00000000000..bc636df94ac --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js.ini @@ -0,0 +1,4 @@ +[ecdh_keys.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini deleted file mode 100644 index 0549a4a14ef..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[ecdh_keys.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini new file mode 100644 index 00000000000..e54642475b0 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js.ini @@ -0,0 +1,4 @@ +[hkdf.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini deleted file mode 100644 index fca4b53e6ec..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[hkdf.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini new file mode 100644 index 00000000000..325daee1a61 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js.ini @@ -0,0 +1,4 @@ +[pbkdf2.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini deleted file mode 100644 index 5025f11f1bd..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[pbkdf2.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini similarity index 99% rename from tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini rename to tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini index ee646a95f38..dfa563f1b05 100644 --- a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/digest/digest.https.worker.js.ini @@ -1,5 +1,4 @@ -[digest.worker.html] - type: testharness +[digest.https.worker.html] [SHA-1 with empty source data] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini new file mode 100644 index 00000000000..664ebee2fcd --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js.ini @@ -0,0 +1,4 @@ +[aes_cbc.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini deleted file mode 100644 index f8f6ca05743..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[aes_cbc.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini new file mode 100644 index 00000000000..7a771aa25b3 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js.ini @@ -0,0 +1,4 @@ +[aes_ctr.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini deleted file mode 100644 index e1abfe885c7..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[aes_ctr.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini new file mode 100644 index 00000000000..c379308d01f --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js.ini @@ -0,0 +1,4 @@ +[aes_gcm.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini deleted file mode 100644 index c93c214c856..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[aes_gcm.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini new file mode 100644 index 00000000000..3ffc1d7c54f --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js.ini @@ -0,0 +1,4 @@ +[rsa.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini deleted file mode 100644 index 3e796f70f7c..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[rsa.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini b/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini deleted file mode 100644 index 9cc87fa0988..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/idlharness.html.ini +++ /dev/null @@ -1,275 +0,0 @@ -[idlharness.html] - type: testharness - [Crypto interface: attribute subtle] - expected: FAIL - - [Crypto interface: crypto must inherit property "subtle" with the proper type (0)] - expected: FAIL - - [CryptoKey interface: existence and properties of interface object] - expected: FAIL - - [CryptoKey interface object length] - expected: FAIL - - [CryptoKey interface object name] - expected: FAIL - - [CryptoKey interface: existence and properties of interface prototype object] - expected: FAIL - - [CryptoKey interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [CryptoKey interface: attribute type] - expected: FAIL - - [CryptoKey interface: attribute extractable] - expected: FAIL - - [CryptoKey interface: attribute algorithm] - expected: FAIL - - [CryptoKey interface: attribute usages] - expected: FAIL - - [SubtleCrypto interface: existence and properties of interface object] - expected: FAIL - - [SubtleCrypto interface object length] - expected: FAIL - - [SubtleCrypto interface object name] - expected: FAIL - - [SubtleCrypto interface: existence and properties of interface prototype object] - expected: FAIL - - [SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation sign(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation digest(AlgorithmIdentifier,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long)] - expected: FAIL - - [SubtleCrypto interface: operation importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation exportKey(KeyFormat,CryptoKey)] - expected: FAIL - - [SubtleCrypto interface: operation wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier)] - expected: FAIL - - [SubtleCrypto interface: operation unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto must be primary interface of crypto.subtle] - expected: FAIL - - [Stringification of crypto.subtle] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "encrypt" with the proper type (0)] - expected: FAIL - - [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "decrypt" with the proper type (1)] - expected: FAIL - - [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "sign" with the proper type (2)] - expected: FAIL - - [SubtleCrypto interface: calling sign(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "verify" with the proper type (3)] - expected: FAIL - - [SubtleCrypto interface: calling verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "digest" with the proper type (4)] - expected: FAIL - - [SubtleCrypto interface: calling digest(AlgorithmIdentifier,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "generateKey" with the proper type (5)] - expected: FAIL - - [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey" with the proper type (6)] - expected: FAIL - - [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits" with the proper type (7)] - expected: FAIL - - [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "importKey" with the proper type (8)] - expected: FAIL - - [SubtleCrypto interface: calling importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "exportKey" with the proper type (9)] - expected: FAIL - - [SubtleCrypto interface: calling exportKey(KeyFormat,CryptoKey) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey" with the proper type (10)] - expected: FAIL - - [SubtleCrypto interface: calling wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey" with the proper type (11)] - expected: FAIL - - [SubtleCrypto interface: calling unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [Crypto interface: crypto must inherit property "subtle" with the proper type] - expected: FAIL - - [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation sign(AlgorithmIdentifier, CryptoKey, BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation digest(AlgorithmIdentifier, BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier, boolean, [object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)] - expected: FAIL - - [SubtleCrypto interface: operation importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation exportKey(KeyFormat, CryptoKey)] - expected: FAIL - - [SubtleCrypto interface: operation wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)] - expected: FAIL - - [SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "decrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "sign(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling sign(AlgorithmIdentifier, CryptoKey, BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling verify(AlgorithmIdentifier, CryptoKey, BufferSource, BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "digest(AlgorithmIdentifier, BufferSource)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling digest(AlgorithmIdentifier, BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "generateKey(AlgorithmIdentifier, boolean, [object Object\])" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\])" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier, CryptoKey, AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, unsigned long) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\])" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling importKey(KeyFormat, [object Object\],[object Object\], AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "exportKey(KeyFormat, CryptoKey)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling exportKey(KeyFormat, CryptoKey) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier)" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling wrapKey(KeyFormat, CryptoKey, CryptoKey, AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])" with the proper type] - expected: FAIL - - [SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini similarity index 58% rename from tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini rename to tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini index a6e580bf852..e3db073d83c 100644 --- a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/idlharness.https.worker.js.ini @@ -1,12 +1,11 @@ -[idlharness.worker.html] - type: testharness +[idlharness.https.worker.html] [ArrayBuffer interface: existence and properties of interface object] expected: FAIL [Crypto interface: attribute subtle] expected: FAIL - [Crypto interface: crypto must inherit property "subtle" with the proper type (0)] + [Crypto interface: crypto must inherit property "subtle" with the proper type] expected: FAIL [CryptoKey interface: existence and properties of interface object] @@ -51,123 +50,6 @@ [SubtleCrypto interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL - [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation decrypt(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation sign(AlgorithmIdentifier,CryptoKey,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation digest(AlgorithmIdentifier,BufferSource)] - expected: FAIL - - [SubtleCrypto interface: operation generateKey(AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long)] - expected: FAIL - - [SubtleCrypto interface: operation importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto interface: operation exportKey(KeyFormat,CryptoKey)] - expected: FAIL - - [SubtleCrypto interface: operation wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier)] - expected: FAIL - - [SubtleCrypto interface: operation unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\])] - expected: FAIL - - [SubtleCrypto must be primary interface of crypto.subtle] - expected: FAIL - - [Stringification of crypto.subtle] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "encrypt" with the proper type (0)] - expected: FAIL - - [SubtleCrypto interface: calling encrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "decrypt" with the proper type (1)] - expected: FAIL - - [SubtleCrypto interface: calling decrypt(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "sign" with the proper type (2)] - expected: FAIL - - [SubtleCrypto interface: calling sign(AlgorithmIdentifier,CryptoKey,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "verify" with the proper type (3)] - expected: FAIL - - [SubtleCrypto interface: calling verify(AlgorithmIdentifier,CryptoKey,BufferSource,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "digest" with the proper type (4)] - expected: FAIL - - [SubtleCrypto interface: calling digest(AlgorithmIdentifier,BufferSource) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "generateKey" with the proper type (5)] - expected: FAIL - - [SubtleCrypto interface: calling generateKey(AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveKey" with the proper type (6)] - expected: FAIL - - [SubtleCrypto interface: calling deriveKey(AlgorithmIdentifier,CryptoKey,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits" with the proper type (7)] - expected: FAIL - - [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier,CryptoKey,unsigned long) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "importKey" with the proper type (8)] - expected: FAIL - - [SubtleCrypto interface: calling importKey(KeyFormat,[object Object\],[object Object\],AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "exportKey" with the proper type (9)] - expected: FAIL - - [SubtleCrypto interface: calling exportKey(KeyFormat,CryptoKey) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "wrapKey" with the proper type (10)] - expected: FAIL - - [SubtleCrypto interface: calling wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [SubtleCrypto interface: crypto.subtle must inherit property "unwrapKey" with the proper type (11)] - expected: FAIL - - [SubtleCrypto interface: calling unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] - expected: FAIL - - [Crypto interface: crypto must inherit property "subtle" with the proper type] - expected: FAIL - [SubtleCrypto interface: operation encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)] expected: FAIL @@ -204,6 +86,12 @@ [SubtleCrypto interface: operation unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, [object Object\])] expected: FAIL + [SubtleCrypto must be primary interface of crypto.subtle] + expected: FAIL + + [Stringification of crypto.subtle] + expected: FAIL + [SubtleCrypto interface: crypto.subtle must inherit property "encrypt(AlgorithmIdentifier, CryptoKey, BufferSource)" with the proper type] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini similarity index 99% rename from tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini rename to tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini index 50b89ab7222..fae2ee1aab4 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.https.worker.js.ini @@ -1,5 +1,4 @@ -[ec_importKey.worker.html] - type: testharness +[ec_importKey.https.worker.html] [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini similarity index 99% rename from tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini rename to tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini index 9f6f25dcca9..2fd43aa59ca 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.https.worker.js.ini @@ -1,5 +1,4 @@ -[rsa_importKey.worker.html] - type: testharness +[rsa_importKey.https.worker.html] [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini similarity index 99% rename from tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini rename to tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini index d974812e8f6..6bd59d55e6a 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js.ini @@ -1,5 +1,4 @@ -[symmetric_importKey.worker.html] - type: testharness +[symmetric_importKey.https.worker.html] [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini new file mode 100644 index 00000000000..13165c83f73 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.https.worker.js.ini @@ -0,0 +1,4 @@ +[ecdsa.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini deleted file mode 100644 index 856c25ade29..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[ecdsa.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini new file mode 100644 index 00000000000..73a0f727de1 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.https.worker.js.ini @@ -0,0 +1,4 @@ +[hmac.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini deleted file mode 100644 index 100da1c1d18..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[hmac.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini new file mode 100644 index 00000000000..0e3c8e7e9fc --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js.ini @@ -0,0 +1,4 @@ +[rsa_pkcs.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini deleted file mode 100644 index 1c96d8b79d9..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[rsa_pkcs.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini new file mode 100644 index 00000000000..319d9233d87 --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js.ini @@ -0,0 +1,4 @@ +[rsa_pss.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini deleted file mode 100644 index 67beab0d8f2..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[rsa_pss.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini new file mode 100644 index 00000000000..be805a3f24e --- /dev/null +++ b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js.ini @@ -0,0 +1,4 @@ +[wrapKey_unwrapKey.https.worker.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini deleted file mode 100644 index 350cc245816..00000000000 --- a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[wrapKey_unwrapKey.worker.html] - type: testharness - [Untitled] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini new file mode 100644 index 00000000000..fb274076bf4 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-000.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-000.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini new file mode 100644 index 00000000000..f71d075b3df --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-001.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-001.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini new file mode 100644 index 00000000000..48f477d036d --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-003.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-003.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini new file mode 100644 index 00000000000..faf827cccdb --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-004.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-004.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini new file mode 100644 index 00000000000..c006021a56a --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-007.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-007.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini new file mode 100644 index 00000000000..ec4af304cb4 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-008.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-008.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini new file mode 100644 index 00000000000..b32a0c68330 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-letter-selector-019.xht.ini @@ -0,0 +1,2 @@ +[first-letter-selector-019.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini new file mode 100644 index 00000000000..b2ba32649d8 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-019.xht.ini @@ -0,0 +1,2 @@ +[first-line-pseudo-019.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini new file mode 100644 index 00000000000..013dba5388f --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-020.xht.ini @@ -0,0 +1,2 @@ +[first-line-pseudo-020.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini new file mode 100644 index 00000000000..5154b39f398 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/first-line-pseudo-021.xht.ini @@ -0,0 +1,2 @@ +[first-line-pseudo-021.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini new file mode 100644 index 00000000000..d69bffd166e --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-005.xht.ini @@ -0,0 +1,2 @@ +[lang-selector-005.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini new file mode 100644 index 00000000000..cc564d2ee4b --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/lang-selector-006.xht.ini @@ -0,0 +1,2 @@ +[lang-selector-006.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini b/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini new file mode 100644 index 00000000000..5711ca8dbeb --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/selectors/pseudo-006.xht.ini @@ -0,0 +1,2 @@ +[pseudo-006.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini deleted file mode 100644 index 27f0f13e2d5..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-002.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[at-charset-002.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini deleted file mode 100644 index c4be000564e..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-003.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[at-charset-003.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini deleted file mode 100644 index 3810fc2cbb5..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-004.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[at-charset-004.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini deleted file mode 100644 index b62d77d28bb..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-005.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[at-charset-005.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini deleted file mode 100644 index 766ebc92d41..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/at-charset-006.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[at-charset-006.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini deleted file mode 100644 index 2dbde103d07..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/comments-005.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[comments-005.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini deleted file mode 100644 index d7149bb085e..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/content-type-000.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[content-type-000.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini deleted file mode 100644 index ab1272afba9..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/ident-003.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[ident-003.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini b/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini deleted file mode 100644 index 0226043d1ed..00000000000 --- a/tests/wpt/metadata/css/CSS2/syntax/ident-020.xht.ini +++ /dev/null @@ -1,3 +0,0 @@ -[ident-020.xht] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini b/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini new file mode 100644 index 00000000000..fb449a5f070 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/caption-side-applies-to-007.xht.ini @@ -0,0 +1,2 @@ +[caption-side-applies-to-007.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini new file mode 100644 index 00000000000..abddf3911b3 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-001.xht.ini @@ -0,0 +1,2 @@ +[collapsing-border-model-001.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini new file mode 100644 index 00000000000..7fb8503eead --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-003.xht.ini @@ -0,0 +1,2 @@ +[collapsing-border-model-003.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini new file mode 100644 index 00000000000..3b8a5b0dc8b --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-004.xht.ini @@ -0,0 +1,2 @@ +[collapsing-border-model-004.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini new file mode 100644 index 00000000000..321f7ff4b22 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-007.xht.ini @@ -0,0 +1,2 @@ +[collapsing-border-model-007.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini new file mode 100644 index 00000000000..762c5baed53 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/collapsing-border-model-009.xht.ini @@ -0,0 +1,2 @@ +[collapsing-border-model-009.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini b/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini new file mode 100644 index 00000000000..723b6885faa --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/row-visibility-001.xht.ini @@ -0,0 +1,2 @@ +[row-visibility-001.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini b/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini new file mode 100644 index 00000000000..61fbc5acc76 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/tables/row-visibility-002.xht.ini @@ -0,0 +1,2 @@ +[row-visibility-002.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini b/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini index 3831f0146ff..297270704ff 100644 --- a/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/percentage-heights-000.html.ini @@ -6,12 +6,12 @@ [.flexbox 2] expected: FAIL - [.flexbox 3] - expected: FAIL - [.flexbox 5] expected: FAIL [.flexbox 6] expected: FAIL + [.flexbox 4] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini b/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini index e86530f2c96..785b94a7bb4 100644 --- a/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/percentage-heights-001.html.ini @@ -2,9 +2,6 @@ [.flexbox 2] expected: FAIL - [.flexbox 3] - expected: FAIL - [.flexbox 4] expected: FAIL @@ -29,6 +26,9 @@ [.flexbox 12] expected: FAIL - [.flexbox 13] + [.flexbox 1] + expected: FAIL + + [.flexbox 11] expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini b/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini index e0077cbfc6a..88274c494fe 100644 --- a/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/position-absolute-001.html.ini @@ -1,16 +1,10 @@ [position-absolute-001.html] - [.flexbox 1] - expected: FAIL - [.flexbox 2] expected: FAIL [.flexbox 3] expected: FAIL - [.flexbox 4] - expected: FAIL - [.flexbox 5] expected: FAIL @@ -26,18 +20,12 @@ [.flexbox 10] expected: FAIL - [.flexbox 11] - expected: FAIL - [.flexbox 12] expected: FAIL [.flexbox 13] expected: FAIL - [.flexbox 14] - expected: FAIL - [.flexbox 15] expected: FAIL @@ -56,9 +44,6 @@ [.flexbox 21] expected: FAIL - [.flexbox 22] - expected: FAIL - [.flexbox 23] expected: FAIL @@ -80,9 +65,6 @@ [.flexbox 31] expected: FAIL - [.flexbox 32] - expected: FAIL - [.flexbox 33] expected: FAIL @@ -128,9 +110,6 @@ [.flexbox 51] expected: FAIL - [.flexbox 52] - expected: FAIL - [.flexbox 53] expected: FAIL @@ -182,18 +161,12 @@ [.flexbox 70] expected: FAIL - [.flexbox 71] - expected: FAIL - [.flexbox 72] expected: FAIL [.flexbox 73] expected: FAIL - [.flexbox 74] - expected: FAIL - [.flexbox 75] expected: FAIL @@ -212,18 +185,12 @@ [.flexbox 80] expected: FAIL - [.flexbox 81] - expected: FAIL - [.flexbox 82] expected: FAIL [.flexbox 83] expected: FAIL - [.flexbox 84] - expected: FAIL - [.flexbox 85] expected: FAIL @@ -239,18 +206,12 @@ [.flexbox 90] expected: FAIL - [.flexbox 91] - expected: FAIL - [.flexbox 92] expected: FAIL [.flexbox 93] expected: FAIL - [.flexbox 94] - expected: FAIL - [.flexbox 95] expected: FAIL @@ -269,9 +230,6 @@ [.flexbox 101] expected: FAIL - [.flexbox 102] - expected: FAIL - [.flexbox 103] expected: FAIL @@ -293,9 +251,6 @@ [.flexbox 111] expected: FAIL - [.flexbox 112] - expected: FAIL - [.flexbox 113] expected: FAIL @@ -314,3 +269,48 @@ [.flexbox 119] expected: FAIL + [.flexbox 9] + expected: FAIL + + [.flexbox 19] + expected: FAIL + + [.flexbox 27] + expected: FAIL + + [.flexbox 30] + expected: FAIL + + [.flexbox 37] + expected: FAIL + + [.flexbox 40] + expected: FAIL + + [.flexbox 47] + expected: FAIL + + [.flexbox 50] + expected: FAIL + + [.flexbox 69] + expected: FAIL + + [.flexbox 89] + expected: FAIL + + [.flexbox 99] + expected: FAIL + + [.flexbox 107] + expected: FAIL + + [.flexbox 110] + expected: FAIL + + [.flexbox 117] + expected: FAIL + + [.flexbox 120] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini b/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini index de14e31ec4a..5f64104f3aa 100644 --- a/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/position-absolute-002.html.ini @@ -1,7 +1,4 @@ [position-absolute-002.html] - [.flexbox 1] - expected: FAIL - [.flexbox 2] expected: FAIL @@ -23,3 +20,6 @@ [.flexbox 8] expected: FAIL + [.flexbox 9] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini b/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini new file mode 100644 index 00000000000..2f0ac1423d2 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/lh-rlh-on-root-001.html.ini @@ -0,0 +1,13 @@ +[lh-rlh-on-root-001.html] + [2lh in line-height on root] + expected: FAIL + + [2rlh in line-height on root] + expected: FAIL + + [2lh in font-size on root] + expected: FAIL + + [2rlh in font-size on root] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini b/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini new file mode 100644 index 00000000000..b53f95bdbb4 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/lh-unit-001.html.ini @@ -0,0 +1,2 @@ +[lh-unit-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini b/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini new file mode 100644 index 00000000000..bad542144c5 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/lh-unit-002.html.ini @@ -0,0 +1,2 @@ +[lh-unit-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini new file mode 100644 index 00000000000..f903b9d7fa3 --- /dev/null +++ b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini @@ -0,0 +1,4 @@ +[redirect-to-url-with-credentials.https.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini b/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini index 17ebf0277ff..1e3ff756963 100644 --- a/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini +++ b/tests/wpt/metadata/html/dom/usvstring-reflection.html.ini @@ -20,3 +20,6 @@ [Document URLs: unpaired surrogate codepoint should be replaced with U+FFFD] expected: FAIL + [location.href : unpaired surrogate codepoint should be replaced with U+FFFD] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini new file mode 100644 index 00000000000..ccaf4df2de3 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/document-metadata/interactions-of-styling-and-scripting/conditionally-block-rendering-on-link-media-attr.html.ini @@ -0,0 +1,7 @@ +[conditionally-block-rendering-on-link-media-attr.html] + [Only the style sheet loaded via a link element whose media attribute matches the environment should block following script execution] + expected: FAIL + + [Both style sheets loaded via the link elements should be registered as style sheets for the document after 2 seconds] + expected: FAIL + diff --git a/tests/wpt/metadata/mozilla-sync b/tests/wpt/metadata/mozilla-sync index 48dce5e5051..5ae6f54c5e9 100644 --- a/tests/wpt/metadata/mozilla-sync +++ b/tests/wpt/metadata/mozilla-sync @@ -1,2 +1,2 @@ -local: 9187c9a093860d9f3c31b5a5f402458aa4a607cb -upstream: 1b93a7d98bc4849fa8f365d9bd13fb2a0448c6e1 +local: 1f6a864ab5372fe4f59b1a4c3db7cf8e7a79b06d +upstream: 08e864fd23048d707cc42bed8538e644d8dec950 diff --git a/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini b/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini new file mode 100644 index 00000000000..7ea09b3295f --- /dev/null +++ b/tests/wpt/metadata/performance-timeline/po-takeRecords.html.ini @@ -0,0 +1,4 @@ +[po-takeRecords.html] + [Test PerformanceObserver's takeRecords()] + expected: FAIL + diff --git a/tests/wpt/web-platform-tests/.travis.yml b/tests/wpt/web-platform-tests/.travis.yml index f5db6cac09e..287c6337cbd 100644 --- a/tests/wpt/web-platform-tests/.travis.yml +++ b/tests/wpt/web-platform-tests/.travis.yml @@ -87,7 +87,7 @@ matrix: apt: packages: - libnss3-tools - env: JOB=wpt_integration TOXENV=py27 SCRIPT=tools/ci/ci_wpt.sh + env: JOB=wpt_integration TOXENV=py27,py27-flake8 SCRIPT=tools/ci/ci_wpt.sh exclude: - env: # exclude empty env from the top-level above allow_failures: diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js index cd2a801994c..4e5b9a88833 100644 --- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js +++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/common.js @@ -38,7 +38,8 @@ function makeVideo() { video.oncanplaythrough = function() { resolve(video); }; - video.src = "/images/pattern.ogv"; + video.onerror = reject; + video.src = getVideoURI("/images/pattern"); }); } diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html index 98b656e78b4..d527b4c2adb 100644 --- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html +++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html @@ -4,6 +4,7 @@ + diff --git a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html index 1fe71856fc4..12f9974a687 100644 --- a/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html +++ b/tests/wpt/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html @@ -1,6 +1,7 @@ + \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js b/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js index 88b82ce9b67..d485bfaac61 100644 --- a/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js +++ b/tests/wpt/web-platform-tests/FileAPI/url/url-format.any.js @@ -2,7 +2,7 @@ const blob = new Blob(['test']); const file = new File(['test'], 'name'); test(() => { - const url_count = 10000; + const url_count = 5000; let list = []; for (let i = 0; i < url_count; ++i) diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/digest/digest.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html deleted file mode 100644 index 53faef26d4d..00000000000 --- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - -IDL check of WebCrypto - - - - - - - - - -

Description

- -

This test verifies that the implementations of the WebCrypto API match with its WebIDL definition.

- -
- - diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html index 53faef26d4d..c4fd0f34092 100644 --- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html +++ b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.html @@ -24,7 +24,7 @@ setup(function() { var idl_array = new IdlArray(); var request = new XMLHttpRequest(); - request.open("GET", "WebCryptoAPI.idl"); + request.open("GET", "../interfaces/WebCryptoAPI.idl"); request.send(); request.onload = function() { var idls = request.responseText; diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js similarity index 91% rename from tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js index ba033014e8f..b4bbdda4b29 100644 --- a/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.worker.js +++ b/tests/wpt/web-platform-tests/WebCryptoAPI/idlharness.https.worker.js @@ -2,7 +2,7 @@ importScripts("/resources/testharness.js"); importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js"); var request = new XMLHttpRequest(); -request.open("GET", "WebCryptoAPI.idl"); +request.open("GET", "../interfaces/WebCryptoAPI.idl"); request.send(); request.onload = function() { var idl_array = new IdlArray(); diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/hmac.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker.js diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js rename to tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.js diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html index d849db13359..9476efb6a0f 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Accelerometer Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 7306ed58ce6..aa8ea10eb0b 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +Accelerometer Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html index 1ee0f42a510..860a027b55b 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +Accelerometer Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html index 6dc33c829ca..889047a0703 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Accelerometer Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html index fddbca0f5bb..bf458529e84 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Accelerometer Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html index 2a9bc543cdf..9563270fcda 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer.https.html @@ -11,5 +11,6 @@ runGenericSensorTests(Accelerometer); runGenericSensorTests(GravitySensor); +runGenericSensorTests(LinearAccelerationSensor); diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html index 96eeef2daf7..ff1f0832c31 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_insecure_context.html @@ -7,7 +7,7 @@
-

Precondition

+

Note:

  1. Run test in an insecure context, e.g. http://example.com/. @@ -17,5 +17,6 @@ runGenericSensorInsecureContext("Accelerometer"); runGenericSensorInsecureContext("GravitySensor"); +runGenericSensorInsecureContext("LinearAccelerationSensor"); diff --git a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html index 8778693ccb2..f69b1b6ce5c 100644 --- a/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html +++ b/tests/wpt/web-platform-tests/accelerometer/Accelerometer_onerror-manual.https.html @@ -17,5 +17,6 @@ runGenericSensorOnerror(Accelerometer); runGenericSensorOnerror(GravitySensor); +runGenericSensorOnerror(LinearAccelerationSensor); diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html index f5d4b0fdde8..84bee557186 100644 --- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +AmbientLightSensor Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html index 13de3f8b4ee..a9810128956 100644 --- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +AmbientLightSensor Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html index f2c2c3bbae1..e4ce2566bf0 100644 --- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +AmbientLightSensor Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html index 33d36cb44e7..bb2c4a61841 100644 --- a/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/ambient-light/AmbientLightSensor-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +AmbientLightSensor Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js index de3846b6cbc..ed7f81ad9ff 100644 --- a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js +++ b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js @@ -39,6 +39,10 @@ var emptyFormDataTest = { id: "EmptyFormData", data: CreateEmptyFormDataPayload( var smallFormDataTest = { id: "SmallFormData", data: CreateFormDataFromPayload(smallPayload) }; var mediumFormDataTest = { id: "MediumFormData", data: CreateFormDataFromPayload(mediumPayload) }; var largeFormDataTest = { id: "LargeFormData", data: CreateFormDataFromPayload(largePayload) }; +var smallSafeContentTypeEncodedTest = { id: "SmallSafeContentTypeEncoded", data: new Blob([smallPayload], { type: 'application/x-www-form-urlencoded' }) }; +var smallSafeContentTypeFormTest = { id: "SmallSafeContentTypeForm", data: new FormData() }; +var smallSafeContentTypeTextTest = { id: "SmallSafeContentTypeText", data: new Blob([smallPayload], { type: 'text/plain' }) }; +var smallCORSContentTypeTextTest = { id: "SmallCORSContentTypeText", data: new Blob([smallPayload], { type: 'text/html' }) }; // We don't test maxFormData because the extra multipart separators make it difficult to // calculate a maxPayload. @@ -57,7 +61,9 @@ var allTests = [].concat(stringTests, stringMaxTest, blobTests, blobMaxTest, buf // This special cross section of test cases is meant to provide a slimmer but reasonably- // representative set of tests for parameterization across variables (e.g. redirect codes, // cors modes, etc.) -var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest]; +var sampleTests = [noDataTest, nullDataTest, undefinedDataTest, smallStringTest, smallBlobTest, smallBufferSourceTest, smallFormDataTest, smallSafeContentTypeEncodedTest, smallSafeContentTypeFormTest, smallSafeContentTypeTextTest]; + +var preflightTests = [smallCORSContentTypeTextTest]; // Build a test lookup table, which is useful when instructing a web worker or an iframe // to run a test, so that we don't have to marshal the entire test case across a process boundary. diff --git a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js index ddfdfbfa0a2..f4bccf177e3 100644 --- a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js +++ b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js @@ -38,4 +38,30 @@ runTests(sampleTests); }); +// Now test a cross-origin request that doesn't use a safelisted Content-Type and ensure +// we are applying the proper restrictions. Since a non-safelisted Content-Type request +// header is used there should be a preflight/options request and we should only succeed +// send the payload if the proper CORS headers are used. +{ + // Implement the self.buildId extension to identify the parameterized + // test in the report. + self.buildId = function (baseId) { + return `${baseId}-PREFLIGHT-ALLOW`; + }; + + // Implement the self.buildBaseUrl and self.buildTargetUrl extensions + // to change the target URL to use a cross-origin domain name. + self.buildBaseUrl = function (baseUrl) { + return "http://{{domains[www]}}:{{ports[http][0]}}"; + }; + + // Implement the self.buildTargetUrl extension to append a directive + // to the handler, that it should return CORS headers for the preflight we expect. + self.buildTargetUrl = function (targetUrl) { + return `${targetUrl}&origin=http://{{host}}:{{ports[http][0]}}&credentials=true&preflightExpected=true`; + } + + runTests(preflightTests); +} + done(); \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/beacon/resources/beacon.py b/tests/wpt/web-platform-tests/beacon/resources/beacon.py index afa522a2a91..5f2553d3c4d 100644 --- a/tests/wpt/web-platform-tests/beacon/resources/beacon.py +++ b/tests/wpt/web-platform-tests/beacon/resources/beacon.py @@ -60,40 +60,52 @@ def main(request, response): # with the unique session id, in order to retrieve a range of results # later knowing the index range. test_idx = request.GET.first("tidx") - - test_data_key = build_stash_key(session_id, test_idx) test_data = { "id": test_id, "error": None } - payload = "" - if "Content-Type" in request.headers and \ - "form-data" in request.headers["Content-Type"]: - if "payload" in request.POST: - # The payload was sent as a FormData. - payload = request.POST.first("payload") + # Only store the actual POST requests, not any preflight/OPTIONS requests we may get. + if request.method == "POST": + test_data_key = build_stash_key(session_id, test_idx) + + payload = "" + if "Content-Type" in request.headers and \ + "form-data" in request.headers["Content-Type"]: + if "payload" in request.POST: + # The payload was sent as a FormData. + payload = request.POST.first("payload") + else: + # A FormData was sent with an empty payload. + pass else: - # A FormData was sent with an empty payload. - pass - else: - # The payload was sent as either a string, Blob, or BufferSource. - payload = request.body + # The payload was sent as either a string, Blob, or BufferSource. + payload = request.body - payload_parts = filter(None, payload.split(":")) - if len(payload_parts) > 0: - payload_size = int(payload_parts[0]) + payload_parts = filter(None, payload.split(":")) + if len(payload_parts) > 0: + payload_size = int(payload_parts[0]) - # Confirm the payload size sent matches with the number of characters sent. - if payload_size != len(payload_parts[1]): - test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1])) + # Confirm the payload size sent matches with the number of characters sent. + if payload_size != len(payload_parts[1]): + test_data["error"] = "expected %d characters but got %d" % (payload_size, len(payload_parts[1])) + else: + # Confirm the payload contains the correct characters. + for i in range(0, payload_size): + if payload_parts[1][i] != "*": + test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i]) + break + + # Store the result in the stash so that it can be retrieved + # later with a 'stat' command. + request.server.stash.put(test_data_key, test_data) + elif request.method == "OPTIONS": + # If we expect a preflight, then add the cors headers we expect, otherwise log an error as we shouldn't + # send a preflight for all requests. + if "preflightExpected" in request.GET: + response.headers.set("Access-Control-Allow-Headers", "content-type") + response.headers.set("Access-Control-Allow-Methods", "POST") else: - # Confirm the payload contains the correct characters. - for i in range(0, payload_size): - if payload_parts[1][i] != "*": - test_data["error"] = "expected '*' at index %d but got '%s''" % (i, payload_parts[1][i]) - break - - # Store the result in the stash so that it can be retrieved - # later with a 'stat' command. - request.server.stash.put(test_data_key, test_data) + test_data_key = build_stash_key(session_id, test_idx) + test_data["error"] = "Preflight not expected." + request.server.stash.put(test_data_key, test_data) elif command == "stat": test_idx_min = int(request.GET.first("tidx_min")) test_idx_max = int(request.GET.first("tidx_max")) diff --git a/tests/wpt/web-platform-tests/bluetooth/README.md b/tests/wpt/web-platform-tests/bluetooth/README.md index 593967ee089..869dd4af446 100644 --- a/tests/wpt/web-platform-tests/bluetooth/README.md +++ b/tests/wpt/web-platform-tests/bluetooth/README.md @@ -10,3 +10,39 @@ The Chromium implementation is provided by `../resources/chromium/web-bluetooth-test.js`. [Web Bluetooth Testing API]: https://docs.google.com/document/d/1Nhv_oVDCodd1pEH_jj9k8gF4rPGb_84VYaZ9IG8M_WY/ + +# Generated gen-* files from generator.py + +`generator.py` builds `gen-*.html` tests using templates in +`script-tests/*/*.js`. + +The subdirectory structure in `bluetooth/script-test/*` is recreated into +`bluetooth/*`. The generator expands each CALL function from templates +into new leaf directories and files. + +Example: + +`script-tests/server/get-same-object.js` contains: + +``` +gattServer.CALLS([ + getPrimaryService('heart_rate')| + getPrimaryServices()| + getPrimaryServices('heart_rate')[UUID]]), +``` + +Generating: + +``` +server/getPrimaryService/gen-get-same-object.html +server/getPrimaryServices/gen-get-same-object.html +server/getPrimaryServices/gen-get-same-object-with-uuid.html +``` + +Usage: + +``` +$ python generate.py +``` + +More details documented in `generate.py`. \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html new file mode 100644 index 00000000000..d20d435999f --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/characteristicProperties.https.html @@ -0,0 +1,26 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html new file mode 100644 index 00000000000..02aaeccb022 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html new file mode 100644 index 00000000000..52b39c1e0cb --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html new file mode 100644 index 00000000000..c00d4cf5783 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html new file mode 100644 index 00000000000..a29548f3656 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html new file mode 100644 index 00000000000..20df1d08002 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html new file mode 100644 index 00000000000..35f5ee974fc --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.html @@ -0,0 +1,22 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html new file mode 100644 index 00000000000..c0d4328a0e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html @@ -0,0 +1,28 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html new file mode 100644 index 00000000000..3c963c3c9fd --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.html @@ -0,0 +1,22 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html new file mode 100644 index 00000000000..a217bdd36aa --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/event-is-fired.https.html @@ -0,0 +1,27 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html new file mode 100644 index 00000000000..a80bccfe469 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html new file mode 100644 index 00000000000..4dca3ed5a57 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-succeeds.https.html @@ -0,0 +1,24 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html new file mode 100644 index 00000000000..11bb9391b62 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/readValue/read-updates-value.https.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html new file mode 100644 index 00000000000..d9a9594320d --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html new file mode 100644 index 00000000000..f79c21916fb --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html @@ -0,0 +1,22 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html new file mode 100644 index 00000000000..16520704630 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html new file mode 100644 index 00000000000..f2cf577e4f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/writeValue/write-succeeds.https.html @@ -0,0 +1,41 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/generate.py b/tests/wpt/web-platform-tests/bluetooth/generate.py new file mode 100644 index 00000000000..034ca22c619 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/generate.py @@ -0,0 +1,189 @@ +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# TODO(509038): Delete the file in LayoutTests/bluetooth after all the script +# tests have been migrated to this directory. +"""Generator script for Web Bluetooth LayoutTests. + +For each script-tests/X.js creates the following test files depending on the +contents of X.js +- getPrimaryService/X.html +- getPrimaryServices/X.html +- getPrimaryServices/X-with-uuid.html + +script-tests/X.js files should contain "CALLS([variation1 | variation2 | ...])" +tokens that indicate what files to generate. Each variation in CALLS([...]) +should corresponds to a js function call and its arguments. Additionally a +variation can end in [UUID] to indicate that the generated file's name should +have the -with-uuid suffix. + +The PREVIOUS_CALL token will be replaced with the function that replaced CALLS. + +The FUNCTION_NAME token will be replaced with the name of the function that +replaced CALLS. + +For example, for the following template file: + +// script-tests/example.js +promise_test(() => { + return navigator.bluetooth.requestDevice(...) + .then(device => device.gatt.CALLS([ + getPrimaryService('heart_rate')| + getPrimaryServices('heart_rate')[UUID]])) + .then(device => device.gatt.PREVIOUS_CALL); +}, 'example test for FUNCTION_NAME'); + +this script will generate: + +// getPrimaryService/example.html +promise_test(() => { + return navigator.bluetooth.requestDevice(...) + .then(device => device.gatt.getPrimaryService('heart_rate')) + .then(device => device.gatt.getPrimaryService('heart_rate')); +}, 'example test for getPrimaryService'); + +// getPrimaryServices/example-with-uuid.html +promise_test(() => { + return navigator.bluetooth.requestDevice(...) + .then(device => device.gatt.getPrimaryServices('heart_rate')) + .then(device => device.gatt.getPrimaryServices('heart_rate')); +}, 'example test for getPrimaryServices'); + +Run +$ python //third_party/WebKit/LayoutTests/bluetooth/generate.py +and commit the generated files. +""" + +import fnmatch +import os +import re +import sys +import logging + +TEMPLATES_DIR = 'script-tests' + + +class GeneratedTest: + + def __init__(self, data, path, template): + self.data = data + self.path = path + self.template = template + + +def GetGeneratedTests(): + """Yields a GeneratedTest for each call in templates in script-tests.""" + bluetooth_tests_dir = os.path.dirname(os.path.realpath(__file__)) + + # Read Base Test Template. + base_template_file_handle = open( + os.path.join( + bluetooth_tests_dir, + TEMPLATES_DIR, + 'base_test_html.template' + ), 'r') + base_template_file_data = base_template_file_handle.read().decode('utf-8') + base_template_file_handle.close() + + # Get Templates. + + template_path = os.path.join(bluetooth_tests_dir, TEMPLATES_DIR) + + available_templates = [] + for root, _, files in os.walk(template_path): + for template in files: + if template.endswith('.js'): + available_templates.append(os.path.join(root, template)) + + # Generate Test Files + for template in available_templates: + # Read template + template_file_handle = open(template, 'r') + template_file_data = template_file_handle.read().decode('utf-8') + template_file_handle.close() + + template_name = os.path.splitext(os.path.basename(template))[0] + + # Find function names in multiline pattern: CALLS( [ function_name,function_name2[UUID] ]) + result = re.search( + r'CALLS\(' + # CALLS( + r'[^\[]*' + # Any characters not [, allowing for new lines. + r'\[' + # [ + r'(.*?)' + # group matching: function_name(), function_name2[UUID] + r'\]\)', # adjacent closing characters: ]) + template_file_data, re.MULTILINE | re.DOTALL) + + if result is None: + raise Exception('Template must contain \'CALLS\' tokens') + + new_test_file_data = base_template_file_data.replace('TEST', + template_file_data) + # Replace CALLS([...]) with CALLS so that we don't have to replace the + # CALLS([...]) for every new test file. + new_test_file_data = new_test_file_data.replace(result.group(), 'CALLS') + + # Replace 'PREVIOUS_CALL' with 'CALLS' so that we can replace it while + # replacing CALLS. + new_test_file_data = new_test_file_data.replace('PREVIOUS_CALL', 'CALLS') + + for call in result.group(1).split('|'): + # Parse call + call = call.strip() + function_name, args, uuid_suffix = re.search(r'(.*?)\((.*)\)(\[UUID\])?', call).groups() + + # Replace template tokens + call_test_file_data = new_test_file_data + call_test_file_data = call_test_file_data.replace('CALLS', '{}({})'.format(function_name, args)) + call_test_file_data = call_test_file_data.replace('FUNCTION_NAME', function_name) + + # Get test file name + group_dir = os.path.basename(os.path.abspath(os.path.join(template, os.pardir))) + + call_test_file_name = 'gen-{}{}.https.html'.format(template_name, '-with-uuid' if uuid_suffix else '') + call_test_file_path = os.path.join(bluetooth_tests_dir, group_dir, function_name, call_test_file_name) + + yield GeneratedTest(call_test_file_data, call_test_file_path, template) + +def main(): + logging.basicConfig(level=logging.INFO) + previous_generated_files = set() + current_path = os.path.dirname(os.path.realpath(__file__)) + for root, _, filenames in os.walk(current_path): + for filename in fnmatch.filter(filenames, 'gen-*.https.html'): + previous_generated_files.add(os.path.join(root, filename)) + + generated_files = set() + for generated_test in GetGeneratedTests(): + prev_len = len(generated_files) + generated_files.add(generated_test.path) + if prev_len == len(generated_files): + logging.info('Generated the same test twice for template:\n%s', + generated_test.template) + + # Create or open test file + directory = os.path.dirname(generated_test.path) + if not os.path.exists(directory): + os.makedirs(directory) + test_file_handle = open(generated_test.path, 'wb') + + # Write contents + test_file_handle.write(generated_test.data.encode('utf-8')) + test_file_handle.close() + + new_generated_files = generated_files - previous_generated_files + if len(new_generated_files) != 0: + logging.info('Newly generated tests:') + for generated_file in new_generated_files: + logging.info(generated_file) + + obsolete_files = previous_generated_files - generated_files + if len(obsolete_files) != 0: + logging.warning('The following files might be obsolete:') + for generated_file in obsolete_files: + logging.warning(generated_file) + + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tests/wpt/web-platform-tests/bluetooth/generate_test.py b/tests/wpt/web-platform-tests/bluetooth/generate_test.py new file mode 100755 index 00000000000..881f7dbcb73 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/generate_test.py @@ -0,0 +1,56 @@ +#!/usr/bin/python + +# Copyright 2016 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# TODO(50903): Delete the file in LayoutTests/bluetooth after all the tests have +# been migrated to this directory. +"""Test that the set of gen-* files is the same as the generated files.""" + +import fnmatch +import os +import sys +import generate +import logging + +UPDATE_TIP = 'To update the generated tests, run:\n' \ + '$ python third_party/WebKit/LayoutTests/bluetooth/generate.py' + + +def main(): + logging.basicConfig(level=logging.INFO) + logging.info(UPDATE_TIP) + generated_files = set() + # Tests data in gen-* files is the same as the data generated. + for generated_test in generate.GetGeneratedTests(): + generated_files.add(generated_test.path) + try: + with open(generated_test.path, 'r') as f: + data = f.read().decode('utf-8') + if data != generated_test.data: + logging.error('%s does not match template', generated_test.path) + return -1 + except IOError, e: + if e.errno == 2: + logging.error('Missing generated test:\n%s\nFor template:\n%s', + generated_test.path, + generated_test.template) + return -1 + + # Tests that there are no obsolete generated files. + previous_generated_files = set() + current_path = os.path.dirname(os.path.realpath(__file__)) + for root, _, filenames in os.walk(current_path): + for filename in fnmatch.filter(filenames, 'gen-*.https.html'): + previous_generated_files.add(os.path.join(root, filename)) + + if previous_generated_files != generated_files: + logging.error('There are extra generated tests. Please remove them.') + for test_path in previous_generated_files - generated_files: + logging.error('%s', test_path) + return -1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html b/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html index b0263f980a8..2835236d3b5 100644 --- a/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html +++ b/tests/wpt/web-platform-tests/bluetooth/idl/idl-Bluetooth.html @@ -4,6 +4,7 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html b/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html index 9449cf1ec88..b8649f11abe 100644 --- a/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html +++ b/tests/wpt/web-platform-tests/bluetooth/idl/idl-NavigatorBluetooth.html @@ -3,6 +3,7 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html index 56e905c6140..033570d842e 100644 --- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html @@ -6,12 +6,11 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html index 8c271df5005..d990dbf05b4 100644 --- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html @@ -5,13 +5,12 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html index adf77ba23ef..5a1dca7c97b 100644 --- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html @@ -6,15 +6,17 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html index e202e741f97..3c0f4c1164b 100644 --- a/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html @@ -9,19 +9,18 @@ const test_desc = 'requestDevice called with acceptAllDevices: true and with ' + 'optionalServices. Should get access to services.'; -bluetooth_test(() => - getTwoHealthThermometerServicesDevice() - .then(() => requestDeviceWithTrustedClick({ - acceptAllDevices: true, - optionalServices: ['health_thermometer'] - })) - .then(device => device.gatt.connect()) - .then(gattServer => gattServer.getPrimaryServices()) - .then(services => { - assert_equals(services.length, 2); - services.forEach(service => { - assert_equals(service.uuid, - BluetoothUUID.getService('health_thermometer')); - }); -}), test_desc); +bluetooth_test(() => getTwoHealthThermometerServicesDevice() + .then(() => requestDeviceWithTrustedClick({ + acceptAllDevices: true, + optionalServices: ['health_thermometer'] + })) + .then(device => device.gatt.connect()) + .then(gattServer => gattServer.getPrimaryServices()) + .then(services => { + assert_equals(services.length, 2); + services.forEach(service => { + assert_equals(service.uuid, + BluetoothUUID.getService('health_thermometer')); + }); + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html b/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html index ac577ad5ef2..c94ba55bbfd 100644 --- a/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html +++ b/tests/wpt/web-platform-tests/bluetooth/resources/health-thermometer-iframe.html @@ -4,27 +4,27 @@ let device; function requestDeviceWithOptionsAndConnect(options) { return navigator.bluetooth.requestDevice(options) - .then(device => device.gatt.connect()); + .then(device => device.gatt.connect()); } window.onmessage = messageEvent => { switch (messageEvent.data.type) { case 'RequestAndConnect': requestDeviceWithOptionsAndConnect(messageEvent.data.options) - .then(gatt => { - device = gatt.device; - parent.postMessage('Connected', '*'); - }).catch(err => { - parent.postMessage(`FAIL: ${err}`, '*'); - }); + .then(gatt => { + device = gatt.device; + parent.postMessage('Connected', '*'); + }).catch(err => { + parent.postMessage(`FAIL: ${err}`, '*'); + }); break; case 'DiscoverServices': requestDeviceWithOptionsAndConnect(messageEvent.data.options) - .then(gatt => gatt.getPrimaryServices()) - .then(() => parent.postMessage('DiscoveryComplete', '*')) - .catch(err => { - parent.postMessage(`FAIL: ${err}`, '*'); - }); + .then(gatt => gatt.getPrimaryServices()) + .then(() => parent.postMessage('DiscoveryComplete', '*')) + .catch(err => { + parent.postMessage(`FAIL: ${err}`, '*'); + }); break; default: parent.postMessage(`FAIL: Bad message type: ${messageEvent.data.type}`, diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template b/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template new file mode 100644 index 00000000000..714333c5e13 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/base_test_html.template @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js new file mode 100644 index 00000000000..8ff747c588d --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js @@ -0,0 +1,22 @@ +'use strict'; +const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.'; +const expected = new DOMException('GATT Characteristic no longer exists.', + 'InvalidStateError'); +let fake_peripheral, characteristic, fake_characteristic; + +bluetooth_test(() => getMeasurementIntervalCharacteristic() + .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _)) + .then(() => characteristic.getDescriptor(user_description.name)) + .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e)) + .then(() => fake_characteristic.remove()) + .then(() => fake_peripheral.simulateGATTServicesChanged()) + .then(() => assert_promise_rejects_with_message( + characteristic.CALLS([ + getDescriptor(user_description.name)| + getDescriptors(user_description.name)[UUID]| + getDescriptors()| + readValue()| + writeValue(new Uint8Array(1))| + startNotifications() + ]), expected)), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js new file mode 100644 index 00000000000..4e6bc3519bc --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js @@ -0,0 +1,32 @@ +'use strict'; +const test_desc = 'Calls to FUNCTION_NAME should return the same object.'; +let characteristic; + +bluetooth_test(() => getMeasurementIntervalCharacteristic() + .then(_ => ({characteristic} = _)) + .then(() => Promise.all([ + characteristic.CALLS([ + getDescriptor(user_description.alias)| + getDescriptors(user_description.alias) + ]), + characteristic.FUNCTION_NAME(user_description.name), + characteristic.FUNCTION_NAME(user_description.uuid) + ])) + .then(descriptors_arrays => { + assert_true(descriptors_arrays.length > 0) + + // Convert to arrays if necessary. + for (let i = 0; i < descriptors_arrays.length; i++) { + descriptors_arrays[i] = [].concat(descriptors_arrays[i]); + } + + for (let i = 1; i < descriptors_arrays.length; i++) { + assert_equals(descriptors_arrays[0].length, + descriptors_arrays[i].length); + } + + let base_set = new Set(descriptors_arrays[0]); + for (let descriptors of descriptors_arrays) { + descriptors.forEach(descriptor => assert_true(base_set.has(descriptor))); + } + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js new file mode 100644 index 00000000000..fabc74ffb30 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-before.js @@ -0,0 +1,22 @@ +'use strict'; +const test_desc = 'disconnect() called before FUNCTION_NAME. ' + + 'Reject with NetworkError.'; +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' + + 'first with `device.gatt.connect`.', + 'NetworkError'); +let device; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['generic_access'] + }) + .then(_ => ({device} = _)) + .then(() => device.gatt.disconnect()) + .then(() => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID]]), + expected)), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js new file mode 100644 index 00000000000..edabb07bccb --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-error.js @@ -0,0 +1,22 @@ +'use strict'; +const test_desc = 'disconnect() called during a FUNCTION_NAME ' + + 'call that fails. Reject with NetworkError.'; +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' + + 'first with `device.gatt.connect`.', 'NetworkError'); +let device; + +bluetooth_test(() => getEmptyHealthThermometerDevice() + .then(_ => ({device} = _)) + .then(() => { + let promise = assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID] + ]), + expected) + device.gatt.disconnect(); + return promise; + }), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js new file mode 100644 index 00000000000..84157a0693b --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-called-during-success.js @@ -0,0 +1,23 @@ +'use strict'; +const test_desc = 'disconnect() called during a FUNCTION_NAME call that ' + + 'succeeds. Reject with NetworkError.'; +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' + + 'first with `device.gatt.connect`.', + 'NetworkError'); + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['generic_access'] + }) + .then(({device}) => { + let promise = assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID] + ]), + expected); + device.gatt.disconnect(); + return promise; + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js new file mode 100644 index 00000000000..995fda34411 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js @@ -0,0 +1,39 @@ +'use strict'; +const test_desc = 'Calls on services after we disconnect and connect again. '+ + 'Should reject with InvalidStateError.'; +let device, services; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}] + }) + .then(_ => ({device} = _)) + .then(() => device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID]])) + // Convert to array if necessary. + .then(s => services = [].concat(s)) + .then(() => device.gatt.disconnect()) + .then(() => device.gatt.connect()) + .then(() => { + let promises = Promise.resolve(); + for (let service of services) { + let error = new DOMException( + `Service with UUID ${service.uuid} is no longer valid. Remember ` + + `to retrieve the service again after reconnecting.`, + 'InvalidStateError'); + promises = promises.then(() => + assert_promise_rejects_with_message( + service.getCharacteristic('measurement_interval'), + error)); + promises = promises.then(() => + assert_promise_rejects_with_message( + service.getCharacteristics(), + error)); + promises = promises.then(() => + assert_promise_rejects_with_message( + service.getCharacteristics('measurement_interval'), + error)); + } + return promises; + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js new file mode 100644 index 00000000000..2b6011642b6 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/disconnected-device.js @@ -0,0 +1,20 @@ +'use strict'; +const test_desc = 'FUNCTION_NAME called before connecting. Reject with ' + + 'NetworkError.'; +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. (Re)connect ' + + 'first with `device.gatt.connect`.', + 'NetworkError'); + +bluetooth_test(() => getDiscoveredHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['generic_access'] + }) + .then(({device}) => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID] + ]), + expected)), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js new file mode 100644 index 00000000000..e9e972359a7 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js @@ -0,0 +1,25 @@ +'use strict'; +const test_desc = 'Request for absent service without permission. Should ' + + 'Reject with SecurityError even if services have been discovered already.'; +const expected = new DOMException( + 'Origin is not allowed to access the service. Tip: Add the service ' + + 'UUID to \'optionalServices\' in requestDevice() options. ' + + 'https://goo.gl/HxfxSQ', + 'SecurityError'); +let device; + +bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({ + filters: [{services: ['health_thermometer']}] + }) + .then(_ => ({device} = _)) + .then(() => Promise.all([ + assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService(glucose.alias)| + getPrimaryServices(glucose.alias)[UUID] + ]), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(glucose.name), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(glucose.uuid), expected)])), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js new file mode 100644 index 00000000000..6b745d7e2a8 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js @@ -0,0 +1,16 @@ +'use strict'; +const test_desc = 'Request for absent service. Must reject with ' + + 'NotFoundError even when the services have previously been discovered.'; + +bluetooth_test(() => getHealthThermometerDeviceWithServicesDiscovered({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['glucose']}) + .then(({device}) => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('glucose')| + getPrimaryServices('glucose')[UUID] + ]), + new DOMException( + `No Services matching UUID ${glucose.uuid} found in Device.`, + 'NotFoundError'))), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js new file mode 100644 index 00000000000..35e838e92e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js @@ -0,0 +1,25 @@ +'use strict'; +const test_desc = 'Garbage Collection ran during a FUNCTION_NAME ' + + 'call that failed. Should not crash.' +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. (Re)connect first ' + + 'with `device.gatt.connect`.', + 'NetworkError'); +let promise; + +bluetooth_test(() => getEmptyHealthThermometerDevice() + .then(({device}) => { + promise = assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID] + ]), + expected); + // Disconnect called to clear attributeInstanceMap and allow the + // object to get garbage collected. + device.gatt.disconnect(); + return runGarbageCollection(); + }) + .then(() => promise), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js new file mode 100644 index 00000000000..7976bbd990b --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js @@ -0,0 +1,24 @@ +'use strict'; +const test_desc = 'Garbage Collection ran during a FUNCTION_NAME call that ' + + 'succeeds. Should not crash.'; +const expected = new DOMException( + 'GATT Server is disconnected. Cannot retrieve services. ' + + '(Re)connect first with `device.gatt.connect`.', + 'NetworkError'); +let promise; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}] + }) + .then(({device}) => { + promise = assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('health_thermometer') | + getPrimaryServices() | + getPrimaryServices('health_thermometer')[UUID]]), + expected); + device.gatt.disconnect(); + return runGarbageCollection(); + }) + .then(() => promise), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js new file mode 100644 index 00000000000..e72128a76ff --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js @@ -0,0 +1,35 @@ +'use strict'; +const test_desc = 'Calls to FUNCTION_NAME after a disconnection should return ' + + 'a different object.'; +let device, services_first_connection, services_second_connection; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['generic_access'] + }) + .then(_ => ({device} = _)) + .then(() => device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID]])) + .then(services => services_first_connection = services) + .then(() => device.gatt.disconnect()) + .then(() => device.gatt.connect()) + .then(() => device.gatt.PREVIOUS_CALL) + .then(services => services_second_connection = services) + .then(() => { + // Convert to arrays if necessary. + services_first_connection = [].concat(services_first_connection); + services_second_connection = [].concat(services_second_connection); + + assert_equals(services_first_connection.length, + services_second_connection.length); + + let first_connection_set = new Set(services_first_connection); + let second_connection_set = new Set(services_second_connection); + + // The two sets should be disjoint. + let common_services = services_first_connection.filter( + val => second_connection_set.has(val)); + assert_equals(common_services.length, 0); + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js new file mode 100644 index 00000000000..3b3bdd19d20 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/get-same-object.js @@ -0,0 +1,33 @@ +'use strict'; +const test_desc = 'Calls to FUNCTION_NAME should return the same object.'; +let device; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['generic_access']}) + .then(({device}) => Promise.all([ + device.gatt.CALLS([ + getPrimaryService('health_thermometer')| + getPrimaryServices()| + getPrimaryServices('health_thermometer')[UUID]]), + device.gatt.PREVIOUS_CALL])) + .then(([services_first_call, services_second_call]) => { + // Convert to arrays if necessary. + services_first_call = [].concat(services_first_call); + services_second_call = [].concat(services_second_call); + + assert_equals(services_first_call.length, services_second_call.length); + + let first_call_set = new Set(services_first_call); + assert_equals(services_first_call.length, first_call_set.size); + let second_call_set = new Set(services_second_call); + assert_equals(services_second_call.length, second_call_set.size); + + services_first_call.forEach(service => { + assert_true(second_call_set.has(service)) + }); + + services_second_call.forEach(service => { + assert_true(first_call_set.has(service)); + }); + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js new file mode 100644 index 00000000000..56e67f0ac13 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/invalid-service-name.js @@ -0,0 +1,22 @@ +'use strict'; +const test_desc = 'Wrong Service name. Reject with TypeError.'; +const expected = new DOMException( + "Failed to execute 'FUNCTION_NAME' on " + + "'BluetoothRemoteGATTServer': Invalid Service name: " + + "'wrong_name'. It must be a valid UUID alias (e.g. 0x1234), " + + "UUID (lowercase hex characters e.g. " + + "'00001234-0000-1000-8000-00805f9b34fb'), " + + "or recognized standard name from " + + "https://www.bluetooth.com/specifications/gatt/services" + + " e.g. 'alert_notification'.", + 'TypeError'); + +bluetooth_test(() => getHealthThermometerDevice() + .then(({device}) => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('wrong_name')| + getPrimaryServices('wrong_name') + ]), + expected, + 'Wrong Service name passed.')), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js new file mode 100644 index 00000000000..9bab3be8046 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-absent-service.js @@ -0,0 +1,23 @@ +'use strict'; +const test_desc = 'Request for absent service without permission. ' + + 'Reject with SecurityError.'; +const expected = new DOMException( + 'Origin is not allowed to access the service. Tip: Add the service UUID ' + + 'to \'optionalServices\' in requestDevice() options. ' + + 'https://goo.gl/HxfxSQ', + 'SecurityError'); + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}] + }) + .then(({device}) => Promise.all([ + assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService(glucose.alias)| + getPrimaryServices(glucose.alias)[UUID] + ]), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(glucose.name), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(glucose.uuid), expected)])), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js new file mode 100644 index 00000000000..52b07cc48ba --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-for-any-service.js @@ -0,0 +1,17 @@ +'use strict'; +const test_desc = 'Request for present service without permission to access ' + + 'any service. Reject with SecurityError.'; +const expected = new DOMException( + 'Origin is not allowed to access any service. Tip: Add the service ' + + 'UUID to \'optionalServices\' in requestDevice() options. ' + + 'https://goo.gl/HxfxSQ', + 'SecurityError'); + +bluetooth_test(() => getHealthThermometerDevice({acceptAllDevices: true}) + .then(({device}) => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('heart_rate')| + getPrimaryServices()| + getPrimaryServices('heart_rate')[UUID]]), + expected)), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js new file mode 100644 index 00000000000..67081ae56be --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/no-permission-present-service.js @@ -0,0 +1,22 @@ +'use strict'; +const test_desc = 'Request for present service without permission. ' + + 'Reject with SecurityError.'; +const expected = new DOMException( + 'Origin is not allowed to access the service. Tip: Add the service UUID ' + + 'to \'optionalServices\' in requestDevice() options. https://goo.gl/HxfxSQ', + 'SecurityError'); + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}] + }) + .then(({device}) => Promise.all([ + assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService(generic_access.alias)| + getPrimaryServices(generic_access.alias)[UUID] + ]), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(generic_access.name), expected), + assert_promise_rejects_with_message( + device.gatt.FUNCTION_NAME(generic_access.uuid), expected)])), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js new file mode 100644 index 00000000000..0fd2dace787 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/script-tests/server/service-not-found.js @@ -0,0 +1,16 @@ +'use strict'; +const test_desc = 'Request for absent service. Reject with NotFoundError.'; + +bluetooth_test(() => getHealthThermometerDevice({ + filters: [{services: ['health_thermometer']}], + optionalServices: ['glucose'] + }) + .then(({device}) => assert_promise_rejects_with_message( + device.gatt.CALLS([ + getPrimaryService('glucose')| + getPrimaryServices('glucose')[UUID] + ]), + new DOMException( + `No Services matching UUID ${glucose.uuid} found in Device.`, + 'NotFoundError'))), + test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html index 8b158862d3b..aebd681c2ad 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/connection-succeeds.https.html @@ -6,12 +6,14 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html index 3d83683e0eb..f70befcb4b4 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.html @@ -6,17 +6,17 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html b/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html index 09e3ac522e5..c3e35532835 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/connect/get-same-gatt-server.https.html @@ -6,20 +6,20 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html index 89590fa147c..cfd4bc5a202 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/device-same-object.https.html @@ -6,14 +6,14 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html index 65ed1aa2b8a..e0d8439ab66 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/connect-disconnect-twice.https.html @@ -12,18 +12,18 @@ let device, fake_peripheral; // TODO(569716): Test that the disconnect signal was sent to the device. bluetooth_test(() => getDiscoveredHealthThermometerDevice() - .then(_ => ({device, fake_peripheral} = _)) - .then(() => fake_peripheral.setNextGATTConnectionResponse({ - code: HCI_SUCCESS, - })) - .then(() => device.gatt.connect() - .then(gattServer => { - gattServer.disconnect(); - assert_false(gattServer.connected); - }) - .then(() => device.gatt.connect()) - .then(gattServer => { - gattServer.disconnect(); - assert_false(gattServer.connected); - })), test_desc); + .then(_ => ({device, fake_peripheral} = _)) + .then(() => fake_peripheral.setNextGATTConnectionResponse({ + code: HCI_SUCCESS, + })) + .then(() => device.gatt.connect() + .then(gattServer => { + gattServer.disconnect(); + assert_false(gattServer.connected); + }) + .then(() => device.gatt.connect()) + .then(gattServer => { + gattServer.disconnect(); + assert_false(gattServer.connected); + })), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html index 030abf783f0..8b1459db192 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/detach-gc.https.html @@ -11,26 +11,26 @@ const test_desc = 'Detach frame then garbage collect. We shouldn\'t crash.'; let iframe = document.createElement('iframe'); bluetooth_test(() => setUpConnectableHealthThermometerDevice() - // 1. Load the iframe. - .then(() => new Promise(resolve => { - iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; - document.body.appendChild(iframe); - iframe.addEventListener('load', resolve); - })) - // 2. Connect device, detach the iframe, and run garbage collection. - .then(() => new Promise(resolve => { - callWithTrustedClick(() => { - iframe.contentWindow.postMessage({ - type: 'RequestAndConnect', - options: {filters: [{services: ['health_thermometer']}]} - }, '*'); - }); + // 1. Load the iframe. + .then(() => new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + })) + // 2. Connect device, detach the iframe, and run garbage collection. + .then(() => new Promise(resolve => { + callWithTrustedClick(() => { + iframe.contentWindow.postMessage({ + type: 'RequestAndConnect', + options: {filters: [{services: ['health_thermometer']}]} + }, '*'); + }); - window.onmessage = messageEvent => { - assert_equals(messageEvent.data, 'Connected'); - iframe.remove(); - runGarbageCollection().then(resolve); - } -})), test_desc) + window.onmessage = messageEvent => { + assert_equals(messageEvent.data, 'Connected'); + iframe.remove(); + runGarbageCollection().then(resolve); + } + })), test_desc) diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html index d0e830496fe..5dada7a9c99 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html @@ -12,15 +12,15 @@ let device, fake_peripheral; // TODO(569716): Test that the disconnect signal was sent to the device. bluetooth_test(() => getDiscoveredHealthThermometerDevice() - .then(_ => ({device, fake_peripheral} = _)) - .then(() => fake_peripheral.setNextGATTConnectionResponse({ - code: HCI_SUCCESS, - })) - .then(() => device.gatt.connect()) - .then(gattServer => { - gattServer.disconnect(); - assert_false(gattServer.connected); - gattServer.disconnect(); - assert_false(gattServer.connected); -}), test_desc); + .then(_ => ({device, fake_peripheral} = _)) + .then(() => fake_peripheral.setNextGATTConnectionResponse({ + code: HCI_SUCCESS, + })) + .then(() => device.gatt.connect()) + .then(gattServer => { + gattServer.disconnect(); + assert_false(gattServer.connected); + gattServer.disconnect(); + assert_false(gattServer.connected); + }), test_desc); diff --git a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html index d95c52d38c4..04ccedeb5e9 100644 --- a/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/server/disconnect/gc-detach.https.html @@ -11,28 +11,28 @@ const test_desc = 'Garbage collect then detach frame. We shouldn\'t crash.'; let iframe = document.createElement('iframe'); bluetooth_test(() => setUpConnectableHealthThermometerDevice() - // 1. Load the iframe. - .then((f) => new Promise(resolve => { - iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; - document.body.appendChild(iframe); - iframe.addEventListener('load', resolve); - })) - // 2. Connect device, run garbage collection, and detach iframe. - .then(() => new Promise(resolve => { - callWithTrustedClick(() => { - iframe.contentWindow.postMessage({ - type: 'RequestAndConnect', - options: {filters: [{services: ['health_thermometer']}]} - }, '*'); - }); - - window.onmessage = messageEvent => { - assert_equals(messageEvent.data, 'Connected'); - runGarbageCollection().then(() => { - iframe.remove(); - resolve(); + // 1. Load the iframe. + .then((f) => new Promise(resolve => { + iframe.src = '/bluetooth/resources/health-thermometer-iframe.html'; + document.body.appendChild(iframe); + iframe.addEventListener('load', resolve); + })) + // 2. Connect device, run garbage collection, and detach iframe. + .then(() => new Promise(resolve => { + callWithTrustedClick(() => { + iframe.contentWindow.postMessage({ + type: 'RequestAndConnect', + options: {filters: [{services: ['health_thermometer']}]} + }, '*'); }); - } -})), test_desc) + + window.onmessage = messageEvent => { + assert_equals(messageEvent.data, 'Connected'); + runGarbageCollection().then(() => { + iframe.remove(); + resolve(); + }); + } + })), test_desc) diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html new file mode 100644 index 00000000000..8a7e08f139f --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html new file mode 100644 index 00000000000..6656ff16a14 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html new file mode 100644 index 00000000000..760be97ebd8 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html new file mode 100644 index 00000000000..4c3c577fcc5 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html new file mode 100644 index 00000000000..abfd1a9c2da --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html new file mode 100644 index 00000000000..098eec4113b --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html new file mode 100644 index 00000000000..233a45adf06 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html new file mode 100644 index 00000000000..ab93d334818 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html new file mode 100644 index 00000000000..647aa504a20 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html new file mode 100644 index 00000000000..f09e4e65c27 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html @@ -0,0 +1,42 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html new file mode 100644 index 00000000000..35893d24a60 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.html @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html new file mode 100644 index 00000000000..f055cb30751 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html new file mode 100644 index 00000000000..ced2bc653c8 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html new file mode 100644 index 00000000000..99d5c234044 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html new file mode 100644 index 00000000000..2a578365e03 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html new file mode 100644 index 00000000000..aca14c5fd40 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html new file mode 100644 index 00000000000..bdf55a6a0aa --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html new file mode 100644 index 00000000000..45f13382f3c --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html new file mode 100644 index 00000000000..d7cb43725ed --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html new file mode 100644 index 00000000000..27440af9162 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html new file mode 100644 index 00000000000..7b9955ade44 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html new file mode 100644 index 00000000000..4b09bce4eee --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html new file mode 100644 index 00000000000..2ef6b5904ac --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html new file mode 100644 index 00000000000..bc21ea1f2db --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html new file mode 100644 index 00000000000..0a87bce2d03 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html new file mode 100644 index 00000000000..dbc4428665c --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html new file mode 100644 index 00000000000..460b94d2565 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html new file mode 100644 index 00000000000..38e0d455b46 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html new file mode 100644 index 00000000000..31ab862e82c --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html new file mode 100644 index 00000000000..a79060adc56 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html new file mode 100644 index 00000000000..b6f0e4a3eef --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html new file mode 100644 index 00000000000..baf7865b2f5 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html new file mode 100644 index 00000000000..b87a24a5e0e --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html @@ -0,0 +1,42 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html new file mode 100644 index 00000000000..9ed3c50e6be --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html @@ -0,0 +1,42 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html new file mode 100644 index 00000000000..9d213d5dfd8 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html new file mode 100644 index 00000000000..258bda0ec68 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html new file mode 100644 index 00000000000..c497a0ab119 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html new file mode 100644 index 00000000000..0251ea02fbf --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html new file mode 100644 index 00000000000..332f016ea45 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html new file mode 100644 index 00000000000..34d7043caf6 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html new file mode 100644 index 00000000000..1f3f291a129 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html new file mode 100644 index 00000000000..cb5e0941f66 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html index 9cf34c202f2..9746f4b058c 100644 --- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristic/characteristic-found.https.html @@ -6,24 +6,24 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html index 48c3c28e02a..5620f2c9245 100644 --- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html @@ -6,13 +6,19 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html index 868476a88c9..9139ae10f89 100644 --- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html @@ -6,43 +6,39 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html index b1b0fb4e648..952e3e6b5e9 100644 --- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-found.https.html @@ -6,44 +6,43 @@ diff --git a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html index f9c8efbfd74..6401740681a 100644 --- a/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html +++ b/tests/wpt/web-platform-tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.html @@ -6,11 +6,15 @@ diff --git a/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html b/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html new file mode 100644 index 00000000000..673174c1f03 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/form-action/form-action-self-allowed-target-blank.html @@ -0,0 +1,39 @@ + + + + + + + + + + +
    +
    + +

    + Test that "form-action 'self'" works correctly when the form uses + target="_blank". If this test passes, a new window must open after pressing + "submit". +

    + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html new file mode 100644 index 00000000000..e103a9fb246 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-allowed.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html new file mode 100644 index 00000000000..890a65f82cf --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-blocked.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html new file mode 100644 index 00000000000..dd8071b66ee --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers new file mode 100644 index 00000000000..2b1d42a8d16 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-allowed.html.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: prefetch-src 'self' +Link: ;rel=prefetch diff --git a/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html new file mode 100644 index 00000000000..382c99a80d3 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/prefetch-src/prefetch-header-blocked.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js b/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js index ba179d6bab4..7e5417b5e68 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js +++ b/tests/wpt/web-platform-tests/content-security-policy/support/checkReport.sub.js @@ -13,9 +13,16 @@ var reportValue = "{{GET[reportValue]}}"; var reportExists = "{{GET[reportExists]}}"; var noCookies = "{{GET[noCookies]}}"; + var reportCookieName = "{{GET[reportCookieName]}}" + var testName = "{{GET[testName]}}" + var cookiePresent = "{{GET[cookiePresent]}}" + var reportCount = "{{GET[reportCount]}}" var location = window.location; - var thisTestName = location.pathname.split('/')[location.pathname.split('/').length - 1].split('.')[0]; + if (reportCookieName == "") { + // fallback on test file name if cookie name not specified + reportCookieName = location.pathname.split('/')[location.pathname.split('/').length - 1].split('.')[0]; + } var reportID = ""; @@ -24,7 +31,7 @@ var cookieName = cookies[i].split('=')[0].trim(); var cookieValue = cookies[i].split('=')[1].trim(); - if (cookieName == thisTestName) { + if (cookieName == reportCookieName) { reportID = cookieValue; var cookieToDelete = cookieName + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=" + document.location.pathname.substring(0, document.location.pathname.lastIndexOf('/') + 1); document.cookie = cookieToDelete; @@ -33,9 +40,10 @@ } var timeout = document.querySelector("meta[name=timeout][content=long]") ? 50 : 5; - var reportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=take&timeout=" + timeout + "&reportID=" + reportID; + var reportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_report&timeout=" + timeout + "&reportID=" + reportID; - var reportTest = async_test("Violation report status OK."); + if (testName == "") testName = "Violation report status OK."; + var reportTest = async_test(testName); function assert_field_value(field, value, field_name) { assert_true(field.indexOf(value.split(" ")[0]) != -1, @@ -77,17 +85,38 @@ report.send(); }); - if (noCookies) { - var cookieTest = async_test("No cookies sent with report."); + if (noCookies || cookiePresent) { + var cookieTest = async_test("Test report cookies."); var cookieReport = new XMLHttpRequest(); cookieReport.onload = cookieTest.step_func(function () { - var data = JSON.parse(cookieReport.responseText); - assert_equals(data.reportCookies, "None"); - cookieTest.done(); + var data = JSON.parse(cookieReport.responseText); + if (noCookies) { + assert_equals(data.reportCookies, "None", "Report should not contain any cookies"); + } + + if (cookiePresent) { + assert_true(data.reportCookies.hasOwnProperty(cookiePresent), "Report should contain cookie: " + cookiePresent); + } + cookieTest.done(); }); - var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=cookies&timeout=" + timeout + "&reportID=" + reportID; + var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_cookies&timeout=" + timeout + "&reportID=" + reportID; cookieReport.open("GET", cReportLocation, true); cookieReport.send(); - }; + } + + if (reportCount != "") { + var reportCountTest = async_test("Test number of sent reports."); + var reportCountReport = new XMLHttpRequest(); + reportCountReport.onload = reportCountTest.step_func(function () { + var data = JSON.parse(reportCountReport.responseText); + + assert_equals(data.report_count, reportCount, "Report count was not what was expected."); + + reportCountTest.done(); + }); + var cReportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_count&timeout=" + timeout + "&reportID=" + reportID; + reportCountReport.open("GET", cReportLocation, true); + reportCountReport.send(); + } })(); diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html b/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html new file mode 100644 index 00000000000..e1bdf7102f2 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/postmessage-pass-to-opener.html @@ -0,0 +1,3 @@ + diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js new file mode 100644 index 00000000000..db6d87593df --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-helper.js @@ -0,0 +1,65 @@ +test(t => { + assert_true(document.createElement('link').relList.supports('prefetch')); +}, "Browser supports prefetch."); + +test(t => { + assert_true(!!window.PerformanceResourceTiming); +}, "Browser supports performance APIs."); + +async function waitUntilResourceDownloaded(url) { + await new Promise((resolve, reject) => { + if (performance.getEntriesByName(url).length >= 1) + resolve(); + + let observer = new PerformanceObserver(list => { + list.getEntries().forEach(entry => { + if (entry.name == url) { + resolve(); + } + }); + }); + }); +} + +async function assert_resource_not_downloaded(test, url) { + if (performance.getEntriesByName(url).length >= 1) { + (test.unreached_func(`'${url}' should not have downloaded.`))(); + } +} + +function assert_link_prefetches(test, link) { + assert_no_csp_event_for_url(test, link.href); + + link.onerror = test.unreached_func('onerror should not fire.'); + + // Test is finished when either the `load` event fires, or we get a performance + // entry showing that the resource loaded successfully. + link.onload = test.step_func(test.step_func_done()); + waitUntilResourceDownloaded(link.href).then(test.step_func_done()); + + document.head.appendChild(link); +} + +function assert_link_does_not_prefetch(test, link) { + let cspEvent = false; + let errorEvent = false; + + waitUntilCSPEventForURL(test, link.href) + .then(test.step_func(e => { + cspEvent = true; + assert_equals(e.violatedDirective, "prefetch-src"); + assert_equals(e.effectiveDirective, "prefetch-src"); + + if (errorEvent) + test.done(); + })); + + link.onerror = test.step_func(e => { + errorEvent = true; + if (cspEvent) + test.done(); + }); + link.onload = test.unreached_func('onload should not fire.'); + + document.head.appendChild(link); +} diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css new file mode 100644 index 00000000000..4c4fa464420 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css @@ -0,0 +1,3 @@ +/* This CSS file sends some headers: + * Link: ;rel=prefetch + */ diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers new file mode 100644 index 00000000000..eaf7b166385 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/prefetch-subresource.css.headers @@ -0,0 +1 @@ +Link: ;rel=prefetch diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/report.py b/tests/wpt/web-platform-tests/content-security-policy/support/report.py index 193315fa07b..3b249f30b3e 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/support/report.py +++ b/tests/wpt/web-platform-tests/content-security-policy/support/report.py @@ -2,33 +2,61 @@ import time import json import re +def retrieve_from_stash(request, key, timeout, default_value): + t0 = time.time() + while time.time() - t0 < timeout: + time.sleep(0.5) + value = request.server.stash.take(key=key) + if value is not None: + return value + + return default_value + def main(request, response): - op = request.GET.first("op"); - key = request.GET.first("reportID") + op = request.GET.first("op"); + key = request.GET.first("reportID") + cookie_key = re.sub('^....', 'cccc', key) + count_key = re.sub('^....', 'dddd', key) - if op == "take": - timeout = float(request.GET.first("timeout")) - t0 = time.time() - while time.time() - t0 < timeout: - time.sleep(0.5) - value = request.server.stash.take(key=key) - if value is not None: - return [("Content-Type", "application/json")], value + try: + timeout = request.GET.first("timeout") + except: + timeout = 0.5 + timeout = float(timeout) - return [("Content-Type", "application/json")], json.dumps({'error': 'No such report.' , 'guid' : key}) + if op == "retrieve_report": + return [("Content-Type", "application/json")], retrieve_from_stash(request, key, timeout, json.dumps({'error': 'No such report.' , 'guid' : key})) - if op == "cookies": - cval = request.server.stash.take(key=re.sub('^...', 'ccc', key)) - if cval is None: - cval = "\"None\"" + if op == "retrieve_cookies": + return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + str(retrieve_from_stash(request, cookie_key, timeout, "\"None\"")) + "}" - return [("Content-Type", "application/json")], "{ \"reportCookies\" : " + cval + "}" + if op == "retrieve_count": + return [("Content-Type", "application/json")], json.dumps({'report_count': str(retrieve_from_stash(request, count_key, timeout, 0))}) - if hasattr(request, 'Cookies'): - request.server.stash.put(key=re.sub('^...', 'ccc', key), value=request.Cookies) + # save cookies + if hasattr(request, 'cookies') and len(request.cookies.keys()) > 0: + # convert everything into strings and dump it into a dict so it can be jsoned + temp_cookies_dict = {} + for dict_key in request.cookies.keys(): + temp_cookies_dict[str(dict_key)] = str(request.cookies.get_list(dict_key)) + with request.server.stash.lock: + request.server.stash.take(key=cookie_key) + request.server.stash.put(key=cookie_key, value=json.dumps(temp_cookies_dict)) - report = request.body - report.rstrip() + # save latest report + report = request.body + report.rstrip() + with request.server.stash.lock: request.server.stash.take(key=key) request.server.stash.put(key=key, value=report) - return [("Content-Type", "text/plain")], "Recorded report " + report + + with request.server.stash.lock: + # increment report count + count = request.server.stash.take(key=count_key) + if count is None: + count = 0 + count += 1 + request.server.stash.put(key=count_key, value=count) + + # return acknowledgement report + return [("Content-Type", "text/plain")], "Recorded report " + report diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht index 43179e6ce7c..825ab5ab2ee 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-001.xht @@ -4,6 +4,7 @@ CSS Test: Class selectors with only a partial match of 'class' attribute + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht index 7005634602f..1aac525555f 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-002.xht @@ -4,6 +4,7 @@ CSS Test: Class selectors with a type + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht index 9ed65d01135..f09716610fe 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-003.xht @@ -4,6 +4,7 @@ CSS Test: Class selectors without a type + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht index 29b22615681..c7faefbce17 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-004.xht @@ -4,6 +4,7 @@ CSS Test: Invalid class selectors with a space between the "." and the class name + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht index ee809f3809e..a62adaee1cc 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-005.xht @@ -4,6 +4,7 @@ CSS Test: Invalid class selectors with a carriage return between the "." and the class name + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht index 2010fb8267b..c55443a9176 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-006.xht @@ -4,6 +4,7 @@ CSS Test: Multiple class selectors + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht index e336bf4c9de..c27f3f2edd5 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-007.xht @@ -4,6 +4,7 @@ CSS Test: Multiple class selectors and missing class values + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht index 375a6d6ca0d..b4ceabb6a02 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-008.xht @@ -5,6 +5,7 @@ + -

    This line should be green.

    +

    This should have a green background.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht index 99f3ebc7bf2..e0fd5bc19a3 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-010.xht @@ -5,13 +5,15 @@ + + -

    This line should be green.

    +

    This should have a green background.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht index 2af242bde6a..ac49276ec29 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-011.xht @@ -5,13 +5,15 @@ + + -

    This line should be green.

    +

    This should have a green background.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html new file mode 100644 index 00000000000..52f9a3abcec --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012-ref.html @@ -0,0 +1,20 @@ + + +CSS Reftest Reference + + +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    +

    This line should be green.

    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht index b822f1b2e7b..ea57e2b8a51 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/class-selector-012.xht @@ -5,6 +5,8 @@ + + + +
    Filler Text
    +
    Filler Text
    +

    Test passes if the first "Filler Text" above is green and the second one is black.

    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht index e8d4e6613fe..9f60cdc59e2 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-001.xht @@ -4,6 +4,7 @@ CSS Test: First-child pseudo-class + + + Filler Text +
    Filler Text
    +
    Filler Text
    +

    Test passes if the second line of "Filler Text" above is green and the first and third lines are black.

    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht index 588d8f931c9..d2c6512daba 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-child-selector-002.xht @@ -4,6 +4,7 @@ CSS Test: First-child pseudo-class with text node + -

    This should be green.

    +

    This text should be green.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html new file mode 100644 index 00000000000..ea97ba2a174 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000-ref.html @@ -0,0 +1,14 @@ + + +CSS Reftest Reference + + +

    This next line should be green:

    +
    TESTING
    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht index 1b2b6fff4d6..0fdef1893b9 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-000.xht @@ -5,6 +5,7 @@ + + +

    Test passes if the letter "F" below is green.

    +
    Filler Text
    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht index c386e3ef897..7ae5c3a05b1 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-001.xht @@ -4,6 +4,7 @@ CSS Test: First-letter pseudo-element + + +

    Test passes if the number "4" below is green.

    +
    42 Filler Text
    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht index 42ea44590b4..876f2ef7711 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-003.xht @@ -4,6 +4,7 @@ CSS Test: First-letter as a digit + + +

    Test passes if the letter "F" below is green.

    + + + + +
    Filler Text
    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht index 45b7bb06101..2f19c5d58d8 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-letter-selector-007.xht @@ -4,6 +4,7 @@ CSS Test: First-letter with table cell elements + -

    This sentence should have a green background.

    +

    This should have a green background.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht index c1bb6cddd44..3c29e0383aa 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-019.xht @@ -6,11 +6,12 @@ + -

    This line should be green.

    +

    This text should be green.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht index 63acd1cc710..d0c8ddcc0f3 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-020.xht @@ -6,11 +6,12 @@ + -

    This line should be green.

    +

    This text should be green.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht index af425a0306e..d071fc00047 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-pseudo-021.xht @@ -5,6 +5,7 @@ + -

    This line should be green.

    +

    This text should be green.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht index b64f927593a..bbfa65201e3 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/first-line-selector-010.xht @@ -4,6 +4,7 @@ CSS Test: First-line after a BR + -

    Test passes if there is no red visible on the page.

    +

    Test passes if the "Filler Text" below is green.

    Filler Text
    \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html new file mode 100644 index 00000000000..6f57dfc3917 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004-ref.html @@ -0,0 +1,15 @@ + + +CSS Reftest Reference + + +

    Test passes if the "Filler Text" below is green.

    +
    Filler Text +

    Filler Text

    +
    + + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht index 4b8ec89ddc4..d15c8eb502b 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-004.xht @@ -4,6 +4,7 @@ CSS Test: Inherited lang attribute selected + -

    PREREQUISITE: Set the page "content-language" header to "fr" (French).

    Test passes if the "Filler Text" below is green.

    Filler Text
    diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht index 244639c544d..e647695a5a0 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/lang-selector-006.xht @@ -4,6 +4,7 @@ CSS Test: Lang selector and document language set via meta tag + diff --git a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht index be667b078e3..d0bd9f9820d 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/selectors/pseudo-006.xht @@ -4,6 +4,7 @@ CSS Test: First-letter pseudo-element case sensitivity + -

    Test passes if "Filler Text" is green.

    +

    Test passes if the "Filler Text" below is green.

    Filler Text
    \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht b/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht index 3002a970cb5..e09d9700693 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/ident-003.xht @@ -5,7 +5,7 @@ - + - - - - -

    This should be green.

    -

    This should be green.

    - - - diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess deleted file mode 100644 index 7760371a4d9..00000000000 --- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/.htaccess +++ /dev/null @@ -1,40 +0,0 @@ - -ForceType text/plain - - - -AddCharset iso-8859-1 .css - - - -AddCharset iso-8859-11 .css - - - -AddCharset iso-8859-5 .css - - - -AddCharset iso-8859-6 .css - - - -AddCharset iso-8859-7 .css - - - -AddCharset iso-8859-8 .css - - - -AddCharset koi8-r .css - - - -RemoveCharset .css - - - -AddCharset utf-16be .css - - diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers new file mode 100644 index 00000000000..b2d94d06995 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-001.css.headers @@ -0,0 +1 @@ +Content-Type: text/css; charset=Shift_JIS diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers new file mode 100644 index 00000000000..b2d94d06995 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-002.css.headers @@ -0,0 +1 @@ +Content-Type: text/css; charset=Shift_JIS diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers new file mode 100644 index 00000000000..b2d94d06995 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-003.css.headers @@ -0,0 +1 @@ +Content-Type: text/css; charset=Shift_JIS diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css deleted file mode 100644 index a9b14d8dfb8..00000000000 --- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-004.css +++ /dev/null @@ -1,4 +0,0 @@ -.•½˜a, #div2 -{ - color: green; -} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css deleted file mode 100644 index a9b14d8dfb8..00000000000 --- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-005.css +++ /dev/null @@ -1,4 +0,0 @@ -.•½˜a, #div2 -{ - color: green; -} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css deleted file mode 100644 index a9b14d8dfb8..00000000000 --- a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/at-charset-006.css +++ /dev/null @@ -1,4 +0,0 @@ -.•½˜a, #div2 -{ - color: green; -} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers new file mode 100644 index 00000000000..a1f9e38d909 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/syntax/support/plaintext.css.headers @@ -0,0 +1 @@ +Content-Type: text/plain diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html new file mode 100644 index 00000000000..117b41c2ab2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001-ref.html @@ -0,0 +1,7 @@ + + +CSS Reference + +

    Test passes if the words "Filler Text" below are all on the same line.

    +
    Filler Text Filler Text Filler Text
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht index d228b357b10..d575df64825 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-001.xht @@ -5,6 +5,7 @@ + + +

    Test passes if there are three lines of "Filler Text" below and the middle line has a blue background.

    +
    Filler Text
    +
    Filler Text
    +
    Filler Text
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht index 4e8334e5870..bc7fd55873d 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-002.xht @@ -5,6 +5,7 @@ + + +

    Test passes if there are three lines of "Filler Text" below and if the middle "Filler Text" has a orange background and a marker bullet on its left-hand side. The marker bullet should not have an orange background.

    +
    Filler Text
    +
    Filler Text
    +
    Filler Text
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht index 032e0c3e631..546dfd60f59 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-003.xht @@ -5,6 +5,7 @@ + + +

    Test passes if the "Filler Text" below is below the box.

    +
    +
    Filler Text
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht index 28bdfdb0ccf..917f13e863a 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-006.xht @@ -5,6 +5,7 @@ + + +

    Test passes if the "Filler Text" below is above the box.

    +
    Filler Text
    +
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht index d6fe5e43149..c7b3644967b 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-008.xht @@ -5,6 +5,7 @@ + + +

    Test passes if the "Filler Text" below is inside the box.

    +
    Filler Text
    +
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht index 4ebbe1d2b83..20f7e76bd7d 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/caption-side-applies-to-017.xht @@ -5,6 +5,7 @@ + + +

    Test passes if the orange and blue boxes below are the same width.

    +
    +
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht index 90e706e087a..4501b584f39 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-001.xht @@ -4,6 +4,7 @@ CSS Test: Collapsing borders model row width equation (auto layout) + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html new file mode 100644 index 00000000000..c9c30c2a3d5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003-ref.html @@ -0,0 +1,21 @@ + + +CSS Reference + + +

    Test passes if the orange and blue boxes below are the same height.

    +
    + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht index 9a0b5f05c9d..8616e697cd1 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-003.xht @@ -4,6 +4,7 @@ CSS Test: Top table border width under collapsing borders model + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht index d48fdffb66d..6fe47429e84 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-007.xht @@ -4,6 +4,7 @@ CSS Test: Left table border width under collapsing borders model + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht index 65746589a26..23a4b31c14a 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-008.xht @@ -4,6 +4,7 @@ CSS Test: Right table border width under collapsing borders model + diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht index dfd35f2d6ac..6f0b864b694 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/collapsing-border-model-009.xht @@ -4,6 +4,7 @@ CSS Test: Bottom table border width under collapsing borders model + -

    Test passes if there is no red visible on the page.

    +

    Test passes if there is a filled green square and no red.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht index 5242ecdfa88..5b6309c2dd6 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/row-visibility-002.xht @@ -4,6 +4,7 @@ CSS Test: Row group and the 'visibility' property + -

    Test passes if there is no red visible on the page.

    +

    Test passes if there is a filled green square and no red.

    diff --git a/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht b/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht index 3f095742f8a..3b64c7ac306 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/tables/table-cell-001.xht @@ -4,6 +4,7 @@ CSS Test: Table-cell + -

    Test passes if there is a square below.

    +

    Test passes if there is a filled black square.

    diff --git a/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html b/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html new file mode 100644 index 00000000000..d301f1d6a1b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-content/element-replacement-ref.html @@ -0,0 +1,4 @@ + +Reference for the content CSS attribute can replace an element's contents + + diff --git a/tests/wpt/web-platform-tests/css/css-content/element-replacement.html b/tests/wpt/web-platform-tests/css/css-content/element-replacement.html new file mode 100644 index 00000000000..a78e9f713b2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-content/element-replacement.html @@ -0,0 +1,14 @@ + +The content CSS attribute can replace an element's contents + + + + + + +

    This text should not be visible

    diff --git a/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg b/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg new file mode 100644 index 00000000000..d5de6b4c9da --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-content/resources/rect.svg @@ -0,0 +1,3 @@ + + + diff --git a/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html b/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html new file mode 100644 index 00000000000..51bf96846c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-display/display-contents-text-inherit-002.html @@ -0,0 +1,16 @@ + + +CSS Display: Apply white-space property of display:contents element to inline children + + + +

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

    +
    + Two + lines + +
    + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html index 4bde365dcf2..0ded6cd76cc 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01-ref.html @@ -10,17 +10,15 @@ } .test { font-family: fwf; - font-size: 3em; + font-size: 2em; line-height: 1.1; } - - -

    Test passes if the three lines below are identical, with one cross (✗)

    +

    Test passes if the three lines below are identical, with twenty crosses (✗).

    -

    B

    -

    B

    -

    B

    -
    \ No newline at end of file +

    BBBBBBBBBBBBBBBBBBBB

    +

    BBBBBBBBBBBBBBBBBBBB

    +

    BBBBBBBBBBBBBBBBBBBB

    + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html index 89cfe2ba447..0cdd2f5ac15 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-01.html @@ -28,10 +28,9 @@ -

    Test passes if the three lines below are identical, with twenty crosses (✗) -.

    +

    Test passes if the three lines below are identical, with twenty crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    -

    Xnophijklmqrstuvwxyz

    -

    BBBBBBBBBBBBBBBBBBBB

    -
    \ No newline at end of file +

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    +

    BBBBBBBBBBBBBBBBBBBB

    + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html index d27ffa25b76..a74c5206c0c 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02-ref.html @@ -10,7 +10,7 @@ } .test { font-family: fwf; - font-size: 3em; + font-size: 2em; line-height: 1.1; } @@ -18,9 +18,9 @@ -

    Test passes if the three lines below are identical, with onecheck mark (✓).

    +

    Test passes if the three lines below are identical, with one check mark (✓) followed by nineteen crosses (✗).

    -

    A

    -

    A

    -

    A

    -
    \ No newline at end of file +

    ABBBBBBBBBBBBBBBBBBB

    +

    ABBBBBBBBBBBBBBBBBBB

    +

    ABBBBBBBBBBBBBBBBBBB

    + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html index b9f777ea3f0..dfc76b9396d 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-02.html @@ -20,7 +20,7 @@ .high { font-variant-alternates: historical-forms; } - .low { + .low { font-feature-settings: "hist" on, "salt" 00, "ss01" off, "ss02" off, "ss03" off, "cv01" off, "cv02" off, "cv03" off, "swsh" 00, "cswh" 00, "ornm" 00, "nalt" 00; } @@ -29,7 +29,7 @@

    Test passes if the three lines below are identical, with one check mark (✓) followed by nineteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    ABBBBBBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html index 6b2eba9b838..491b732d02c 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-03.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with one cross (✗), one check mark (✓) followed by eighteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BABBBBBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html index 35b9940fb8c..526b616dafe 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-04.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBABBBBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html index 7cb557e20c0..49427186bee 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05-ref.html @@ -16,9 +16,9 @@ -

    Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗).

    +

    Test passes if the three lines below are identical, with three crosses (✗), one check mark (✓) followed by sixteen crosses (✗).

    BBBABBBBBBBBBBBBBBBB

    BBBABBBBBBBBBBBBBBBB

    BBBABBBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html index 4f900ccca53..eca5a3dc6ad 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-05.html @@ -35,9 +35,9 @@ -

    Test passes if the three lines below are identical, with two crosses (✗), one check mark (✓) followed by seventeen crosses (✗).

    +

    Test passes if the three lines below are identical, with three crosses (✗), one check mark (✓) followed by sixteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBABBBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html index fe15c21e298..bf41b92a52c 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-06.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with four crosses (✗), one check mark (✓) followed by fifteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBABBBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html index 70c11383589..54359c277a5 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-07.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with five crosses (✗), one check mark (✓) followed by fourteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBABBBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html index 3228adbd9ea..5c5545cf8ed 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-08.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with six crosses (✗), one check mark (✓) followed by thirteen crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBABBBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html index 71fda689bc8..6c98e62a56c 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-09.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with seven crosses (✗), one check mark (✓) followed by twelve crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBABBBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html index d4054ac8f6d..3e30504f2b8 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-10.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with eight crosses (✗), one check mark (✓) followed by eleven crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBABBBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html index 19e38ed616e..0a8a2d72003 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-11.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with nine crosses (✗), one check mark (✓) followed by ten crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBABBBBBBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html index a0061a408e7..458840d7564 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-12.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with ten crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by six crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBABBABBBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html index b9fdd496d6b..67b7e680a9d 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-13.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with eleven crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by five crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBABBABBBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html index 1d57c2c3f92..0f78a5aca80 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-14.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with twelve crosses (✗), one check mark (✓), two crosses (✗), one check mark (✓) followed by four crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBBABBABBBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html index 95ec0fa041d..1c003a8e3cf 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-15.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with sixteen crosses (✗), one check mark (✓) followed by three crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBBBBBBABBB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html index 21215ddf401..176d8ff13e4 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-16.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with seventeen crosses (✗), one check mark (✓) followed by two crosses (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBBBBBBBABB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html index abbe8738fe5..558e2f45d04 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-17.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with eighteen crosses (✗), one check mark (✓) followed by one cross (✗).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBBBBBBBBAB

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html index f58ab12fd1e..109ff58d954 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-alternates-18.html @@ -37,7 +37,7 @@

    Test passes if the three lines below are identical, with nineteen crosses (✗), then one check mark (✓).

    -

    Xnophijklmqrstuvwxyz

    +

    Xnophijklmqrstuvwxyz

    Xnophijklmqrstuvwxyz

    BBBBBBBBBBBBBBBBBBBA

    -
    \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html index c5c2cf50cec..2dec3c769a5 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html index f0dc1530aee..4463ebf121f 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html index 3ae1ba13638..f9e1c873fbd 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html index 12ca38d6078..ab532206f6a 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html index e76a1525d59..3002c174e84 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html index 662260131fe..cf44e9f57b4 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html index 300ace54588..f8aa2da3fd2 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html index e3a8b47031b..24af744b95a 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html index 3f7d675b9ce..bb33c4a2c2c 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html index fc284b015a7..876fdcd124d 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html index 1367dd4d707..ff184f16174 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html index cebc217f9b4..b9a9d9b43d3 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html index b606c03be41..356220b336b 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html index 61d6365c7d3..3561ae3d80f 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html index b264e36cd31..c56c1397553 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html index 86d5226946a..7815a05718f 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html index 543bd0af941..c8a2ed8b2cc 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html index 33aaa6bf29e..547e6a42984 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html index c98144c6e3d..53139cbe585 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html index d2fab320763..0b6a26f11d6 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html index 1a40142f49f..7b68964227f 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html index 3ea469befdd..e4f9e7c3a2d 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html index e78986de53f..a1bfe9c0673 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html index 9f6c49c16b6..6d3136e00c6 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html index 471c2ef1148..917d1109a45 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html index facad8a4d28..382ef2523e2 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html index dc9c092797b..0bdedf74dcf 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html index 870538a332f..0def10e2b6e 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html index cb067b652c7..766db6baa37 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html index c7033bb6b8f..3db3b8319f0 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html index 55bffbe1c6c..7b0c26d644d 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html index 006cb6a6a95..d161e19b018 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html index 157f43bbac9..92a74561889 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html index 6dbd653c067..78314406fe3 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html index fbd8e6f8773..4293670f199 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html index 018b13c95dd..23b01906619 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036.html @@ -26,12 +26,13 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-grid/support/style-change.js b/tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js similarity index 83% rename from tests/wpt/web-platform-tests/css/css-grid/support/style-change.js rename to tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js index 636b08a3a01..5619394da2b 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/support/style-change.js +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/support/style-change.js @@ -1,5 +1,5 @@ function evaluateStyleChange(element, phase, expectedProperty, expectedResult) { element.className += " " + phase; element.setAttribute(expectedProperty, expectedResult); - checkLayout("." + phase); + checkLayout("." + phase, false); } diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html new file mode 100644 index 00000000000..1ac795be56b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Masking Module Level 1: parsing clip with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html new file mode 100644 index 00000000000..3f5940a5f87 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-invalid.html @@ -0,0 +1,47 @@ + + + + +CSS Masking Module Level 1: parsing clip-path with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html new file mode 100644 index 00000000000..d7b2785907a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-path-valid.html @@ -0,0 +1,64 @@ + + + + +CSS Masking Module Level 1: parsing clip-path with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html new file mode 100644 index 00000000000..10f6aeef256 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Masking Module Level 1: parsing clip-rule with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html new file mode 100644 index 00000000000..db22680cb14 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-rule-valid.html @@ -0,0 +1,19 @@ + + + + +CSS Masking Module Level 1: parsing clip-rule with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html new file mode 100644 index 00000000000..24bb782d332 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/clip-valid.html @@ -0,0 +1,20 @@ + + + + +CSS Masking Module Level 1: parsing clip with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js new file mode 100644 index 00000000000..9427f53d81b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/parsing/resources/parsing-testcommon.js @@ -0,0 +1,39 @@ +'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; + + var stringifiedValue = JSON.stringify(value); + + test(function(){ + var div = document.createElement('div'); + div.style[property] = value; + assert_not_equals(div.style[property], "", "property should be set"); + + var div = document.createElement('div'); + div.style[property] = value; + var readValue = div.style[property]; + 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"); + + }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value"); +} + +function test_invalid_value(property, value) { + var stringifiedValue = JSON.stringify(value); + + test(function(){ + var div = document.createElement('div'); + div.style[property] = value; + assert_equals(div.style[property], ""); + }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value"); +} diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht index e373c9a60b6..495ca5d52e4 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001-ref.xht @@ -7,6 +7,6 @@ -
    +
    diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht index 322551e185f..78fde1fbf9e 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-nested-column-rule-001.xht @@ -18,7 +18,7 @@ { column-rule: blue solid 1em; font: 1.25em/1 Ahem; - width: 36em; + width: 26em; } /* @@ -26,47 +26,47 @@ N == 3; W == max(0, (available-width - ((N - 1) * column-gap)) / N); - W == max(0, (42em - ((3 - 1) * 3em)) / 3); - W == max(0, (42em - (2 * 3em)) / 3); - W == max(0, (42em - 6em) / 3); - W == max(0, 36em / 3); - W == max(0, 12em); - W == 12em; + W == max(0, (26em - ((3 - 1) * 1em)) / 3); + W == max(0, (26em - (2 * 1em)) / 3); + W == max(0, (26em - 2em) / 3); + W == max(0, 24em / 3); + W == max(0, 8em); + W == 8em; So, the first column-rule should be at: 1.0em : margin-left of outer div - 12.0em : width of 1st column box - 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 1st column-rule + 8.0em : width of 1st column box + 0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 1st column-rule ========= - 14.0em + 9.0em The 2nd column-rule should be at: 1.0em : margin-left of outer div - 12.0em : width of 1st column box - 3.0em : first column-gap - 12.0em : width of 2nd column box - 1.0em : (3.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule + 8.0em : width of 1st column box + 1.0em : first -moz-column-gap + 8.0em : width of 2nd column box + 0.0em : (1.0em / 2) - (1.0em / 2) : left edge of 2nd column-rule ========= - 29.0em + 18.0em The height of column rule depends on number of line boxes in each outer column box which depends on number of line boxes in each inner column box. So: - 12em : width of each outer column box + 8em : width of each outer column box - 2em : horizontal margin of each div inside ======= - 10em : width of each inner multi-column elements + 6em : width of each inner multi-column elements N == 3; - W == max(0, (available-width - ((N - 1) * column-gap)) / N); - W == max(0, (10em - ((3 - 1) * 3em)) / 3); - W == max(0, (10em - (2 * 3em)) / 3); - W == max(0, (10em - 6em) / 3); + W == max(0, (available-width - ((N - 1) * -column-gap)) / N); + W == max(0, (6em - ((3 - 1) * 1em)) / 3); + W == max(0, (6em - (2 * 1em)) / 3); + W == max(0, (6em - 2em) / 3); W == max(0, 4em / 3); W == max(0, 1.33333em); W == 1.33333em; @@ -90,7 +90,7 @@ widows: 1; column-count: 3; - column-gap: 3em; + column-gap: 1em; } ]]> diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html index 31c9f3f5f03..90c62e5421b 100644 --- a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html +++ b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image-ref.html @@ -1,12 +1,15 @@ - - - + + + +
    + + diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html index 5dc7ebf8a8f..ba8943012c2 100644 --- a/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html +++ b/tests/wpt/web-platform-tests/css/css-paint-api/paint2d-image.https.html @@ -2,12 +2,12 @@ @@ -17,6 +17,8 @@ registerPaint('image', class { static get inputProperties() { return [ 'border-image-source' ]; }; paint(ctx, geom, styleMap) { + ctx.fillStyle = 'green'; + ctx.fillRect(0, 0, geom.width, geom.height); ctx.drawImage(styleMap.get('border-image-source'), 0, 0); } }); diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png b/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png new file mode 100644 index 00000000000..e34419263f9 Binary files /dev/null and b/tests/wpt/web-platform-tests/css/css-paint-api/resources/html5.png differ diff --git a/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html b/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html new file mode 100644 index 00000000000..f194e469f05 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-scoping/css-scoping-shadow-nested-slot-display-override.html @@ -0,0 +1,23 @@ + +CSS Scoping: Dynamically overriding nested slot display value + + + + +

    Test passes if you see a single 100px by 100px green box below.

    +
    + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js new file mode 100644 index 00000000000..9427f53d81b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/resources/parsing-testcommon.js @@ -0,0 +1,39 @@ +'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; + + var stringifiedValue = JSON.stringify(value); + + test(function(){ + var div = document.createElement('div'); + div.style[property] = value; + assert_not_equals(div.style[property], "", "property should be set"); + + var div = document.createElement('div'); + div.style[property] = value; + var readValue = div.style[property]; + 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"); + + }, "e.style['" + property + "'] = " + stringifiedValue + " should set the property value"); +} + +function test_invalid_value(property, value) { + var stringifiedValue = JSON.stringify(value); + + test(function(){ + var div = document.createElement('div'); + div.style[property] = value; + assert_equals(div.style[property], ""); + }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value"); +} diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html new file mode 100644 index 00000000000..e3871d869b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html @@ -0,0 +1,20 @@ + + + + +CSS Shapes Module Level 1: parsing shape-image-threshold with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html new file mode 100644 index 00000000000..5b77db8e507 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html @@ -0,0 +1,19 @@ + + + + +CSS Shapes Module Level 1: parsing shape-image-threshold with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html new file mode 100644 index 00000000000..4f3b4f26fb7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Shapes Module Level 1: parsing shape-margin with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html new file mode 100644 index 00000000000..68634b6b97a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html @@ -0,0 +1,21 @@ + + + + +CSS Shapes Module Level 1: parsing shape-margin with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html new file mode 100644 index 00000000000..9f541cf2930 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-invalid.html @@ -0,0 +1,52 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with invalid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html new file mode 100644 index 00000000000..ae0e0bfe29e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shapes/parsing/shape-outside-valid.html @@ -0,0 +1,66 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with valid values + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png b/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png new file mode 100644 index 00000000000..b98ca0ba0a0 Binary files /dev/null and b/tests/wpt/web-platform-tests/css/css-typed-om/resources/1x1-green.png differ diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js new file mode 100644 index 00000000000..50b93302525 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js @@ -0,0 +1,146 @@ +// Compares two CSSStyleValues to check if they're the same type +// and have the same attributes. +function assert_style_value_equals(a, b) { + if (a == null || b == null) { + assert_equals(a, b); + return; + } + + assert_equals(a.constructor.name, b.constructor.name); + const className = a.constructor.name; + switch (className) { + case 'CSSKeywordValue': + assert_equals(a.value, b.value); + break; + case 'CSSUnitValue': + assert_approx_equals(a.value, b.value, 1e-6); + assert_equals(a.unit, b.unit); + break; + case 'CSSMathSum': + case 'CSSMathProduct': + case 'CSSMathMin': + case 'CSSMathMax': + assert_style_value_array_equals(a.values, b.values); + break; + case 'CSSMathInvert': + case 'CSSMathNegate': + assert_style_value_equals(a.value, b.value); + break; + case 'CSSUnparsedValue': + assert_style_value_array_equals(a, b); + break; + case 'CSSVariableReferenceValue': + assert_equals(a.variable, b.variable); + assert_style_value_equals(a.fallback, b.fallback); + break; + case 'CSSPositionValue': + assert_style_value_equals(a.x, b.x); + assert_style_value_equals(a.y, b.y); + break; + case 'CSSTransformValue': + assert_style_value_array_equals(a, b); + break; + case 'CSSRotation': + assert_style_value_equals(a.angle, b.angle); + // fallthrough + case 'CSSTranslation': + case 'CSSScale': + assert_style_value_equals(a.x, b.x); + assert_style_value_equals(a.y, b.y); + assert_style_value_equals(a.z, b.z); + assert_style_value_equals(a.is2D, b.is2D); + break; + case 'CSSSkew': + assert_style_value_equals(a.ax, b.ax); + assert_style_value_equals(a.ay, b.ay); + break; + case 'CSSPerspective': + assert_style_value_equals(a.length, b.length); + break; + case 'CSSMatrixComponent': + assert_matrix_approx_equals(a.matrix, b.matrix, 1e-6); + break; + case 'CSSURLImageValue': + assert_equals(a.instrinsicWidth, b.instrinsicWidth); + assert_equals(a.instrinsicHeight, b.instrinsicHeight); + assert_equals(a.instrinsicRatio, b.instrinsicRatio); + assert_equals(a.url, b.url); + break; + default: + assert_equals(a, b); + break; + } +} + +// Compares two arrays of CSSStyleValues to check if every element is equal +function assert_style_value_array_equals(a, b) { + assert_equals(a.length, b.length); + for (let i = 0; i < a.length; i++) { + assert_style_value_equals(a[i], b[i]); + } +} + +const gValidUnits = [ + 'number', 'percent', 'em', 'ex', 'ch', + 'ic', 'rem', 'lh', 'rlh', 'vw', + 'vh', 'vi', 'vb', 'vmin', 'vmax', + 'cm', 'mm', 'Q', 'in', 'pt', + 'pc', 'px', 'deg', 'grad', 'rad', + 'turn', 's', 'ms', 'Hz', 'kHz', + 'dpi', 'dpcm', 'dppx', 'fr', +]; + +// Creates a new div element with specified inline style |cssText|. +// The created element is deleted during test cleanup. +function createDivWithStyle(test, cssText) { + let element = document.createElement('div'); + element.style = cssText || ''; + document.body.appendChild(element); + test.add_cleanup(() => { + element.remove(); + }); + return element; +} + +// Creates a new div element with inline style |cssText| and returns +// its inline style property map. +function createInlineStyleMap(test, cssText) { + return createDivWithStyle(test, cssText).attributeStyleMap; +} + +// Creates a new div element with inline style |cssText| and returns +// its computed style property map. +function createComputedStyleMap(test, cssText) { + return createDivWithStyle(test, cssText).computedStyleMap(); +} + +// Creates a new style element with a rule |cssText| and returns +// its declared style property map. +function createDeclaredStyleMap(test, cssText) { + const style = document.createElement('style'); + document.head.appendChild(style); + const rule = style.sheet.cssRules[style.sheet.insertRule('#test { ' + cssText + '}')]; + test.add_cleanup(() => { + style.remove(); + }); + return rule.attributeStyleMap; +} + +// Creates a new element with background image set to |imageValue| +// and returns a new Image element that can be used to attach +// event listeners regarding the image. +function loadImageResource(test, imageValue) { + // Set a CSSURLImageValue on an element so it can be loaded. + let styleMap = createInlineStyleMap(test, ''); + styleMap.set('background-image', imageValue); + + // add a new Image element to know if the image resource has been loaded + let image = new Image(); + image.src = imageValue.url; + return image; +} + +function assert_matrix_approx_equals(actual, expected, epsilon) { + assert_array_approx_equals( + actual.toFloat64Array(), expected.toFloat64Array(), epsilon); +} diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html new file mode 100644 index 00000000000..d118dda4a2b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-ident.tentative.html @@ -0,0 +1,23 @@ + + +Identifier normalization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html new file mode 100644 index 00000000000..1ba07606a2a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative.html @@ -0,0 +1,49 @@ + + +Numeric normalization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html new file mode 100644 index 00000000000..d5082aa0b25 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html @@ -0,0 +1,56 @@ + + +CSSResourceValue normalization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html new file mode 100644 index 00000000000..33113805414 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-tokens.tentative.html @@ -0,0 +1,63 @@ + + +Normalization of raw CSS tokens tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html new file mode 100644 index 00000000000..15f67429edb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative.html @@ -0,0 +1,67 @@ + + +CSSPositionValue normalization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html new file mode 100644 index 00000000000..5725f4677d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-normalization/transformvalue-normalization.tentative.html @@ -0,0 +1,175 @@ + + +Transform normalization tests + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html new file mode 100644 index 00000000000..1e2041d80dc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssKeywordValue.tentative.html @@ -0,0 +1,35 @@ + + +IDL-constructed CSSKeywordValue serialization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html new file mode 100644 index 00000000000..6ce739b6943 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssMathValue.tentative.html @@ -0,0 +1,81 @@ + + +IDL-constructed CSSMathValue serialization tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html new file mode 100644 index 00000000000..c93b2f1a9b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue.html @@ -0,0 +1,42 @@ + + +IDL-constructed CSSPositionValue serialization tests + + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html new file mode 100644 index 00000000000..5f09cfdc77e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssTransformValue.tentative.html @@ -0,0 +1,115 @@ + + +IDL-constructed CSSTransformValue serialization tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html new file mode 100644 index 00000000000..652e0e61350 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnitValue.tentative.html @@ -0,0 +1,55 @@ + + +IDL-constructed CSSUnitValue serialization tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html new file mode 100644 index 00000000000..8b7a8681244 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUnparsedValue.html @@ -0,0 +1,37 @@ + + +IDL-constructed CSSUnparsedValue serialization tests + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html new file mode 100644 index 00000000000..c97ed0d1b41 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html @@ -0,0 +1,15 @@ + + +IDL-constructed CSSURLImageValue serialization tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html new file mode 100644 index 00000000000..b6b0de59e75 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue-invalid.html @@ -0,0 +1,23 @@ + + +CSSKeywordValue Error Handling + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html new file mode 100644 index 00000000000..fe163681ee9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssKeywordValue.html @@ -0,0 +1,40 @@ + + +CSSKeywordValue + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html new file mode 100644 index 00000000000..0ea8632ce48 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-interface.html @@ -0,0 +1,26 @@ + + +CSSPositionValue IDL + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html new file mode 100644 index 00000000000..d2a68e7d001 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html @@ -0,0 +1,71 @@ + + +Computed StylePropertyMap tests + + + + + +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html new file mode 100644 index 00000000000..98a519ad827 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html @@ -0,0 +1,42 @@ + + +StylePropertyMap.get tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html new file mode 100644 index 00000000000..cd8dcd0c693 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getAll.tentative.html @@ -0,0 +1,42 @@ + + +StylePropertyMap.getAll tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html new file mode 100644 index 00000000000..3c63c918697 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html @@ -0,0 +1,18 @@ + + +StylePropertyMap.getProperties tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html new file mode 100644 index 00000000000..6992689caaf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/has.tentative.html @@ -0,0 +1,32 @@ + + +StylePropertyMap.has tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html new file mode 100644 index 00000000000..07d59d82995 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html @@ -0,0 +1,42 @@ + + +StylePropertyMap iterable tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html new file mode 100644 index 00000000000..ce18b80faaf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative.html @@ -0,0 +1,61 @@ + + +StylePropertyMap.append tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html new file mode 100644 index 00000000000..96c1e3e8ff6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html @@ -0,0 +1,76 @@ + + +Declared StylePropertyMap tests + + + + + +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html new file mode 100644 index 00000000000..e50fb6ea9ce --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html @@ -0,0 +1,47 @@ + + +StylePropertyMap.get tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html new file mode 100644 index 00000000000..5fe635c7134 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getAll.tentative.html @@ -0,0 +1,47 @@ + + +StylePropertyMap.getAll tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html new file mode 100644 index 00000000000..0f59a60c002 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html @@ -0,0 +1,23 @@ + + +StylePropertyMap.getProperties tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html new file mode 100644 index 00000000000..7304f802d84 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/has.tentative.html @@ -0,0 +1,33 @@ + + +StylePropertyMap.has tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html new file mode 100644 index 00000000000..be61e2520f3 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html @@ -0,0 +1,51 @@ + + +StylePropertyMap iterable tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html new file mode 100644 index 00000000000..fe4cced258f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative.html @@ -0,0 +1,81 @@ + + +StylePropertyMap.set + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html new file mode 100644 index 00000000000..c171769dc17 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/test.tentative.html @@ -0,0 +1,24 @@ + + +Declared StylePropertyMap tests + + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html new file mode 100644 index 00000000000..a5ee95e66de --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/update.tentative.html @@ -0,0 +1,88 @@ + + +StylePropertyMap.update tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html new file mode 100644 index 00000000000..9573b7967c5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative.html @@ -0,0 +1,56 @@ + + +StylePropertyMap.append tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html new file mode 100644 index 00000000000..1f6ec74aad7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/delete.tentative.html @@ -0,0 +1,41 @@ + + +StylePropertyMap.delete tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html new file mode 100644 index 00000000000..6494a26d1bf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html @@ -0,0 +1,47 @@ + + +StylePropertyMap.get tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html new file mode 100644 index 00000000000..62cbec37c1f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getAll.tentative.html @@ -0,0 +1,47 @@ + + +StylePropertyMap.getAll tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html new file mode 100644 index 00000000000..a6dfade280d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html @@ -0,0 +1,23 @@ + + +StylePropertyMap.getProperties tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html new file mode 100644 index 00000000000..1f4e4f90bbf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/has.tentative.html @@ -0,0 +1,33 @@ + + +StylePropertyMap.has tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html new file mode 100644 index 00000000000..cbf76d8901f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html @@ -0,0 +1,51 @@ + + +StylePropertyMap iterable tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html new file mode 100644 index 00000000000..dc8ccc57bcc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative.html @@ -0,0 +1,81 @@ + + +StylePropertyMap.set + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html new file mode 100644 index 00000000000..ac2d83411c9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/update.tentative.html @@ -0,0 +1,88 @@ + + +StylePropertyMap.update tests + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html b/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html new file mode 100644 index 00000000000..228da4e3897 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/lh-rlh-on-root-001.html @@ -0,0 +1,86 @@ + + +CSS Values and Units Test: using lh and rlh units on the root element + + + + + + +
     
    + + diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html b/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html new file mode 100644 index 00000000000..f7a6fc9551b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/lh-unit-001.html @@ -0,0 +1,26 @@ + + +CSS Values and Units Test: using lh in line-height + + + + + + +

    Test passes if there is a filled green square and no red.

    + +
    diff --git a/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html b/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html new file mode 100644 index 00000000000..316637a18a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/lh-unit-002.html @@ -0,0 +1,26 @@ + + +CSS Values and Units Test: using lh in font-size + + + + + + +

    Test passes if there is a filled green square and no red.

    + +
    diff --git a/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html new file mode 100644 index 00000000000..f718ea6abfb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box-ref.html @@ -0,0 +1,2 @@ + +
    diff --git a/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html new file mode 100644 index 00000000000..563ffdaf1a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/offset-anchor-transform-box-fill-box.html @@ -0,0 +1,18 @@ + +CSS Motion Path: offset-anchor with transform-box: fill-box + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html new file mode 100644 index 00000000000..5f8bcaf539f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html @@ -0,0 +1,25 @@ + +CSS Test Reference + + + +
    diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html new file mode 100644 index 00000000000..1edfdb04caa --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html @@ -0,0 +1,28 @@ + +CSS Test: Absolutely positioned children of flex container with CSS align + + + + + + +
    diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html new file mode 100644 index 00000000000..90ee38856cc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002-ref.html @@ -0,0 +1,25 @@ + +CSS Test Reference + + + +
    diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html new file mode 100644 index 00000000000..aecbf0b4c99 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-002.html @@ -0,0 +1,36 @@ + +CSS Test: Absolutely positioned children of flex container with CSS align + + + + + + +
    diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list index bff3a67a796..3e20fefed4f 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list @@ -213,3 +213,7 @@ == flexbox-single-line-clamp-1.html flexbox-single-line-clamp-1-ref.html == flexbox-single-line-clamp-2.html flexbox-single-line-clamp-2-ref.html == flexbox-single-line-clamp-3.html flexbox-single-line-clamp-3-ref.html + +# Flexbox as an absolute containing block. +== position-absolute-containing-block-001.html position-absolute-containing-block-001-ref.html +== position-absolute-containing-block-002.html position-absolute-containing-block-002-ref.html diff --git a/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md b/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md new file mode 100644 index 00000000000..f707995033d --- /dev/null +++ b/tests/wpt/web-platform-tests/docs/_running-tests/chrome_android.md @@ -0,0 +1,35 @@ +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 + +``` +127.0.0.1 web-platform.test +127.0.0.1 www.web-platform.test +127.0.0.1 www1.web-platform.test +127.0.0.1 www2.web-platform.test +127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test +127.0.0.1 xn--lve-6lad.web-platform.test +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 + +``` +./wpt run chrome_android +``` diff --git a/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html b/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html new file mode 100644 index 00000000000..c5c32d3963e --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/security/redirect-to-url-with-credentials.https.html @@ -0,0 +1,69 @@ + +
    + + + +
    + + + + diff --git a/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html b/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html index 3b96073790c..8bb740af724 100644 --- a/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html +++ b/tests/wpt/web-platform-tests/gamepad/idlharness-manual.html @@ -1,78 +1,32 @@ - - Manual Gamepad IDL tests - - - - + +

    This test requires a gamepad. Connect one and press any button to start the test.

    - - - - -

    This test requires a gamepad. Connect one and press any button to start the test.

    -
    - - diff --git a/tests/wpt/web-platform-tests/gamepad/idlharness.html b/tests/wpt/web-platform-tests/gamepad/idlharness.html index e78a56be498..833449d72b6 100644 --- a/tests/wpt/web-platform-tests/gamepad/idlharness.html +++ b/tests/wpt/web-platform-tests/gamepad/idlharness.html @@ -1,6 +1,4 @@ - - Gamepad IDL tests @@ -10,61 +8,21 @@ - - - - -
    - - diff --git a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js index cde23741d68..59cb3e3f5b8 100644 --- a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js +++ b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-tests.js @@ -143,6 +143,25 @@ function runGenericSensorTests(sensorType) { assert_false(sensor.activated); }, `${sensorType.name}: no exception is thrown when calling stop() on already stopped sensor`); + promise_test(async t => { + const sensor = new sensorType(); + const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]); + sensor.start(); + + await sensorWatcher.wait_for("reading"); + assert_true(sensor.hasReading); + const timestamp = sensor.timestamp; + sensor.stop(); + assert_false(sensor.hasReading); + + sensor.start(); + await sensorWatcher.wait_for("reading"); + assert_true(sensor.hasReading); + assert_greater_than(timestamp, 0); + assert_greater_than(sensor.timestamp, timestamp); + sensor.stop(); + }, `${sensorType.name}: Test that fresh reading is fetched on start()`); + promise_test(async t => { const sensor = new sensorType(); const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]); @@ -159,8 +178,69 @@ function runGenericSensorTests(sensorType) { win.close(); sensor.stop(); - assert_array_equals(cachedSensor1, cachedSensor2); + assert_object_equals(cachedSensor1, cachedSensor2); }, `${sensorType.name}: sensor readings can not be fired on the background tab`); + + promise_test(async t => { + const fastSensor = new sensorType({frequency: 30}); + const slowSensor = new sensorType({frequency: 5}); + slowSensor.start(); + + const fastCounter = await new Promise((resolve, reject) => { + let fastCounter = 0; + let slowCounter = 0; + + fastSensor.onreading = () => { + fastCounter++; + } + slowSensor.onreading = () => { + slowCounter++; + if (slowCounter == 1) { + fastSensor.start(); + } else if (slowCounter == 3) { + fastSensor.stop(); + slowSensor.stop(); + resolve(fastCounter); + } + } + fastSensor.onerror = reject; + slowSensor.onerror = reject; + }); + assert_greater_than(fastCounter, 2, + "Fast sensor overtakes the slow one"); + }, `${sensorType.name}: frequency hint works`); + + promise_test(async t => { + // Create a focused editbox inside a cross-origin iframe, + // sensor notification must suspend. + const iframeSrc = 'data:text/html;charset=utf-8,' + + ''; + const iframe = document.createElement('iframe'); + iframe.src = encodeURI(iframeSrc); + + const sensor = new sensorType(); + const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]); + sensor.start(); + + await sensorWatcher.wait_for("reading"); + assert_reading_not_null(sensor); + const cachedTimestamp = sensor.timestamp; + const cachedSensor1 = reading_to_array(sensor); + + const iframeWatcher = new EventWatcher(t, iframe, "load"); + document.body.appendChild(iframe); + await iframeWatcher.wait_for("load"); + const cachedSensor2 = reading_to_array(sensor); + assert_array_equals(cachedSensor1, cachedSensor2); + + iframe.remove(); + await sensorWatcher.wait_for("reading"); + const cachedSensor3 = reading_to_array(sensor); + assert_greater_than(sensor.timestamp, cachedTimestamp); + + sensor.stop(); + }, `${sensorType.name}: sensor receives suspend / resume notifications when\ + cross-origin subframe is focused`); } function runGenericSensorInsecureContext(sensorType) { diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html index 7d5d47fe6c6..9680b875d62 100644 --- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +GeolocationSensor Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 62c5d456f0c..66b7832e45f 100644 --- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +GeolocationSensor Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html index 1e5bfb36a2b..5ea2518af63 100644 --- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +GeolocationSensor Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html index afe935efeb0..46ef9b7ce86 100644 --- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +GeolocationSensor Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html index 46be7fba6f6..1694ed00fdf 100644 --- a/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/geolocation-sensor/GeolocationSensor-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +GeolocationSensor Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html index 70add9b38bd..de4aee2dacc 100644 --- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Gyroscope Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 6d8c48645ed..3c831bb7c7e 100644 --- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +Gyroscope Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html index 07624624ce7..46473c3a9d0 100644 --- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +Gyroscope Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html index 1f1418b2014..95eee330b39 100644 --- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Gyroscope Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html index 19ab572b382..ae5a63d1484 100644 --- a/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/gyroscope/Gyroscope-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Gyroscope Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html index d7fae15c35a..f1be0439df3 100644 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin_2.html @@ -6,25 +6,21 @@
    
     
     
    +
    +
    +
    +
    +

    Dominic Farolino

    + diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py new file mode 100644 index 00000000000..9befce9e60c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/interactions-of-styling-and-scripting/stylesheet.py @@ -0,0 +1,10 @@ +from time import sleep +def main(request, response): + if "delay" in request.GET: + delay = int(request.GET["delay"]) + sleep(delay) + + if "stylesNotMatchingEnvironment" in request.GET: + return 'h1 {color: brown;}' + else: + return 'h1 {color: purple;}' diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt new file mode 100644 index 00000000000..fd6d484f888 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/cues-chrono-order.vtt @@ -0,0 +1,14 @@ +WEBVTT +Cues that have overlapping time ranges. + +1 +00:00:01.000 --> 00:00:02.000 +Bear is Coming!!!!! + +2 +00:00:02.500 --> 00:00:03.500 +I said Bear is coming!!!! + +3 +00:00:04.000 --> 00:00:05.000 +I said Bear is coming now!!!! \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html new file mode 100644 index 00000000000..e2f78900a75 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-duration.html @@ -0,0 +1,30 @@ + +Enter, Exit events for a cue with negative duration + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html new file mode 100644 index 00000000000..ebd7877f78a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html @@ -0,0 +1,32 @@ + +Enter, Exit events for cues with negative timestamps + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html index c63d55062ee..5dc54ed25bf 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp.html @@ -9,25 +9,33 @@ var testTrack = document.querySelector("track"); testTrack.onload = t.step_func_done(function() { + var cues = testTrack.track.cues; assert_equals(testTrack.track.cues.length, 4); // Add cue with negative startTime. var cue = new VTTCue(-3439332606, 3.4, "Sausage?"); testTrack.track.addCue(cue); - assert_equals(testTrack.track.cues.length, 5); + assert_equals(cues.length, 5); // Add cue with negative startTime and negative endTime. cue = new VTTCue(-110, -3.4, "Pepperoni?"); testTrack.track.addCue(cue); - assert_equals(testTrack.track.cues.length, 6); + assert_equals(cues.length, 6); // Set startTime and endTime to negative values. - var testCue = testTrack.track.cues[2]; + var testCue = cues[2]; assert_equals(testCue.startTime, 0); testCue.startTime = -5; assert_equals(testCue.startTime, -5); assert_equals(testCue.endTime, 30.5); testCue.endTime = -3439332606; assert_equals(testCue.endTime, -3439332606); + + // Check negative cues ordering. + testCue = cues[3]; + assert_equals(testCue.startTime, 31); + testCue.startTime = -200; + // Verify that this cue is moved to 2nd position. + assert_equals(cues[1].startTime, -200); }); }); diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html new file mode 100644 index 00000000000..8354041eb2a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html @@ -0,0 +1,32 @@ + + + + +
    + +
    PAS
    +
    diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html new file mode 100644 index 00000000000..d3dcee10373 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html new file mode 100644 index 00000000000..39461350b08 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html @@ -0,0 +1,35 @@ + + + + +
    + +
    XXX
    +
    + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html new file mode 100644 index 00000000000..69ca92e845b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html new file mode 100644 index 00000000000..b9c8412bab0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html @@ -0,0 +1,40 @@ + +TextTrack's cues are indexed and updated in order during video playback + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html new file mode 100644 index 00000000000..970666793a7 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-enter-exit.html @@ -0,0 +1,43 @@ + +TextTrack's cues are indexed and updated in order during video playback + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html index e03fcc0ecbb..8fa2b8b8d3f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html @@ -28,4 +28,4 @@ + onerror="unreachable()" onload="log.push(3)"> diff --git a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html index 8946eaab4eb..5af9a5e4c02 100644 --- a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html +++ b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/rellist-feature-detection.html @@ -32,6 +32,10 @@ test(function() { assert_equals(element.relList.length, 2); assert_equals(element.relList[0], "first"); assert_equals(element.relList[1], "second"); + // Test that relList is [SameObject]. + let savedRelList = element.relList; + element.rel = "something"; + assert_equals(element.relList, savedRelList); // Test that supports() is returning true for valid values // and false for invalid ones. diff --git a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html index 1c818760a11..1099819cd94 100644 --- a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html +++ b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-area-element/rellist-feature-detection.html @@ -32,6 +32,10 @@ test(function() { assert_equals(element.relList.length, 2); assert_equals(element.relList[0], "first"); assert_equals(element.relList[1], "second"); + // Test that relList is [SameObject]. + let savedRelList = element.relList; + element.rel = "something"; + assert_equals(element.relList, savedRelList); // Test that supports() is returning true for valid values // and false for invalid ones. diff --git a/tests/wpt/web-platform-tests/images/pattern.mp4 b/tests/wpt/web-platform-tests/images/pattern.mp4 new file mode 100644 index 00000000000..c866bfedf91 Binary files /dev/null and b/tests/wpt/web-platform-tests/images/pattern.mp4 differ diff --git a/tests/wpt/web-platform-tests/interfaces/OWNERS b/tests/wpt/web-platform-tests/interfaces/OWNERS index 7ccc510535f..8a9a649b729 100644 --- a/tests/wpt/web-platform-tests/interfaces/OWNERS +++ b/tests/wpt/web-platform-tests/interfaces/OWNERS @@ -1,4 +1,3 @@ @domenic @jensl -@tobie @yuki3 diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl b/tests/wpt/web-platform-tests/interfaces/WebCryptoAPI.idl similarity index 100% rename from tests/wpt/web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl rename to tests/wpt/web-platform-tests/interfaces/WebCryptoAPI.idl diff --git a/tests/wpt/web-platform-tests/interfaces/gamepad.idl b/tests/wpt/web-platform-tests/interfaces/gamepad.idl new file mode 100644 index 00000000000..0f7ca2c4702 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/gamepad.idl @@ -0,0 +1,33 @@ +interface Gamepad { + readonly attribute DOMString id; + readonly attribute long index; + readonly attribute boolean connected; + readonly attribute DOMHighResTimeStamp timestamp; + readonly attribute GamepadMappingType mapping; + readonly attribute FrozenArray axes; + readonly attribute FrozenArray buttons; +}; + +interface GamepadButton { + readonly attribute boolean pressed; + readonly attribute boolean touched; + readonly attribute double value; +}; + +enum GamepadMappingType { + "", + "standard", +}; + +partial interface Navigator { + sequence getGamepads(); +}; + +[Constructor(GamepadEventInit eventInitDict)] +interface GamepadEvent : Event { + readonly attribute Gamepad gamepad; +}; + +dictionary GamepadEventInit : EventInit { + required Gamepad gamepad; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/html.idl b/tests/wpt/web-platform-tests/interfaces/html.idl index e272fb823bc..b2a1ec30d82 100644 --- a/tests/wpt/web-platform-tests/interfaces/html.idl +++ b/tests/wpt/web-platform-tests/interfaces/html.idl @@ -1133,7 +1133,7 @@ dictionary AssignedNodesOptions { boolean flatten = false; }; -typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; +typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext) RenderingContext; [Exposed=Window, HTMLConstructor] diff --git a/tests/wpt/web-platform-tests/interfaces/proximity.idl b/tests/wpt/web-platform-tests/interfaces/proximity.idl new file mode 100644 index 00000000000..89397290544 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/proximity.idl @@ -0,0 +1,6 @@ +[Constructor(optional SensorOptions sensorOptions), SecureContext, Exposed=Window] +interface ProximitySensor : Sensor { + readonly attribute double? distance; + readonly attribute double? max; + readonly attribute boolean? near; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl new file mode 100644 index 00000000000..4d16ddbe282 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -0,0 +1,180 @@ +[SecureContext, Exposed=Window] interface XR : EventTarget { + // Methods + Promise requestDevice(); + + // Events + attribute EventHandler ondevicechange; +}; + +[SecureContext] +partial interface Navigator { + [SameObject] readonly attribute XR xr; +}; + +[SecureContext, Exposed=Window] interface XRDevice : EventTarget { + // Attributes + readonly attribute boolean external; + + // Methods + Promise supportsSession(optional XRSessionCreationOptions options); + Promise requestSession(optional XRSessionCreationOptions options); +}; + +dictionary XRSessionCreationOptions { + boolean exclusive = false; + XRPresentationContext outputContext; +}; + +[SecureContext, Exposed=Window] interface XRSession : EventTarget { + // Attributes + readonly attribute XRDevice device; + readonly attribute boolean exclusive; + readonly attribute XRPresentationContext outputContext; + + attribute double depthNear; + attribute double depthFar; + attribute XRLayer baseLayer; + + // Methods + Promise requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options); + + long requestAnimationFrame(XRFrameRequestCallback callback); + void cancelAnimationFrame(long handle); + + Promise end(); + + // Events + attribute EventHandler onblur; + attribute EventHandler onfocus; + attribute EventHandler onresetpose; + attribute EventHandler onend; +}; + +callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRPresentationFrame frame); + +[SecureContext, Exposed=Window] interface XRPresentationFrame { + readonly attribute FrozenArray views; + + XRDevicePose? getDevicePose(XRCoordinateSystem coordinateSystem); +}; + +[SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget { + Float32Array? getTransformTo(XRCoordinateSystem other); +}; + +enum XRFrameOfReferenceType { + "headModel", + "eyeLevel", + "stage", +}; + +dictionary XRFrameOfReferenceOptions { + boolean disableStageEmulation = false; + double stageEmulationHeight = 0.0; +}; + +[SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem { + readonly attribute XRStageBounds? bounds; + readonly attribute double emulatedHeight; + + attribute EventHandler onboundschange; +}; + +[SecureContext, Exposed=Window] interface XRStageBounds { + readonly attribute FrozenArray geometry; +}; + +[SecureContext, Exposed=Window] interface XRStageBoundsPoint { + readonly attribute double x; + readonly attribute double z; +}; + +enum XREye { + "left", + "right" +}; + +[SecureContext, Exposed=Window] interface XRView { + readonly attribute XREye eye; + readonly attribute Float32Array projectionMatrix; + + XRViewport? getViewport(XRLayer layer); +}; + +[SecureContext, Exposed=Window] interface XRViewport { + readonly attribute long x; + readonly attribute long y; + readonly attribute long width; + readonly attribute long height; +}; + +[SecureContext, Exposed=Window] interface XRDevicePose { + readonly attribute Float32Array poseModelMatrix; + + Float32Array getViewMatrix(XRView view); +}; + +[SecureContext, Exposed=Window] interface XRLayer {}; + +typedef (WebGLRenderingContext or + WebGL2RenderingContext) XRWebGLRenderingContext; + +dictionary XRWebGLLayerInit { + boolean antialias = true; + boolean depth = false; + boolean stencil = false; + boolean alpha = true; + boolean multiview = false; + double framebufferScaleFactor; +}; + +[SecureContext, Exposed=Window, Constructor(XRSession session, + XRWebGLRenderingContext context, + optional XRWebGLLayerInit layerInit)] +interface XRWebGLLayer : XRLayer { + // Attributes + readonly attribute XRWebGLRenderingContext context; + + readonly attribute boolean antialias; + readonly attribute boolean depth; + readonly attribute boolean stencil; + readonly attribute boolean alpha; + readonly attribute boolean multiview; + + readonly attribute WebGLFramebuffer framebuffer; + readonly attribute unsigned long framebufferWidth; + readonly attribute unsigned long framebufferHeight; + + // Methods + void requestViewportScaling(double viewportScaleFactor); +}; + +partial dictionary WebGLContextAttributes { + XRDevice compatibleXRDevice = null; +}; + +partial interface mixin WebGLRenderingContextBase { + Promise setCompatibleXRDevice(XRDevice device); +}; + +[SecureContext, Exposed=Window] interface XRPresentationContext { + readonly attribute HTMLCanvasElement canvas; +}; + +[SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)] +interface XRSessionEvent : Event { + readonly attribute XRSession session; +}; + +dictionary XRSessionEventInit : EventInit { + required XRSession session; +}; + +[SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)] +interface XRCoordinateSystemEvent : Event { + readonly attribute XRCoordinateSystem coordinateSystem; +}; + +dictionary XRCoordinateSystemEventInit : EventInit { + required XRCoordinateSystem coordinateSystem; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/xhr.idl b/tests/wpt/web-platform-tests/interfaces/xhr.idl new file mode 100644 index 00000000000..707e3550962 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/xhr.idl @@ -0,0 +1,91 @@ +/*[Exposed=(Window,Worker)]*/ +interface XMLHttpRequestEventTarget : EventTarget { + // event handlers + attribute EventHandler onloadstart; + attribute EventHandler onprogress; + attribute EventHandler onabort; + attribute EventHandler onerror; + attribute EventHandler onload; + attribute EventHandler ontimeout; + attribute EventHandler onloadend; +}; + +/*[Exposed=(Window,Worker)]*/ +interface XMLHttpRequestUpload : XMLHttpRequestEventTarget { +}; + +enum XMLHttpRequestResponseType { + "", + "arraybuffer", + "blob", + "document", + "json", + "text" +}; + +[Constructor/*, + Exposed=(Window,Worker)*/] +interface XMLHttpRequest : XMLHttpRequestEventTarget { + // event handler + attribute EventHandler onreadystatechange; + + // states + const unsigned short UNSENT = 0; + const unsigned short OPENED = 1; + const unsigned short HEADERS_RECEIVED = 2; + const unsigned short LOADING = 3; + const unsigned short DONE = 4; + readonly attribute unsigned short readyState; + + // request + void open(ByteString method, USVString url); + void open(ByteString method, USVString url, boolean async, optional USVString? username = null, optional USVString? password = null); + void setRequestHeader(ByteString name, ByteString value); + attribute unsigned long timeout; + attribute boolean withCredentials; + readonly attribute XMLHttpRequestUpload upload; + void send(optional (Document or BodyInit)? body = null); + void abort(); + + // response + readonly attribute USVString responseURL; + readonly attribute unsigned short status; + readonly attribute ByteString statusText; + ByteString? getResponseHeader(ByteString name); + ByteString getAllResponseHeaders(); + void overrideMimeType(DOMString mime); + attribute XMLHttpRequestResponseType responseType; + readonly attribute any response; + readonly attribute USVString responseText; + [Exposed=Window] readonly attribute Document? responseXML; +}; + +typedef (File or USVString) FormDataEntryValue; + +[Constructor(optional HTMLFormElement form)/*, + Exposed=(Window,Worker)*/] +interface FormData { + void append(USVString name, Blob value, optional USVString filename); + void append(USVString name, USVString value); + void delete(USVString name); + FormDataEntryValue? get(USVString name); + sequence getAll(USVString name); + boolean has(USVString name); + void set(USVString name, Blob value, optional USVString filename); + void set(USVString name, USVString value); + /*iterable;*/ +}; + +[Constructor(DOMString type, optional ProgressEventInit eventInitDict)/*, + Exposed=(Window,Worker)*/] +interface ProgressEvent : Event { + readonly attribute boolean lengthComputable; + readonly attribute unsigned long long loaded; + readonly attribute unsigned long long total; +}; + +dictionary ProgressEventInit : EventInit { + boolean lengthComputable = false; + unsigned long long loaded = 0; + unsigned long long total = 0; +}; diff --git a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html index 4e06d57b6a3..9caa379f4f6 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html @@ -14,7 +14,7 @@ interface Navigator { }; diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html similarity index 55% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html index 30f49054495..7670be4f383 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock-two-sequential-requests.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html @@ -5,10 +5,10 @@ 'use strict'; promise_test(() => { - return navigator.requestKeyboardLock(['a', 'b']) + return navigator.keyboardLock(['a', 'b']) .then(() => { - return navigator.requestKeyboardLock(['c', 'd']); + return navigator.keyboardLock(['c', 'd']); }); -}, 'Keyboard Lock requestKeyboardLock twice sequentially'); +}, 'Keyboard Lock keyboardLock twice sequentially'); diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html similarity index 70% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html index e6e0121e75e..6711decc121 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-requestKeyboardLock.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html @@ -5,9 +5,9 @@ 'use strict'; promise_test(() => { - const p = navigator.requestKeyboardLock(['a', 'b']); + const p = navigator.keyboardLock(['a', 'b']); assert_true(p instanceof Promise); return p; -}, 'Keyboard Lock requestKeyboardLock'); +}, 'Keyboard Lock keyboardLock'); diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html similarity index 69% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html index 10fd50d3a79..ceb7a968949 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-cancelKeyboardLock.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html @@ -5,8 +5,8 @@ 'use strict'; test(() => { - assert_equals(navigator.cancelKeyboardLock(), + assert_equals(navigator.keyboardUnlock(), undefined); -}, 'Keyboard Lock cancelKeyboardLock'); +}, 'Keyboard Lock keyboardUnlock'); diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist index dcabf436c52..b8728fefc35 100644 --- a/tests/wpt/web-platform-tests/lint.whitelist +++ b/tests/wpt/web-platform-tests/lint.whitelist @@ -38,6 +38,7 @@ TRAILING WHITESPACE: webaudio/* TRAILING WHITESPACE: WebIDL/* TRAILING WHITESPACE: webvtt/* TRAILING WHITESPACE: encoding/legacy*/* +TRAILING WHITESPACE: server-timing/resources/parsing/*.sub.headers ## File types that should never be checked ## diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html index f24b2b35646..56a1cc4f0f9 100644 --- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Magnetometer Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 08369810f5f..b5f6798e248 100644 --- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +Magnetometer Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html index 0086222cbc7..6cad267b6f5 100644 --- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +Magnetometer Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html index 7f8ce1a9675..24e2554bca2 100644 --- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Magnetometer Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html index a967576eafc..59dfef5bf20 100644 --- a/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/magnetometer/Magnetometer-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +Magnetometer Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py b/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py new file mode 100755 index 00000000000..4edb925b448 --- /dev/null +++ b/tests/wpt/web-platform-tests/media-source/generate-config-change-tests.py @@ -0,0 +1,226 @@ +#!/usr/bin/python +# Copyright (C) 2013 Google Inc. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +""" +This is a script that generates the content and HTML files for Media Source +codec config change LayoutTests. +""" +import json +import os + +DURATION = 2 +MEDIA_FORMATS = ['webm', 'mp4'] +ENCODE_SETTINGS = [ + ## Video-only files + # Frame rate changes + {'fs': '320x240', 'fr': 24, 'kfr': 8, 'c': '#ff0000', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0}, + {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff0000', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0}, + # Frame size change + {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 128, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0}, + # Bitrate change + {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff00ff', 'vbr': 256, 'abr': 0, 'asr': 0, 'ach': 0, 'afreq': 0}, + + ## Audio-only files + # Bitrate/Codebook changes + {'fs': '0x0', 'fr': 0, 'kfr': 0, 'c': '#000000', 'vbr': 0, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000}, + {'fs': '0x0', 'fr': 0, 'kfr': 0, 'c': '#000000', 'vbr': 0, 'abr': 192, 'asr': 44100, 'ach': 1, 'afreq': 4000}, + + ## Audio-Video files + # Frame size change. + {'fs': '320x240', 'fr': 30, 'kfr': 10, 'c': '#ff0000', 'vbr': 256, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000}, + {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 256, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000}, + # Audio bitrate change. + {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ff00', 'vbr': 256, 'abr': 192, 'asr': 44100, 'ach': 1, 'afreq': 4000}, + # Video bitrate change. + {'fs': '640x480', 'fr': 30, 'kfr': 10, 'c': '#00ffff', 'vbr': 512, 'abr': 128, 'asr': 44100, 'ach': 1, 'afreq': 2000}, +] + +CONFIG_CHANGE_TESTS = [ + ["v-framerate", 0, 1, "Tests %s video-only frame rate changes."], + ["v-framesize", 1, 2, "Tests %s video-only frame size changes."], + ["v-bitrate", 1, 3, "Tests %s video-only bitrate changes."], + ["a-bitrate", 4, 5, "Tests %s audio-only bitrate changes."], + ["av-framesize", 6, 7, "Tests %s frame size changes in multiplexed content."], + ["av-audio-bitrate", 7, 8, "Tests %s audio bitrate changes in multiplexed content."], + ["av-video-bitrate", 7, 9, "Tests %s video bitrate changes in multiplexed content."] +] + +CODEC_INFO = { + "mp4": {"audio": "mp4a.40.2", "video": "avc1.4D4001"}, + "webm": {"audio": "vorbis", "video": "vp8"} +} + +HTML_TEMPLATE = """ + + + + + + + + + +
    + + + +""" + +def run(cmd_line): + os.system(" ".join(cmd_line)) + +def generate_manifest(filename, media_filename, media_format, has_audio, has_video): + major_type = "audio" + if has_video: + major_type = "video" + + codecs = [] + if has_video: + codecs.append(CODEC_INFO[media_format]["video"]) + + if has_audio: + codecs.append(CODEC_INFO[media_format]["audio"]) + + mimetype = "%s/%s;codecs=\"%s\"" % (major_type, media_format, ",".join(codecs)) + + manifest = { 'url': media_filename, 'type': mimetype} + + f = open(filename, "wb") + f.write(json.dumps(manifest, indent=4, separators=(',', ': '))) + f.close() + +def generate_test_html(media_format, config_change_tests, encoding_ids): + for test_info in config_change_tests: + filename = "../../media-source/mediasource-config-change-%s-%s.html" % (media_format, test_info[0]) + html = HTML_TEMPLATE % {'media_format': media_format, + 'idA': encoding_ids[test_info[1]], + 'idB': encoding_ids[test_info[2]], + 'description': test_info[3] % (media_format)} + f = open(filename, "wb") + f.write(html) + f.close() + + +def main(): + encoding_ids = [] + + for media_format in MEDIA_FORMATS: + run(["mkdir ", media_format]) + + for settings in ENCODE_SETTINGS: + video_bitrate = settings['vbr'] + has_video = (video_bitrate > 0) + + audio_bitrate = settings['abr'] + has_audio = (audio_bitrate > 0) + bitrate = video_bitrate + audio_bitrate + + frame_size = settings['fs'] + frame_rate = settings['fr'] + keyframe_rate = settings['kfr'] + color = settings['c'] + + sample_rate = settings['asr'] + channels = settings['ach'] + frequency = settings['afreq'] + + cmdline = ["ffmpeg", "-y"] + + id_prefix = "" + id_params = "" + if has_audio: + id_prefix += "a" + id_params += "-%sHz-%sch" % (sample_rate, channels) + + channel_layout = "FC" + sin_func = "sin(%s*2*PI*t)" % frequency + func = sin_func + if channels == 2: + channel_layout += "|BC" + func += "|" + sin_func + + cmdline += ["-f", "lavfi", "-i", "aevalsrc=\"%s:s=%s:c=%s:d=%s\"" % (func, sample_rate, channel_layout, DURATION)] + + if has_video: + id_prefix += "v" + id_params += "-%s-%sfps-%skfr" % (frame_size, frame_rate, keyframe_rate) + + cmdline += ["-f", "lavfi", "-i", "color=%s:duration=%s:size=%s:rate=%s" % (color, DURATION, frame_size, frame_rate)] + + if has_audio: + cmdline += ["-b:a", "%sk" % audio_bitrate] + + if has_video: + cmdline += ["-b:v", "%sk" % video_bitrate] + cmdline += ["-keyint_min", "%s" % keyframe_rate] + cmdline += ["-g", "%s" % keyframe_rate] + + + textOverlayInfo = "'drawtext=fontfile=Mono:fontsize=32:text=Time\\\\:\\\\ %{pts}" + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=32:text=Size\\\\:\\\\ %s" % (frame_size) + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=64:text=Bitrate\\\\:\\\\ %s" % (bitrate) + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=96:text=FrameRate\\\\:\\\\ %s" % (frame_rate) + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=128:text=KeyFrameRate\\\\:\\\\ %s" % (keyframe_rate) + + if has_audio: + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=160:text=SampleRate\\\\:\\\\ %s" % (sample_rate) + textOverlayInfo += ",drawtext=fontfile=Mono:fontsize=32:y=192:text=Channels\\\\:\\\\ %s" % (channels) + + textOverlayInfo += "'" + cmdline += ["-vf", textOverlayInfo] + + encoding_id = "%s-%sk%s" % (id_prefix, bitrate, id_params) + + if len(encoding_ids) < len(ENCODE_SETTINGS): + encoding_ids.append(encoding_id) + + filename_base = "%s/test-%s" % (media_format, encoding_id) + media_filename = filename_base + "." + media_format + manifest_filename = filename_base + "-manifest.json" + + cmdline.append(media_filename) + run(cmdline) + + # Remux file so it conforms to MSE bytestream requirements. + if media_format == "webm": + tmp_filename = media_filename + ".tmp" + run(["mse_webm_remuxer", media_filename, tmp_filename]) + run(["mv", tmp_filename, media_filename]) + elif media_format == "mp4": + run(["MP4Box", "-dash", "250", "-rap", media_filename]) + run(["mv", filename_base + "_dash.mp4", media_filename]) + run(["rm", filename_base + "_dash.mpd"]) + + generate_manifest(manifest_filename, media_filename, media_format, has_audio, has_video) + generate_test_html(media_format, CONFIG_CHANGE_TESTS, encoding_ids) + +if '__main__' == __name__: + main() diff --git a/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js b/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js index ea99b8ba5e4..b28aa90f1f3 100644 --- a/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js +++ b/tests/wpt/web-platform-tests/media-source/mediasource-config-changes.js @@ -68,9 +68,10 @@ function mediaSourceConfigChangeTest(directory, idA, idB, description) assert_false(sourceBuffer.updating, "updating"); // Truncate the presentation to a duration of 2 seconds. + // First, explicitly remove the media beyond 2 seconds. sourceBuffer.remove(2, Infinity); - assert_true(sourceBuffer.updating, "updating"); + assert_true(sourceBuffer.updating, "sourceBuffer.updating during range removal"); test.expectEvent(sourceBuffer, 'updatestart', 'sourceBuffer'); test.expectEvent(sourceBuffer, 'update', 'sourceBuffer'); test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer'); @@ -78,11 +79,13 @@ function mediaSourceConfigChangeTest(directory, idA, idB, description) test.waitForExpectedEvents(function() { - assert_false(sourceBuffer.updating, "updating"); + assert_false(sourceBuffer.updating, "sourceBuffer.updating prior to duration reduction"); assert_greater_than(mediaSource.duration, 2, "duration"); - // Truncate the presentation to a duration of 2 seconds. + // Complete the truncation of presentation to 2 second + // duration. mediaSource.duration = 2; + assert_false(sourceBuffer.updating, "sourceBuffer.updating synchronously after duration reduction"); test.expectEvent(mediaElement, "durationchange"); }); diff --git a/tests/wpt/web-platform-tests/media-source/mediasource-play.html b/tests/wpt/web-platform-tests/media-source/mediasource-play.html index 5bbfa29d7e8..62fb04681ae 100644 --- a/tests/wpt/web-platform-tests/media-source/mediasource-play.html +++ b/tests/wpt/web-platform-tests/media-source/mediasource-play.html @@ -19,15 +19,20 @@ test.expectEvent(sourceBuffer, 'update', 'sourceBuffer'); test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer'); + assert_false(sourceBuffer.updating, "sourceBuffer.updating"); + sourceBuffer.appendBuffer(mediaData); + assert_true(sourceBuffer.updating, "sourceBuffer.updating"); + test.waitForExpectedEvents(function() { - assert_false(sourceBuffer.updating, "updating"); + assert_false(sourceBuffer.updating, "sourceBuffer.updating"); - sourceBuffer.remove(1, Infinity); + // Truncate the buffered media to about 1 second duration. + sourceBuffer.remove(1, +Infinity); - assert_true(sourceBuffer.updating, "updating"); + assert_true(sourceBuffer.updating, "sourceBuffer.updating"); test.expectEvent(sourceBuffer, 'updatestart', 'sourceBuffer'); test.expectEvent(sourceBuffer, 'update', 'sourceBuffer'); test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer'); @@ -38,6 +43,7 @@ assert_false(sourceBuffer.updating, "updating"); assert_greater_than(mediaSource.duration, 1, "duration"); + // Complete truncation of duration to 1 second. mediaSource.duration = 1; test.expectEvent(mediaElement, "durationchange"); diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html index cec214bbc26..ccefe2ea23e 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +AbsoluteOrientationSensor Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 2a5debec2cc..6aed47d4ddf 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +AbsoluteOrientationSensor Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html index 0b5698f168a..51bbba1cae4 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +AbsoluteOrientationSensor Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html index 80ed027b09f..c0b4cc8ed30 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +AbsoluteOrientationSensor Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html index 6e3e4d49ca7..9ce51ab6448 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/AbsoluteOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +AbsoluteOrientationSensor Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html index 2c6318fb6af..9296af8ea6c 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-disabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +RelativeOrientationSensor Feature Policy Test: Disabled diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html index 71d261f0ea9..01b45b09935 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute-redirect-on-load.https.html @@ -1,5 +1,6 @@ +RelativeOrientationSensor Feature Policy Test: Enabled by attribute redirect on load diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html index 88c023d6249..1bf41196663 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy-attribute.https.html @@ -1,5 +1,6 @@ +RelativeOrientationSensor Feature Policy Test: Enabled by attribute diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html index 7ec65e0609d..7ea2fb50f3b 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-by-feature-policy.https.html @@ -1,5 +1,6 @@ +RelativeOrientationSensor Feature Policy Test: Enabled diff --git a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html index 4828d0bc905..6d677bf0d42 100644 --- a/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html +++ b/tests/wpt/web-platform-tests/orientation-sensor/RelativeOrientationSensor-enabled-on-self-origin-by-feature-policy.https.html @@ -1,5 +1,6 @@ +RelativeOrientationSensor Feature Policy Test: Enabled on self origin diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html index eb58b6a7ece..fd66493bf4f 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html @@ -22,7 +22,7 @@ test(() => { try { new PaymentRequestUpdateEvent("test"); } catch (err) { - assert_true(false, `Unexpected exception: ${err.message}`); + assert_unreached(`Unexpected exception: ${err.message}`); } }, "PaymentRequestUpdateEvent can be constructed in secure-context"); diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html index 8fc4bafcf04..cfcdb75a66b 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html @@ -43,7 +43,7 @@ promise_test(async t => { try { await request.abort(); } catch (err) { - assert_true(false, "Unexpected promise rejection: " + err.message); + assert_unreached("Unexpected promise rejection: " + err.message); } // The request is now "closed", so... await promise_rejects(t, "InvalidStateError", request.abort()); @@ -55,7 +55,7 @@ promise_test(async t => { try { await request.abort(); } catch (err) { - assert_true(false, "Unexpected promise rejection: " + err.message); + assert_unreached("Unexpected promise rejection: " + err.message); } await promise_rejects(t, "AbortError", acceptPromise); // As request is now "closed", trying to show it will fail diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html index 1d0b88d2a1c..1325681a4ac 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html @@ -81,7 +81,7 @@ test(() => { try { new PaymentRequest(evilMethods, defaultDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, let's add an abusive amount of methods. while (evilMethods.length < ABUSIVE_AMOUNT) { @@ -92,7 +92,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if there is an abusive number of payment methods in the methodData sequence"); // PaymentMethodData.supportedMethods @@ -102,18 +101,19 @@ test(() => { try { new PaymentRequest([{ supportedMethods }], defaultDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make supportedMethods super large - const evilMethodData = [{ - supportedMethods: supportedMethods.repeat(ABUSIVE_AMOUNT), - }]; + const evilMethodData = [ + { + supportedMethods: supportedMethods.repeat(ABUSIVE_AMOUNT), + }, + ]; try { new PaymentRequest(evilMethodData, defaultDetails); } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if PaymentMethodData.supportedMethods is an abusive length"); // PaymentDetailsInit.id @@ -126,7 +126,7 @@ test(() => { Object.assign({}, defaultDetails, { id }) ); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make the id super large; const evilDetails = Object.assign({}, defaultDetails, { @@ -137,7 +137,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if the request id has an abusive length"); // PaymentDetailsInit.total.label @@ -147,7 +146,7 @@ test(() => { try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make the label super large; evilDetails.total = { @@ -159,7 +158,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if PaymentDetailsInit.total.label is an abusive length"); test(() => { @@ -168,7 +166,7 @@ test(() => { try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we can use evilAmount evilDetails.total = evilAmount; @@ -177,7 +175,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if total.amount.value is an abusive length"); for (const [prop, defaultValue] of [ @@ -191,7 +188,7 @@ for (const [prop, defaultValue] of [ try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } while (evilDetails[prop].length < ABUSIVE_AMOUNT) { evilDetails[prop] = evilDetails[prop].concat(evilDetails[prop]); @@ -202,7 +199,6 @@ for (const [prop, defaultValue] of [ } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, `Don't crash if details.${prop} has an abusive number of items`); } @@ -214,7 +210,7 @@ test(() => { try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make the label super large; evilShippingOption.label = "l".repeat(ABUSIVE_AMOUNT); @@ -223,7 +219,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if PaymentShippingOptions.label is an abusive length"); test(() => { @@ -234,7 +229,7 @@ test(() => { try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make use of evilAmount; evilShippingOption.amount = evilAmount; @@ -243,7 +238,6 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if the PaymentShippingOptions.amount.value is an abusive length"); test(() => { @@ -254,7 +248,7 @@ test(() => { try { new PaymentRequest(defaultMethods, evilDetails); } catch (err) { - assert_true(false, "failed smoke test: " + err.stack); + assert_unreached("failed smoke test: " + err.stack); } // Now, we make the label super large; evilDisplayItem.label = "l".repeat(ABUSIVE_AMOUNT); @@ -263,8 +257,5 @@ test(() => { } catch (err) { assert_equals(err.name, "TypeError", "must be a TypeError"); } - assert_true(true, "Didn't crash"); }, "Don't crash if PaymentItem.label is an abusive length"); - - diff --git a/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html b/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html new file mode 100644 index 00000000000..eb660f7125a --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/po-takeRecords.html @@ -0,0 +1,39 @@ + + +PerformanceObserver: takeRecords + + + + diff --git a/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html b/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html index 1e8fc1f53aa..c058d24a6e5 100644 --- a/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html +++ b/tests/wpt/web-platform-tests/pointerlock/movementX_Y_basic-manual.html @@ -30,14 +30,14 @@
    Waiting... Click to start loging.
    - - - - - - - -
    XY
    client_init:XY
    client_last:XY
    client_delta:XY
    movement_sum:XY
    movement:XY
    + + + + + + + +
    XY
    screen_init:XY
    screen_last:XY
    screen_delta:XY
    movement_sum:XY
    movement:XY

    @@ -49,16 +49,16 @@ movementY_log = document.querySelector('#movementY-log'), movementX_sum_log = document.querySelector('#movementX_sum-log'), movementY_sum_log = document.querySelector('#movementY_sum-log'), - clientX_init_log = document.querySelector('#clientX_init-log'), - clientY_init_log = document.querySelector('#clientY_init-log'), - clientX_last_log = document.querySelector('#clientX_last-log'), - clientY_last_log = document.querySelector('#clientY_last-log'); - clientX_delta_log = document.querySelector('#clientX_delta-log'), - clientY_delta_log = document.querySelector('#clientY_delta-log'); + screenX_init_log = document.querySelector('#screenX_init-log'), + screenY_init_log = document.querySelector('#screenY_init-log'), + screenX_last_log = document.querySelector('#screenX_last-log'), + screenY_last_log = document.querySelector('#screenY_last-log'); + screenX_delta_log = document.querySelector('#screenX_delta-log'), + screenY_delta_log = document.querySelector('#screenY_delta-log'); var click_counter = 0; - var clientX_init, clientY_init, movementX, movementY, movementX_sum, movementY_sum, clientX_last, clientY_last; + var screenX_init, screenY_init, movementX, movementY, movementX_sum, movementY_sum, screenX_last, screenY_last; var movementX_Y_inside_window_Test = async_test("Test that movementX/Y = eNow.screenX/Y-ePrevious.screenX/Y."); @@ -72,11 +72,9 @@ case 2: status_log.innerHTML = "inside window: done"; - // approximately(+/- 10) - // a little drift should be tollerated movementX_Y_inside_window_Test.step(function() { - assert_equals(movementX_sum, clientX_last - clientX_init, "sum of movementX = clientX_init - clientX_last"); - assert_equals(movementY_sum, clientY_last - clientY_init, "sum of movementY = clientY_init - clientY_last"); + assert_equals(movementX_sum, screenX_last - screenX_init, "sum of movementX = screenX_last - screenX_init"); + assert_equals(movementY_sum, screenY_last - screenY_init, "sum of movementY = screenY_last - screenY_init"); }); movementX_Y_inside_window_Test.done(); break; @@ -88,32 +86,39 @@ movementY = e.movementY; if(click_counter === 1) { - if(!clientX_init) { - clientX_init = e.clientX; - clientY_init = e.clientY; - movementX_sum = movementX; - movementY_sum = movementY; + if(!screenX_init) { + screenX_init = screenX_last = e.screenX; + screenY_init = screenY_last = e.screenY; + movementX_sum = 0; + movementY_sum = 0; } + else { + movementX_sum += movementX; + movementY_sum += movementY; - movementX_sum += movementX; - movementY_sum += movementY; + screenX_delta = e.screenX - screenX_last; + screenY_delta = e.screenY - screenY_last; - clientX_last = e.clientX; - clientY_last = e.clientY; - clientX_delta = clientX_last - clientX_init; - clientY_delta = clientY_last - clientY_init; + movementX_Y_inside_window_Test.step(function() { + assert_equals(movementX, screenX_delta, "movementX = screen_delta"); + assert_equals(movementY, screenY_delta, "movementY = screen_delta"); + }); - updateData(); + screenX_last = e.screenX; + screenY_last = e.screenY; + + updateData(); + } } }); function updateData() { - clientX_init_log.innerHTML = clientX_init; - clientY_init_log.innerHTML = clientY_init; - clientX_last_log.innerHTML = clientX_last; - clientY_last_log.innerHTML = clientY_last; - clientX_delta_log.innerHTML = clientX_delta; - clientY_delta_log.innerHTML = clientY_delta; + screenX_init_log.innerHTML = screenX_init; + screenY_init_log.innerHTML = screenY_init; + screenX_last_log.innerHTML = screenX_last; + screenY_last_log.innerHTML = screenY_last; + screenX_delta_log.innerHTML = screenX_delta; + screenY_delta_log.innerHTML = screenY_delta; movementX_log.innerHTML = movementX; movementY_log.innerHTML = movementY; movementX_sum_log.innerHTML = movementX_sum; diff --git a/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html b/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html index f1afb684cb0..74d8dfa0ed6 100644 --- a/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html +++ b/tests/wpt/web-platform-tests/presentation-api/receiving-ua/support/PresentationConnectionList_onconnectionavailable_receiving-ua.html @@ -31,7 +31,7 @@ return receiver.connectionList.then(list => { connections = list.connections; if (action === 'close') { - assert_true(connections.length === number - 1 && connections.includes(connection), + assert_true(connections.length === number - 1 && !connections.includes(connection), 'A closed presentation connection is removed from the set of presentation controllers.'); } else if (action === 'connect') { assert_true(connections.length === number + 1 && connections.includes(connection), diff --git a/tests/wpt/web-platform-tests/proximity/idlharness.html b/tests/wpt/web-platform-tests/proximity/idlharness.html deleted file mode 100644 index 4e30cca04ad..00000000000 --- a/tests/wpt/web-platform-tests/proximity/idlharness.html +++ /dev/null @@ -1,77 +0,0 @@ - - -Proximity Events IDL tests - - - - - - - -
    - -
    -[Global=Window, Exposed=Window]
    -interface Window {
    -};
    -
    -interface Event {
    -};
    -
    -dictionary EventInit {
    -};
    -
    - -
    -partial interface Window {
    -                attribute EventHandler ondeviceproximity;
    -                attribute EventHandler onuserproximity;
    -};
    -
    -dictionary DeviceProximityEventInit : EventInit {
    -    double value;
    -    double min;
    -    double max;
    -};
    -
    -[Constructor (DOMString type, optional DeviceProximityEventInit eventInitDict)]
    -interface DeviceProximityEvent : Event {
    -    readonly    attribute unrestricted double value;
    -    readonly    attribute unrestricted double min;
    -    readonly    attribute unrestricted double max;
    -};
    -
    -dictionary UserProximityEventInit : EventInit {
    -    boolean near;
    -};
    -
    -[Constructor (DOMString type, optional UserProximityEventInit eventInitDict)]
    -interface UserProximityEvent : Event {
    -    readonly    attribute boolean near;
    -};
    -
    - - - diff --git a/tests/wpt/web-platform-tests/proximity/idlharness.https.html b/tests/wpt/web-platform-tests/proximity/idlharness.https.html new file mode 100644 index 00000000000..2bfc7d1db3f --- /dev/null +++ b/tests/wpt/web-platform-tests/proximity/idlharness.https.html @@ -0,0 +1,37 @@ + + +Proximity Sensor IDL tests + + + + + + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html index c918802bf32..d2bcab912ed 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html +++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html @@ -11,12 +11,12 @@ + + + + + + + +

    Description

    +

    This test validates that resources requested by dedicated workers don't appear in the main document.

    + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html b/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html index c669a383803..de3c3d015d1 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html +++ b/tests/wpt/web-platform-tests/resource-timing/resource_dynamic_insertion.html @@ -10,27 +10,27 @@ + + + + + + +

    Description

    +

    This test validates that the frame initiator type is represented.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html new file mode 100644 index 00000000000..f8ca2f1187e --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_data_url.html @@ -0,0 +1,33 @@ + + + + +Resource Timing ignores requests for data: URIs + + + + + + + + + +

    Description

    +

    This test validates that resources with data: URIs aren't present in the Resource Timing buffer.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html new file mode 100644 index 00000000000..fa9e411ea98 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_ignore_failures.html @@ -0,0 +1,33 @@ + + + + +Resource Timing ignores failed resources + + + + + + + + + +

    Description

    +

    This test validates that failed resources aren't present in the Resource Timing buffer.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html b/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html new file mode 100644 index 00000000000..b7c4c8b257e --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_initiator_types.html @@ -0,0 +1,109 @@ + + + + +Resource Timing initiator types + + + + + + + + + +

    Description

    +

    This test validates that all of the initiator types are represented.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html b/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html new file mode 100644 index 00000000000..236f69fba72 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_memory_cached.sub.html @@ -0,0 +1,84 @@ + + + + +Resource Timing memory cached resources + + + + + + + + + +

    Description

    +

    This test validates that a memory cached resource appears in the buffer once.

    +
    + + + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html b/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html new file mode 100644 index 00000000000..606662afda4 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html @@ -0,0 +1,53 @@ + + + + +Resource Timing redirect names + + + + + + + + + +

    Description

    +

    This test validates that redirects do not alter the URL.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html b/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html new file mode 100644 index 00000000000..7d4947fa770 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_reparenting.html @@ -0,0 +1,53 @@ + + + + +Resource Timing reparenting elements + + + + + + + + + +

    Description

    +

    This test validates that reparenting an element doesn't change the initiator document.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html b/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html new file mode 100644 index 00000000000..898fa0cee2c --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_script_types.html @@ -0,0 +1,72 @@ + + + + +Resource Timing script initiator types + + + + + + + + + +

    Description

    +

    This test validates that all of the different types of script loads are reported with the correct initiator.

    +
    + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm b/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm new file mode 100644 index 00000000000..41789d869cf --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/all_resource_types.htm @@ -0,0 +1,49 @@ + + + + + All Resource Types Test Page + + + + + + + + + +
      +
    • Test
    • +
    +
      +
    1. Test
    2. +
    + + + + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm new file mode 100644 index 00000000000..b8a1947b77e --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm @@ -0,0 +1,10 @@ + + + + + Green Test Page + + +

    Placeholder

    + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js b/tests/wpt/web-platform-tests/resource-timing/resources/empty_script.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm b/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm new file mode 100644 index 00000000000..c91f44abf32 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/green_frame.htm @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/nested.css b/tests/wpt/web-platform-tests/resource-timing/resources/nested.css new file mode 100644 index 00000000000..90d61b04acc --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/nested.css @@ -0,0 +1,10 @@ +@import "resource_timing_test0.css?id=n1"; + +@font-face { + font-family: remoteFont; + src: url('/fonts/Ahem.ttf?id=n1'); +} +ol { + font-family: remoteFont; + list-style-image: url('blue.png?id=n1'); +} diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js b/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js new file mode 100644 index 00000000000..2d7688fcf99 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/worker_with_images.js @@ -0,0 +1,21 @@ +let numComplete = 0; + +function checkDone() { + ++numComplete; + if (numComplete == 2) { + postMessage(''); + } +} + +function makeRequest(request) { + var xhr = new XMLHttpRequest; + xhr.open('get', request, true); + xhr.onreadystatechange = function() { + if (xhr.readyState == 4) { + checkDone(); + } + } + xhr.send(); +} +makeRequest('blue.png'); +makeRequest('resource_timing_test0.png'); diff --git a/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js b/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js index 51a3d2c1fc5..8e729e01356 100644 --- a/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js +++ b/tests/wpt/web-platform-tests/resource-timing/test_resource_timing.js @@ -183,7 +183,9 @@ function resource_load(expected) }); t["timing_attrs"].step(function test() { - var actual = window.performance.getEntriesByName(expected.name)[0]; + const entries = window.performance.getEntriesByName(expected.name); + assert_equals(entries.length, 1, 'There should be a single matching entry'); + const actual = entries[0]; // Debugging bug 1263428 // Feel free to remove/overwrite this piece of code @@ -191,18 +193,18 @@ function resource_load(expected) assert_true(false, "actual: "+JSON.stringify(actual)); } - assert_equals(actual.redirectStart, 0, "redirectStart time"); - assert_equals(actual.redirectEnd, 0, "redirectEnd time"); + assert_equals(actual.redirectStart, 0, 'redirectStart should be 0'); + assert_equals(actual.redirectEnd, 0, 'redirectEnd should be 0'); assert_true(actual.secureConnectionStart == undefined || - actual.secureConnectionStart == 0, "secureConnectionStart time"); - assert_equals(actual.fetchStart, actual.startTime, "fetchStart is equal to startTime"); - assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, "domainLookupStart after fetchStart"); - assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, "domainLookupEnd after domainLookupStart"); - assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, "connectStart after domainLookupEnd"); - assert_greater_than_equal(actual.connectEnd, actual.connectStart, "connectEnd after connectStart"); - assert_greater_than_equal(actual.requestStart, actual.connectEnd, "requestStart after connectEnd"); - assert_greater_than_equal(actual.responseStart, actual.requestStart, "responseStart after requestStart"); - assert_greater_than_equal(actual.responseEnd, actual.responseStart, "responseEnd after responseStart"); + actual.secureConnectionStart == 0, 'secureConnectionStart should be 0 or undefined'); + assert_equals(actual.fetchStart, actual.startTime, 'fetchStart is equal to startTime'); + assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, 'domainLookupStart after fetchStart'); + assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, 'domainLookupEnd after domainLookupStart'); + assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, 'connectStart after domainLookupEnd'); + assert_greater_than_equal(actual.connectEnd, actual.connectStart, 'connectEnd after connectStart'); + assert_greater_than_equal(actual.requestStart, actual.connectEnd, 'requestStart after connectEnd'); + assert_greater_than_equal(actual.responseStart, actual.requestStart, 'responseStart after requestStart'); + assert_greater_than_equal(actual.responseEnd, actual.responseStart, 'responseEnd after responseStart'); this.done(); }); diff --git a/tests/wpt/web-platform-tests/resources/check-layout-th.js b/tests/wpt/web-platform-tests/resources/check-layout-th.js index 9b83df74ef2..928b0cf2a10 100644 --- a/tests/wpt/web-platform-tests/resources/check-layout-th.js +++ b/tests/wpt/web-platform-tests/resources/check-layout-th.js @@ -171,7 +171,6 @@ window.checkLayout = function(selectorList, callDone = true) } var nodes = document.querySelectorAll(selectorList); nodes = Array.prototype.slice.call(nodes); - nodes.reverse(); var checkedLayout = false; Array.prototype.forEach.call(nodes, function(node) { test(function(t) { diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js index 08d97b57223..23b8651bb13 100644 --- a/tests/wpt/web-platform-tests/resources/testharness.js +++ b/tests/wpt/web-platform-tests/resources/testharness.js @@ -1257,11 +1257,22 @@ policies and contribution forms [3]. if (e instanceof AssertionError) { throw e; } + + assert(typeof e === "object", + "assert_throws", description, + "${func} threw ${e} with type ${type}, not an object", + {func:func, e:e, type:typeof e}); + + assert(e !== null, + "assert_throws", description, + "${func} threw null, not an object", + {func:func}); + if (code === null) { throw new AssertionError('Test bug: need to pass exception to assert_throws()'); } if (typeof code === "object") { - assert(typeof e == "object" && "name" in e && e.name == code.name, + assert("name" in e && e.name == code.name, "assert_throws", description, "${func} threw ${actual} (${actual_name}) expected ${expected} (${expected_name})", {func:func, actual:e, actual_name:e.name, @@ -1340,8 +1351,7 @@ policies and contribution forms [3]. var required_props = { code: name_code_map[name] }; if (required_props.code === 0 || - (typeof e == "object" && - "name" in e && + ("name" in e && e.name !== e.name.toUpperCase() && e.name !== "DOMException")) { // New style exception: also test the name property. @@ -1353,13 +1363,8 @@ policies and contribution forms [3]. //in. It might be an instanceof the appropriate interface on some //unknown other window. TODO: Work around this somehow? - assert(typeof e == "object", - "assert_throws", description, - "${func} threw ${e} with type ${type}, not an object", - {func:func, e:e, type:typeof e}); - for (var prop in required_props) { - assert(typeof e == "object" && prop in e && e[prop] == required_props[prop], + assert(prop in e && e[prop] == required_props[prop], "assert_throws", description, "${func} threw ${e} that is not a DOMException " + code + ": property ${prop} is equal to ${actual}, expected ${expected}", {func:func, e:e, prop:prop, actual:e[prop], expected:required_props[prop]}); diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers new file mode 100644 index 00000000000..6f9cb19400b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/0.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js new file mode 100644 index 00000000000..220cf1aa28d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers new file mode 100644 index 00000000000..d5ebb5fbffc --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/1.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js new file mode 100644 index 00000000000..220cf1aa28d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers new file mode 100644 index 00000000000..fc2300f8749 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/10.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric ; diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js new file mode 100644 index 00000000000..220cf1aa28d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers new file mode 100644 index 00000000000..d5ed699c5c8 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/11.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric , diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js new file mode 100644 index 00000000000..c32491d0c01 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers new file mode 100644 index 00000000000..7b89b475bdc --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/12.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric ; dur = 123.4 ; desc = description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js new file mode 100644 index 00000000000..9b767142e5b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers new file mode 100644 index 00000000000..dcb056faa88 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/13.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric ; desc = description ; dur = 123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js new file mode 100644 index 00000000000..153607bfc56 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers new file mode 100644 index 00000000000..7ebf8c3bfde --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/14.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc = "description" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js new file mode 100644 index 00000000000..311cabe5535 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1","dur":12.3,"desc":"description1"},{"name":"metric2","dur":45.6,"desc":"description2"},{"name":"metric3","dur":78.9,"desc":"description3"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers new file mode 100644 index 00000000000..0389e997904 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/15.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1;dur=12.3;desc=description1,metric2;dur=45.6;desc=description2,metric3;dur=78.9;desc=description3 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js new file mode 100644 index 00000000000..ab8597f9170 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1"},{"name":"metric2"},{"name":"metric3"},{"name":"metric4"},{"name":"metric5"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers new file mode 100644 index 00000000000..b618a89de9a --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/16.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1,metric2 ,metric3, metric4 , metric5 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js new file mode 100644 index 00000000000..153607bfc56 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers new file mode 100644 index 00000000000..c083f605b37 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/17.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="description" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js new file mode 100644 index 00000000000..592475128d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\t description \t"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers new file mode 100644 index 00000000000..aa51ae040ff --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/18.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=" description " diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js new file mode 100644 index 00000000000..d8cc6b72f5a --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"descr\"iption"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers new file mode 100644 index 00000000000..d097b920299 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/19.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="descr\"iption" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js new file mode 100644 index 00000000000..6fd97fa66df --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers new file mode 100644 index 00000000000..14eb2f07748 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/2.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers new file mode 100644 index 00000000000..9b131fcb90a --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/20.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers new file mode 100644 index 00000000000..7134be2654a --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/21.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers new file mode 100644 index 00000000000..465a36b600f --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/22.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers new file mode 100644 index 00000000000..3b76de4a05c --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/23.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers new file mode 100644 index 00000000000..c54a4d85f52 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/24.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers new file mode 100644 index 00000000000..752441eb90d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/25.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers new file mode 100644 index 00000000000..60dbdbb0471 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/26.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers new file mode 100644 index 00000000000..feff2c042d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/27.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers new file mode 100644 index 00000000000..3ca9b6b2603 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/28.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\"\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers new file mode 100644 index 00000000000..ae0b8912905 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/29.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\"" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js new file mode 100644 index 00000000000..6fd97fa66df --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers new file mode 100644 index 00000000000..8c6fb60f310 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/3.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur="123.4" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers new file mode 100644 index 00000000000..24906f3c823 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/30.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers new file mode 100644 index 00000000000..aaceb6babf4 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/31.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers new file mode 100644 index 00000000000..59e01cfa940 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/32.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=""\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers new file mode 100644 index 00000000000..d81429ecad0 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/33.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=""" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers new file mode 100644 index 00000000000..bfb889515d9 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/34.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers new file mode 100644 index 00000000000..ff41d80b69b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/35.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers new file mode 100644 index 00000000000..a702069f7d7 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/36.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\"\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers new file mode 100644 index 00000000000..ecc3756393e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/37.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\\"" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers new file mode 100644 index 00000000000..b13d9f419f6 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/38.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\"\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers new file mode 100644 index 00000000000..02972236567 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/39.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\"\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js new file mode 100644 index 00000000000..153607bfc56 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers new file mode 100644 index 00000000000..e929723eed6 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/4.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers new file mode 100644 index 00000000000..9dd5cd4a76d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/40.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\""\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers new file mode 100644 index 00000000000..c5a006cd4a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/41.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=\""" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers new file mode 100644 index 00000000000..8a04d7c7f67 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/42.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js new file mode 100644 index 00000000000..b318cb7299b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\\"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers new file mode 100644 index 00000000000..8208c16ff31 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/43.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers new file mode 100644 index 00000000000..e50f42b3777 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/44.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\"\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js new file mode 100644 index 00000000000..993a69024cf --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"\""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers new file mode 100644 index 00000000000..055df4fbd48 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/45.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="\"" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers new file mode 100644 index 00000000000..5d7ef807f6c --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/46.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=""\\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers new file mode 100644 index 00000000000..f52c6e8ae27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/47.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=""\" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers new file mode 100644 index 00000000000..9eeadd38d39 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/48.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="""\ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js new file mode 100644 index 00000000000..107695e9d27 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":""}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers new file mode 100644 index 00000000000..2dbff3ca6cc --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/49.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="""" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js new file mode 100644 index 00000000000..153607bfc56 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers new file mode 100644 index 00000000000..c083f605b37 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/5.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="description" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js new file mode 100644 index 00000000000..61ec6915722 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":12.3,"desc":"description1"},{"name":"metric","dur":45.6,"desc":"description2"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers new file mode 100644 index 00000000000..c8ac573fa21 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/50.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=12.3;desc=description1,metric;dur=45.6;desc=description2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js new file mode 100644 index 00000000000..c32491d0c01 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers new file mode 100644 index 00000000000..5825a547c92 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/51.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;DuR=123.4;DeSc=description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js new file mode 100644 index 00000000000..6617af51776 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"MeTrIc","desc":"DeScRiPtIoN"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers new file mode 100644 index 00000000000..f5fcff981c3 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/52.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: MeTrIc;desc=DeScRiPtIoN diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js new file mode 100644 index 00000000000..40faf4106ce --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers new file mode 100644 index 00000000000..3de0f19046d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/53.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=foo diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js new file mode 100644 index 00000000000..40faf4106ce --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers new file mode 100644 index 00000000000..78f670422c8 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/54.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur="foo" diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js new file mode 100644 index 00000000000..4e2b14bbddd --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"description","dur":123.4},{"name":"metric2"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers new file mode 100644 index 00000000000..578232a4ab7 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/55.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1;foo=bar;desc=description;foo=bar;dur=123.4;foo=bar,metric2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js new file mode 100644 index 00000000000..6fd97fa66df --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers new file mode 100644 index 00000000000..8a220ab50aa --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/56.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=123.4;dur=567.8 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js new file mode 100644 index 00000000000..40faf4106ce --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers new file mode 100644 index 00000000000..2614e2034cd --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/57.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=foo;dur=567.8 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js new file mode 100644 index 00000000000..13250bbbc53 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description1"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers new file mode 100644 index 00000000000..e5ef56948b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/58.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=description1;desc=description2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js new file mode 100644 index 00000000000..0282f7d51eb --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0,"desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers new file mode 100644 index 00000000000..5b44836e706 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/59.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur;dur=123.4;desc=description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js new file mode 100644 index 00000000000..c32491d0c01 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":123.4,"desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers new file mode 100644 index 00000000000..5dbc9d65524 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/6.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=123.4;desc=description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js new file mode 100644 index 00000000000..0282f7d51eb --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0,"desc":"description"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers new file mode 100644 index 00000000000..bfbddf111a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/60.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur=;dur=123.4;desc=description diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js new file mode 100644 index 00000000000..62b744cc143 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers new file mode 100644 index 00000000000..6d605ad8570 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/61.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc;desc=description;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js new file mode 100644 index 00000000000..62b744cc143 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers new file mode 100644 index 00000000000..182a81a7bfd --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/62.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=;desc=description;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js new file mode 100644 index 00000000000..839f8064e6f --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"d1","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers new file mode 100644 index 00000000000..8e9b117988b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/63.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=d1 d2;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js new file mode 100644 index 00000000000..d64ea0a9dd1 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"d1"},{"name":"metric2"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers new file mode 100644 index 00000000000..b1dd0cc5b49 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/64.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1;desc=d1 d2,metric2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js new file mode 100644 index 00000000000..839f8064e6f --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"d1","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers new file mode 100644 index 00000000000..63946cdd084 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/65.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="d1" d2;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js new file mode 100644 index 00000000000..d64ea0a9dd1 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1","desc":"d1"},{"name":"metric2"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers new file mode 100644 index 00000000000..bddbb2cbb6c --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/66.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1;desc="d1" d2,metric2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js new file mode 100644 index 00000000000..220cf1aa28d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers new file mode 100644 index 00000000000..5fe55cc32ad --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/67.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric== ""foo;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js new file mode 100644 index 00000000000..4077b26a610 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric1"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers new file mode 100644 index 00000000000..27dabbe090a --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/68.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric1== ""foo,metric2 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js new file mode 100644 index 00000000000..40faf4106ce --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","dur":0}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers new file mode 100644 index 00000000000..55282410e7e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/69.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;dur foo=12 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js new file mode 100644 index 00000000000..9b767142e5b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"description","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers new file mode 100644 index 00000000000..c6369005d8e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/7.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc=description;dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js new file mode 100644 index 00000000000..220cf1aa28d --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers new file mode 100644 index 00000000000..aa8f70bd90c --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/70.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;foo dur=12 diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers new file mode 100644 index 00000000000..26fcf28e39e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/71.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers new file mode 100644 index 00000000000..74e059fd74c --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/72.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: = diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers new file mode 100644 index 00000000000..eeaebdf48f1 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/73.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: [ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers new file mode 100644 index 00000000000..b4f3c562f6b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/74.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ] diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers new file mode 100644 index 00000000000..9a3684d48e3 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/75.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ; diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers new file mode 100644 index 00000000000..79cbd0c4d59 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/76.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: , diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers new file mode 100644 index 00000000000..888fa71e64b --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/77.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: =; diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers new file mode 100644 index 00000000000..fc40e706cde --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/78.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ;= diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers new file mode 100644 index 00000000000..0516c4cc057 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/79.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: =, diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js new file mode 100644 index 00000000000..8581efd93ec --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"aB3!#$%&'*+-.^_`|~"}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers new file mode 100644 index 00000000000..1d1bb026dd9 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/8.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: aB3!#$%&'*+-.^_`|~ diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers new file mode 100644 index 00000000000..03b3909f558 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/80.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ,= diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers new file mode 100644 index 00000000000..680d2a2422e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/81.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ;, diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers new file mode 100644 index 00000000000..7ab1448b88e --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/82.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: ,; diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js new file mode 100644 index 00000000000..8de2c019353 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, []) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers new file mode 100644 index 00000000000..bd079bc62a7 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/83.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: =;, diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js new file mode 100644 index 00000000000..e03b07a2af1 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js @@ -0,0 +1 @@ +testServerTiming(document.currentScript.src, [{"name":"metric","desc":"descr;,=iption","dur":123.4}]) diff --git a/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers new file mode 100644 index 00000000000..c385706d334 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/resources/parsing/9.js.sub.headers @@ -0,0 +1 @@ +Server-Timing: metric;desc="descr;,=iption";dur=123.4 diff --git a/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html b/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html new file mode 100644 index 00000000000..a598a715b82 --- /dev/null +++ b/tests/wpt/web-platform-tests/server-timing/server_timing_header-parsing.html @@ -0,0 +1,38 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/server-timing/test_server_timing.html b/tests/wpt/web-platform-tests/server-timing/test_server_timing.html index fa100301f14..2d43aa2d43b 100644 --- a/tests/wpt/web-platform-tests/server-timing/test_server_timing.html +++ b/tests/wpt/web-platform-tests/server-timing/test_server_timing.html @@ -3,7 +3,6 @@ - diff --git a/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg new file mode 100644 index 00000000000..cc068cefe32 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing-ref.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg new file mode 100644 index 00000000000..5b72c494b3b --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/closepath/segment-completing.svg @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg new file mode 100644 index 00000000000..9a9a1a8d473 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive-ref.svg @@ -0,0 +1,32 @@ + + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg new file mode 100644 index 00000000000..b40d6b82b55 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-positive.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg new file mode 100644 index 00000000000..d5556add663 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero-ref.svg @@ -0,0 +1,26 @@ + + + + + + + + + + The quick brown fox + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg new file mode 100644 index 00000000000..4ae0b836f7f --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/distance/pathLength-zero.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + + + The quick brown fox + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg new file mode 100644 index 00000000000..85c089b25ba --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/error-handling/bounding.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg new file mode 100644 index 00000000000..dd2d7c32a6b --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error-ref.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg new file mode 100644 index 00000000000..6b8a50b4f2f --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/error-handling/render-until-error.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg b/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg new file mode 100644 index 00000000000..d321b8b0011 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/path/interfaces/SVGAnimatedPathData-removed.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg b/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg new file mode 100644 index 00000000000..5391d91ad5a --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/types/elements/SVGGeometryElement-rect.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/tools/ci/check_stability.py b/tests/wpt/web-platform-tests/tools/ci/check_stability.py index 169962a55e6..322a52140a2 100644 --- a/tests/wpt/web-platform-tests/tools/ci/check_stability.py +++ b/tests/wpt/web-platform-tests/tools/ci/check_stability.py @@ -132,11 +132,6 @@ def get_sha1(): return git("rev-parse", "HEAD").strip() -def install_wptrunner(): - """Install wptrunner.""" - call("pip", "install", wptrunner_root) - - def deepen_checkout(user): """Convert from a shallow checkout to a full one""" fetch_args = [user, "+refs/heads/*:refs/remotes/origin/*"] diff --git a/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh b/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh index 6c74a251244..7a54d85ff0a 100755 --- a/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh +++ b/tests/wpt/web-platform-tests/tools/ci/ci_tools_unittest.sh @@ -16,6 +16,7 @@ fi if [[ $(./wpt test-jobs --includes wptrunner_unittest; echo $?) -eq 0 ]]; then if [ $TOXENV == "py27" ] || [ $TOXENV == "pypy" ]; then + TOXENV="$TOXENV,py27-flake8" cd tools/wptrunner tox fi diff --git a/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py b/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py index 5ceeb0b5f72..523f544b7c4 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py +++ b/tests/wpt/web-platform-tests/tools/manifest/XMLParser.py @@ -70,8 +70,8 @@ class XMLParser(object): def _end(self, tag): return self._target.end(_fixname(tag)) - def _external(self, context, base, systemId, publicId): - if publicId in { + def _external(self, context, base, system_id, public_id): + if public_id in { "-//W3C//DTD XHTML 1.0 Transitional//EN", "-//W3C//DTD XHTML 1.1//EN", "-//W3C//DTD XHTML 1.0 Strict//EN", diff --git a/tests/wpt/web-platform-tests/tools/manifest/manifest.py b/tests/wpt/web-platform-tests/tools/manifest/manifest.py index b153798d6f9..e466e6ff56a 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/manifest.py +++ b/tests/wpt/web-platform-tests/tools/manifest/manifest.py @@ -2,7 +2,7 @@ import json import os import re from collections import defaultdict -from six import iteritems, itervalues, viewkeys +from six import iteritems, itervalues, viewkeys, string_types from .item import ManualTest, WebdriverSpecTest, Stub, RefTestNode, RefTest, TestharnessTest, SupportFile, ConformanceCheckerTest, VisualTest from .log import get_logger @@ -20,14 +20,6 @@ class ManifestVersionMismatch(ManifestError): pass -def sourcefile_items(args): - tests_root, url_base, rel_path, status = args - source_file = SourceFile(tests_root, - rel_path, - url_base) - return rel_path, source_file.manifest_items() - - class Manifest(object): def __init__(self, url_base="/"): assert url_base is not None @@ -221,7 +213,7 @@ def load(tests_root, manifest): logger = get_logger() # "manifest" is a path or file-like object. - if isinstance(manifest, basestring): + if isinstance(manifest, string_types): if os.path.exists(manifest): logger.debug("Opening manifest at %s" % manifest) else: diff --git a/tests/wpt/web-platform-tests/tools/runner/report.py b/tests/wpt/web-platform-tests/tools/runner/report.py index f4b3fa71661..952df08b805 100644 --- a/tests/wpt/web-platform-tests/tools/runner/report.py +++ b/tests/wpt/web-platform-tests/tools/runner/report.py @@ -1,3 +1,5 @@ +# flake8: noqa + from __future__ import print_function import argparse diff --git a/tests/wpt/web-platform-tests/tools/sslutils/base.py b/tests/wpt/web-platform-tests/tools/sslutils/base.py index e78e1385c7b..237ae5f23cc 100644 --- a/tests/wpt/web-platform-tests/tools/sslutils/base.py +++ b/tests/wpt/web-platform-tests/tools/sslutils/base.py @@ -1,9 +1,3 @@ -def get_logger(name="ssl"): - logger = structured.get_default_logger(name) - if logger is None: - logger = structured.structuredlog.StructuredLogger(name) - return logger - class NoSSLEnvironment(object): ssl_enabled = False diff --git a/tests/wpt/web-platform-tests/tools/tox.ini b/tests/wpt/web-platform-tests/tools/tox.ini index b154c471d6f..159a934eb1a 100644 --- a/tests/wpt/web-platform-tests/tools/tox.ini +++ b/tests/wpt/web-platform-tests/tools/tox.ini @@ -3,8 +3,12 @@ envlist = py27,py36,pypy skipsdist=True [testenv] +# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini deps = - flake8 + flake8==3.5.0 + pycodestyle==2.3.1 + pyflakes==1.6.0 + pep8-naming==0.4.1 pytest pytest-cov mock @@ -19,6 +23,28 @@ passenv = HYPOTHESIS_PROFILE [flake8] -ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E901,F401,F821,F841 +# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini +select = E,W,F,N +# E128: continuation line under-indented for visual indent +# E129: visually indented line with same indent as next logical line +# E221: multiple spaces before operator +# E226: missing whitespace around arithmetic operator +# E231: missing whitespace after ‘,’, ‘;’, or ‘:’ +# E251: unexpected spaces around keyword / parameter equals +# E265: block comment should start with ‘# ‘ +# E302: expected 2 blank lines, found 0 +# E303: too many blank lines (3) +# E305: expected 2 blank lines after end of function or class +# E402: module level import not at top of file +# E731: do not assign a lambda expression, use a def +# E901: SyntaxError or IndentationError +# W601: .has_key() is deprecated, use ‘in’ +# F401: module imported but unused +# F403: ‘from module import *’ used; unable to detect undefined names +# F405: name may be undefined, or defined from star imports: module +# F841: local variable name is assigned to but never used +# N801: class names should use CapWords convention +# N802: function name should be lowercase +ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802 max-line-length = 141 exclude = .tox,html5lib,third_party/py,third_party/pytest,third_party/funcsigs,third_party/attrs,third_party/pluggy/,pywebsocket,six,_venv,webencodings,wptserve/docs,wptserve/tests/functional/docroot/,wpt,wptrunner diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py index ec7d6deccba..622c5fce76a 100644 --- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py +++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py @@ -4,6 +4,8 @@ import error import protocol import transport +from six import string_types + from mozlog import get_default_logger logger = get_default_logger() @@ -313,7 +315,7 @@ class Cookies(object): cookie = {"name": name, "value": None} - if isinstance(name, (str, unicode)): + if isinstance(name, string_types): cookie["value"] = value elif hasattr(value, "value"): cookie["value"] = value.value diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py index 80f358c8b0a..ea0c793accb 100644 --- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py +++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/protocol.py @@ -16,7 +16,7 @@ class Encoder(json.JSONEncoder): return [self.default(x) for x in obj] elif isinstance(obj, webdriver.Element): return {webdriver.Element.identifier: obj.id} - return super(ProtocolEncoder, self).default(obj) + return super(Encoder, self).default(obj) class Decoder(json.JSONDecoder): diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py deleted file mode 100644 index 2e0b722abab..00000000000 --- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/servo.py +++ /dev/null @@ -1,18 +0,0 @@ -class ServoExtensionCommands(object): - def __init__(self, session): - self.session = session - - @command - def get_prefs(self, *prefs): - body = {"prefs": list(prefs)} - return self.session.send_command("POST", "servo/prefs/get", body) - - @command - def set_prefs(self, prefs): - body = {"prefs": prefs} - return self.session.send_command("POST", "servo/prefs/set", body) - - @command - def reset_prefs(self, *prefs): - body = {"prefs": list(prefs)} - return self.session.send_command("POST", "servo/prefs/reset", body) diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py index b198b194b38..d62271fe957 100644 --- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py +++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py @@ -4,6 +4,7 @@ import urlparse import error +from six import text_type """Implements HTTP transport for the WebDriver wire protocol.""" @@ -135,7 +136,7 @@ class HTTPWireProtocol(object): except ValueError: raise ValueError("Failed to encode request body as JSON:\n" "%s" % json.dumps(body, indent=2)) - if isinstance(payload, unicode): + if isinstance(payload, text_type): payload = body.encode("utf-8") if headers is None: diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index 40d94d53179..c6cc38afd67 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -4,9 +4,12 @@ import platform import re import shutil import stat +import subprocess +import sys from abc import ABCMeta, abstractmethod from ConfigParser import RawConfigParser from distutils.spawn import find_executable +from io import BytesIO from utils import call, get, untar, unzip @@ -278,6 +281,61 @@ class Chrome(Browser): logger.critical("dbus not running and can't be started") sys.exit(1) +class ChromeAndroid(Browser): + """Chrome-specific interface for android. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "chrome_android" + requirements = "requirements_chrome_android.txt" + + 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 + + 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/tests/wpt/web-platform-tests/tools/wpt/install.py b/tests/wpt/web-platform-tests/tools/wpt/install.py index 408744a4a40..d779651c990 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/install.py +++ b/tests/wpt/web-platform-tests/tools/wpt/install.py @@ -39,8 +39,3 @@ def install(name, component, destination): subclass = getattr(browser, name.title()) sys.stdout.write('Now installing %s %s...\n' % (name, component)) getattr(subclass(), method)(dest=destination) - - -if __name__ == '__main__': - args = parser.parse_args() - run(None, **vars(args)) diff --git a/tests/wpt/web-platform-tests/tools/wpt/markdown.py b/tests/wpt/web-platform-tests/tools/wpt/markdown.py index 87018910ac1..8b5ff8079df 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/markdown.py +++ b/tests/wpt/web-platform-tests/tools/wpt/markdown.py @@ -38,18 +38,3 @@ def table(headings, data, log): for row in data: log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols)) log("") - - -def err_string(results_dict, iterations): - """Create and return string with errors from test run.""" - rv = [] - total_results = sum(results_dict.values()) - for key, value in sorted(results_dict.items()): - rv.append("%s%s" % - (key, ": %s/%s" % (value, iterations) if value != iterations else "")) - if total_results < iterations: - rv.append("MISSING: %s/%s" % (iterations - total_results, iterations)) - rv = ", ".join(rv) - if is_inconsistent(results_dict, iterations): - rv = "**%s**" % rv - return rv diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index d1e3e49519c..f3fbcbdefb0 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -223,6 +223,28 @@ class Chrome(BrowserSetup): else: raise WptrunError("Unable to locate or install chromedriver binary") +class ChromeAndroid(BrowserSetup): + name = "chrome_android" + browser_cls = browser.ChromeAndroid + + def setup_kwargs(self, kwargs): + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + install = self.prompt_install("chromedriver") + + if install: + print("Downloading chromedriver") + webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path) + else: + print("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + raise WptrunError("Unable to locate or install chromedriver binary") + class Opera(BrowserSetup): name = "opera" @@ -321,6 +343,7 @@ class Servo(BrowserSetup): product_setup = { "firefox": Firefox, "chrome": Chrome, + "chrome_android": ChromeAndroid, "edge": Edge, "ie": InternetExplorer, "servo": Servo, diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py new file mode 100644 index 00000000000..f2dd012087c --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_stability.py @@ -0,0 +1,7 @@ +from tools.wpt import stability + +def test_is_inconsistent(): + assert stability.is_inconsistent({"PASS": 10}, 10) is False + assert stability.is_inconsistent({"PASS": 9}, 10) is True + assert stability.is_inconsistent({"PASS": 9, "FAIL": 1}, 10) is True + assert stability.is_inconsistent({"PASS": 8, "FAIL": 1}, 10) is True diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py index d3402174c1a..127ed188f3e 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py +++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py @@ -10,7 +10,8 @@ import pytest from tools.wpt import wpt -# Tests currently don't work on Windows for path reasons +pytestmark = pytest.mark.skipif(os.name == "nt", + reason="Tests currently don't work on Windows for path reasons") def test_missing(): with pytest.raises(SystemExit): @@ -25,6 +26,9 @@ def test_help(): assert excinfo.value.code == 0 +@pytest.mark.slow +@pytest.mark.system_dependent +@pytest.mark.remote_network def test_run_firefox(): # TODO: It seems like there's a bug in argparse that makes this argument order required # should try to work around that @@ -44,6 +48,8 @@ def test_run_firefox(): del os.environ["MOZ_HEADLESS"] +@pytest.mark.slow +@pytest.mark.system_dependent def test_run_chrome(): with pytest.raises(SystemExit) as excinfo: wpt.main(argv=["run", "--yes", "--no-pause", "--binary-arg", "headless", @@ -52,6 +58,8 @@ def test_run_chrome(): assert excinfo.value.code == 0 +@pytest.mark.slow +@pytest.mark.remote_network def test_install_chromedriver(): chromedriver_path = os.path.join(wpt.localpaths.repo_root, "_venv", "bin", "chromedriver") if os.path.exists(chromedriver_path): @@ -63,6 +71,8 @@ def test_install_chromedriver(): os.unlink(chromedriver_path) +@pytest.mark.slow +@pytest.mark.remote_network def test_install_firefox(): fx_path = os.path.join(wpt.localpaths.repo_root, "_venv", "firefox") if os.path.exists(fx_path): @@ -109,6 +119,8 @@ def test_files_changed_ignore_rules(): assert compile_ignore_rule("foobar/baz/**").pattern == "^foobar/baz/.*$" +@pytest.mark.slow # this updates the manifest +@pytest.mark.system_dependent def test_tests_affected(capsys): # This doesn't really work properly for random commits because we test the files in # the current working directory for references to the changed files, not the ones at @@ -121,6 +133,8 @@ def test_tests_affected(capsys): assert "html/browsers/offline/appcache/workers/appcache-worker.html" in out +@pytest.mark.slow +@pytest.mark.system_dependent def test_serve(): def test(): s = socket.socket() diff --git a/tests/wpt/web-platform-tests/tools/wpt/tox.ini b/tests/wpt/web-platform-tests/tools/wpt/tox.ini index 5836a52ffa9..229bc4bfc5c 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/tox.ini +++ b/tests/wpt/web-platform-tests/tools/wpt/tox.ini @@ -1,10 +1,9 @@ [tox] -envlist = py27 +envlist = py27,py27-flake8 skipsdist=True [testenv] deps = - flake8 pytest pytest-cov hypothesis @@ -13,9 +12,41 @@ deps = -r{toxinidir}/../wptrunner/requirements_firefox.txt commands = - pytest --cov - flake8 + pytest --cov {posargs} + +[testenv:py27-flake8] +# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini +deps = + flake8==3.5.0 + pycodestyle==2.3.1 + pyflakes==1.6.0 + pep8-naming==0.4.1 + +commands = + flake8 {posargs} [flake8] -ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E901,F401,F821,F841 +# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini +select = E,W,F,N +# E128: continuation line under-indented for visual indent +# E129: visually indented line with same indent as next logical line +# E221: multiple spaces before operator +# E226: missing whitespace around arithmetic operator +# E231: missing whitespace after ‘,’, ‘;’, or ‘:’ +# E251: unexpected spaces around keyword / parameter equals +# E265: block comment should start with ‘# ‘ +# E302: expected 2 blank lines, found 0 +# E303: too many blank lines (3) +# E305: expected 2 blank lines after end of function or class +# E402: module level import not at top of file +# E731: do not assign a lambda expression, use a def +# E901: SyntaxError or IndentationError +# W601: .has_key() is deprecated, use ‘in’ +# F401: module imported but unused +# F403: ‘from module import *’ used; unable to detect undefined names +# F405: name may be undefined, or defined from star imports: module +# F841: local variable name is assigned to but never used +# N801: class names should use CapWords convention +# N802: function name should be lowercase +ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802 max-line-length = 141 diff --git a/tests/wpt/web-platform-tests/tools/wpt/utils.py b/tests/wpt/web-platform-tests/tools/wpt/utils.py index e1f4cd4bb5c..e8edc0be493 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/utils.py +++ b/tests/wpt/web-platform-tests/tools/wpt/utils.py @@ -27,7 +27,7 @@ class Kwargs(dict): value = value() if not value: if err_fn is not None: - return err_fn(kwargs, "Failed to find %s" % desc) + return err_fn(self, "Failed to find %s" % desc) else: return self[name] = value diff --git a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py index 8f36aa93585..b8454c979c2 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py +++ b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py @@ -1,4 +1,5 @@ import os +import shutil import sys import logging from distutils.spawn import find_executable @@ -21,7 +22,7 @@ class Virtualenv(object): def create(self): if os.path.exists(self.path): shutil.rmtree(self.path) - call(self.virtualenv, self.path) + call(self.virtualenv, self.path, "-p", sys.executable) @property def bin_path(self): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in b/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in index 2be4d915be1..70839237889 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in +++ b/tests/wpt/web-platform-tests/tools/wptrunner/MANIFEST.in @@ -1,6 +1,5 @@ exclude MANIFEST.in include requirements.txt -include wptrunner/browsers/b2g_setup/* include wptrunner.default.ini include wptrunner/testharness_runner.html include wptrunner/*.js diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/README.rst b/tests/wpt/web-platform-tests/tools/wptrunner/README.rst index 780518aae11..834e07ee41d 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/README.rst +++ b/tests/wpt/web-platform-tests/tools/wptrunner/README.rst @@ -23,7 +23,7 @@ The ``wptrunner`` command takes multiple options, of which the following are most significant: ``--product`` (defaults to `firefox`) - The product to test against: `b2g`, `chrome`, `firefox`, or `servo`. + The product to test against: `chrome`, `firefox`, or `servo`. ``--binary`` (required if product is `firefox` or `servo`) The path to a binary file for the product (browser) to test against. diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py b/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py index 0c717f56536..b58f313e946 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/conf.py @@ -186,22 +186,22 @@ htmlhelp_basename = 'wptrunnerdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', -# Additional stuff for the LaTeX preamble. -#'preamble': '', + # Additional stuff for the LaTeX preamble. + #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - ('index', 'wptrunner.tex', u'wptrunner Documentation', - u'James Graham', 'manual'), + ('index', 'wptrunner.tex', u'wptrunner Documentation', + u'James Graham', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of @@ -244,9 +244,9 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'wptrunner', u'wptrunner Documentation', - u'James Graham', 'wptrunner', 'One line description of project.', - 'Miscellaneous'), + ('index', 'wptrunner', u'wptrunner Documentation', + u'James Graham', 'wptrunner', 'One line description of project.', + 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst index 8e74a4320c8..258cca6eca9 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst +++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst @@ -54,7 +54,7 @@ A test run is started using the ``wptrunner`` command. The command takes multiple options, of which the following are most significant: ``--product`` (defaults to `firefox`) - The product to test against: `b2g`, `chrome`, `firefox`, or `servo`. + The product to test against: `chrome`, `firefox`, or `servo`. ``--binary`` (required if product is `firefox` or `servo`) The path to a binary file for the product (browser) to test against. diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt new file mode 100644 index 00000000000..a2f54425f3e --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt @@ -0,0 +1,2 @@ +mozprocess >= 0.19 +selenium >= 2.41.0 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py index 7ec189fefd9..7da51418327 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py @@ -53,13 +53,12 @@ setup(name=PACKAGE_NAME, "config.json", "wptrunner.default.ini", "browsers/server-locations.txt", - "browsers/b2g_setup/*", "browsers/sauce_setup/*", "prefs/*"]}, include_package_data=True, data_files=[("requirements", requirements_files)], install_requires=deps - ) + ) if "install" in sys.argv: path = os.path.relpath(os.path.join(sys.prefix, "requirements"), os.curdir) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py b/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py index 034e317bd52..622934a42b0 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/test/test.py @@ -156,7 +156,8 @@ def main(): run(config, args) except Exception: if args.pdb: - import pdb, traceback + import pdb + import traceback print traceback.format_exc() pdb.post_mortem() else: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini b/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini index 790970409f3..fa6aa3f7129 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini +++ b/tests/wpt/web-platform-tests/tools/wptrunner/tox.ini @@ -2,7 +2,7 @@ xfail_strict=true [tox] -envlist = {py27,pypy}-{base,b2g,chrome,firefox,servo} +envlist = {py27,pypy}-{base,chrome,firefox,servo},py27-flake8 [testenv] deps = @@ -15,3 +15,40 @@ deps = servo: -r{toxinidir}/requirements_servo.txt commands = pytest --cov + +[testenv:py27-flake8] +# flake8 versions should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini +deps = + flake8==3.5.0 + pycodestyle==2.3.1 + pyflakes==1.6.0 + pep8-naming==0.4.1 + +commands = + flake8 + +[flake8] +# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini +select = E,W,F,N +# E128: continuation line under-indented for visual indent +# E129: visually indented line with same indent as next logical line +# E221: multiple spaces before operator +# E226: missing whitespace around arithmetic operator +# E231: missing whitespace after ‘,’, ‘;’, or ‘:’ +# E251: unexpected spaces around keyword / parameter equals +# E265: block comment should start with ‘# ‘ +# E302: expected 2 blank lines, found 0 +# E303: too many blank lines (3) +# E305: expected 2 blank lines after end of function or class +# E402: module level import not at top of file +# E731: do not assign a lambda expression, use a def +# E901: SyntaxError or IndentationError +# W601: .has_key() is deprecated, use ‘in’ +# F401: module imported but unused +# F403: ‘from module import *’ used; unable to detect undefined names +# F405: name may be undefined, or defined from star imports: module +# F841: local variable name is assigned to but never used +# N801: class names should use CapWords convention +# N802: function name should be lowercase +ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,F401,F403,F405,F841,N801,N802 +max-line-length = 141 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py index a5c25335742..1e74863b733 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py @@ -23,6 +23,7 @@ module global scope. """ product_list = ["chrome", + "chrome_android", "edge", "firefox", "ie", diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip deleted file mode 100644 index f9cbd5300ad..00000000000 Binary files a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip and /dev/null differ diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py new file mode 100644 index 00000000000..9e53bc660e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome_android.py @@ -0,0 +1,98 @@ +from .base import Browser, ExecutorBrowser, require_arg +from ..webdriver_server import ChromeDriverServer +from ..executors import executor_kwargs as base_executor_kwargs +from ..executors.executorselenium import (SeleniumTestharnessExecutor, + SeleniumRefTestExecutor) +from ..executors.executorchrome import ChromeDriverWdspecExecutor + + +__wptrunner__ = {"product": "chrome_android", + "check_args": "check_args", + "browser": "ChromeAndroidBrowser", + "executor": {"testharness": "SeleniumTestharnessExecutor", + "reftest": "SeleniumRefTestExecutor", + "wdspec": "ChromeDriverWdspecExecutor"}, + "browser_kwargs": "browser_kwargs", + "executor_kwargs": "executor_kwargs", + "env_extras": "env_extras", + "env_options": "env_options"} + + +def check_args(**kwargs): + require_arg(kwargs, "webdriver_binary") + + +def browser_kwargs(test_type, run_info_data, **kwargs): + return {"binary": kwargs["binary"], + "webdriver_binary": kwargs["webdriver_binary"], + "webdriver_args": kwargs.get("webdriver_args")} + + +def executor_kwargs(test_type, server_config, cache_manager, run_info_data, + **kwargs): + from selenium.webdriver import DesiredCapabilities + + 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" + + for (kwarg, capability) in [("binary", "binary"), ("binary_args", "args")]: + if kwargs[kwarg] is not None: + capabilities["chromeOptions"][capability] = kwargs[kwarg] + if test_type == "testharness": + capabilities["useAutomationExtension"] = False + capabilities["excludeSwitches"] = ["enable-automation"] + if test_type == "wdspec": + capabilities["chromeOptions"]["w3c"] = True + executor_kwargs["capabilities"] = capabilities + return executor_kwargs + + +def env_extras(**kwargs): + return [] + + +def env_options(): + return {"host": "web-platform.test", + "bind_hostname": "true"} + + +class ChromeAndroidBrowser(Browser): + """Chrome is backed by chromedriver, which is supplied through + ``wptrunner.webdriver.ChromeDriverServer``. + """ + + def __init__(self, logger, binary, webdriver_binary="chromedriver", + webdriver_args=None): + """Creates a new representation of Chrome. The `binary` argument gives + the browser binary to use for testing.""" + Browser.__init__(self, logger) + self.binary = binary + self.server = ChromeDriverServer(self.logger, + binary=webdriver_binary, + args=webdriver_args) + + def start(self, **kwargs): + self.server.start(block=False) + + def stop(self, force=False): + self.server.stop(force=force) + + def pid(self): + return self.server.pid + + def is_alive(self): + # TODO(ato): This only indicates the driver is alive, + # and doesn't say anything about whether a browser session + # is active. + return self.server.is_alive() + + def cleanup(self): + self.stop() + + def executor_browser(self): + return ExecutorBrowser, {"webdriver_url": self.server.url} diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py index b324bccd91e..6d1f58d3791 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py @@ -96,15 +96,15 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data, executor_kwargs["reftest_internal"] = kwargs["reftest_internal"] executor_kwargs["reftest_screenshot"] = kwargs["reftest_screenshot"] if test_type == "wdspec": - fxOptions = {} + options = {} if kwargs["binary"]: - fxOptions["binary"] = kwargs["binary"] + options["binary"] = kwargs["binary"] if kwargs["binary_args"]: - fxOptions["args"] = kwargs["binary_args"] - fxOptions["prefs"] = { + options["args"] = kwargs["binary_args"] + options["prefs"] = { "network.dns.localDomains": ",".join(hostnames) } - capabilities["moz:firefoxOptions"] = fxOptions + capabilities["moz:firefoxOptions"] = options if kwargs["certutil_binary"] is None: capabilities["acceptInsecureCerts"] = True if capabilities: @@ -364,7 +364,7 @@ class FirefoxBrowser(Browser): env[env_var] = (os.path.pathsep.join([certutil_dir, env[env_var]]) if env_var in env else certutil_dir).encode( - sys.getfilesystemencoding() or 'utf-8', 'replace') + sys.getfilesystemencoding() or 'utf-8', 'replace') def certutil(*args): cmd = [self.certutil_binary] + list(args) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py index 553372f390e..13f5827194d 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py @@ -28,10 +28,10 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data, **kwargs): from selenium.webdriver import DesiredCapabilities - ieOptions = {} - ieOptions["requireWindowFocus"] = True + options = {} + options["requireWindowFocus"] = True capabilities = {} - capabilities["se:ieOptions"] = ieOptions + capabilities["se:ieOptions"] = options executor_kwargs = base_executor_kwargs(test_type, server_config, cache_manager, **kwargs) executor_kwargs["close_after_done"] = True @@ -51,7 +51,7 @@ class InternetExplorerBrowser(Browser): def __init__(self, logger, webdriver_binary, webdriver_args=None): Browser.__init__(self, logger) - self.server = InterentExplorerDriverServer(self.logger, + self.server = InternetExplorerDriverServer(self.logger, binary=webdriver_binary, args=webdriver_args) self.webdriver_host = "localhost" diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py index 874595cbff3..711534180dc 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py @@ -61,7 +61,7 @@ def get_ssl_kwargs(**kwargs): elif kwargs["ssl_type"] == "pregenerated": args = {"host_key_path": kwargs["host_key_path"], "host_cert_path": kwargs["host_cert_path"], - "ca_cert_path": kwargs["ca_cert_path"]} + "ca_cert_path": kwargs["ca_cert_path"]} else: args = {} return args diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py index d87e4ab9924..7178b2e28c3 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py @@ -13,7 +13,7 @@ here = os.path.split(__file__)[0] # Extra timeout to use after internal test timeout at which the harness # should force a timeout -extra_timeout = 5 # seconds +extra_timeout = 5 # seconds def executor_kwargs(test_type, server_config, cache_manager, **kwargs): @@ -67,8 +67,8 @@ class TestharnessResultConverter(object): (result_url, test.url)) harness_result = test.result_cls(self.harness_codes[status], message) return (harness_result, - [test.subtest_result_cls(name, self.test_codes[status], message, stack) - for name, status, message, stack in subtest_results]) + [test.subtest_result_cls(st_name, self.test_codes[st_status], st_message, st_stack) + for st_name, st_status, st_message, st_stack in subtest_results]) testharness_result_converter = TestharnessResultConverter() @@ -124,7 +124,7 @@ class TestExecutor(object): self.debug_info = debug_info self.last_environment = {"protocol": "http", "prefs": {}} - self.protocol = None # This must be set in subclasses + self.protocol = None # This must be set in subclasses @property def logger(self): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py index 2d0dc914d10..30930c3c2f9 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -304,7 +304,7 @@ class ExecuteAsyncScriptRun(object): self.result_flag = threading.Event() def run(self): - index = self.url.rfind("/storage/"); + index = self.url.rfind("/storage/") if index != -1: # Clear storage self.protocol.clear_origin(self.url) @@ -503,7 +503,7 @@ class MarionetteRefTestExecutor(RefTestExecutor): assert viewport_size is None assert dpi is None - timeout = self.timeout_multiplier * test.timeout if self.debug_info is None else None + timeout = self.timeout_multiplier * test.timeout if self.debug_info is None else None test_url = self.test_url(test) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py index 2e84ab6fd65..f905fac81e1 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py @@ -51,7 +51,7 @@ class SeleniumProtocol(Protocol): self.webdriver = webdriver.Remote(command_executor=RemoteConnection(self.url.strip("/"), resolve_ip=False), desired_capabilities=self.capabilities) - except: + except Exception: self.logger.warning( "Connecting to Selenium failed:\n%s" % traceback.format_exc()) else: @@ -64,7 +64,7 @@ class SeleniumProtocol(Protocol): else: try: self.after_connect() - except: + except Exception: print >> sys.stderr, traceback.format_exc() self.logger.warning( "Failed to connect to navigate initial page") @@ -76,7 +76,7 @@ class SeleniumProtocol(Protocol): self.logger.debug("Hanging up on Selenium session") try: self.webdriver.quit() - except: + except Exception: pass del self.webdriver @@ -103,7 +103,7 @@ class SeleniumProtocol(Protocol): def wait(self): while True: try: - self.webdriver.execute_async_script(""); + self.webdriver.execute_async_script("") except exceptions.TimeoutException: pass except (socket.timeout, exceptions.NoSuchWindowException, @@ -220,7 +220,7 @@ class SeleniumTestharnessExecutor(TestharnessExecutor): win_s = webdriver.execute_script("return window['%s'];" % self.window_id) win_obj = json.loads(win_s) test_window = win_obj["window-fcc6-11e5-b4f8-330a88ab9d7f"] - except: + except Exception: after = webdriver.window_handles if len(after) == 2: test_window = next(iter(set(after) - set([parent]))) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py index 33ff10df928..ca8ec8a7eb5 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py @@ -28,7 +28,7 @@ from .executormarionette import WdspecRun pytestrunner = None webdriver = None -extra_timeout = 5 # seconds +extra_timeout = 5 # seconds hosts_text = """127.0.0.1 web-platform.test 127.0.0.1 www.web-platform.test diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py index af09da6f178..ed7afaf1028 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py @@ -43,7 +43,7 @@ class ServoWebDriverProtocol(Protocol): self.session = webdriver.Session(self.host, self.port, extension=webdriver.servo.ServoCommandExtensions) self.session.start() - except: + except Exception: self.logger.warning( "Connecting with WebDriver failed:\n%s" % traceback.format_exc()) else: @@ -60,7 +60,7 @@ class ServoWebDriverProtocol(Protocol): self.logger.debug("Hanging up on WebDriver session") try: self.session.end() - except: + except Exception: pass def is_alive(self): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py index fd3f82aeb11..1d3c173928f 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py @@ -247,8 +247,8 @@ class TestNode(ManifestItem): boolean_properties=self.root.boolean_properties) except ConditionError as e: if stability is not None: - self.set("disabled", stability or "unstable", e.cond.children[0]) - self.new_disabled = True + self.set("disabled", stability or "unstable", e.cond.children[0]) + self.new_disabled = True else: print "Conflicting test results for %s, cannot update" % self.root.test_path return diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py index 923ac790733..9c31e4279ef 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py @@ -355,7 +355,7 @@ def load_expected(test_manifest, metadata_path, test_path, tests, property_order # Remove expected data for tests that no longer exist for test in expected_manifest.iterchildren(): - if not test.id in tests_by_id: + if test.id not in tests_by_id: test.remove() # Add tests that don't have expected data diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py index 6eb060485c2..e1709c5749a 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/stability.py @@ -274,6 +274,6 @@ def check_stability(logger, repeat_loop=10, repeat_restart=5, chaos_mode=True, m write_summary(logger, step_results, "FAIL") return 1 - step_results.append((desc, "PASS")) + step_results.append((desc, "PASS")) write_summary(logger, step_results, "PASS") diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py index 0eb78bb884f..199ed6c2666 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py @@ -93,7 +93,7 @@ class EqualTimeChunker(TestChunker): for i, (test_type, test_path, tests) in enumerate(manifest_items): test_dir = tuple(os.path.split(test_path)[0].split(os.path.sep)[:3]) - if not test_dir in by_dir: + if test_dir not in by_dir: by_dir[test_dir] = PathData(test_dir) data = by_dir[test_dir] @@ -261,7 +261,7 @@ class EqualTimeChunker(TestChunker): return self.paths.popleft() @property - def badness(self_): + def badness(self_): # noqa: N805 """Badness metric for this chunk""" return self._badness(self_.time) @@ -587,6 +587,7 @@ class TestSource(object): self.current_metadata = None @abstractmethod + # noqa: N805 #@classmethod (doesn't compose with @abstractmethod) def make_queue(cls, tests, **kwargs): pass diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py index 75f4825f952..85ffbe3741a 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py @@ -195,7 +195,7 @@ class BrowserManager(object): self.logger.debug("Starting browser with settings %r" % self.browser_settings) self.browser.start(**self.browser_settings) self.browser_pid = self.browser.pid() - except: + except Exception: self.logger.warning("Failure during init %s" % traceback.format_exc()) if self.init_timer is not None: self.init_timer.cancel() @@ -566,7 +566,7 @@ class TestRunnerManager(threading.Thread): expected = test.expected() status = file_result.status if file_result.status != "EXTERNAL-TIMEOUT" else "TIMEOUT" - if file_result.status in ("TIMEOUT", "EXTERNAL-TIMEOUT"): + if file_result.status in ("TIMEOUT", "EXTERNAL-TIMEOUT"): if self.browser.check_for_crashes(): status = "CRASH" @@ -585,8 +585,8 @@ class TestRunnerManager(threading.Thread): restart_before_next = (test.restart_after or file_result.status in ("CRASH", "EXTERNAL-TIMEOUT") or - ((subtest_unexpected or is_unexpected) - and self.restart_on_unexpected)) + ((subtest_unexpected or is_unexpected) and + self.restart_on_unexpected)) if (self.pause_after_test or (self.pause_on_unexpected and (subtest_unexpected or is_unexpected))): @@ -689,7 +689,7 @@ class TestRunnerManager(threading.Thread): break else: if cmd == "log": - self.log(*data) + self.log(*data) else: self.logger.warning("%r: %r" % (cmd, data)) while True: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py index 808b81606ae..e7d41f3b420 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py @@ -42,15 +42,13 @@ class HostsTest(unittest.TestCase): 192.168.1.1 another_host another_alias ""","""127.0.0.1 localhost alias 192.168.1.1 another_host another_alias -""" -) +""") def test_multiple_same_name(self): # The semantics are that we overwrite earlier entries with the same name self.do_test("""127.0.0.1 \tlocalhost alias 192.168.1.1 localhost another_alias""","""192.168.1.1 localhost another_alias -""" -) +""") if __name__ == "__main__": unittest.main() diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py index 497cb34ad0c..99dac6bcccc 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/__init__.py @@ -44,4 +44,3 @@ def main(): assert structuredlog.get_default_logger() is not None success = run_update(logger, **args) sys.exit(0 if success else 1) - diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py index c1bff854349..f2660e5a33e 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/sync.py @@ -109,7 +109,7 @@ class UpdateCheckout(Step): state.sync["branch"], state.local_branch) sync_path = os.path.abspath(sync_tree.root) - if not sync_path in sys.path: + if sync_path not in sys.path: from update import setup_paths setup_paths(sync_path) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py index 01df0b4f94a..279ddba1f6f 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/update/tree.py @@ -75,7 +75,7 @@ class HgTree(object): kwargs["repo"] = path try: hg("root", **kwargs) - except: + except Exception: return False return True @@ -155,7 +155,7 @@ class GitTree(object): kwargs["repo"] = path try: git("rev-parse", "--show-toplevel", **kwargs) - except: + except Exception: return False return True @@ -305,8 +305,8 @@ class GitTree(object): def paths(self): """List paths in the tree""" - repo_paths = [self.root] + [os.path.join(self.root, path) - for path in self.submodules()] + repo_paths = [self.root] + [os.path.join(self.root, path) + for path in self.submodules()] rv = [] diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py index 16d53afc8be..a51312d3937 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/vcs.py @@ -15,7 +15,7 @@ def vcs(bin_name): repo = kwargs.pop("repo", None) log_error = kwargs.pop("log_error", True) if kwargs: - raise TypeError, kwargs + raise TypeError(kwargs) args = list(args) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py index fc853bfb97e..7b78898344f 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py @@ -72,7 +72,7 @@ class WebDriverServer(object): "Waiting for server to become accessible: %s" % self.url) try: wait_for_service((self.host, self.port)) - except: + except Exception: self.logger.error( "WebDriver HTTP server was not accessible " "within the timeout:\n%s" % traceback.format_exc()) @@ -125,8 +125,6 @@ class SeleniumServer(WebDriverServer): class ChromeDriverServer(WebDriverServer): - default_base_path = "/" - def __init__(self, logger, binary="chromedriver", port=None, base_path="", args=None): WebDriverServer.__init__( @@ -138,8 +136,6 @@ class ChromeDriverServer(WebDriverServer): cmd_arg("url-base", self.base_path) if self.base_path else ""] + self._args class EdgeDriverServer(WebDriverServer): - default_base_path = "/" - def __init__(self, logger, binary="microsoftwebdriver.exe", port=None, base_path="", args=None): WebDriverServer.__init__( @@ -147,8 +143,7 @@ class EdgeDriverServer(WebDriverServer): def make_command(self): return [self.binary, - cmd_arg("port", str(self.port)), - cmd_arg("url-base", self.base_path) if self.base_path else ""] + self._args + "--port=%s" % str(self.port)] + self._args class OperaDriverServer(ChromeDriverServer): def __init__(self, logger, binary="operadriver", port=None, @@ -157,17 +152,6 @@ class OperaDriverServer(ChromeDriverServer): self, logger, binary, port=port, base_path=base_path, args=args) -class EdgeDriverServer(WebDriverServer): - def __init__(self, logger, binary="MicrosoftWebDriver.exe", port=None, - base_path="", host="localhost", args=None): - WebDriverServer.__init__( - self, logger, binary, host=host, port=port, args=args) - - def make_command(self): - return [self.binary, - "--port=%s" % str(self.port)] + self._args - - class InternetExplorerDriverServer(WebDriverServer): def __init__(self, logger, binary="IEDriverServer.exe", port=None, base_path="", host="localhost", args=None): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py index b232462d915..ad18e424cd5 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py @@ -28,7 +28,7 @@ def require_arg(kwargs, name, value_func=None): if value_func is None: value_func = lambda x: x is not None - if not name in kwargs or not value_func(kwargs[name]): + if name not in kwargs or not value_func(kwargs[name]): print >> sys.stderr, "Missing required argument %s" % name sys.exit(1) @@ -97,7 +97,8 @@ scheme host and port.""") test_selection_group.add_argument("--skip-timeout", action="store_true", help="Skip tests that are expected to time out") test_selection_group.add_argument("--tag", action="append", dest="tags", - help="Labels applied to tests to include in the run. Labels starting dir: are equivalent to top-level directories.") + help="Labels applied to tests to include in the run. " + "Labels starting dir: are equivalent to top-level directories.") debugging_group = parser.add_argument_group("Debugging") debugging_group.add_argument('--debugger', const="__default__", nargs="?", @@ -479,7 +480,8 @@ def create_parser_update(product_choices=None): help="Don't create a VCS commit containing the changes.") parser.add_argument("--sync", dest="sync", action="store_true", default=False, help="Sync the tests with the latest from upstream (implies --patch)") - parser.add_argument("--ignore-existing", action="store_true", help="When updating test results only consider results from the logfiles provided, not existing expectations.") + parser.add_argument("--ignore-existing", action="store_true", + help="When updating test results only consider results from the logfiles provided, not existing expectations.") parser.add_argument("--stability", nargs="?", action="store", const="unstable", default=None, help=("Reason for disabling tests. When updating test results, disable tests that have " "inconsistent results across many runs with the given reason.")) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py index 6db2cbbbb47..6908ea4c1e0 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py @@ -211,15 +211,15 @@ class TokenizerTest(unittest.TestCase): """) def test_atom_1(self): - self.compare(r"""key: @True + self.compare(r"""key: @True """) def test_atom_2(self): - self.compare(r"""key: @False + self.compare(r"""key: @False """) def test_atom_3(self): - self.compare(r"""key: @Reset + self.compare(r"""key: @Reset """) def test_atom_4(self): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py index 88176c5a169..a64ce0c7bb7 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py @@ -145,8 +145,7 @@ class TokenizerTest(unittest.TestCase): (token_types.string, r"\nb")]) def test_list_0(self): - self.compare( -""" + self.compare(""" key: []""", [(token_types.string, "key"), (token_types.separator, ":"), @@ -154,8 +153,7 @@ key: []""", (token_types.list_end, "]")]) def test_list_1(self): - self.compare( -""" + self.compare(""" key: [a, "b"]""", [(token_types.string, "key"), (token_types.separator, ":"), @@ -165,8 +163,7 @@ key: [a, "b"]""", (token_types.list_end, "]")]) def test_list_2(self): - self.compare( -""" + self.compare(""" key: [a, b]""", [(token_types.string, "key"), @@ -177,8 +174,7 @@ key: [a, (token_types.list_end, "]")]) def test_list_3(self): - self.compare( -""" + self.compare(""" key: [a, #b] c]""", [(token_types.string, "key"), @@ -199,18 +195,16 @@ key: [a, #b] c]""") def test_list_6(self): - self.compare( -"""key: [a , b]""", - [(token_types.string, "key"), - (token_types.separator, ":"), - (token_types.list_start, "["), - (token_types.string, "a"), - (token_types.string, "b"), - (token_types.list_end, "]")]) + self.compare("""key: [a , b]""", + [(token_types.string, "key"), + (token_types.separator, ":"), + (token_types.list_start, "["), + (token_types.string, "a"), + (token_types.string, "b"), + (token_types.list_end, "]")]) def test_expr_0(self): - self.compare( -""" + self.compare(""" key: if cond == 1: value""", [(token_types.string, "key"), @@ -224,8 +218,7 @@ key: (token_types.string, "value")]) def test_expr_1(self): - self.compare( -""" + self.compare(""" key: if cond == 1: value1 value2""", @@ -241,8 +234,7 @@ key: (token_types.string, "value2")]) def test_expr_2(self): - self.compare( -""" + self.compare(""" key: if cond=="1": value""", [(token_types.string, "key"), @@ -256,8 +248,7 @@ key: (token_types.string, "value")]) def test_expr_3(self): - self.compare( -""" + self.compare(""" key: if cond==1.1: value""", [(token_types.string, "key"), @@ -271,8 +262,7 @@ key: (token_types.string, "value")]) def test_expr_4(self): - self.compare( - """ + self.compare(""" key: if cond==1.1 and cond2 == "a": value""", [(token_types.string, "key"), @@ -290,8 +280,7 @@ key: (token_types.string, "value")]) def test_expr_5(self): - self.compare( -""" + self.compare(""" key: if (cond==1.1 ): value""", [(token_types.string, "key"), @@ -307,8 +296,7 @@ key: (token_types.string, "value")]) def test_expr_6(self): - self.compare( -""" + self.compare(""" key: if "\\ttest": value""", [(token_types.string, "key"), @@ -322,27 +310,26 @@ key: def test_expr_7(self): with self.assertRaises(parser.ParseError): self.tokenize( -""" + """ key: if 1A: value""") def test_expr_8(self): with self.assertRaises(parser.ParseError): self.tokenize( -""" + """ key: if 1a: value""") def test_expr_9(self): with self.assertRaises(parser.ParseError): self.tokenize( -""" + """ key: if 1.1.1: value""") def test_expr_10(self): - self.compare( -""" + self.compare(""" key: if 1.: value""", [(token_types.string, "key"), diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py index 637cbe57b6f..6677902a49a 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py @@ -307,7 +307,8 @@ def main(): return start(**kwargs) except Exception: if kwargs["pdb"]: - import pdb, traceback + import pdb + import traceback print traceback.format_exc() pdb.post_mortem() else: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py index d283e854205..9f4c1bed135 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py @@ -356,7 +356,7 @@ class ReftestTest(Test): return node def update_metadata(self, metadata): - if not "url_count" in metadata: + if "url_count" not in metadata: metadata["url_count"] = defaultdict(int) for reference, _ in self.references: # We assume a naive implementation in which a url with multiple diff --git a/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst b/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst index 39e98ab4f5e..8faeee489c9 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst +++ b/tests/wpt/web-platform-tests/tools/wptserve/docs/pipes.rst @@ -12,8 +12,8 @@ This would serve bytes 1 to 199, inclusive, of foo.txt with the HTTP status code 404. .. note:: - Pipes are only applied to static files, and will not work if applied to - other types of handlers, such as Python File Handlers. + If you write directly to the response socket using ResponseWriter, + or when using the asis handler, only the trickle pipe will affect the response. There are several built-in pipe functions, and it is possible to add more using the `@pipe` decorator on a function, if required. diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py index bd38f2ef18f..147ad156225 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_pipes.py @@ -1,9 +1,11 @@ import os import unittest import time +import json import pytest +wptserve = pytest.importorskip("wptserve") from .base import TestUsingServer, doc_root @@ -82,5 +84,72 @@ class TestTrickle(TestUsingServer): self.assertEqual(resp.info()["Pragma"], "no-cache") self.assertEqual(resp.info()["Expires"], "0") +class TestPipesWithVariousHandlers(TestUsingServer): + def test_with_python_file_handler(self): + resp = self.request("/test_string.py", query="pipe=slice(null,2)") + self.assertEqual(resp.read(), "PA") + + def test_with_python_func_handler(self): + @wptserve.handlers.handler + def handler(request, response): + return "PASS" + route = ("GET", "/test/test_pipes_1/", handler) + self.server.router.register(*route) + resp = self.request(route[1], query="pipe=slice(null,2)") + self.assertEqual(resp.read(), "PA") + + def test_with_python_func_handler_using_response_writer(self): + @wptserve.handlers.handler + def handler(request, response): + response.writer.write_content("PASS") + route = ("GET", "/test/test_pipes_1/", handler) + self.server.router.register(*route) + resp = self.request(route[1], query="pipe=slice(null,2)") + # slice has not been applied to the response, because response.writer was used. + self.assertEqual(resp.read(), "PASS") + + def test_header_pipe_with_python_func_using_response_writer(self): + @wptserve.handlers.handler + def handler(request, response): + response.writer.write_content("CONTENT") + route = ("GET", "/test/test_pipes_1/", handler) + self.server.router.register(*route) + resp = self.request(route[1], query="pipe=header(X-TEST,FAIL)") + # header pipe was ignored, because response.writer was used. + self.assertFalse(resp.info().get("X-TEST")) + self.assertEqual(resp.read(), "CONTENT") + + def test_with_json_handler(self): + @wptserve.handlers.json_handler + def handler(request, response): + return json.dumps({'data': 'PASS'}) + route = ("GET", "/test/test_pipes_2/", handler) + self.server.router.register(*route) + resp = self.request(route[1], query="pipe=slice(null,2)") + self.assertEqual(resp.read(), '"{') + + def test_slice_with_as_is_handler(self): + resp = self.request("/test.asis", query="pipe=slice(null,2)") + self.assertEqual(202, resp.getcode()) + self.assertEqual("Giraffe", resp.msg) + self.assertEqual("PASS", resp.info()["X-Test"]) + # slice has not been applied to the response, because response.writer was used. + self.assertEqual("Content", resp.read()) + + def test_headers_with_as_is_handler(self): + resp = self.request("/test.asis", query="pipe=header(X-TEST,FAIL)") + self.assertEqual(202, resp.getcode()) + self.assertEqual("Giraffe", resp.msg) + # header pipe was ignored. + self.assertEqual("PASS", resp.info()["X-TEST"]) + self.assertEqual("Content", resp.read()) + + def test_trickle_with_as_is_handler(self): + t0 = time.time() + resp = self.request("/test.asis", query="pipe=trickle(1:d2:5:d1:r2)") + t1 = time.time() + self.assertTrue('Content' in resp.read()) + self.assertGreater(6, t1-t0) + if __name__ == '__main__': unittest.main() diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py index c962a6cd80a..7cd8479855d 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py @@ -237,6 +237,7 @@ class PythonScriptHandler(object): if "main" in environ: handler = FunctionHandler(environ["main"]) handler(request, response) + wrap_pipeline(path, request, response) else: raise HTTPException(500, "No main function in script %s" % path) except IOError: @@ -267,6 +268,7 @@ class FunctionHandler(object): else: content = rv response.content = content + wrap_pipeline('', request, response) #The generic name here is so that this can be used as a decorator @@ -309,6 +311,7 @@ class AsIsHandler(object): try: with open(path) as f: response.writer.write_content(f.read()) + wrap_pipeline(path, request, response) response.close_connection = True except IOError: raise HTTPException(404) diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py index 7203815b70c..b71c8afa309 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py @@ -6,6 +6,7 @@ import types import uuid from cStringIO import StringIO +from six import text_type def resolve_content(response): return b"".join(item for item in response.iter_content(read_file=True)) @@ -276,18 +277,18 @@ def slice(request, response, start, end=None): class ReplacementTokenizer(object): - def ident(scanner, token): + def ident(self, token): return ("ident", token) - def index(scanner, token): + def index(self, token): token = token[1:-1] try: token = int(token) except ValueError: - token = unicode(token, "utf8") + token = token.decode('utf8') return ("index", token) - def var(scanner, token): + def var(self, token): token = token[:-1] return ("var", token) @@ -425,7 +426,7 @@ def template(request, content, escape_type="html"): #Should possibly support escaping for other contexts e.g. script #TODO: read the encoding of the response - return escape_func(unicode(value)).encode("utf-8") + return escape_func(text_type(value)).encode("utf-8") template_regexp = re.compile(r"{{([^}]*)}}") new_content = template_regexp.sub(config_replacement, content) diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py index 50ff00dde94..20b7b426996 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/response.py @@ -9,6 +9,8 @@ import socket from .constants import response_codes from .logger import get_logger +from six import string_types, binary_type, text_type + missing = object() class Response(object): @@ -400,7 +402,7 @@ class ResponseWriter(object): if name.lower() not in self._headers_seen: self.write_header(name, f()) - if (type(self._response.content) in (str, unicode) and + if (isinstance(self._response.content, string_types) and "content-length" not in self._headers_seen): #Would be nice to avoid double-encoding here self.write_header("Content-Length", len(self.encode(self._response.content))) @@ -457,9 +459,9 @@ class ResponseWriter(object): def encode(self, data): """Convert unicode to bytes according to response.encoding.""" - if isinstance(data, str): + if isinstance(data, binary_type): return data - elif isinstance(data, unicode): + elif isinstance(data, text_type): return data.encode(self._response.encoding) else: raise ValueError diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py index 2a83bd8097e..f9ed238624b 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py @@ -110,14 +110,15 @@ class WebTestServer(ThreadingMixIn, BaseHTTPServer.HTTPServer): # Ensure that we don't hang on shutdown waiting for requests daemon_threads = True - def __init__(self, server_address, RequestHandlerClass, router, rewriter, bind_hostname, + def __init__(self, server_address, request_handler_cls, + router, rewriter, bind_hostname, config=None, use_ssl=False, key_file=None, certificate=None, encrypt_after_connect=False, latency=None, **kwargs): """Server for HTTP(s) Requests :param server_address: tuple of (server_name, port) - :param RequestHandlerClass: BaseHTTPRequestHandler-like class to use for + :param request_handler_cls: BaseHTTPRequestHandler-like class to use for handling requests. :param router: Router instance to use for matching requests to handler @@ -161,7 +162,7 @@ class WebTestServer(ThreadingMixIn, BaseHTTPServer.HTTPServer): hostname_port = ("",server_address[1]) #super doesn't work here because BaseHTTPServer.HTTPServer is old-style - BaseHTTPServer.HTTPServer.__init__(self, hostname_port, RequestHandlerClass, **kwargs) + BaseHTTPServer.HTTPServer.__init__(self, hostname_port, request_handler_cls, **kwargs) if config is not None: Server.config = config diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py index b6bd6eed442..69fa4418383 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/stash.py @@ -2,7 +2,8 @@ import base64 import json import os import uuid -from multiprocessing.managers import BaseManager, DictProxy +import threading +from multiprocessing.managers import AcquirerProxy, BaseManager, DictProxy class ServerDictManager(BaseManager): shared_data = {} @@ -13,11 +14,13 @@ def _get_shared(): ServerDictManager.register("get_dict", callable=_get_shared, proxytype=DictProxy) +ServerDictManager.register('Lock', threading.Lock, AcquirerProxy) class ClientDictManager(BaseManager): pass ClientDictManager.register("get_dict") +ClientDictManager.register("Lock") class StashServer(object): def __init__(self, address=None, authkey=None): @@ -53,6 +56,22 @@ def start_server(address=None, authkey=None): return (manager, manager._address, manager._authkey) +class LockWrapper(object): + def __init__(self, lock): + self.lock = lock + + def acquire(self): + self.lock.acquire() + + def release(self): + self.lock.release() + + def __enter__(self): + self.acquire() + + def __exit__(self, *args, **kwargs): + self.release() + #TODO: Consider expiring values after some fixed time for long-running #servers @@ -81,21 +100,23 @@ class Stash(object): """ _proxy = None + lock = None def __init__(self, default_path, address=None, authkey=None): self.default_path = default_path - self.data = self._get_proxy(address, authkey) + self._get_proxy(address, authkey) + self.data = Stash._proxy def _get_proxy(self, address=None, authkey=None): if address is None and authkey is None: Stash._proxy = {} + Stash.lock = threading.Lock() if Stash._proxy is None: manager = ClientDictManager(address, authkey) manager.connect() Stash._proxy = manager.get_dict() - - return Stash._proxy + Stash.lock = LockWrapper(manager.Lock()) def _wrap_key(self, key, path): if path is None: diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html new file mode 100644 index 00000000000..6b315c83df7 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade.sub.https.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html new file mode 100644 index 00000000000..c1a600f525e --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html @@ -0,0 +1,19 @@ + + Upgrade Insecure Requests: link no upgrade. + + + + + + Click me + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html new file mode 100644 index 00000000000..ef41d3e9c7f --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html @@ -0,0 +1,19 @@ + + Upgrade Insecure Requests: link upgrade. + + + + + + Click me + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/basic-link-upgrade.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html new file mode 100644 index 00000000000..ed058b61545 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html @@ -0,0 +1,11 @@ + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-link-upgrade.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html new file mode 100644 index 00000000000..1b514e2da72 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html @@ -0,0 +1,16 @@ + + + Upgrade Insecure Requests: top-frame navigation inside iframe (no upgrade expected) + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html new file mode 100644 index 00000000000..386a86fdbdb --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html @@ -0,0 +1,16 @@ + + + Upgrade Insecure Requests: top-frame navigation inside iframe (no upgrade expected) + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html new file mode 100644 index 00000000000..13c76e82c86 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html @@ -0,0 +1,17 @@ + + + Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected) + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-1.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html new file mode 100644 index 00000000000..651d76d93b5 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html @@ -0,0 +1,17 @@ + + + Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected) + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-2.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html new file mode 100644 index 00000000000..e43050eb5b3 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/iframe-top-navigation-upgrade-meta.sub.html @@ -0,0 +1,31 @@ + + + Upgrade Insecure Requests: top-frame navigation inside iframe (upgrade expected) + + + + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html new file mode 100644 index 00000000000..d2899c8873f --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/click-on-link.sub.html @@ -0,0 +1,10 @@ + + coucou + Click me + + + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html new file mode 100644 index 00000000000..1c56b516659 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/dummy.html @@ -0,0 +1 @@ +I am not an interesting file... diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html new file mode 100644 index 00000000000..35332900d18 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html @@ -0,0 +1,5 @@ + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers new file mode 100644 index 00000000000..602d9dc38d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame-upgrade.sub.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: upgrade-insecure-requests diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html new file mode 100644 index 00000000000..35332900d18 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/navigate-top-frame.sub.html @@ -0,0 +1,5 @@ + diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html new file mode 100644 index 00000000000..5cf2df57323 --- /dev/null +++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html @@ -0,0 +1,3 @@ + diff --git a/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html b/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html index b0603c8752d..c4b36879ad1 100644 --- a/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html +++ b/tests/wpt/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html @@ -26,11 +26,13 @@ }); window.addEventListener('load', function() { - requestAnimationFrame( - t.step_func_done(function() { - var isOverlay = calculateScrollbarThickness() == 0; - assert_equals(numViewResizes, isOverlay ? 0 : 1); - })); + requestAnimationFrame(function() { + requestAnimationFrame( + t.step_func_done(function() { + var isOverlay = calculateScrollbarThickness() == 0; + assert_equals(numViewResizes, isOverlay ? 0 : 1); + })); + }); }); } diff --git a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py index 88da4f110cf..52f258243fa 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/invalid_capabilities.py @@ -37,7 +37,7 @@ invalid_data = [ {"proxyType": 1}, {"proxyType": []}, {"proxyType": {"value": "system"}}, {" proxyType": "system"}, {"proxyType ": "system"}, {"proxyType ": " system"}, {"proxyType": "system "}]), - ("timeouts", [1, [], "{}", {}, False, {"pageLOAD": 10}, {"page load": 10}, + ("timeouts", [1, [], "{}", False, {"pageLOAD": 10}, {"page load": 10}, {"page load": 10}, {"pageLoad": "10"}, {"pageLoad": {"value": 10}}, {"invalid": 10}, {"pageLoad": -1}, {"pageLoad": 2**64}, {"pageLoad": None}, {"pageLoad": 1.1}, {"pageLoad": 10, "invalid": 10}, diff --git a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py index 75ac3e8dc41..231199d120f 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/sessions/new_session/support/create.py @@ -6,6 +6,10 @@ valid_data = [ ("platformName", [None]), ("pageLoadStrategy", ["none", "eager", "normal", None]), ("proxy", [None]), + ("timeouts", [{"script": 0, "pageLoad": 2.0, "implicit": 2**64 - 1}, + {"script": 50, "pageLoad": 25}, + {"script": 500}, + {}]), ("unhandledPromptBehavior", ["dismiss", "accept", None]), ("test:extension", [True, "abc", 123, [], {"key": "value"}, None]), ] diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html new file mode 100644 index 00000000000..db177aebe38 --- /dev/null +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html @@ -0,0 +1,403 @@ + + +RTCPeerConnection.prototype.getStats + + + + + + diff --git a/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html b/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html index 7d73cc5a3b5..d7f836292eb 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize.html @@ -86,11 +86,11 @@ promise_test(t => { assert_not_equals(pc.sctp, null); // Test outcome depends on canSendSize value if (canSendSize) { - assert_equals(pc.sctp.maxMessageSize, Math.min(65535, canSendSize), - 'Missing SDP attribute and a non-zero canSendSize should give an maxMessageSize of min(65535, canSendSize)'); + assert_equals(pc.sctp.maxMessageSize, Math.min(65536, canSendSize), + 'Missing SDP attribute and a non-zero canSendSize should give an maxMessageSize of min(65536, canSendSize)'); } else { - assert_equals(pc.sctp.maxMessageSize, 65535, - 'Missing SDP attribute and a canSendSize of 0 should give an maxMessageSize of 65535'); + assert_equals(pc.sctp.maxMessageSize, 65536, + 'Missing SDP attribute and a canSendSize of 0 should give an maxMessageSize of 65536'); } }); }, 'Remote offer SDP missing max-message-size attribute'); @@ -172,7 +172,7 @@ promise_test(t => { assert_equals(pc.sctp.maxMessageSize, canSendSize, 'A remote value larger than a non-zero canSendSize should limit maxMessageSize to canSendSize'); } else { - assert_equals(pc.sctp.maxMessageSize, 65535, + assert_equals(pc.sctp.maxMessageSize, 65536, 'A canSendSize of zero should let the remote value set maxMessageSize'); } }); diff --git a/tests/wpt/web-platform-tests/webxr/interfaces.https.html b/tests/wpt/web-platform-tests/webxr/interfaces.https.html new file mode 100644 index 00000000000..e04764e5f61 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/interfaces.https.html @@ -0,0 +1,25 @@ + + +WebXR Device API IDL Tests + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html new file mode 100644 index 00000000000..9468d2da7d6 --- /dev/null +++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-credentials.https.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html new file mode 100644 index 00000000000..854df8c8e18 --- /dev/null +++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-csp.https.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html new file mode 100644 index 00000000000..a2f57c221b7 --- /dev/null +++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-import.https.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html new file mode 100644 index 00000000000..cb383a935a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-referrer.https.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html b/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html new file mode 100644 index 00000000000..146dff9e53a --- /dev/null +++ b/tests/wpt/web-platform-tests/worklets/layout-worklet-service-worker-interception.https.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js b/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js index 4912dadb9d5..f7f28b41cd1 100644 --- a/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js +++ b/tests/wpt/web-platform-tests/worklets/resources/worklet-test-utils.js @@ -1,8 +1,10 @@ // Returns a reference to a worklet object corresponding to a given type. function get_worklet(type) { - if (type == 'paint') - return CSS.paintWorklet; if (type == 'animation') return window.animationWorklet; + if (type == 'layout') + return CSS.layoutWorklet; + if (type == 'paint') + return CSS.paintWorklet; return undefined; } diff --git a/tests/wpt/web-platform-tests/xhr/interfaces.html b/tests/wpt/web-platform-tests/xhr/interfaces.html index 56ba5523e31..cc98075dd7a 100644 --- a/tests/wpt/web-platform-tests/xhr/interfaces.html +++ b/tests/wpt/web-platform-tests/xhr/interfaces.html @@ -14,113 +14,16 @@ callback EventHandlerNonNull = any (Event event); typedef EventHandlerNonNull? EventHandler; - diff --git a/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html b/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html index ade343716b1..1866100bf06 100644 --- a/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html +++ b/tests/wpt/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub.html @@ -11,8 +11,7 @@ run_all_fp_tests_allow_all( 'http://{{domains[www]}}:{{ports[http][0]}}', 'sync-xhr', - 'InvalidAccessError: Failed to execute \'open\' on \'XMLHttpRequest\': ' + - 'Synchronous requests are disabled by Feature Policy.', + 'NetworkError', () => { return new Promise((resolve, reject) => { try {