aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-01-23 23:47:37 -0500
committerGitHub <noreply@github.com>2019-01-23 23:47:37 -0500
commit43e21dc845c7e7c930e6cdbb31b218fd80eddf2e (patch)
tree2ace4c191c6945f036a3e240f1ec02c2dd525ef7
parent5b41c01bdc31bdc983efef8318f4aa61f0ec1224 (diff)
parentbd01f2fabddc3925b959dd70f80eb3d52ef1f984 (diff)
downloadservo-43e21dc845c7e7c930e6cdbb31b218fd80eddf2e.tar.gz
servo-43e21dc845c7e7c930e6cdbb31b218fd80eddf2e.zip
Auto merge of #22753 - servo-wpt-sync:wpt_update_23-01-2019, r=jdm
Sync WPT with upstream (23-01-2019) Automated downstream sync of changes from upstream as of 23-01-2019. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22753) <!-- Reviewable:end -->
-rw-r--r--tests/wpt/metadata/MANIFEST.json612
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini52
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini10
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini16
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini16
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini22
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini7
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini43
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini985
-rw-r--r--tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini3
-rw-r--r--tests/wpt/metadata/encoding/single-byte-decoder.html.ini70
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini2
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini10
-rw-r--r--tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini7
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini5
-rw-r--r--tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini1
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml4
-rw-r--r--tests/wpt/web-platform-tests/compat/webkit-appearance.html57
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html44
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html45
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html233
-rw-r--r--tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html7
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html13
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html9
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html13
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html10
-rw-r--r--tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html7
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html7
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html13
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js13
-rw-r--r--tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html7
-rw-r--r--tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html7
-rw-r--r--tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html11
-rw-r--r--tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html12
-rw-r--r--tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html12
-rwxr-xr-xtests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh114
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html5
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html5
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js9
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxgbin0 -> 1005 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers2
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxgbin942 -> 990 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxgbin942 -> 942 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxgbin0 -> 1014 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxgbin0 -> 1004 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxgbin1917 -> 1965 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxgbin987 -> 1035 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxgbin946 -> 994 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxgbin937 -> 985 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxgbin923 -> 923 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxgbin943 -> 991 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxgbin966 -> 1014 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxgbin0 -> 991 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxgbin0 -> 981 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxgbin942 -> 990 bytes
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html284
-rw-r--r--tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html20
-rw-r--r--tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js110
-rw-r--r--tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html130
-rw-r--r--tests/wpt/web-platform-tests/web-locks/resources/helpers.js4
-rw-r--r--tests/wpt/web-platform-tests/web-locks/resources/iframe.html9
-rw-r--r--tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js12
125 files changed, 3871 insertions, 323 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index d2a6ecbb8b1..725a69a820d 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -46145,6 +46145,18 @@
{}
]
],
+ "css/CSS2/floats-clear/clear-on-child-with-margins-2.html": [
+ [
+ "/css/CSS2/floats-clear/clear-on-child-with-margins-2.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/CSS2/floats-clear/clear-on-child-with-margins.html": [
[
"/css/CSS2/floats-clear/clear-on-child-with-margins.html",
@@ -104053,6 +104065,18 @@
{}
]
],
+ "css/css-backgrounds/background-border-collapsed-gradient.html": [
+ [
+ "/css/css-backgrounds/background-border-collapsed-gradient.html",
+ [
+ [
+ "/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-backgrounds/background-clip-002.html": [
[
"/css/css-backgrounds/background-clip-002.html",
@@ -104509,6 +104533,18 @@
{}
]
],
+ "css/css-backgrounds/background-image-table-cells-zoomed.html": [
+ [
+ "/css/css-backgrounds/background-image-table-cells-zoomed.html",
+ [
+ [
+ "/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-backgrounds/background-origin-002.html": [
[
"/css/css-backgrounds/background-origin-002.html",
@@ -253377,6 +253413,11 @@
{}
]
],
+ "css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-backgrounds/reference/background-clip-002-ref.html": [
[
{}
@@ -253437,6 +253478,11 @@
{}
]
],
+ "css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-backgrounds/reference/background-origin-002-ref.html": [
[
{}
@@ -312312,6 +312358,16 @@
{}
]
],
+ "signed-exchange/resources/sxg-version1b2.sxg": [
+ [
+ {}
+ ]
+ ],
+ "signed-exchange/resources/sxg-version1b2.sxg.headers": [
+ [
+ {}
+ ]
+ ],
"signed-exchange/resources/sxg/__dir__.headers": [
[
{}
@@ -312327,6 +312383,16 @@
{}
]
],
+ "signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg": [
+ [
+ {}
+ ]
+ ],
+ "signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg": [
+ [
+ {}
+ ]
+ ],
"signed-exchange/resources/sxg/nested-sxg.sxg": [
[
{}
@@ -312362,6 +312428,16 @@
{}
]
],
+ "signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg": [
+ [
+ {}
+ ]
+ ],
+ "signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg": [
+ [
+ {}
+ ]
+ ],
"signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg": [
[
{}
@@ -336866,12 +336942,6 @@
{}
]
],
- "compat/webkit-appearance.html": [
- [
- "/compat/webkit-appearance.html",
- {}
- ]
- ],
"compat/webkit-text-fill-color-currentColor.html": [
[
"/compat/webkit-text-fill-color-currentColor.html",
@@ -347180,6 +347250,12 @@
{}
]
],
+ "css/css-sizing/percentage-height-in-flexbox.html": [
+ [
+ "/css/css-sizing/percentage-height-in-flexbox.html",
+ {}
+ ]
+ ],
"css/css-sizing/percentage-height-replaced-content-in-auto-cb.html": [
[
"/css/css-sizing/percentage-height-replaced-content-in-auto-cb.html",
@@ -348740,6 +348816,198 @@
{}
]
],
+ "css/css-text/parsing/hanging-punctuation-invalid.html": [
+ [
+ "/css/css-text/parsing/hanging-punctuation-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/hanging-punctuation-valid.html": [
+ [
+ "/css/css-text/parsing/hanging-punctuation-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/hyphens-invalid.html": [
+ [
+ "/css/css-text/parsing/hyphens-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/hyphens-valid.html": [
+ [
+ "/css/css-text/parsing/hyphens-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/letter-spacing-invalid.html": [
+ [
+ "/css/css-text/parsing/letter-spacing-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/letter-spacing-valid.html": [
+ [
+ "/css/css-text/parsing/letter-spacing-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/line-break-invalid.html": [
+ [
+ "/css/css-text/parsing/line-break-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/line-break-valid.html": [
+ [
+ "/css/css-text/parsing/line-break-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/overflow-wrap-invalid.html": [
+ [
+ "/css/css-text/parsing/overflow-wrap-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/overflow-wrap-valid.html": [
+ [
+ "/css/css-text/parsing/overflow-wrap-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/tab-size-invalid.html": [
+ [
+ "/css/css-text/parsing/tab-size-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/tab-size-valid.html": [
+ [
+ "/css/css-text/parsing/tab-size-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-all-invalid.html": [
+ [
+ "/css/css-text/parsing/text-align-all-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-all-valid.html": [
+ [
+ "/css/css-text/parsing/text-align-all-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-invalid.html": [
+ [
+ "/css/css-text/parsing/text-align-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-last-invalid.html": [
+ [
+ "/css/css-text/parsing/text-align-last-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-last-valid.html": [
+ [
+ "/css/css-text/parsing/text-align-last-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-align-valid.html": [
+ [
+ "/css/css-text/parsing/text-align-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-indent-invalid.html": [
+ [
+ "/css/css-text/parsing/text-indent-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-indent-valid.html": [
+ [
+ "/css/css-text/parsing/text-indent-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-justify-invalid.html": [
+ [
+ "/css/css-text/parsing/text-justify-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-justify-valid.html": [
+ [
+ "/css/css-text/parsing/text-justify-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-transform-invalid.html": [
+ [
+ "/css/css-text/parsing/text-transform-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/text-transform-valid.html": [
+ [
+ "/css/css-text/parsing/text-transform-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/white-space-invalid.html": [
+ [
+ "/css/css-text/parsing/white-space-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/white-space-valid.html": [
+ [
+ "/css/css-text/parsing/white-space-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-break-invalid.html": [
+ [
+ "/css/css-text/parsing/word-break-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-break-valid.html": [
+ [
+ "/css/css-text/parsing/word-break-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-spacing-invalid.html": [
+ [
+ "/css/css-text/parsing/word-spacing-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-spacing-valid.html": [
+ [
+ "/css/css-text/parsing/word-spacing-valid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-wrap-invalid.html": [
+ [
+ "/css/css-text/parsing/word-wrap-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-text/parsing/word-wrap-valid.html": [
+ [
+ "/css/css-text/parsing/word-wrap-valid.html",
+ {}
+ ]
+ ],
"css/css-text/text-indent/percentage-value-intrinsic-size.html": [
[
"/css/css-text/text-indent/percentage-value-intrinsic-size.html",
@@ -351466,6 +351734,12 @@
{}
]
],
+ "css/css-ui/appearance-cssom-001.html": [
+ [
+ "/css/css-ui/appearance-cssom-001.html",
+ {}
+ ]
+ ],
"css/css-ui/box-sizing-027.html": [
[
"/css/css-ui/box-sizing-027.html",
@@ -411470,12 +411744,24 @@
{}
]
],
+ "signed-exchange/sxg-referrer.tentative.https.html": [
+ [
+ "/signed-exchange/sxg-referrer.tentative.https.html",
+ {}
+ ]
+ ],
"signed-exchange/sxg-utf8-inner-url.tentative.html": [
[
"/signed-exchange/sxg-utf8-inner-url.tentative.html",
{}
]
],
+ "signed-exchange/sxg-version1b2.tentative.html": [
+ [
+ "/signed-exchange/sxg-version1b2.tentative.html",
+ {}
+ ]
+ ],
"speech-api/SpeechRecognition-basics.https.html": [
[
"/speech-api/SpeechRecognition-basics.https.html",
@@ -416776,21 +417062,9 @@
{}
]
],
- "web-locks/query-order.tentative.https.any.js": [
- [
- "/web-locks/query-order.tentative.https.any.html",
- {}
- ],
+ "web-locks/query-ordering.tentative.https.html": [
[
- "/web-locks/query-order.tentative.https.any.serviceworker.html",
- {}
- ],
- [
- "/web-locks/query-order.tentative.https.any.sharedworker.html",
- {}
- ],
- [
- "/web-locks/query-order.tentative.https.any.worker.html",
+ "/web-locks/query-ordering.tentative.https.html",
{}
]
],
@@ -446588,7 +446862,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "773ff6cc5f9f42a0585b6db38a53d0bb1cc6297e",
+ "387c55a5ec45ef3c27b2d5cd5f057f3067457aed",
"support"
],
".codecov.yml": [
@@ -458027,10 +458301,6 @@
"91793af71e741ef6546d1eca37e93338ab2779f7",
"testharness"
],
- "compat/webkit-appearance.html": [
- "210944522a9a7dd6797d8b01f33c76e19b0b320b",
- "testharness"
- ],
"compat/webkit-background-origin-text-ref.html": [
"d1f183874c09d7984d461e577151008e5b363b2c",
"support"
@@ -498719,6 +498989,10 @@
"db819b548bee017ea39115099bc2358683bcf5f6",
"reftest"
],
+ "css/CSS2/floats-clear/clear-on-child-with-margins-2.html": [
+ "594fee03f48859fb15ece07cb82293297ca1d87d",
+ "reftest"
+ ],
"css/CSS2/floats-clear/clear-on-child-with-margins.html": [
"f65f314a2f8aa285a001ae8c4751bc9ceb6e1115",
"reftest"
@@ -541691,6 +541965,10 @@
"b1d23371e3e5ef66de8d2bf3ef78fa4d3ce83803",
"support"
],
+ "css/css-backgrounds/background-border-collapsed-gradient.html": [
+ "73b097cf9a84733126237ea9ef0534b4850536bd",
+ "reftest"
+ ],
"css/css-backgrounds/background-clip-001.html": [
"9c677e547ff0311519e5ab29f1cccee93c33a9e4",
"testharness"
@@ -541939,6 +542217,10 @@
"3f39fb8d850d7561703f791135ea7dd4b3aa9fe8",
"reftest"
],
+ "css/css-backgrounds/background-image-table-cells-zoomed.html": [
+ "4683e5b4b65b76f4e0f542d8a284bc4d160c566d",
+ "reftest"
+ ],
"css/css-backgrounds/background-origin-001.html": [
"a951bdd370a0127270a873b3c9fb8f26755216cf",
"testharness"
@@ -544479,6 +544761,10 @@
"2b568109db28719bc2973d350874f0685a630185",
"support"
],
+ "css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html": [
+ "6e09d46cbc5078181661663eb13fbb371b7ac007",
+ "support"
+ ],
"css/css-backgrounds/reference/background-clip-002-ref.html": [
"a03d6e202091f4ea0d1a62948b60e4e12ef2ccef",
"support"
@@ -544527,6 +544813,10 @@
"7bad169e3aa61b072efa73bb3327857ecd2dcc23",
"support"
],
+ "css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html": [
+ "6f4261ecf45443c0d1d38f4599f2946492a570bb",
+ "support"
+ ],
"css/css-backgrounds/reference/background-origin-002-ref.html": [
"88d61225a623d112e5f54505899a21dd4d929a5b",
"support"
@@ -572591,6 +572881,10 @@
"fa95069dbf0083b0dc7095d2bb3acf20a6ccf898",
"reftest"
],
+ "css/css-sizing/percentage-height-in-flexbox.html": [
+ "f5d9d528a15b4ed445808ebd74de2c3814cb5ee1",
+ "testharness"
+ ],
"css/css-sizing/percentage-height-replaced-content-in-auto-cb.html": [
"c63c490c370cc2dfe9ffe041229869d67775ac5a",
"testharness"
@@ -576539,6 +576833,134 @@
"74e8aa2312416f165550b08ab7351ec18ca956f1",
"testharness"
],
+ "css/css-text/parsing/hanging-punctuation-invalid.html": [
+ "50ed22f1b745bb334b75533692851e63aba0a541",
+ "testharness"
+ ],
+ "css/css-text/parsing/hanging-punctuation-valid.html": [
+ "3523a791b847b1b0bad9e655afc0ecafe5d860cf",
+ "testharness"
+ ],
+ "css/css-text/parsing/hyphens-invalid.html": [
+ "521600f7138b1a0c97b14d80a6cdb9a144aad7db",
+ "testharness"
+ ],
+ "css/css-text/parsing/hyphens-valid.html": [
+ "0ad72094c705ed5daffc0058014d0aa1b7d79623",
+ "testharness"
+ ],
+ "css/css-text/parsing/letter-spacing-invalid.html": [
+ "e9ad4e56a5bb71188535bdbf4fee96e8918c4dcc",
+ "testharness"
+ ],
+ "css/css-text/parsing/letter-spacing-valid.html": [
+ "740d1fc39884de8adcf0b29aacd34ff6c4ff2cb3",
+ "testharness"
+ ],
+ "css/css-text/parsing/line-break-invalid.html": [
+ "aca16649360766eed8a2b91d1692890cd03a5e4b",
+ "testharness"
+ ],
+ "css/css-text/parsing/line-break-valid.html": [
+ "caaae9a5a0150a35563662a8c917046fb08e79fb",
+ "testharness"
+ ],
+ "css/css-text/parsing/overflow-wrap-invalid.html": [
+ "1a467d5f1882fe1d5ede656bd91008499b49367a",
+ "testharness"
+ ],
+ "css/css-text/parsing/overflow-wrap-valid.html": [
+ "8ab907c570288a397249fb7b14cc795049283227",
+ "testharness"
+ ],
+ "css/css-text/parsing/tab-size-invalid.html": [
+ "c95c0462f23683d339519fb737a5b245e2b7ff6e",
+ "testharness"
+ ],
+ "css/css-text/parsing/tab-size-valid.html": [
+ "ced5a3660985f1594b6bec353746f95c3ecaed0e",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-all-invalid.html": [
+ "70cbadf588bd5c22ab1297055039d496cdef2d72",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-all-valid.html": [
+ "f65b15afde028fc9c6a34376817b68b449ccd00c",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-invalid.html": [
+ "38a56d914cdaa3a5f17b12717b992ab056de4391",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-last-invalid.html": [
+ "c16e9a6c13365408c7f6049bdc687e11f23a7319",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-last-valid.html": [
+ "c64e7d8a39e0eaee49e456b56bcb44e14216030c",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-align-valid.html": [
+ "e67f4f6f1679baa83d5fd034acafb6b353eb755d",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-indent-invalid.html": [
+ "9b5d7754b101051c4cf94f5113354b16ef4b93f9",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-indent-valid.html": [
+ "9433ba3d9d353260fc468d66da07dc36d762f1cf",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-justify-invalid.html": [
+ "a009ef08eb535ccbfbdf48438beaa0d9c05997ae",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-justify-valid.html": [
+ "0991409da15f4e7c0491218f6c889eb27d4cfcca",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-transform-invalid.html": [
+ "41482ab5f2c53da2c45bc1bc732ab143a67c05fd",
+ "testharness"
+ ],
+ "css/css-text/parsing/text-transform-valid.html": [
+ "a40166c37ef69074b00de8662fe250dbd7877693",
+ "testharness"
+ ],
+ "css/css-text/parsing/white-space-invalid.html": [
+ "12c34fb5378308c564b3d01b493cbad5ff75138c",
+ "testharness"
+ ],
+ "css/css-text/parsing/white-space-valid.html": [
+ "d872c0b6fbc3324836e7565d1b623e64032db1ab",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-break-invalid.html": [
+ "6d544de8bfa2084213ecd46d5cf189a0fc4966b2",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-break-valid.html": [
+ "9cd917b488a0e1f62103ced9e886d9584b134f4b",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-spacing-invalid.html": [
+ "3a1c4ca487c43256e2bb04dfae89f623be95783d",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-spacing-valid.html": [
+ "217b2488f53128b8475ce4a3f4ca2aa84570b743",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-wrap-invalid.html": [
+ "40890775ca563101f4ebcb4d46ecd439bececb61",
+ "testharness"
+ ],
+ "css/css-text/parsing/word-wrap-valid.html": [
+ "ce5731551aec95f08df44f15ea6491045d14b235",
+ "testharness"
+ ],
"css/css-text/support/1x1-green.png": [
"b98ca0ba0a03c580ac339e4a3653539cfa8edc71",
"support"
@@ -586419,6 +586841,10 @@
"e78564bcc0d50add555e6767a596662e3c303c6e",
"support"
],
+ "css/css-ui/appearance-cssom-001.html": [
+ "2d439ba615f30f348128a3d94c6ea6563993e09b",
+ "testharness"
+ ],
"css/css-ui/box-sizing-001.html": [
"545403f535d2f33993558bde9086e8798c04c11f",
"reftest"
@@ -650840,7 +651266,7 @@
"testharness"
],
"payment-request/MerchantValidationEvent/constructor.https.html": [
- "ec8a4ff1ed0925a354f2631d8459337e47ab079d",
+ "2978226f3cc31cc7433d3fb94927a04eb5b83f0d",
"testharness"
],
"payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html": [
@@ -650860,31 +651286,31 @@
"testharness"
],
"payment-request/PaymentRequestUpdateEvent/constructor.https.html": [
- "fd66493bf4f2aa006e99198094d1b7afd34f4543",
+ "e8df7b35a94280a6c71d7d8ac6f1452904535df2",
"testharness"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html": [
- "cd928d4be1d8609a34d06e0a960306fc95b84e32",
+ "28dfe1e448baea444698f38a20c70ff38e9d312a",
"manual"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html": [
- "40ba3057e0cb10412df759516ee19392ae70f1c3",
+ "fbf97d855ab82d8ee661f3deed9f1198698362ad",
"manual"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html": [
- "3d1bfb41b84d6b0ecc2d4bde25eab2dead465e34",
+ "c1ed1b5f6850c7f26566ffb6e98b06ea51739e15",
"manual"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html": [
- "0ff7f23b6479695907aee3e479436b5ff13e165a",
+ "cf0bb289d73bf7168b93a19b81144d66349f5e95",
"manual"
],
"payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html": [
- "4d4ef73949dd1dd271521c5005ca4e93108ab844",
+ "c5737aa8c31e31f5312135d9de84f82277806c50",
"manual"
],
"payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html": [
- "adacdf3f06d1c1adb50a65585b64441c5e00de63",
+ "17a4741cdf97bd6dca6716c80a890af283f4a68a",
"testharness"
],
"payment-request/PaymentValidationErrors/retry-shows-error-member-manual.https.html": [
@@ -650900,7 +651326,7 @@
"manual"
],
"payment-request/algorithms-manual.https.html": [
- "5494353c6bceb4ed0d388852bd7f426e5715186d",
+ "6744649612576cb5006b76ee34182bd00eed754e",
"manual"
],
"payment-request/allowpaymentrequest/active-document-cross-origin.https.sub.html": [
@@ -650952,7 +651378,7 @@
"testharness"
],
"payment-request/billing-address-changed-manual.https.html": [
- "cb9acf6eb6a20df5ddd03ef734796cefb6195467",
+ "ccfeb6fd364c759131022c96576c9289adb0c0ee",
"manual"
],
"payment-request/blank.html": [
@@ -650960,11 +651386,11 @@
"support"
],
"payment-request/change-shipping-option-manual.https.html": [
- "a33365bac73ed51b6873215d0f54d79a73422163",
+ "438001804acdaca21410ce0d367a8208cac60aff",
"manual"
],
"payment-request/change-shipping-option-select-last-manual.https.html": [
- "f08491150ac7ee6d69520a936eb2868d60393c57",
+ "4ad31d65317338f0474c24e6e35688eb8f2b4cbe",
"manual"
],
"payment-request/constructor_convert_method_data.https.html": [
@@ -650980,11 +651406,11 @@
"testharness"
],
"payment-request/onmerchantvalidation-attribute.https.html": [
- "c0ed23167ed9378ec32e769bd4f3e3afaef5040c",
+ "d31ac2dd72abcf51a28ecec850400f5f0c6b9bb5",
"testharness"
],
"payment-request/onpaymentmenthodchange-attribute.https.html": [
- "0484eb868f983e3cdb0efceab5fe2b3c6084b4ab",
+ "f641bec4aa91d8be4f1801869eb699ca4bad03a0",
"testharness"
],
"payment-request/payment-is-showing.https.html": [
@@ -650992,19 +651418,19 @@
"testharness"
],
"payment-request/payment-request-abort-method.https.html": [
- "8e561b288d15fa30971dd1f88b930671c83a5887",
+ "75e39a011c390fb8c3bbbeba2dbe8826ea6291e1",
"testharness"
],
"payment-request/payment-request-canmakepayment-method-protection.https.html": [
- "b0582d520d306760d75754779de1ceef1d064a92",
+ "e221034dd4ebd05c5bd701e05a81895b8457c3b7",
"testharness"
],
"payment-request/payment-request-canmakepayment-method.https.html": [
- "f38caa00b9313dc80f5ab5180dc10e850eb57147",
+ "672e5ce1571435e9f16b8010456e859f12d2c9c4",
"testharness"
],
"payment-request/payment-request-constructor-crash.https.html": [
- "1325681a4acf6841b67b2dd40d20cf0dcc449d8f",
+ "9763615bdd186d0a8a656af8a89bfdf8bbfac186",
"testharness"
],
"payment-request/payment-request-constructor.https.html": [
@@ -651032,11 +651458,11 @@
"testharness"
],
"payment-request/payment-request-onshippingaddresschange-attribute.https.html": [
- "5c54d48568a40781df857986bcda5fc8ab08189b",
+ "5b2538992f76c774259f52b734bc844468fc14f7",
"testharness"
],
"payment-request/payment-request-onshippingoptionchange-attribute.https.html": [
- "a4d8fbc4825f8e797f9478d8bdd089e4391491a9",
+ "43ea5dcce87afe9dff0387891d57c3265be303f5",
"testharness"
],
"payment-request/payment-request-shippingAddress-attribute.https.html": [
@@ -651048,11 +651474,11 @@
"testharness"
],
"payment-request/payment-request-shippingType-attribute.https.html": [
- "b1ed0d028860ea9c98dd1a61ba239db75a7e3864",
+ "11f75b1c862224b5655cb724d8c8f5b25ab1af00",
"testharness"
],
"payment-request/payment-request-show-method.https.html": [
- "c6e69d4c587602d51602aea41224731e692af2ae",
+ "3d362596c41c6f6ac7058e752c6c6f0e4f6b3781",
"testharness"
],
"payment-request/payment-response/complete-method-manual.https.html": [
@@ -651060,7 +651486,7 @@
"manual"
],
"payment-request/payment-response/helpers.js": [
- "807f794e71efb35f8622eb0aa478ae6a6039c260",
+ "3e4f5cfd36f898c116717c1151806f966511a945",
"support"
],
"payment-request/payment-response/methodName-attribute-manual.https.html": [
@@ -651088,7 +651514,7 @@
"manual"
],
"payment-request/payment-response/rejects_if_not_active-manual.https.html": [
- "60dd9655dd5bafcdb7768b929696cb9104214b29",
+ "516573c581a0a047a2f9b9a89d027568f8567c05",
"manual"
],
"payment-request/payment-response/requestId-attribute-manual.https.html": [
@@ -651108,7 +651534,7 @@
"manual"
],
"payment-request/rejects_if_not_active.https.html": [
- "f585e836f8d30e41bd33c7a8d8760ecf64f7a80d",
+ "06c1f7383a045d7ffd386cb6aec57d6010843d31",
"testharness"
],
"payment-request/resources/page1.html": [
@@ -651120,35 +651546,35 @@
"support"
],
"payment-request/shipping-address-changed-manual.https.html": [
- "07b530657c339434aa924d1dfe96814fad2dbf3b",
+ "711ba2743601348594efd129f74f79fd89b4432a",
"manual"
],
"payment-request/show-method-optional-promise-rejects-manual.https.html": [
- "5c1028eec667c8573df890d201d1f1b9136dde57",
+ "172413ff59811ec38c2a7b23629fe3f4afa53785",
"manual"
],
"payment-request/show-method-optional-promise-resolves-manual.https.html": [
- "70c97faaf7a4496982a382a415e3a85e9a17c465",
+ "d41b1b39c988d68f26ee419c94dd549895ccbf13",
"manual"
],
"payment-request/show-method-postmessage-iframe.html": [
- "12a1e0cef82886f0514cae56eb9f4e11321ab5de",
+ "b50f18ecce3ac62d3193a86d668f457c1e9629ab",
"support"
],
"payment-request/show-method-postmessage-manual.https.html": [
- "e4ab550e4189e1518a4b601aa4c9e249df4c5ecd",
+ "05fce4f248e8ff116065988d1d4d3d2875967ce5",
"manual"
],
"payment-request/updateWith-method-pmi-handling-manual.https.html": [
- "06852bf8c47cb9e720190b9b0e2f81d9e7ddd335",
+ "8bab88212bab51ea771a0fc2a81a1a9e7ee6e0d1",
"manual"
],
"payment-request/user-abort-algorithm-manual.https.html": [
- "0ba0405c52fbd5805a36d2707618dc84a7111351",
+ "007fb681cebb494de5fb8ed5acf6c4c82920f1fe",
"manual"
],
"payment-request/user-accepts-payment-request-algo-manual.https.html": [
- "abaf6cb4e8580df5c6034e8b137ae8fc343067a6",
+ "3d7b8a08ebb34b2517e4bef4b746762b024d56e9",
"manual"
],
"performance-timeline/META.yml": [
@@ -667472,19 +667898,27 @@
"support"
],
"signed-exchange/resources/generate-test-sxgs.sh": [
- "b351a4296de57ada97411808cdaa7b0e4d8463da",
+ "7c953940cb308b669a647a4a2d5c5bbc83c60200",
"support"
],
"signed-exchange/resources/inner-url.html": [
- "628a18afa3f77569662dbb04017c0d0925daf30d",
+ "5b247bbfe99a5e502f8d775c37c5d543dfea3fe3",
"support"
],
"signed-exchange/resources/sxg-location.html": [
- "39a475ebd070a5fa0c87de6805759e11f76a400d",
+ "b3ebd2bde7acd2d1885838a37ab9cfc91c250551",
"support"
],
"signed-exchange/resources/sxg-util.js": [
- "b31bf98c9b1acce6428331452eefe66e06aa5dc6",
+ "0d0e263fd620584b64b059fef1d11f315f4c2423",
+ "support"
+ ],
+ "signed-exchange/resources/sxg-version1b2.sxg": [
+ "092eb9d38ffecf173d353b5ac59744a5893bfa75",
+ "support"
+ ],
+ "signed-exchange/resources/sxg-version1b2.sxg.headers": [
+ "ca41178420c5b2adf70c439435d40b6370535330",
"support"
],
"signed-exchange/resources/sxg/__dir__.headers": [
@@ -667492,43 +667926,59 @@
"support"
],
"signed-exchange/resources/sxg/check-cert-request.sxg": [
- "d412f463822481c9ed5f6798fb3e45d4dd3fc969",
+ "8129b5479c3d606ae89ea6c9ece9223a13fc0f4f",
"support"
],
"signed-exchange/resources/sxg/fallback-to-another-sxg.sxg": [
- "784b44abde996747a36e2177cf6f77325d7102df",
+ "b5dcb6b86de1d58d7bbfbee4fc4ffc21ed5888e6",
+ "support"
+ ],
+ "signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg": [
+ "db08ad072ca4bb81cd381d881d9252219af1f283",
+ "support"
+ ],
+ "signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg": [
+ "5057e9ddf4336d7cdff80a881008db290ca6b609",
"support"
],
"signed-exchange/resources/sxg/nested-sxg.sxg": [
- "c4eaf771c21ae7b54181a157ad602764cd51b4f9",
+ "6d8538882d27c40b0ffcf0845c090844aaec87b7",
"support"
],
"signed-exchange/resources/sxg/sxg-hsts.sxg": [
- "68650b8c3686a33c19234d18af78375b7a9cdb07",
+ "8f57c63dfab73eb5d05600f7563bb0a4ae938834",
"support"
],
"signed-exchange/resources/sxg/sxg-inner-url-bom.sxg": [
- "88e617d5fbb61a0e5a4abc6e881188c7eb23f60b",
+ "0093eb1d37d0df6e9a63569bab16133ead012d52",
"support"
],
"signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg": [
- "d045d5b88293c093e07b281a4e4aa9d8177d7a15",
+ "65357e14ac671610935693d409da9c58c1fa75c7",
"support"
],
"signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg": [
- "628f6ccf28371c8b09166a15201f6a86482c1e51",
+ "62e88d638641ed4ed026319b27a53c6d04351076",
"support"
],
"signed-exchange/resources/sxg/sxg-location.sxg": [
- "3540bfea63c2735fc243b4ffe148980fe8a790db",
+ "1678b751bcba390d35687730bb24e13232e33eda",
"support"
],
"signed-exchange/resources/sxg/sxg-noncacheable.sxg": [
- "38aa45980ca261ad33b3bc23354dd4ae7634a70f",
+ "88439982f6044b3ddbd1a1e0198bebb6409b0837",
+ "support"
+ ],
+ "signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg": [
+ "00aa755efc3cc0f3eec462c7fac553e299a7375f",
+ "support"
+ ],
+ "signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg": [
+ "cc7793efa287b21d10c8c92dcd371a7938b31686",
"support"
],
"signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg": [
- "914a8458b0a7d71d1409a96a3c6d50f906504979",
+ "3edf285f1bd5affc5c575ca258a8cd3cfa546e35",
"support"
],
"signed-exchange/sxg-double-prefetch.tentative.html": [
@@ -667575,10 +668025,18 @@
"5b60ab9e1a12e2b169c4972c422ddbe3ebc5f581",
"testharness"
],
+ "signed-exchange/sxg-referrer.tentative.https.html": [
+ "3be9b1ff9b430e986dc8784a680b11659ab480fa",
+ "testharness"
+ ],
"signed-exchange/sxg-utf8-inner-url.tentative.html": [
"85670a786af33c5dbfe19a018dba76847fa649cf",
"testharness"
],
+ "signed-exchange/sxg-version1b2.tentative.html": [
+ "43b340dbb79f2585ef4acc4361ee94c6f22003f0",
+ "testharness"
+ ],
"speech-api/META.yml": [
"4d1b42a44d2a6a447f8a47bc079d7e28436843e0",
"support"
@@ -680943,8 +681401,8 @@
"88ffdb7f810d6d3e698a507da97220684ad3ecfe",
"testharness"
],
- "web-locks/query-order.tentative.https.any.js": [
- "3317cd02eb9a152f9a7be35b7052fcd082b752e9",
+ "web-locks/query-ordering.tentative.https.html": [
+ "bbbee3880b7cc78db163ded436a627a798aee674",
"testharness"
],
"web-locks/query.tentative.https.any.js": [
@@ -680956,11 +681414,11 @@
"testharness"
],
"web-locks/resources/helpers.js": [
- "d6a4af45fa7199ea3b9ff8ff863eed6c848a4043",
+ "9723ff4f1d8545fd73abc929d9e0a8d82303ecbf",
"support"
],
"web-locks/resources/iframe.html": [
- "d3799f44f96b3456c2e42a3b791c12dbe4817c5d",
+ "ba63c77bae50d7e61bb1c071799aa235ac1836c1",
"support"
],
"web-locks/resources/service-worker.js": [
@@ -680980,7 +681438,7 @@
"testharness"
],
"web-locks/signal.tentative.https.any.js": [
- "5b8acbbbebc52aa5da651a28dc57a1f0222be109",
+ "e0b6e4eabd6138fd05784d0e52cc416d62f811d0",
"testharness"
],
"web-locks/steal.tentative.https.any.js": [
diff --git a/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini
new file mode 100644
index 00000000000..3d74b5a3efa
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini
@@ -0,0 +1,52 @@
+[hanging-punctuation-valid.html]
+ [e.style['hanging-punctuation'\] = "allow-end last first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "allow-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last first force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first allow-end last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "allow-end first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first last force-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last allow-end" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "last allow-end first" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "first last" should set the property value]
+ expected: FAIL
+
+ [e.style['hanging-punctuation'\] = "force-end first last" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini
new file mode 100644
index 00000000000..8afe7d26869
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini
@@ -0,0 +1,10 @@
+[hyphens-valid.html]
+ [e.style['hyphens'\] = "manual" should set the property value]
+ expected: FAIL
+
+ [e.style['hyphens'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['hyphens'\] = "none" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini
new file mode 100644
index 00000000000..6ff20f08110
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini
@@ -0,0 +1,16 @@
+[line-break-valid.html]
+ [e.style['line-break'\] = "loose" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "normal" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "anywhere" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['line-break'\] = "strict" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini
new file mode 100644
index 00000000000..289b9e8e4e1
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini
@@ -0,0 +1,16 @@
+[tab-size-valid.html]
+ [e.style['tab-size'\] = "0px" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "10px" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "0" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['tab-size'\] = "2.5" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini
new file mode 100644
index 00000000000..e08690369fc
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini
@@ -0,0 +1,22 @@
+[text-align-all-valid.html]
+ [e.style['text-align-all'\] = "match-parent" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "left" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "center" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "start" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "end" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "right" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-all'\] = "justify" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini
new file mode 100644
index 00000000000..c3cc42fa761
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini
@@ -0,0 +1,25 @@
+[text-align-last-valid.html]
+ [e.style['text-align-last'\] = "match-parent" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "right" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "center" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "left" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "justify" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "end" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align-last'\] = "start" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini
new file mode 100644
index 00000000000..b9a29184571
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini
@@ -0,0 +1,7 @@
+[text-align-valid.html]
+ [e.style['text-align'\] = "match-parent" should set the property value]
+ expected: FAIL
+
+ [e.style['text-align'\] = "justify-all" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini
new file mode 100644
index 00000000000..97f8781bd76
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini
@@ -0,0 +1,25 @@
+[text-indent-valid.html]
+ [e.style['text-indent'\] = "calc(2em + 3ex) hanging each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "calc(50% + 60px) each-line hanging" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "10px hanging" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "20% each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "hanging 20% each-line" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "each-line hanging calc(2em + 3ex)" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "each-line 10px" should set the property value]
+ expected: FAIL
+
+ [e.style['text-indent'\] = "hanging calc(50% + 60px)" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini
new file mode 100644
index 00000000000..96b9e419553
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini
@@ -0,0 +1,4 @@
+[text-justify-valid.html]
+ [e.style['text-justify'\] = "inter-character" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini
new file mode 100644
index 00000000000..c9e0f5c67db
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini
@@ -0,0 +1,43 @@
+[text-transform-valid.html]
+ [e.style['text-transform'\] = "full-size-kana full-width capitalize" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "capitalize full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "capitalize full-width full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana lowercase full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana capitalize" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "lowercase full-size-kana full-width" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width lowercase" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width full-size-kana uppercase" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "uppercase full-size-kana" should set the property value]
+ expected: FAIL
+
+ [e.style['text-transform'\] = "full-width uppercase full-size-kana" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini
new file mode 100644
index 00000000000..1ad73fcbb72
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini
@@ -0,0 +1,4 @@
+[white-space-valid.html]
+ [e.style['white-space'\] = "break-spaces" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini b/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini
new file mode 100644
index 00000000000..ff76e8dbd13
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini
@@ -0,0 +1,4 @@
+[word-spacing-invalid.html]
+ [e.style['word-spacing'\] = "20%" should not set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini b/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini
new file mode 100644
index 00000000000..5a23a5ee85d
--- /dev/null
+++ b/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini
@@ -0,0 +1,985 @@
+[appearance-cssom-001.html]
+ [appearance: menulist-button]
+ expected: FAIL
+
+ [appearance: continuous-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: toolbarbutton-dropdown (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-frame-bottom (invalid)]
+ expected: FAIL
+
+ [appearance: statusbar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuseparator (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-next (invalid)]
+ expected: FAIL
+
+ [appearance: meterchunk (invalid)]
+ expected: FAIL
+
+ [appearance: resizerpanel (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-volume-slider-container (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: attachment (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-slider (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-borderless-glass (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-left (invalid)]
+ expected: FAIL
+
+ [appearance: scale-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-exit-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: sliderthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menulist-text]
+ expected: FAIL
+
+ [-webkit-appearance: button-arrow-previous (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: statusbar (invalid)]
+ expected: FAIL
+
+ [appearance: menucheckbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: square-button]
+ expected: FAIL
+
+ [appearance: -moz-window-button-restore (invalid)]
+ expected: FAIL
+
+ [appearance: media-time-remaining-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progressbar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: list-button (invalid)]
+ expected: FAIL
+
+ [appearance: radio-container (invalid)]
+ expected: FAIL
+
+ [appearance: media-seek-back-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: radio-container (invalid)]
+ expected: FAIL
+
+ [appearance: media-seek-forward-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: auto]
+ expected: FAIL
+
+ [-webkit-appearance: menupopup (invalid)]
+ expected: FAIL
+
+ [appearance: relevancy-level-indicator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: discrete-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: listitem (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-down (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumb-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: button]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-up (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarbutton-left (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: checkmenuitem (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: toolbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbend (invalid)]
+ expected: FAIL
+
+ [appearance: tabpanel (invalid)]
+ expected: FAIL
+
+ [appearance: sliderthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-down (invalid)]
+ expected: FAIL
+
+ [appearance: textarea]
+ expected: FAIL
+
+ [-webkit-appearance: toolbarbutton (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: tab-scroll-arrow-back (invalid)]
+ expected: FAIL
+
+ [appearance: menulist-textfield]
+ expected: FAIL
+
+ [-webkit-appearance: tab (invalid)]
+ expected: FAIL
+
+ [appearance: number-input (invalid)]
+ expected: FAIL
+
+ [appearance: tabpanels (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: color-well (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeheader (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: range-thumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: splitter (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: listbox]
+ expected: FAIL
+
+ [-webkit-appearance: image-controls-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: inner-spin-button (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-communicationstext (invalid)]
+ expected: FAIL
+
+ [appearance: treeheadercell (invalid)]
+ expected: FAIL
+
+ [appearance: inner-spin-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-exclude-glass (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -apple-pay-button (invalid)]
+ expected: FAIL
+
+ [appearance: tab (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarthumb-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: button-bevel]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-minimize (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeheadersortarrow (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: snapshotted-plugin-overlay (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: spinner-textfield (invalid)]
+ expected: FAIL
+
+ [appearance: media-exit-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [appearance: color-well (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: sheet (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeline (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-controls-background (invalid)]
+ expected: FAIL
+
+ [appearance: media-sliderthumb (invalid)]
+ expected: FAIL
+
+ [appearance: media-fullscreen-volume-slider (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: searchfield-decoration (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-frame-left (invalid)]
+ expected: FAIL
+
+ [appearance: media-current-time-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: listitem (invalid)]
+ expected: FAIL
+
+ [appearance: separator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: toolbar (invalid)]
+ expected: FAIL
+
+ [appearance: dualbutton (invalid)]
+ expected: FAIL
+
+ [appearance: bogus-button (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-decoration (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: spinner-upbutton (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-communicationstext (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumbend (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-browsertabbar-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: menupopup (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: checkbox]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-close (invalid)]
+ expected: FAIL
+
+ [appearance: checkmenuitem (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-rewind-button (invalid)]
+ expected: FAIL
+
+ [appearance: caret]
+ expected: FAIL
+
+ [appearance: radio-label (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progresschunk (invalid)]
+ expected: FAIL
+
+ [appearance: progress-bar]
+ expected: FAIL
+
+ [-webkit-appearance: rating-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: menulist-text]
+ expected: FAIL
+
+ [-webkit-appearance: bogus-button (invalid)]
+ expected: FAIL
+
+ [appearance: button-focus (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-close (invalid)]
+ expected: FAIL
+
+ [appearance: listbox]
+ expected: FAIL
+
+ [-webkit-appearance: media-controls-fullscreen-background (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-slider-mute-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeheadercell (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarbutton-up (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-seek-forward-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: caret]
+ expected: FAIL
+
+ [appearance: checkbox-container (invalid)]
+ expected: FAIL
+
+ [appearance: button]
+ expected: FAIL
+
+ [-webkit-appearance: relevancy-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: progresschunk-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: treetwisty (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbartrack-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-current-time-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbtick (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treetwistyopen (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: push-button]
+ expected: FAIL
+
+ [appearance: menuarrow (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: radiomenuitem (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbartrack-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: meterchunk (invalid)]
+ expected: FAIL
+
+ [appearance: treeitem (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: toolbarbutton-dropdown (invalid)]
+ expected: FAIL
+
+ [appearance: media-play-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-titlebar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: default-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-sliderthumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menulist]
+ expected: FAIL
+
+ [appearance: searchfield]
+ expected: FAIL
+
+ [-webkit-appearance: button-arrow-down (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-controls-light-bar-background (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-communications-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: rating-level-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-right (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-downbutton (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: caps-lock-indicator (invalid)]
+ expected: FAIL
+
+ [appearance: splitter (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-background (invalid)]
+ expected: FAIL
+
+ [appearance: square-button]
+ expected: FAIL
+
+ [-webkit-appearance: listitem]
+ expected: FAIL
+
+ [appearance: resizer (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-borderless-glass (invalid)]
+ expected: FAIL
+
+ [appearance: toolbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: resizer (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: resizerpanel (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: dualbutton (invalid)]
+ expected: FAIL
+
+ [appearance: media-enter-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: searchfield-cancel-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: textarea]
+ expected: FAIL
+
+ [appearance: statusbarpanel (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-titlebar-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-light-bar-background (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: tab-scroll-arrow-forward (invalid)]
+ expected: FAIL
+
+ [appearance: push-button]
+ expected: FAIL
+
+ [appearance: treetwistyopen (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treetwisty (invalid)]
+ expected: FAIL
+
+ [appearance: progress-bar-value (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarbutton-right (invalid)]
+ expected: FAIL
+
+ [appearance: borderless-attachment (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-fullscreen-background (invalid)]
+ expected: FAIL
+
+ [appearance: treeheader (invalid)]
+ expected: FAIL
+
+ [appearance: slider-horizontal]
+ expected: FAIL
+
+ [-webkit-appearance: radio-label (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: none]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-box (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: tabpanel (invalid)]
+ expected: FAIL
+
+ [appearance: checkbox-label (invalid)]
+ expected: FAIL
+
+ [appearance: -apple-pay-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progressbar-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-box (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-upbutton (invalid)]
+ expected: FAIL
+
+ [appearance: groupbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuitemtext (invalid)]
+ expected: FAIL
+
+ [appearance: snapshotted-plugin-overlay (invalid)]
+ expected: FAIL
+
+ [appearance: discrete-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: button-arrow-up (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-slider-container (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: searchfield]
+ expected: FAIL
+
+ [appearance: caps-lock-indicator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: toolbargripper (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: auto]
+ expected: FAIL
+
+ [-webkit-appearance: media-seek-back-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: button-focus (invalid)]
+ expected: FAIL
+
+ [appearance: progressbar-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: tooltip (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-volume-slider-mute-button (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-previous (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-fullscreen-volume-slider (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarbutton-right (invalid)]
+ expected: FAIL
+
+ [appearance: toolbarbutton (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-glass (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: textfield]
+ expected: FAIL
+
+ [appearance: searchfield-cancel-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: spinner (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-exclude-glass (invalid)]
+ expected: FAIL
+
+ [appearance: media-return-to-realtime-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-restore (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: spinner-downbutton (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progresschunk-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: radio]
+ expected: FAIL
+
+ [-webkit-appearance: meterbar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: slider-horizontal]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-left (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: media-toggle-closed-captions-button (invalid)]
+ expected: FAIL
+
+ [appearance: checkbox]
+ expected: FAIL
+
+ [appearance: textfield-multiline (invalid)]
+ expected: FAIL
+
+ [appearance: treeline (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-time-remaining-display (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-maximize (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-browsertabbar-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: attachment (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: separator (invalid)]
+ expected: FAIL
+
+ [appearance: none]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-win-media-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-results-button (invalid)]
+ expected: FAIL
+
+ [appearance: searchfield-results-decoration (invalid)]
+ expected: FAIL
+
+ [appearance: radiomenuitem (invalid)]
+ expected: FAIL
+
+ [appearance: progresschunk (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: sliderthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: toolbar (invalid)]
+ expected: FAIL
+
+ [appearance: menulist]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumbstart (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: tooltip (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: button-arrow-next (invalid)]
+ expected: FAIL
+
+ [appearance: treeview (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-volume-slider (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-return-to-realtime-button (invalid)]
+ expected: FAIL
+
+ [appearance: toolbargripper (invalid)]
+ expected: FAIL
+
+ [appearance: slider-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scale-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarbutton-down (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: checkbox-container (invalid)]
+ expected: FAIL
+
+ [appearance: sheet (invalid)]
+ expected: FAIL
+
+ [appearance: menuimage (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-toggle-closed-captions-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: searchfield-results-button (invalid)]
+ expected: FAIL
+
+ [appearance: media-rewind-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-overlay-play-button (invalid)]
+ expected: FAIL
+
+ [appearance: menuseparator (invalid)]
+ expected: FAIL
+
+ [appearance: list-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progress-bar-value (invalid)]
+ expected: FAIL
+
+ [appearance: listitem]
+ expected: FAIL
+
+ [-webkit-appearance: scalethumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: number-input (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbarthumb-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-maximize (invalid)]
+ expected: FAIL
+
+ [appearance: scale-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: checkbox-label (invalid)]
+ expected: FAIL
+
+ [appearance: button-arrow-up (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: borderless-attachment (invalid)]
+ expected: FAIL
+
+ [appearance: media-controls-dark-bar-background (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menubar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuimage (invalid)]
+ expected: FAIL
+
+ [appearance: menuitemtext (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-titlebar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuarrow (invalid)]
+ expected: FAIL
+
+ [appearance: menubar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: statusbarpanel (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: tabpanels (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-controls-dark-bar-background (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-frame-right (invalid)]
+ expected: FAIL
+
+ [appearance: tab-scroll-arrow-back (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-mute-button (invalid)]
+ expected: FAIL
+
+ [appearance: menuradio (invalid)]
+ expected: FAIL
+
+ [appearance: range-thumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeview (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-button-box-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: media-mute-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: treeitem (invalid)]
+ expected: FAIL
+
+ [appearance: textfield]
+ expected: FAIL
+
+ [appearance: meterbar (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menulist-button]
+ expected: FAIL
+
+ [-webkit-appearance: media-enter-fullscreen-button (invalid)]
+ expected: FAIL
+
+ [appearance: default-button (invalid)]
+ expected: FAIL
+
+ [appearance: media-fullscreen-volume-slider-thumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-fullscreen-volume-slider-thumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: continuous-capacity-level-indicator (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menulist-textfield]
+ expected: FAIL
+
+ [-webkit-appearance: groupbox (invalid)]
+ expected: FAIL
+
+ [appearance: media-overlay-play-button (invalid)]
+ expected: FAIL
+
+ [appearance: button-bevel]
+ expected: FAIL
+
+ [-webkit-appearance: meter]
+ expected: FAIL
+
+ [appearance: scalethumbtick (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menucheckbox (invalid)]
+ expected: FAIL
+
+ [appearance: radio]
+ expected: FAIL
+
+ [-webkit-appearance: searchfield-results-decoration (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-media-toolbox (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-titlebar-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: progressbar (invalid)]
+ expected: FAIL
+
+ [appearance: media-slider (invalid)]
+ expected: FAIL
+
+ [appearance: scalethumbstart (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: range (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuradio (invalid)]
+ expected: FAIL
+
+ [appearance: spinner-textfield (invalid)]
+ expected: FAIL
+
+ [appearance: spinner (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: -moz-window-button-box-maximized (invalid)]
+ expected: FAIL
+
+ [appearance: treeheadersortarrow (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-glass (invalid)]
+ expected: FAIL
+
+ [appearance: meter]
+ expected: FAIL
+
+ [appearance: image-controls-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: slider-vertical (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: progress-bar]
+ expected: FAIL
+
+ [appearance: -moz-window-button-minimize (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-slider (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-volume-sliderthumb (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbartrack-horizontal (invalid)]
+ expected: FAIL
+
+ [appearance: sliderthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: menuitem (invalid)]
+ expected: FAIL
+
+ [appearance: menuitem (invalid)]
+ expected: FAIL
+
+ [appearance: scrollbarthumb-horizontal (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scrollbartrack-vertical (invalid)]
+ expected: FAIL
+
+ [appearance: range (invalid)]
+ expected: FAIL
+
+ [appearance: media-volume-sliderthumb (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: media-play-button (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: textfield-multiline (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-window-frame-bottom (invalid)]
+ expected: FAIL
+
+ [appearance: -moz-win-communications-toolbox (invalid)]
+ expected: FAIL
+
+ [appearance: tab-scroll-arrow-forward (invalid)]
+ expected: FAIL
+
+ [-webkit-appearance: scale-horizontal (invalid)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
index 8e2ceeddfbe..bcd187f508c 100644
--- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
@@ -6,6 +6,3 @@
[Instant scrolling while doing history navigation.]
expected: FAIL
- [Smooth scrolling while doing history navigation.]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
index 0db3e87a719..95b74e19aec 100644
--- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
+++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
@@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
- expected: CRASH
+ expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@@ -58,7 +58,73 @@
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
- expected: FAIL
+ expected: TIMEOUT
+
+ [windows-1258: cp1258 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1256: cp1256 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: iso_8859-9 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: iso88599 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: iso-8859-9 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1258: x-cp1258 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1257: windows-1257 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: windows-1254 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: csisolatin5 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1257: cp1257 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1257: x-cp1257 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: cp1254 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: iso8859-9 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1253: cp1253 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: l5 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: x-cp1254 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: latin5 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1254: iso-ir-148 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1258: windows-1258 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [windows-1256: x-cp1256 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
+ expected: TIMEOUT
[single-byte-decoder.html?TextDecoder]
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 02a6e56df1c..c0a9a81dbe6 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,6 +312,15 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: */* text/html]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index d4ba399b762..b7052af5b5c 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
+ [X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
deleted file mode 100644
index 87b07c3e670..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_1.html]
- [Multiple history traversals from the same task]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
deleted file mode 100644
index 8cc42056d34..00000000000
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[non-active-document.html]
- [DOMParser]
- expected: FAIL
-
- [createHTMLDocument]
- expected: FAIL
-
- [<template>]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
deleted file mode 100644
index 9e522297c94..00000000000
--- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[toggleEvent.html]
- [Calling open twice on 'details' fires only one toggle event]
- expected: FAIL
-
- [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
new file mode 100644
index 00000000000..178680e5d14
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
@@ -0,0 +1,2 @@
+[script-onerror-insertion-point-2.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
new file mode 100644
index 00000000000..63682614c4f
--- /dev/null
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
@@ -0,0 +1,5 @@
+[promise-rejection-events.html]
+ expected: TIMEOUT
+ [rejectionhandled is dispatched from a queued task, and not immediately]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
index 333edb3a26e..650c91da4a6 100644
--- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
+++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
@@ -1,4 +1,5 @@
[sharedworker-in-worker.html]
+ expected: ERROR
[Base URL in workers: new SharedWorker()]
expected: FAIL
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 773ff6cc5f9..387c55a5ec4 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -21,7 +21,7 @@ jobs:
steps:
- template: tools/ci/azure/affected_tests.yml
parameters:
- artifactName: 'results'
+ artifactName: 'affected-tests'
- job: affected_without_changes_macOS
displayName: 'affected tests without changes (Safari Technology Preview)'
@@ -33,7 +33,7 @@ jobs:
parameters:
checkoutCommit: 'HEAD^1'
affectedRange: 'HEAD@{1}'
- artifactName: 'results-without-changes'
+ artifactName: 'affected-tests-without-changes'
# The decision jobs runs `./wpt test-jobs` to determine which jobs to run,
# and all following jobs wait for it to finish and depend on its output.
diff --git a/tests/wpt/web-platform-tests/compat/webkit-appearance.html b/tests/wpt/web-platform-tests/compat/webkit-appearance.html
deleted file mode 100644
index 210944522a9..00000000000
--- a/tests/wpt/web-platform-tests/compat/webkit-appearance.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!doctype html>
-<title>-webkit-appearance</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<button id=button>Test</button>
-<script>
- const button = document.getElementById('button');
- // values from https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance
- // intersection of Firefox and Chrome.
- const values = ["none",
- "button",
- "button-bevel",
- "caret",
- "checkbox",
- "listbox",
- "listitem",
- "menulist",
- "menulist-button",
- "menulist-text",
- "menulist-textfield",
- "radio",
- "searchfield",
- "textfield",
- ];
- for (const value of values) {
- test(() => {
- button.removeAttribute('style');
- button.style.setProperty('-webkit-appearance', value);
- assert_equals(button.style.WebkitAppearance, value);
- assert_equals(button.style.webkitAppearance, value); // lowercase w
- const style = getComputedStyle(button);
- assert_equals(style.WebkitAppearance, value);
- assert_equals(style.webkitAppearance, value); // lowercase w
- }, `-webkit-appearance: ${value}`);
- }
-
- const invalidValues = ["bogus-button"];
- for (const invalidValue of invalidValues) {
- test(() => {
- button.removeAttribute('style');
- button.style.setProperty('-webkit-appearance', invalidValue);
- assert_equals(button.style.WebkitAppearance, "");
- assert_equals(button.style.webkitAppearance, ""); // lowercase w
- const style = getComputedStyle(button);
- assert_equals(style.WebkitAppearance, "button");
- assert_equals(style.webkitAppearance, "button"); // lowercase w
- }, `-webkit-appearance: ${invalidValue} (invalid)`);
- }
-
- test(() => {
- button.removeAttribute('style');
- button.style.setProperty('appearance', 'auto');
- assert_equals(button.style.appearance, undefined);
- const style = getComputedStyle(button);
- assert_equals(style.appearance, undefined);
- }, 'appearance');
-</script>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html
new file mode 100644
index 00000000000..594fee03f48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>Child of block with clear</title>
+<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property">
+<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
+<p>Test passes if there is a filled green square.</p>
+<div style="width: 100px;background: red;overflow: hidden;">
+ <div style="float: right; height: 20px; width: 50%; background: green;"></div>
+ <div>
+ <div style="float: left; height:100px; width: 50%; background: green;"></div>
+ <div>
+ <div style="clear: right; height: 80px; margin-top: 16px; background: green;"></div>
+ </div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html
new file mode 100644
index 00000000000..73b097cf9a8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Background Test: There should be no gap between border-collapsed backgrounds</title>
+ <link rel="author" title="schenney" href="mailto:schenney@chromium.org">
+ <link rel="help" href="http://www.w3.org/TR/css3-background">
+ <link rel="match" href="reference/background-border-collapsed-gradient-ref.html">
+ <style>
+ div {
+ background: linear-gradient(to bottom,#222,#666);
+ float: left;
+ padding: 32px;
+ color: white;
+ border-collapse: collapse;
+ }
+ </style>
+</head>
+<body>
+ <div style="height:18px;width:11.5625px;"></div>
+ <div style="height:18px;width:11.4375px;"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html
new file mode 100644
index 00000000000..4683e5b4b65
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Background Test: A background image on table cells with collapsed borders should fill the table</title>
+ <link rel="author" title="schenney" href="mailto:schenney@chromium.org">
+ <link rel="help" href="http://www.w3.org/TR/css3-background">
+ <link rel="match" href="reference/background-image-table-cells-zoomed-ref.html">
+ <style>
+ body {
+ zoom: 121%;
+ }
+ .test-table {
+ display: table;
+ width: 600px;
+ border-collapse: collapse;
+ border-spacing: 0;
+ background-color: red;
+ }
+ .test-row {
+ padding: 0px;
+ border: 0px;
+ display: table-row;
+ }
+ .test-cell {
+ display: table-cell;
+ padding: 0px;
+ height: 50px;
+ border: 0px;
+ background: url("support/50x50-green.png");
+ background-size: 100% 100%;
+ }
+
+ </style>
+</head>
+
+<body>
+ <div class="test-table">
+ <div class="test-row">
+ <div class="test-cell"></div>
+ <div class="test-cell"></div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html
new file mode 100644
index 00000000000..6e09d46cbc5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Background Test Reference</title>
+ <link rel="author" title="schenney" href="mailto:schenney@chromium.org">
+ <style>
+ div {
+ background: linear-gradient(to bottom,#222,#666);
+ float: left;
+ padding: 32px 64px;
+ color: white;
+ border-collapse: collapse;
+ }
+ </style>
+</head>
+<body>
+ <div style="height:18px;width:23px;"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html
new file mode 100644
index 00000000000..6f4261ecf45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Background Test Reference</title>
+ <link rel="author" title="schenney" href="mailto:schenney@chromium.org">
+ <style>
+ body {
+ zoom: 121%;
+ }
+ .test-table {
+ display: table;
+ width: 600px;
+ border-collapse: collapse;
+ border-spacing: 0;
+ background-color: green;
+ }
+ .test-row {
+ display: table-row;
+ padding: 0px;
+ }
+ .test-cell {
+ display: table-cell;
+ padding: 0px;
+ height: 50px;
+ border: 0;
+ }
+
+ </style>
+</head>
+
+<body>
+ <div class="test-table">
+ <div class="test-row">
+ <div class="test-cell"></div>
+ <div class="test-cell"></div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html b/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html
new file mode 100644
index 00000000000..f5d9d528a15
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<title>Percentage height in flexbox: css-sizing-3</title>
+<link rel="author" title="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#percentage-sizing">
+<link rel="help" href="https://crbug.com/907911">
+<meta name="assert" content="Percentage height resolves correctly inside flexbox.">
+<style>
+#outer {
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+#container {
+ display: inline-flex;
+ height: 50px;
+ background: green;
+}
+#target {
+ height:100%;
+ display:block;
+}
+</style>
+<div id="outer">
+ <div id="container">
+ <img id="target" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
+ </div>
+</div>
+<script>
+test(() => {
+ let target = document.querySelector("#target");
+ assert_equals(target.offsetWidth, target.offsetHeight);
+ assert_equals(target.offsetWidth, target.parentNode.offsetWidth);
+ assert_equals(target.offsetHeight, target.parentNode.offsetHeight);
+}, '#target offsetSize matches #container offsetSize' );
+test(() => {
+ document.querySelector("#container").style.height = "100px";
+ let target = document.querySelector("#target");
+ assert_equals(target.offsetWidth, target.offsetHeight);
+ assert_equals(target.offsetWidth, target.parentNode.offsetWidth);
+ assert_equals(target.offsetHeight, target.parentNode.offsetHeight);
+}, '#target offsetSize matches #container offsetSize after resize' );
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html
new file mode 100644
index 00000000000..50ed22f1b74
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hanging-punctuation with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation">
+<meta name="assert" content="hanging-punctuation supports only the grammar 'none | [ first || [ force-end | allow-end ] || last ]'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("hanging-punctuation", "none first");
+test_invalid_value("hanging-punctuation", "last none");
+test_invalid_value("hanging-punctuation", "first first");
+test_invalid_value("hanging-punctuation", "force-end allow-end");
+test_invalid_value("hanging-punctuation", "allow-end last force-end");
+test_invalid_value("hanging-punctuation", "first allow-end last allow-end");
+test_invalid_value("hanging-punctuation", "last force-end last");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html
new file mode 100644
index 00000000000..3523a791b84
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hanging-punctuation with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation">
+<meta name="assert" content="hanging-punctuation supports the full grammar 'none | [ first || [ force-end | allow-end ] || last ]'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("hanging-punctuation", "none");
+
+test_valid_value("hanging-punctuation", "first");
+test_valid_value("hanging-punctuation", "force-end");
+test_valid_value("hanging-punctuation", "allow-end");
+test_valid_value("hanging-punctuation", "last");
+
+test_valid_value("hanging-punctuation", "first force-end");
+test_valid_value("hanging-punctuation", "first last");
+test_valid_value("hanging-punctuation", "allow-end first");
+test_valid_value("hanging-punctuation", "force-end last");
+test_valid_value("hanging-punctuation", "last first");
+test_valid_value("hanging-punctuation", "last allow-end");
+
+test_valid_value("hanging-punctuation", "first allow-end last");
+test_valid_value("hanging-punctuation", "first last force-end");
+test_valid_value("hanging-punctuation", "force-end first last");
+test_valid_value("hanging-punctuation", "allow-end last first");
+test_valid_value("hanging-punctuation", "last first force-end");
+test_valid_value("hanging-punctuation", "last allow-end first");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html
new file mode 100644
index 00000000000..521600f7138
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hyphens with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens">
+<meta name="assert" content="hyphens supports only the grammar 'none | manual | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("hyphens", "normal");
+test_invalid_value("hyphens", "none manual");
+test_invalid_value("hyphens", "auto auto");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html
new file mode 100644
index 00000000000..0ad72094c70
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hyphens with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens">
+<meta name="assert" content="hyphens supports the full grammar 'none | manual | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("hyphens", "none");
+test_valid_value("hyphens", "manual");
+test_valid_value("hyphens", "auto");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html
new file mode 100644
index 00000000000..e9ad4e56a5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing letter-spacing with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing">
+<meta name="assert" content="letter-spacing supports only the grammar 'normal | <length>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("letter-spacing", "auto");
+test_invalid_value("letter-spacing", "20");
+test_invalid_value("letter-spacing", "30%");
+test_invalid_value("letter-spacing", "calc(40% + 50px)");
+
+test_invalid_value("letter-spacing", "normal 10px");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html
new file mode 100644
index 00000000000..740d1fc3988
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing letter-spacing with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing">
+<meta name="assert" content="letter-spacing supports the full grammar 'normal | <length>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("letter-spacing", "normal");
+
+test_valid_value("letter-spacing", "0", "0px");
+test_valid_value("letter-spacing", "-10px");
+test_valid_value("letter-spacing", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html
new file mode 100644
index 00000000000..aca16649360
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing line-break with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break">
+<meta name="assert" content="line-break supports only the grammar 'auto | loose | normal | strict | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("line-break", "none");
+test_invalid_value("line-break", "auto loose");
+test_invalid_value("line-break", "strict normal");
+test_invalid_value("line-break", "anywhere anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html
new file mode 100644
index 00000000000..caaae9a5a01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing line-break with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break">
+<meta name="assert" content="line-break supports the full grammar 'auto | loose | normal | strict | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("line-break", "auto");
+test_valid_value("line-break", "loose");
+test_valid_value("line-break", "normal");
+test_valid_value("line-break", "strict");
+test_valid_value("line-break", "anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html
new file mode 100644
index 00000000000..1a467d5f188
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing overflow-wrap with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap">
+<meta name="assert" content="overflow-wrap supports only the grammar 'normal | break-word | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("overflow-wrap", "auto");
+test_invalid_value("overflow-wrap", "normal break-word");
+test_invalid_value("overflow-wrap", "anywhere anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html
new file mode 100644
index 00000000000..8ab907c5702
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing overflow-wrap with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap">
+<meta name="assert" content="overflow-wrap supports the full grammar 'normal | break-word | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("overflow-wrap", "normal");
+test_valid_value("overflow-wrap", "break-word");
+test_valid_value("overflow-wrap", "anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html
new file mode 100644
index 00000000000..c95c0462f23
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing tab-size with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size">
+<meta name="assert" content="tab-size supports only the grammar '<number> | <length>'.">
+<meta name="assert" content="Negative tab-size values are not allowed.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("tab-size", "-10px");
+test_invalid_value("tab-size", "-20");
+test_invalid_value("tab-size", "30%");
+test_invalid_value("tab-size", "calc(40% + 50px)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html
new file mode 100644
index 00000000000..ced5a366098
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing tab-size with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size">
+<meta name="assert" content="tab-size supports the full grammar '<number> | <length>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("tab-size", "0");
+test_valid_value("tab-size", "2.5");
+
+test_valid_value("tab-size", "0px");
+test_valid_value("tab-size", "10px");
+test_valid_value("tab-size", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html
new file mode 100644
index 00000000000..70cbadf588b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-all with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all">
+<meta name="assert" content="text-align-all supports only the grammar 'start | end | left | right | center | justify | match-parent'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-align-all", "auto");
+test_invalid_value("text-align-all", "start end");
+test_invalid_value("text-align-all", "left right");
+test_invalid_value("text-align-all", "center justify");
+test_invalid_value("text-align-all", "match-parent match-parent");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html
new file mode 100644
index 00000000000..f65b15afde0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-all with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all">
+<meta name="assert" content="text-align-all supports the full grammar 'start | end | left | right | center | justify | match-parent'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-align-all", "start");
+test_valid_value("text-align-all", "end");
+test_valid_value("text-align-all", "left");
+test_valid_value("text-align-all", "right");
+test_valid_value("text-align-all", "center");
+test_valid_value("text-align-all", "justify");
+test_valid_value("text-align-all", "match-parent");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html
new file mode 100644
index 00000000000..38a56d914cd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align">
+<meta name="assert" content="text-align supports only the grammar 'start | end | left | right | center | justify | match-parent | justify-all'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-align", "auto");
+test_invalid_value("text-align", "start end");
+test_invalid_value("text-align", "left right");
+test_invalid_value("text-align", "center justify");
+test_invalid_value("text-align", "justify-all match-parent");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html
new file mode 100644
index 00000000000..c16e9a6c133
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-last with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last">
+<meta name="assert" content="text-align-last supports only the grammar 'auto | start | end | left | right | center | justify | match-parent'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-align-last", "none");
+test_invalid_value("text-align-last", "auto start");
+test_invalid_value("text-align-last", "end left");
+test_invalid_value("text-align-last", "right center");
+test_invalid_value("text-align-last", "justify match-parent");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html
new file mode 100644
index 00000000000..c64e7d8a39e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-last with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last">
+<meta name="assert" content="text-align-last supports the full grammar 'auto | start | end | left | right | center | justify | match-parent'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-align-last", "auto");
+test_valid_value("text-align-last", "start");
+test_valid_value("text-align-last", "end");
+test_valid_value("text-align-last", "left");
+test_valid_value("text-align-last", "right");
+test_valid_value("text-align-last", "center");
+test_valid_value("text-align-last", "justify");
+test_valid_value("text-align-last", "match-parent");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html
new file mode 100644
index 00000000000..e67f4f6f167
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align">
+<meta name="assert" content="text-align supports the full grammar 'start | end | left | right | center | justify | match-parent | justify-all'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-align", "start");
+test_valid_value("text-align", "end");
+test_valid_value("text-align", "left");
+test_valid_value("text-align", "right");
+test_valid_value("text-align", "center");
+test_valid_value("text-align", "justify");
+test_valid_value("text-align", "match-parent");
+test_valid_value("text-align", "justify-all");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html
new file mode 100644
index 00000000000..9b5d7754b10
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-indent with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent">
+<meta name="assert" content="text-indent supports only the grammar '[ <length-percentage> ] && hanging? && each-line?'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-indent", "auto");
+test_invalid_value("text-indent", "hanging");
+test_invalid_value("text-indent", "each-line");
+test_invalid_value("text-indent", "10");
+
+test_invalid_value("text-indent", "10px hanging 20px");
+test_invalid_value("text-indent", "hanging 20% hanging");
+test_invalid_value("text-indent", "each-line each-line");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html
new file mode 100644
index 00000000000..9433ba3d9d3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-indent with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent">
+<meta name="assert" content="text-indent supports the full grammar '[ <length-percentage> ] && hanging? && each-line?'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-indent", "10px");
+test_valid_value("text-indent", "20%");
+test_valid_value("text-indent", "calc(2em + 3ex)");
+test_valid_value("text-indent", "calc(50% + 60px)");
+test_valid_value("text-indent", "-30px");
+test_valid_value("text-indent", "-40%");
+
+test_valid_value("text-indent", "10px hanging");
+test_valid_value("text-indent", "20% each-line");
+test_valid_value("text-indent", "calc(2em + 3ex) hanging each-line");
+
+test_valid_value("text-indent", "hanging calc(50% + 60px)", "calc(50% + 60px) hanging");
+test_valid_value("text-indent", "each-line 10px", "10px each-line");
+test_valid_value("text-indent", "hanging 20% each-line", "20% hanging each-line");
+test_valid_value("text-indent", "each-line hanging calc(2em + 3ex)", "calc(2em + 3ex) hanging each-line");
+test_valid_value("text-indent", "calc(50% + 60px) each-line hanging", "calc(50% + 60px) hanging each-line");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html
new file mode 100644
index 00000000000..a009ef08eb5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-justify with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify">
+<meta name="assert" content="text-justify supports only the grammar 'auto | none | inter-word | inter-character'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-justify", "normal");
+test_invalid_value("text-justify", "auto none");
+test_invalid_value("text-justify", "inter-character inter-word");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html
new file mode 100644
index 00000000000..0991409da15
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-justify with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify">
+<meta name="assert" content="text-justify supports the full grammar 'auto | none | inter-word | inter-character'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-justify", "auto");
+test_valid_value("text-justify", "none");
+test_valid_value("text-justify", "inter-word");
+test_valid_value("text-justify", "inter-character");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html
new file mode 100644
index 00000000000..41482ab5f2c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-transform with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform">
+<meta name="assert" content="text-transform supports only the grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("text-transform", "none full-width");
+test_invalid_value("text-transform", "capitalize none");
+
+test_invalid_value("text-transform", "capitalize full-width lowercase");
+test_invalid_value("text-transform", "uppercase full-size-kana uppercase");
+test_invalid_value("text-transform", "full-width full-size-kana full-width");
+test_invalid_value("text-transform", "full-size-kana capitalize full-size-kana");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html
new file mode 100644
index 00000000000..a40166c37ef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-transform with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform">
+<meta name="assert" content="text-transform supports the full grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("text-transform", "none");
+
+test_valid_value("text-transform", "capitalize");
+test_valid_value("text-transform", "uppercase");
+test_valid_value("text-transform", "lowercase");
+test_valid_value("text-transform", "full-width");
+test_valid_value("text-transform", "full-size-kana");
+
+test_valid_value("text-transform", "capitalize full-width");
+test_valid_value("text-transform", "uppercase full-size-kana");
+test_valid_value("text-transform", "full-width full-size-kana");
+test_valid_value("text-transform", "full-width lowercase");
+test_valid_value("text-transform", "full-size-kana capitalize");
+test_valid_value("text-transform", "full-size-kana full-width");
+
+test_valid_value("text-transform", "capitalize full-width full-size-kana");
+test_valid_value("text-transform", "full-width full-size-kana uppercase");
+test_valid_value("text-transform", "full-size-kana lowercase full-width");
+test_valid_value("text-transform", "lowercase full-size-kana full-width");
+test_valid_value("text-transform", "full-width uppercase full-size-kana");
+test_valid_value("text-transform", "full-size-kana full-width capitalize");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html
new file mode 100644
index 00000000000..12c34fb5378
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing white-space with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space">
+<meta name="assert" content="white-space supports only the grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("white-space", "auto");
+test_invalid_value("white-space", "normal pre");
+test_invalid_value("white-space", "nowrap pre-wrap");
+test_invalid_value("white-space", "pre-line break-spaces");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html
new file mode 100644
index 00000000000..d872c0b6fbc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing white-space with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space">
+<meta name="assert" content="white-space supports the full grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("white-space", "normal");
+test_valid_value("white-space", "pre");
+test_valid_value("white-space", "nowrap");
+test_valid_value("white-space", "pre-wrap");
+test_valid_value("white-space", "break-spaces");
+test_valid_value("white-space", "pre-line");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html
new file mode 100644
index 00000000000..6d544de8bfa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-break with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break">
+<meta name="assert" content="word-break supports only the grammar 'normal | keep-all | break-all'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("word-break", "auto");
+test_invalid_value("word-break", "normal keep-all");
+test_invalid_value("word-break", "break-all break-all");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html
new file mode 100644
index 00000000000..9cd917b488a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-break with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break">
+<meta name="assert" content="word-break supports the full grammar 'normal | keep-all | break-all'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("word-break", "normal");
+test_valid_value("word-break", "keep-all");
+test_valid_value("word-break", "break-all");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html
new file mode 100644
index 00000000000..3a1c4ca487c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-spacing with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing">
+<meta name="assert" content="word-spacing supports only the grammar 'normal | <length>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("word-spacing", "auto");
+test_invalid_value("word-spacing", "20%");
+
+test_invalid_value("word-spacing", "normal 10px");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html
new file mode 100644
index 00000000000..217b2488f53
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-spacing with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing">
+<meta name="assert" content="word-spacing supports the full grammar 'normal | <length>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("word-spacing", "normal");
+
+test_valid_value("word-spacing", "10px");
+test_valid_value("word-spacing", "-20px");
+test_valid_value("word-spacing", "calc(2em + 3ex)");
+test_valid_value("word-spacing", "0", "0px");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html
new file mode 100644
index 00000000000..40890775ca5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-wrap with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap">
+<meta name="assert" content="word-wrap supports only the grammar 'normal | break-word | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("word-wrap", "auto");
+test_invalid_value("word-wrap", "normal break-word");
+test_invalid_value("word-wrap", "anywhere anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html
new file mode 100644
index 00000000000..ce5731551ae
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-wrap with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap">
+<meta name="assert" content="word-wrap supports the full grammar 'normal | break-word | anywhere'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("word-wrap", "normal");
+test_valid_value("word-wrap", "break-word");
+test_valid_value("word-wrap", "anywhere");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html b/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html
new file mode 100644
index 00000000000..2d439ba615f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html
@@ -0,0 +1,233 @@
+<!doctype html>
+<title>CSS Basic User Interface Test: appearance CSSOM</title>
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#appearance-switching">
+<meta name="assert" content="CSSOM for the appearance/-webkit-appearance property is correct.">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<button id=button>Test</button>
+<script>
+ const button = document.getElementById('button');
+ const values = ["none",
+ "auto",
+ "button",
+ "button-bevel",
+ "caret",
+ "checkbox",
+ "listbox",
+ "listitem",
+ "menulist",
+ "menulist-button",
+ "menulist-text",
+ "menulist-textfield",
+ "meter",
+ "progress-bar",
+ "push-button",
+ "radio",
+ "searchfield",
+ "slider-horizontal",
+ "square-button",
+ "textarea",
+ "textfield",
+ ];
+ function assert_style_for_prop(style, prop, value) {
+ if (prop === '-webkit-appearance') {
+ assert_equals(style.WebkitAppearance, value, 'style.WebkitAppearance (uppercase W)');
+ assert_equals(style.webkitAppearance, value, 'style.webkitAppearance (lowercase w)');
+ } else {
+ assert_equals(style.appearance, value, 'style.appearance');
+ }
+ assert_equals(style.getPropertyValue(prop), value, `getPropertyValue(${prop})`);
+ }
+ for (const prop of ["-webkit-appearance", "appearance"]) {
+ for (const value of values) {
+ test(() => {
+ button.removeAttribute('style');
+ button.style.setProperty(prop, value);
+ assert_style_for_prop(button.style, prop, value);
+ const style = getComputedStyle(button);
+ assert_style_for_prop(style, prop, value);
+ }, `${prop}: ${value}`);
+ }
+
+ const invalidValues = ["bogus-button",
+ "attachment",
+ "borderless-attachment",
+ "button-arrow-down",
+ "button-arrow-next",
+ "button-arrow-previous",
+ "button-arrow-up",
+ "button-focus",
+ "caps-lock-indicator",
+ "checkbox-container",
+ "checkbox-label",
+ "checkmenuitem",
+ "color-well",
+ "continuous-capacity-level-indicator",
+ "default-button",
+ "discrete-capacity-level-indicator",
+ "dualbutton",
+ "groupbox",
+ "inner-spin-button",
+ "image-controls-button",
+ "list-button",
+ "listitem",
+ "media-enter-fullscreen-button",
+ "media-exit-fullscreen-button",
+ "media-fullscreen-volume-slider",
+ "media-fullscreen-volume-slider-thumb",
+ "media-mute-button",
+ "media-play-button",
+ "media-overlay-play-button",
+ "media-return-to-realtime-button",
+ "media-rewind-button",
+ "media-seek-back-button",
+ "media-seek-forward-button",
+ "media-toggle-closed-captions-button",
+ "media-slider",
+ "media-sliderthumb",
+ "media-volume-slider-container",
+ "media-volume-slider-mute-button",
+ "media-volume-slider",
+ "media-volume-sliderthumb",
+ "media-controls-background",
+ "media-controls-dark-bar-background",
+ "media-controls-fullscreen-background",
+ "media-controls-light-bar-background",
+ "media-current-time-display",
+ "media-time-remaining-display",
+ "menuarrow",
+ "menubar",
+ "menucheckbox",
+ "menuimage",
+ "menuitem",
+ "menuitemtext",
+ "menupopup",
+ "menuradio",
+ "menuseparator",
+ "meterbar",
+ "meterchunk",
+ "number-input",
+ "progress-bar-value",
+ "progressbar",
+ "progressbar-vertical",
+ "progresschunk",
+ "progresschunk-vertical",
+ "radio-container",
+ "radio-label",
+ "radiomenuitem",
+ "range",
+ "range-thumb",
+ "rating-level-indicator",
+ "resizer",
+ "resizerpanel",
+ "scale-horizontal",
+ "scalethumbend",
+ "scalethumb-horizontal",
+ "scalethumbstart",
+ "scalethumbtick",
+ "scalethumb-vertical",
+ "scale-vertical",
+ "scrollbarbutton-down",
+ "scrollbarbutton-left",
+ "scrollbarbutton-right",
+ "scrollbarbutton-up",
+ "scrollbarthumb-horizontal",
+ "scrollbarthumb-vertical",
+ "scrollbartrack-horizontal",
+ "scrollbartrack-vertical",
+ "searchfield-decoration",
+ "searchfield-results-decoration",
+ "searchfield-results-button",
+ "searchfield-cancel-button",
+ "snapshotted-plugin-overlay",
+ "separator",
+ "sheet",
+ "slider-vertical",
+ "sliderthumb-horizontal",
+ "sliderthumb-vertical",
+ "spinner",
+ "spinner-downbutton",
+ "spinner-textfield",
+ "spinner-upbutton",
+ "splitter",
+ "statusbar",
+ "statusbarpanel",
+ "tab",
+ "tabpanel",
+ "tabpanels",
+ "tab-scroll-arrow-back",
+ "tab-scroll-arrow-forward ",
+ "textfield-multiline",
+ "toolbar",
+ "toolbarbutton",
+ "toolbarbutton-dropdown",
+ "toolbargripper",
+ "toolbox",
+ "tooltip",
+ "treeheader",
+ "treeheadercell",
+ "treeheadersortarrow",
+ "treeitem",
+ "treeline",
+ "treetwisty",
+ "treetwistyopen",
+ "treeview",
+ "relevancy-level-indicator",
+ "-moz-win-borderless-glass",
+ "-moz-win-browsertabbar-toolbox",
+ "-moz-win-communicationstext",
+ "-moz-win-communications-toolbox",
+ "-moz-win-exclude-glass",
+ "-moz-win-glass",
+ "-moz-win-media-toolbox",
+ "-moz-window-button-box",
+ "-moz-window-button-box-maximized",
+ "-moz-window-button-close",
+ "-moz-window-button-maximize",
+ "-moz-window-button-minimize",
+ "-moz-window-button-restore",
+ "-moz-window-frame-bottom",
+ "-moz-window-frame-left",
+ "-moz-window-frame-right",
+ "-moz-window-titlebar",
+ "-moz-window-titlebar-maximized",
+ "-apple-pay-button",
+ ];
+ for (const invalidValue of invalidValues) {
+ test(() => {
+ button.removeAttribute('style');
+ button.style.setProperty(prop, invalidValue);
+ assert_style_for_prop(button.style, prop, "");
+ const style = getComputedStyle(button);
+ assert_style_for_prop(style, prop, "button");
+ }, `${prop}: ${invalidValue} (invalid)`);
+ }
+ }
+
+ for (const prefix of ["-ms-",
+ "mso-",
+ "-moz-",
+ "-o-",
+ "-xv-",
+ "-atsc-",
+ "-wap-",
+ "-khtml-",
+ "-konq-",
+ "-apple-",
+ "prince-",
+ "-ah-",
+ "-hp-",
+ "-ro-",
+ "-rim-",
+ "-tc-",
+ ]) {
+ const prop = `${prefix}appearance`;
+ test(() => {
+ button.removeAttribute('style');
+ button.style.setProperty(prop, 'none');
+ assert_equals(button.style.getPropertyValue(prop), '');
+ const style = getComputedStyle(button);
+ assert_equals(style.getPropertyValue(prop), '');
+ }, `${prop} (should not be supported)`);
+ }
+</script>
diff --git a/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html b/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
index ec8a4ff1ed0..2978226f3cc 100644
--- a/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
@@ -8,6 +8,13 @@
<script>
const applePay = Object.freeze({
supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
const defaultMethods = Object.freeze([basicCard, applePay]);
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 fd66493bf4f..e8df7b35a94 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
@@ -6,8 +6,18 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
label: "Total",
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
index cd928d4be1d..28dfe1e448b 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html
@@ -9,8 +9,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
label: "label",
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
index 40ba3057e0c..fbf97d855ab 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html
@@ -8,9 +8,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
setup({ explicit_done: true, explicit_timeout: true });
-
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = [validMethod];
+const validMethods = [validMethod, applePay];
const validAmount = Object.freeze({
currency: "USD",
value: "5.00",
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
index 3d1bfb41b84..c1ed1b5f685 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html
@@ -14,6 +14,15 @@ setup({
const methods = [{
supportedMethods: "basic-card",
+}, {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
}];
const options = {
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
index 0ff7f23b647..cf0bb289d73 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html
@@ -18,8 +18,19 @@ const validMethodBasicCard = Object.freeze({
supportedMethods: "basic-card",
});
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
+
// Methods
-const validMethods = Object.freeze([validMethodBasicCard, validMethod]);
+const validMethods = Object.freeze([validMethodBasicCard, validMethod, applePay]);
// Amounts
const validAmount = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
index 4d4ef73949d..c5737aa8c31 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html
@@ -6,8 +6,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
label: "label",
diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
index adacdf3f06d..17a4741cdf9 100644
--- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
@@ -6,8 +6,18 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
label: "Total",
diff --git a/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html b/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html
index 5494353c6bc..67446496125 100644
--- a/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html
@@ -15,6 +15,16 @@ const methods = [
{
supportedMethods: "basic-card",
},
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ },
+ }
];
const shippingOptions = {
shippingOptions: [
diff --git a/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html b/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html
index cb9acf6eb6a..ccfeb6fd364 100644
--- a/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html
@@ -10,7 +10,16 @@
const methods = [
{ supportedMethods: "basic-card" },
- { supportedMethods: "https://apple.com/apple-pay" },
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ },
+ },
];
const details = {
diff --git a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html
index a33365bac73..438001804ac 100644
--- a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html
@@ -9,7 +9,17 @@
<script>
setup({ explicit_done: true, explicit_timeout: true });
const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const applePayMethod = {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ },
+};
+const validMethods = Object.freeze([validMethod, applePayMethod]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
label: "label",
diff --git a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html
index f08491150ac..4ad31d65317 100644
--- a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html
@@ -8,7 +8,16 @@
setup({ explicit_done: true, explicit_timeout: true });
const validMethods = Object.freeze([
{ supportedMethods: "basic-card" },
- { supportedMethods: "https://apple.com/apple-pay" },
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ },
+ },
]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html
index c0ed23167ed..d31ac2dd72a 100644
--- a/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html
@@ -7,7 +7,16 @@
<script>
"use strict";
const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ },
+});
const defaultMethods = Object.freeze([testMethod, applePay]);
const defaultDetails = Object.freeze({
total: {
diff --git a/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html
index 0484eb868f9..f641bec4aa9 100644
--- a/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html
@@ -7,7 +7,16 @@
<script>
"use strict";
const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const defaultMethods = Object.freeze([testMethod, applePay]);
const defaultDetails = Object.freeze({
total: {
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 8e561b288d1..75e39a011c3 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
@@ -17,6 +17,13 @@ setup({
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
const applePay = Object.freeze({
supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
});
const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html
index b0582d520d3..e221034dd4e 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html
@@ -8,7 +8,16 @@
<script src="/resources/testdriver.js"></script>
<script>
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html
index f38caa00b93..672e5ce1571 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html
@@ -10,6 +10,13 @@
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
const applePay = Object.freeze({
supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
});
const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
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 1325681a4ac..9763615bdd1 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
@@ -28,6 +28,17 @@
"use strict";
const ABUSIVE_AMOUNT = 100000;
+const applePay = {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+};
+
const basicCard = Object.freeze({
supportedMethods: "basic-card",
});
@@ -42,7 +53,7 @@ const evilAmount = Object.freeze({
value: "1".repeat(ABUSIVE_AMOUNT),
});
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultTotal = Object.freeze({
label: "label",
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
index 5c54d48568a..5b2538992f7 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html
@@ -7,8 +7,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
"use strict";
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
label: "Total",
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
index a4d8fbc4825..43ea5dcce87 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html
@@ -7,8 +7,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
"use strict";
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
label: "Total",
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html
index b1ed0d02886..11f75b1c862 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html
@@ -8,8 +8,18 @@
<script>
"use strict";
const paymentShipingTypes = Object.freeze(["delivery", "pickup", "shipping"]);
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
-const defaultMethods = Object.freeze([basicCard]);
+const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
total: {
label: "",
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html
index c6e69d4c587..3d362596c41 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html
@@ -10,7 +10,16 @@
"use strict";
const defaultMethods = Object.freeze([
{ supportedMethods: "basic-card" },
- { supportedMethods: "https://apple.com/apple-pay" },
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+ },
]);
const defaultDetails = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js b/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js
index 807f794e71e..3e4f5cfd36f 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js
+++ b/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js
@@ -1,10 +1,21 @@
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
+
const validMethod = Object.freeze({
supportedMethods: "basic-card",
});
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({
currency: "USD",
diff --git a/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
index 60dd9655dd5..516573c581a 100644
--- a/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html
@@ -11,7 +11,17 @@ setup({ explicit_done: true, explicit_timeout: true });
const validMethod = Object.freeze({
supportedMethods: "basic-card",
});
-const validMethods = Object.freeze([validMethod]);
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({
currency: "USD",
value: "5.00",
diff --git a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
index f585e836f8d..06c1f7383a0 100644
--- a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
@@ -9,10 +9,20 @@
<link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentrequest-show()">
<body>
<script>
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({
supportedMethods: "basic-card",
});
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({
currency: "USD",
value: "5.00",
diff --git a/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html b/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html
index 07b530657c3..711ba274360 100644
--- a/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html
@@ -8,8 +8,18 @@
<script src="/resources/testharnessreport.js"></script>
<script>
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({ supportedMethods: "basic-card" });
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({ currency: "USD", value: "5.00" });
const validTotal = Object.freeze({
label: "label",
diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html
index 5c1028eec66..172413ff598 100644
--- a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html
@@ -24,6 +24,13 @@
const validMethodApplePay = Object.freeze({
supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
});
// Methods
diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html
index 70c97faaf7a..d41b1b39c98 100644
--- a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html
@@ -23,6 +23,13 @@ const validMethods = Object.freeze([
},
{
supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
},
]);
diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html
index 12a1e0cef82..b50f18ecce3 100644
--- a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html
+++ b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html
@@ -3,7 +3,16 @@
"use strict";
const defaultMethods = Object.freeze([
{ supportedMethods: "basic-card" },
- { supportedMethods: "https://apple.com/apple-pay" },
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+ },
]);
const defaultDetails = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html
index e4ab550e418..05fce4f248e 100644
--- a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html
@@ -14,7 +14,16 @@ setup({
const defaultMethods = Object.freeze([
{ supportedMethods: "basic-card" },
- { supportedMethods: "https://apple.com/apple-pay" },
+ {
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+ },
]);
const defaultDetails = Object.freeze({
diff --git a/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html b/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html
index 06852bf8c47..8bab88212ba 100644
--- a/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html
@@ -8,11 +8,21 @@
<script>
"use strict";
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({
supportedMethods: "https://:@wpt.fyi:443/payment-request",
});
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validAmount = Object.freeze({
currency: "USD",
diff --git a/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html b/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html
index 0ba0405c52f..007fb681ceb 100644
--- a/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html
@@ -17,10 +17,20 @@ const validTotal = Object.freeze({
label: "Total due",
amount: validAmount,
});
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const validMethod = Object.freeze({
supportedMethods: "basic-card",
});
-const validMethods = Object.freeze([validMethod]);
+const validMethods = Object.freeze([validMethod, applePay]);
const validDetails = Object.freeze({
total: validTotal,
});
diff --git a/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html b/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html
index abaf6cb4e85..3d7b8a08ebb 100644
--- a/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html
@@ -8,13 +8,23 @@
<script src="/resources/testharnessreport.js"></script>
<script>
setup({ explicit_done: true, explicit_timeout: true });
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+ data: {
+ version: 3,
+ merchantIdentifier: "merchant.com.example",
+ countryCode: "US",
+ merchantCapabilities: ["supports3DS"],
+ supportedNetworks: ["visa"],
+ }
+});
const basicCardMethod = Object.freeze({
supportedMethods: "basic-card",
});
const validMethod = Object.freeze({
supportedMethods: "this-is-just-for-testings-will-never-match",
});
-const methods = Object.freeze([basicCardMethod, validMethod]);
+const methods = Object.freeze([basicCardMethod, validMethod, applePay]);
const validAmount = Object.freeze({
currency: "USD",
value: "5.00",
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh
index b351a4296de..7c953940cb3 100755
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh
@@ -3,10 +3,12 @@ sxg_version=1b3
certfile=127.0.0.1.sxg.pem
keyfile=127.0.0.1.sxg.key
inner_url_origin=https://127.0.0.1:8444
-# TODO: Stop hard-coding "web-platform.test" in certUrl when generating
-# Signed Exchanges on the fly.
-cert_url_origin=https://web-platform.test:8444
-sxg_content_type='content-type: application/signed-exchange;v=b2'
+# TODO: Stop hard-coding "web-platform.test" when generating Signed Exchanges on
+# the fly.
+wpt_test_origin=https://web-platform.test:8444
+wpt_test_remote_origin=https://www1.web-platform.test:8444
+cert_url_origin=$wpt_test_origin
+sxg_content_type='content-type: application/signed-exchange;v=b3'
set -e
@@ -38,6 +40,89 @@ gen-signedexchange \
-o sxg/sxg-location.sxg \
-miRecordSize 100
+# A signed exchange of unsupported version.
+gen-signedexchange \
+ -version 1b2 \
+ -uri $inner_url_origin/signed-exchange/resources/inner-url.html \
+ -status 200 \
+ -content sxg-location.html \
+ -certificate $certfile \
+ -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
+ -validityUrl $inner_url_origin/signed-exchange/resources/resource.validity.msg \
+ -privateKey $keyfile \
+ -date 2018-04-01T00:00:00Z \
+ -expire 168h \
+ -o sxg-version1b2.sxg \
+ -miRecordSize 100
+
+# A valid Signed Exchange for testing referrer which logical origin is the wpt
+# test origin.
+gen-signedexchange \
+ -version $sxg_version \
+ -uri $wpt_test_origin/signed-exchange/resources/inner-url.html \
+ -status 200 \
+ -content sxg-location.html \
+ -certificate $certfile \
+ -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
+ -validityUrl $wpt_test_origin/resource.validity.msg \
+ -privateKey $keyfile \
+ -date 2018-04-01T00:00:00Z \
+ -expire 168h \
+ -o sxg/sxg-referrer-same-origin.sxg \
+ -miRecordSize 100
+
+# A valid Signed Exchange for testing referrer which logical origin is the wpt
+# test remote origin.
+gen-signedexchange \
+ -version $sxg_version \
+ -uri $wpt_test_remote_origin/signed-exchange/resources/inner-url.html \
+ -status 200 \
+ -content sxg-location.html \
+ -certificate $certfile \
+ -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
+ -validityUrl $wpt_test_remote_origin/resource.validity.msg \
+ -privateKey $keyfile \
+ -date 2018-04-01T00:00:00Z \
+ -expire 168h \
+ -o sxg/sxg-referrer-remote-origin.sxg \
+ -miRecordSize 100
+
+# A invalid Signed Exchange for testing referrer which logical origin is the wpt
+# test origin. Response has Cache-Control: no-store header.
+gen-signedexchange \
+ -version $sxg_version \
+ -uri $wpt_test_origin/signed-exchange/resources/inner-url.html \
+ -status 200 \
+ -responseHeader "Cache-Control: no-store" \
+ -content sxg-location.html \
+ -certificate $certfile \
+ -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
+ -validityUrl $wpt_test_origin/resource.validity.msg \
+ -privateKey $keyfile \
+ -date 2018-04-01T00:00:00Z \
+ -expire 168h \
+ -o sxg/invalid-sxg-referrer-same-origin.sxg \
+ -miRecordSize 100 \
+ -ignoreErrors true
+
+# A invalid Signed Exchange for testing referrer which logical origin is the wpt
+# test remote origin. Response has Cache-Control: no-store header.
+gen-signedexchange \
+ -version $sxg_version \
+ -uri $wpt_test_remote_origin/signed-exchange/resources/inner-url.html \
+ -status 200 \
+ -responseHeader "Cache-Control: no-store" \
+ -content sxg-location.html \
+ -certificate $certfile \
+ -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
+ -validityUrl $wpt_test_remote_origin/resource.validity.msg \
+ -privateKey $keyfile \
+ -date 2018-04-01T00:00:00Z \
+ -expire 168h \
+ -o sxg/invalid-sxg-referrer-remote-origin.sxg \
+ -miRecordSize 100 \
+ -ignoreErrors true
+
# For check-cert-request.tentative.html
gen-signedexchange \
-version $sxg_version \
@@ -66,7 +151,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/sxg-invalid-validity-url.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# certUrl is 404 and fallback URL is another signed exchange.
gen-signedexchange \
@@ -81,7 +167,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/fallback-to-another-sxg.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Nested signed exchange.
gen-signedexchange \
@@ -97,7 +184,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/nested-sxg.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Fallback URL has non-ASCII UTF-8 characters.
gen-signedexchange \
@@ -113,7 +201,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/sxg-utf8-inner-url.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Fallback URL has invalid UTF-8 sequence.
gen-signedexchange \
@@ -129,7 +218,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/sxg-invalid-utf8-inner-url.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Fallback URL has UTF-8 BOM.
gen-signedexchange \
@@ -145,7 +235,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/sxg-inner-url-bom.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Response has Cache-Control: no-store header.
gen-signedexchange \
@@ -161,7 +252,8 @@ gen-signedexchange \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o sxg/sxg-noncacheable.sxg \
- -miRecordSize 100
+ -miRecordSize 100 \
+ -ignoreErrors true
# Response has a strict-transport-security header.
gen-signedexchange \
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html b/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html
index 628a18afa3f..5b247bbfe99 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html
@@ -2,6 +2,9 @@
<title>Content of fallback URL</title>
<script>
window.addEventListener('message', (event) => {
- event.data.port.postMessage({location: document.location.href, is_fallback: true});
+ event.data.port.postMessage({
+ location: document.location.href,
+ referrer: document.referrer,
+ is_fallback: true});
}, false);
</script>
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html
index 39a475ebd07..b3ebd2bde7a 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html
@@ -2,6 +2,9 @@
<title>Content of SignedHTTPExchange</title>
<script>
window.addEventListener('message', (event) => {
- event.data.port.postMessage({location: document.location.href, is_fallback: false});
+ event.data.port.postMessage({
+ location: document.location.href,
+ referrer: document.referrer,
+ is_fallback: false});
}, false);
</script>
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js
index b31bf98c9b1..0d0e263fd62 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js
@@ -1,12 +1,12 @@
// Opens |url| in an iframe, establish a message channel with it, and waits for
// a message from the frame content. Returns a promise that resolves with the
// data of the message, or rejects on 2000ms timeout.
-function openSXGInIframeAndWaitForMessage(test_object, url) {
+function openSXGInIframeAndWaitForMessage(test_object, url, referrerPolicy) {
return new Promise(async (resolve, reject) => {
// We can't catch the network error on iframe. So we use the timer.
test_object.step_timeout(() => reject('timeout'), 2000);
- const frame = await withIframe(url, 'sxg_iframe');
+ const frame = await withIframe(url, 'sxg_iframe', referrerPolicy);
const channel = new MessageChannel();
channel.port1.onmessage = (event) => resolve(event.data);
frame.contentWindow.postMessage(
@@ -14,11 +14,14 @@ function openSXGInIframeAndWaitForMessage(test_object, url) {
});
}
-function withIframe(url, name) {
+function withIframe(url, name, referrerPolicy) {
return new Promise((resolve, reject) => {
const frame = document.createElement('iframe');
frame.src = url;
frame.name = name;
+ if (referrerPolicy !== undefined) {
+ frame.referrerPolicy = referrerPolicy;
+ }
frame.onload = () => resolve(frame);
frame.onerror = () => reject('failed to load ' + url);
document.body.appendChild(frame);
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg
new file mode 100644
index 00000000000..092eb9d38ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers
new file mode 100644
index 00000000000..ca41178420c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers
@@ -0,0 +1,2 @@
+Content-Type: application/signed-exchange;v=b2
+X-Content-Type-Options: nosniff
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg
index d412f463822..8129b5479c3 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg
index 784b44abde9..b5dcb6b86de 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg
new file mode 100644
index 00000000000..db08ad072ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg
new file mode 100644
index 00000000000..5057e9ddf43
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg
index c4eaf771c21..6d8538882d2 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg
index 68650b8c368..8f57c63dfab 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg
index 88e617d5fbb..0093eb1d37d 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg
index d045d5b8829..65357e14ac6 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg
index 628f6ccf283..62e88d63864 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg
index 3540bfea63c..1678b751bcb 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg
index 38aa45980ca..88439982f60 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg
new file mode 100644
index 00000000000..00aa755efc3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg
new file mode 100644
index 00000000000..cc7793efa28
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg
index 914a8458b0a..3edf285f1bd 100644
--- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg
+++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html
new file mode 100644
index 00000000000..3be9b1ff9b4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html>
+<title>Referrer of SignedHTTPExchange</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="./resources/sxg-util.js"></script>
+<body>
+<script>
+(() => {
+ const SAME_ORIGIN = get_host_info().HTTPS_ORIGIN;
+ const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
+ const SAME_ORIGIN_SXG = 'sxg-referrer-same-origin.sxg';
+ const REMOTE_ORIGIN_SXG = 'sxg-referrer-remote-origin.sxg';
+ const TEST_CASES = [
+ // Physical origin = same origin. Logical origin = same origin.
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer',
+ expectedReferrer: ''
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer-when-downgrade',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'same-origin',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin-when-cross-origin',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'unsafe-url',
+ expectedReferrer: document.location.href
+ },
+
+ // Physical origin = same origin. Logical origin = remote origin.
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer',
+ expectedReferrer: ''
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer-when-downgrade',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'same-origin',
+ expectedReferrer: ''
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin-when-cross-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'unsafe-url',
+ expectedReferrer: document.location.href
+ },
+
+ // Physical origin = remote origin. Logical origin = same origin.
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer',
+ expectedReferrer: ''
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer-when-downgrade',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'same-origin',
+ expectedReferrer: ''
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin-when-cross-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: SAME_ORIGIN_SXG,
+ referrerPolicy: 'unsafe-url',
+ expectedReferrer: document.location.href
+ },
+
+ // Physical origin = remote origin. Logical origin = remote origin.
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer',
+ expectedReferrer: ''
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'no-referrer-when-downgrade',
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'same-origin',
+ expectedReferrer: ''
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'strict-origin-when-cross-origin',
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: REMOTE_ORIGIN,
+ sxg: REMOTE_ORIGIN_SXG,
+ referrerPolicy: 'unsafe-url',
+ expectedReferrer: document.location.href
+ },
+
+ // Referrer-Policy header in outer SXG response.
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,no-referrer)',
+ referrerPolicy: undefined,
+ expectedReferrer: ''
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG +
+ '?pipe=header(Referrer-Policy,no-referrer-when-downgrade)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,origin)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,same-origin)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,strict-origin)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.origin + '/'
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG +
+ '?pipe=header(Referrer-Policy,strict-origin-when-cross-origin)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ {
+ origin: SAME_ORIGIN,
+ sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,unsafe-url)',
+ referrerPolicy: undefined,
+ expectedReferrer: document.location.href
+ },
+ ];
+ for (const i in TEST_CASES) {
+ const test_case = TEST_CASES[i];
+ promise_test(async (t) => {
+ const sxgUrl = test_case.origin + '/signed-exchange/resources/sxg/' +
+ test_case.sxg;
+ const message =
+ await openSXGInIframeAndWaitForMessage(
+ t, sxgUrl, test_case.referrerPolicy);
+ assert_false(message.is_fallback);
+ assert_equals(message.referrer, test_case.expectedReferrer);
+
+ const invalidSxgUrl =
+ test_case.origin + '/signed-exchange/resources/sxg/invalid-' +
+ test_case.sxg;
+ const fallbackMessage =
+ await openSXGInIframeAndWaitForMessage(
+ t, invalidSxgUrl, test_case.referrerPolicy);
+ assert_true(fallbackMessage.is_fallback);
+ assert_equals(fallbackMessage.referrer, test_case.expectedReferrer);
+ }, 'Referrer of SignedHTTPExchange test : ' + JSON.stringify(test_case));
+ }
+})();
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html
new file mode 100644
index 00000000000..43b340dbb79
--- /dev/null
+++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>Loading SignedHTTPExchange of unsupported version must fail</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="./resources/sxg-util.js"></script>
+<body>
+<p>Note: This test FAILs if your browser supports Signed Exchange version 1b2.</p>
+<script>
+promise_test(async (t) => {
+ const sxgUrl = get_host_info().HTTPS_ORIGIN +
+ '/signed-exchange/resources/sxg-version1b2.sxg';
+ const message = await openSXGInIframeAndWaitForMessage(t, sxgUrl);
+ const innerURL = innerURLOrigin() +
+ '/signed-exchange/resources/inner-url.html';
+ assert_equals(message.location, innerURL);
+ assert_true(message.is_fallback);
+}, 'Loading SignedHTTPExchange of unsupported version must fail and fallback redirect.');
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js b/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js
deleted file mode 100644
index 3317cd02eb9..00000000000
--- a/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js
+++ /dev/null
@@ -1,110 +0,0 @@
-// META: title=Web Locks API: navigator.locks.query ordering
-// META: script=resources/helpers.js
-// META: global=window,dedicatedworker,sharedworker,serviceworker
-
-'use strict';
-
-// Grab a lock and hold until a release function is called. Resolves
-// to a release function.
-function getLockAndHoldUntilReleased(name, options) {
- let release;
- const promise = new Promise(resolve => { release = resolve; });
- return new Promise(resolve => {
- navigator.locks.request(name, options || {}, lock => {
- resolve(release);
- return promise;
- }).catch(_ => {});
- });
-}
-
-promise_test(async t => {
- const res1 = uniqueName(t);
- const res2 = uniqueName(t);
- const res3 = uniqueName(t);
-
- // These will never be released.
- await Promise.all([
- getLockAndHoldUntilReleased(res1),
- getLockAndHoldUntilReleased(res2),
- getLockAndHoldUntilReleased(res3)
- ]);
-
- // These requests should be blocked.
- navigator.locks.request(res3, {mode: 'shared'}, lock => {});
- navigator.locks.request(res2, {mode: 'shared'}, lock => {});
- navigator.locks.request(res1, {mode: 'shared'}, lock => {});
-
- const state = await navigator.locks.query();
-
- const relevant_pending_names = state.pending.map(lock => lock.name)
- .filter(name => [res1, res2, res3].includes(name));
-
- assert_array_equals(relevant_pending_names, [res3, res2, res1],
- 'Pending locks should appear in order.');
-}, 'Requests appear in state in order made');
-
-promise_test(async t => {
- const res1 = uniqueName(t);
- const res2 = uniqueName(t);
- const res3 = uniqueName(t);
-
- // These should be granted, and will be held until released.
- const [release1, release2, release3] = await Promise.all([
- getLockAndHoldUntilReleased(res1),
- getLockAndHoldUntilReleased(res2),
- getLockAndHoldUntilReleased(res3)
- ]);
-
- // These requests should be blocked.
- const requests = [
- getLockAndHoldUntilReleased(res1),
- getLockAndHoldUntilReleased(res2),
- getLockAndHoldUntilReleased(res3)
- ];
-
- // Ensure the requests have had a chance to get queued by
- // waiting for something else to make it through the queue.
- await navigator.locks.request(uniqueName(t), lock => {});
-
- // Now release the previous holders.
- release2();
- release3();
- release1();
-
- // Wait until the subsequent requests make it through.
- await Promise.all(requests);
-
- const state = await navigator.locks.query();
- const relevant_held_names = state.held.map(lock => lock.name)
- .filter(name => [res1, res2, res3].includes(name));
-
- assert_array_equals(relevant_held_names, [res2, res3, res1],
- 'Held locks should appear in granted order.');
-}, 'Held locks appear in state in order granted');
-
-promise_test(async t => {
- const res1 = uniqueName(t);
- const res2 = uniqueName(t);
- const res3 = uniqueName(t);
-
- // These should be granted, and will be held until stolen.
- await Promise.all([
- getLockAndHoldUntilReleased(res1),
- getLockAndHoldUntilReleased(res2),
- getLockAndHoldUntilReleased(res3)
- ]);
-
- // Steal in a different order.
- await Promise.all([
- getLockAndHoldUntilReleased(res3, {steal: true}),
- getLockAndHoldUntilReleased(res1, {steal: true}),
- getLockAndHoldUntilReleased(res2, {steal: true})
- ]);
-
- const state = await navigator.locks.query();
- const relevant_held_names = state.held.map(lock => lock.name)
- .filter(name => [res1, res2, res3].includes(name));
-
- assert_array_equals(relevant_held_names, [res3, res1, res2],
- 'Held locks should appear in granted order.');
-}, 'Held locks appear in state in order granted, including when stolen');
diff --git a/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html b/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html
new file mode 100644
index 00000000000..bbbee3880b7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Web Locks API: navigator.locks.query ordering</title>
+<link rel=help href="https://wicg.github.io/web-locks/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/helpers.js"></script>
+<style>iframe { display: none; }</style>
+<script>
+'use strict';
+
+// Grab a lock and hold until a release function is called. Resolves
+// to a release function.
+function getLockAndHoldUntilReleased(name, options) {
+ let release;
+ const promise = new Promise(resolve => { release = resolve; });
+ return new Promise(resolve => {
+ navigator.locks.request(name, options || {}, lock => {
+ resolve(release);
+ return promise;
+ }).catch(_ => {});
+ });
+}
+
+// Returns a promise resolved by the next message event.
+function nextMessage() {
+ return new Promise(resolve => {
+ window.addEventListener('message', event => {
+ resolve(event.data);
+ }, {once: true});
+ });
+}
+
+// Tests the ordering constraints on the requested lock state returned by
+// navigator.locks.query(). Three separate iframes are instantiated to make
+// lock requests on the same resource, first in one order and then in another,
+// different order. For each set of requests, it is verified that the requests
+// appear in the result of navigator.locks.query() in the same order in which
+// they were made.
+//
+// It is necessary to use separate iframes here so that the lock requests have
+// distinguishable client_ids (otherwise it would not be possible to
+// distinguish the requests and thus impossible to verify ordering).
+promise_test(async testCase => {
+ const resourceName = uniqueName(testCase);
+
+ // Set up clients.
+ const frame1 = await iframe('resources/iframe.html');
+ const frame2 = await iframe('resources/iframe.html');
+ const frame3 = await iframe('resources/iframe.html');
+ testCase.add_cleanup(() => { frame1.remove(); });
+ testCase.add_cleanup(() => { frame2.remove(); });
+ testCase.add_cleanup(() => { frame3.remove(); });
+
+ // Collect the client ids.
+ const clientId1 =
+ (await postToFrameAndWait(frame1, {op: 'client_id',
+ name: resourceName})).client_id;
+ const clientId2 =
+ (await postToFrameAndWait(frame2, {op: 'client_id',
+ name: resourceName})).client_id;
+ const clientId3 =
+ (await postToFrameAndWait(frame3, {op: 'client_id',
+ name: resourceName})).client_id;
+
+ // Preemptively take the lock.
+ const firstRequestGroupReleaseFunction =
+ await getLockAndHoldUntilReleased(resourceName);
+
+ // Queue the first group of lock requests from the different clients. These
+ // will be blocked until firstRequestGroupReleaseFunction() is called.
+ let lockId1;
+ let lockId2;
+ const lockPromise1 =
+ postToFrameAndWait(frame1, {op: 'request', name: resourceName})
+ .then(val => {lockId1 = val.lock_id;});
+ const lockPromise2 =
+ postToFrameAndWait(frame2, {op: 'request', name: resourceName})
+ .then(val => {lockId2 = val.lock_id;});
+
+ // This third request will later be granted and held in order to block a
+ // second group of requests to test a different client ordering. It is not
+ // meant to be released.
+ postToFrameAndWait(frame3, {op: 'request', name: resourceName});
+
+ // Request and wait for the release of a separate lock to ensure all previous
+ // requests are processed.
+ const checkpointName = uniqueName(testCase, 'checkpoint');
+ const checkpointId = (await postToFrameAndWait(
+ frame3,
+ {op: 'request', name: checkpointName})).lock_id;
+ await postToFrameAndWait(frame3, {op: 'release', lock_id: checkpointId});
+
+ // Query the state and test the ordering of requested locks.
+ const state = await navigator.locks.query();
+ const relevant_pending_ids = state.pending
+ .filter(lock => [clientId1, clientId2, clientId3].includes(lock.clientId))
+ .map(lock => lock.clientId);
+ assert_array_equals(
+ [clientId1, clientId2, clientId3],
+ relevant_pending_ids,
+ 'Querying the state should return requested locks in the order they were '
+ + 'requested.');
+
+ // Add the second group of requests from the clients in a new order.
+ postToFrameAndWait(frame3, {op: 'request', name: resourceName});
+ postToFrameAndWait(frame1, {op: 'request', name: resourceName});
+ postToFrameAndWait(frame2, {op: 'request', name: resourceName});
+
+ // Release locks such that only the newly added locks are requested. This
+ // acts like a checkpoint for the newly queued requests.
+ firstRequestGroupReleaseFunction();
+ await lockPromise1;
+ await postToFrameAndWait(frame1, {op: 'release', lock_id: lockId1});
+ await lockPromise2;
+ await postToFrameAndWait(frame2, {op: 'release', lock_id: lockId2});
+
+ // Query the state and test the new ordering.
+ const state2 = await navigator.locks.query();
+ const relevant_pending_ids2 = state2.pending
+ .filter(lock => [clientId1, clientId2, clientId3].includes(lock.clientId))
+ .map(lock => lock.clientId);
+ assert_array_equals(
+ [clientId3, clientId1, clientId2],
+ relevant_pending_ids2,
+ 'Querying the state should return requested locks in the order they were '
+ + 'requested.');
+
+}, 'Requests appear in state in order made.');
+</script>
diff --git a/tests/wpt/web-platform-tests/web-locks/resources/helpers.js b/tests/wpt/web-platform-tests/web-locks/resources/helpers.js
index d6a4af45fa7..9723ff4f1d8 100644
--- a/tests/wpt/web-platform-tests/web-locks/resources/helpers.js
+++ b/tests/wpt/web-platform-tests/web-locks/resources/helpers.js
@@ -5,8 +5,8 @@
// test case name. This is useful to avoid lock interference between
// test cases.
let res_num = 0;
- self.uniqueName = testCase => {
- return `${self.location.pathname}-${testCase.name}-${++res_num}`;
+ self.uniqueName = (testCase, prefix) => {
+ return `${self.location.pathname}-${prefix}-${testCase.name}-${++res_num}`;
};
// Inject an iframe showing the given url into the page, and resolve
diff --git a/tests/wpt/web-platform-tests/web-locks/resources/iframe.html b/tests/wpt/web-platform-tests/web-locks/resources/iframe.html
index d3799f44f96..ba63c77bae5 100644
--- a/tests/wpt/web-platform-tests/web-locks/resources/iframe.html
+++ b/tests/wpt/web-platform-tests/web-locks/resources/iframe.html
@@ -38,6 +38,15 @@ self.addEventListener('message', e => {
held.delete(e.data.lock_id);
respond({ack: 'release', lock_id: e.data.lock_id});
break;
+
+ case 'client_id':
+ navigator.locks.request(e.data.name, async lock => {
+ const lock_state = await navigator.locks.query();
+ const held_lock =
+ lock_state.held.filter(l => l.name === lock.name)[0];
+ respond({ack: 'client_id', client_id: held_lock.clientId});
+ });
+ break;
}
});
</script>
diff --git a/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js b/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js
index 5b8acbbbebc..e0b6e4eabd6 100644
--- a/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js
+++ b/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js
@@ -50,8 +50,10 @@ promise_test(async t => {
// Verify the request is enqueued:
const state = await navigator.locks.query();
- assert_equals(state.held.filter(lock => lock.name === res).length, 1);
- assert_equals(state.pending.filter(lock => lock.name === res).length, 1);
+ assert_equals(state.held.filter(lock => lock.name === res).length, 1,
+ 'Number of held locks');
+ assert_equals(state.pending.filter(lock => lock.name === res).length, 1,
+ 'Number of pending locks');
const rejected = promise_rejects(
t, 'AbortError', promise, 'Request should reject with AbortError');
@@ -76,8 +78,10 @@ promise_test(async t => {
// Verify the request is enqueued:
const state = await navigator.locks.query();
- assert_equals(state.held.filter(lock => lock.name === res).length, 1);
- assert_equals(state.pending.filter(lock => lock.name === res).length, 1);
+ assert_equals(state.held.filter(lock => lock.name === res).length, 1,
+ 'Number of held locks');
+ assert_equals(state.pending.filter(lock => lock.name === res).length, 1,
+ 'Number of pending locks');
const rejected = promise_rejects(
t, 'AbortError', promise, 'Request should reject with AbortError');