Update web-platform-tests to revision 093a97b6ecc6484c201d704d38b47bef1964d59d
|
@ -138745,6 +138745,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-span-001.html": [
|
||||||
|
[
|
||||||
|
"/css/css-text/overflow-wrap/overflow-wrap-break-word-span-001.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-text/overflow-wrap/reference/overflow-wrap-break-word-span-001-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
|
"css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
|
||||||
[
|
[
|
||||||
"/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html",
|
"/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html",
|
||||||
|
@ -173018,7 +173030,7 @@
|
||||||
"/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-002.html",
|
"/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-002.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-001-ref.html",
|
"/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-002-ref.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -268536,6 +268548,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-text/overflow-wrap/reference/overflow-wrap-break-word-span-001-ref.html": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
|
"css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
|
||||||
[
|
[
|
||||||
{}
|
{}
|
||||||
|
@ -297856,6 +297873,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"interfaces/event-timing.idl": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"interfaces/feature-policy.idl": [
|
"interfaces/feature-policy.idl": [
|
||||||
[
|
[
|
||||||
{}
|
{}
|
||||||
|
@ -343187,6 +343209,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-sizing/percentage-min-width.html": [
|
||||||
|
[
|
||||||
|
"/css/css-sizing/percentage-min-width.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-syntax/charset/page-utf16-css-bomless-utf16.html": [
|
"css/css-syntax/charset/page-utf16-css-bomless-utf16.html": [
|
||||||
[
|
[
|
||||||
"/css/css-syntax/charset/page-utf16-css-bomless-utf16.html",
|
"/css/css-syntax/charset/page-utf16-css-bomless-utf16.html",
|
||||||
|
@ -344621,6 +344649,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-span-002.html": [
|
||||||
|
[
|
||||||
|
"/css/css-text/overflow-wrap/overflow-wrap-break-word-span-002.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-text/overflow-wrap/word-wrap-alias.html": [
|
"css/css-text/overflow-wrap/word-wrap-alias.html": [
|
||||||
[
|
[
|
||||||
"/css/css-text/overflow-wrap/word-wrap-alias.html",
|
"/css/css-text/overflow-wrap/word-wrap-alias.html",
|
||||||
|
@ -362001,6 +362035,14 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"event-timing/event-timing-retrieve-firstInput.html": [
|
||||||
|
[
|
||||||
|
"/event-timing/event-timing-retrieve-firstInput.html",
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"event-timing/event-timing-timingconditions.html": [
|
"event-timing/event-timing-timingconditions.html": [
|
||||||
[
|
[
|
||||||
"/event-timing/event-timing-timingconditions.html",
|
"/event-timing/event-timing-timingconditions.html",
|
||||||
|
@ -362009,6 +362051,24 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"event-timing/idlharness.any.js": [
|
||||||
|
[
|
||||||
|
"/event-timing/idlharness.any.html",
|
||||||
|
{}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/event-timing/idlharness.any.serviceworker.html",
|
||||||
|
{}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/event-timing/idlharness.any.sharedworker.html",
|
||||||
|
{}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/event-timing/idlharness.any.worker.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"eventsource/dedicated-worker/eventsource-close.htm": [
|
"eventsource/dedicated-worker/eventsource-close.htm": [
|
||||||
[
|
[
|
||||||
"/eventsource/dedicated-worker/eventsource-close.htm",
|
"/eventsource/dedicated-worker/eventsource-close.htm",
|
||||||
|
@ -408497,6 +408557,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/color-interpolation-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/color-interpolation-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/color-interpolation-invalid.svg": [
|
"svg/painting/parsing/color-interpolation-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/color-interpolation-invalid.svg",
|
"/svg/painting/parsing/color-interpolation-invalid.svg",
|
||||||
|
@ -408509,6 +408575,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/color-rendering-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/color-rendering-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/color-rendering-invalid.svg": [
|
"svg/painting/parsing/color-rendering-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/color-rendering-invalid.svg",
|
"/svg/painting/parsing/color-rendering-invalid.svg",
|
||||||
|
@ -408521,6 +408593,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/fill-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/fill-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/fill-invalid.svg": [
|
"svg/painting/parsing/fill-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/fill-invalid.svg",
|
"/svg/painting/parsing/fill-invalid.svg",
|
||||||
|
@ -408545,6 +408623,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/fill-rule-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/fill-rule-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/fill-rule-invalid.svg": [
|
"svg/painting/parsing/fill-rule-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/fill-rule-invalid.svg",
|
"/svg/painting/parsing/fill-rule-invalid.svg",
|
||||||
|
@ -408563,6 +408647,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/image-rendering-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/image-rendering-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/image-rendering-invalid.svg": [
|
"svg/painting/parsing/image-rendering-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/image-rendering-invalid.svg",
|
"/svg/painting/parsing/image-rendering-invalid.svg",
|
||||||
|
@ -408575,6 +408665,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-end-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/marker-end-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-end-invalid.svg": [
|
"svg/painting/parsing/marker-end-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/marker-end-invalid.svg",
|
"/svg/painting/parsing/marker-end-invalid.svg",
|
||||||
|
@ -408587,6 +408683,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-mid-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/marker-mid-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-mid-invalid.svg": [
|
"svg/painting/parsing/marker-mid-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/marker-mid-invalid.svg",
|
"/svg/painting/parsing/marker-mid-invalid.svg",
|
||||||
|
@ -408599,6 +408701,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-start-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/marker-start-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-start-invalid.svg": [
|
"svg/painting/parsing/marker-start-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/marker-start-invalid.svg",
|
"/svg/painting/parsing/marker-start-invalid.svg",
|
||||||
|
@ -408611,6 +408719,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/paint-order-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/paint-order-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/paint-order-invalid.svg": [
|
"svg/painting/parsing/paint-order-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/paint-order-invalid.svg",
|
"/svg/painting/parsing/paint-order-invalid.svg",
|
||||||
|
@ -408623,6 +408737,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/shape-rendering-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/shape-rendering-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/shape-rendering-invalid.svg": [
|
"svg/painting/parsing/shape-rendering-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/shape-rendering-invalid.svg",
|
"/svg/painting/parsing/shape-rendering-invalid.svg",
|
||||||
|
@ -408635,6 +408755,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"svg/painting/parsing/stroke-dasharray-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-dasharray-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-dasharray-invalid.svg": [
|
"svg/painting/parsing/stroke-dasharray-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/stroke-dasharray-invalid.svg",
|
"/svg/painting/parsing/stroke-dasharray-invalid.svg",
|
||||||
|
@ -408647,6 +408779,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-dashoffset-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-dashoffset-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-dashoffset-invalid.svg": [
|
"svg/painting/parsing/stroke-dashoffset-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/stroke-dashoffset-invalid.svg",
|
"/svg/painting/parsing/stroke-dashoffset-invalid.svg",
|
||||||
|
@ -408665,6 +408803,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-linecap-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-linecap-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-linecap-invalid.svg": [
|
"svg/painting/parsing/stroke-linecap-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/stroke-linecap-invalid.svg",
|
"/svg/painting/parsing/stroke-linecap-invalid.svg",
|
||||||
|
@ -408677,6 +408821,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-linejoin-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-linejoin-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-linejoin-invalid.svg": [
|
"svg/painting/parsing/stroke-linejoin-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/stroke-linejoin-invalid.svg",
|
"/svg/painting/parsing/stroke-linejoin-invalid.svg",
|
||||||
|
@ -408689,6 +408839,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-miterlimit-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/stroke-miterlimit-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-miterlimit-invalid.svg": [
|
"svg/painting/parsing/stroke-miterlimit-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/stroke-miterlimit-invalid.svg",
|
"/svg/painting/parsing/stroke-miterlimit-invalid.svg",
|
||||||
|
@ -408743,6 +408899,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/text-rendering-computed.svg": [
|
||||||
|
[
|
||||||
|
"/svg/painting/parsing/text-rendering-computed.svg",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"svg/painting/parsing/text-rendering-invalid.svg": [
|
"svg/painting/parsing/text-rendering-invalid.svg": [
|
||||||
[
|
[
|
||||||
"/svg/painting/parsing/text-rendering-invalid.svg",
|
"/svg/painting/parsing/text-rendering-invalid.svg",
|
||||||
|
@ -409295,6 +409457,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"trusted-types/GlobalEventHandlers-onclick.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/GlobalEventHandlers-onclick.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"trusted-types/HTMLElement-generic.tentative.html": [
|
"trusted-types/HTMLElement-generic.tentative.html": [
|
||||||
[
|
[
|
||||||
"/trusted-types/HTMLElement-generic.tentative.html",
|
"/trusted-types/HTMLElement-generic.tentative.html",
|
||||||
|
@ -409325,6 +409493,42 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-CSP.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-createXXX.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-createXXX.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-exposed.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-exposed.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-name.tentative.html": [
|
||||||
|
[
|
||||||
|
"/trusted-types/TrustedTypePolicy-name.tentative.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
||||||
[
|
[
|
||||||
"/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html",
|
"/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html",
|
||||||
|
@ -566758,6 +566962,10 @@
|
||||||
"fa95069dbf0083b0dc7095d2bb3acf20a6ccf898",
|
"fa95069dbf0083b0dc7095d2bb3acf20a6ccf898",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-sizing/percentage-min-width.html": [
|
||||||
|
"11c34eafc32812da1b4da1552afe08c231cd69db",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-sizing/whitespace-and-break.html": [
|
"css/css-sizing/whitespace-and-break.html": [
|
||||||
"f3ea3764478488b949433daccddf710cd0a91006",
|
"f3ea3764478488b949433daccddf710cd0a91006",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -570443,17 +570651,25 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-text/overflow-wrap/overflow-wrap-break-word-004.html": [
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-004.html": [
|
||||||
"560ef63b2f94c5eeca83ee5ef63cdfc15fbdfe34",
|
"b277319cd23831a4911978f450d0bc812aedb695",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-text/overflow-wrap/overflow-wrap-break-word-005.html": [
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-005.html": [
|
||||||
"3ef61bc9eff78b860c0bd2ed5c6bc4c28c168008",
|
"dd005a816f2febca4c41b52df75372019c5fb451",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [
|
||||||
"bce6c68389c32960d79e8fbbf61f9fa28c733165",
|
"bce6c68389c32960d79e8fbbf61f9fa28c733165",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-span-001.html": [
|
||||||
|
"0565b8bb75d5feff2352a1dd3eb9a8f8ef0d1bef",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-text/overflow-wrap/overflow-wrap-break-word-span-002.html": [
|
||||||
|
"39426d0420287a730dcac47696bd69520e8a6b72",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
|
"css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [
|
||||||
"608d4853a2425d9b4157bbe331fd78763985cecd",
|
"608d4853a2425d9b4157bbe331fd78763985cecd",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -570482,6 +570698,10 @@
|
||||||
"30787e204fa7003e85e78fc65a885d0521659545",
|
"30787e204fa7003e85e78fc65a885d0521659545",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-text/overflow-wrap/reference/overflow-wrap-break-word-span-001-ref.html": [
|
||||||
|
"0264bcf322f4a6f9af451ffd6bed6e0fbdc46ef2",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
|
"css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [
|
||||||
"99d964777c663fb8ca37be00c162ddfbb82951c9",
|
"99d964777c663fb8ca37be00c162ddfbb82951c9",
|
||||||
"support"
|
"support"
|
||||||
|
@ -595951,7 +596171,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-002.html": [
|
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-suppress-baseline-002.html": [
|
||||||
"eb791427c0c8e6716122bc7957ed5c68c80be52a",
|
"845290768acbe5b3bd81d4c78e4a4cf61fecc906",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-001-ref.html": [
|
"css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-001-ref.html": [
|
||||||
|
@ -604243,7 +604463,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/_writing-tests/testharness.md": [
|
"docs/_writing-tests/testharness.md": [
|
||||||
"9c21452607e8f3f9e5bbf3ef2fb7771441f4a680",
|
"c19fe0ee881bb0517ef0617e6412ee6025a5079f",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"docs/_writing-tests/visual.md": [
|
"docs/_writing-tests/visual.md": [
|
||||||
|
@ -608691,7 +608911,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"event-timing/event-timing-bufferbeforeonload.html": [
|
"event-timing/event-timing-bufferbeforeonload.html": [
|
||||||
"223f5ed0fb5ce643d9f121f9af136e88a5d9e34d",
|
"22fc4d547b90da989a292a44535c73d761f61293",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"event-timing/event-timing-crossiframe.html": [
|
"event-timing/event-timing-crossiframe.html": [
|
||||||
|
@ -608707,11 +608927,11 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"event-timing/event-timing-onloadthenobserve-firstInput.html": [
|
"event-timing/event-timing-onloadthenobserve-firstInput.html": [
|
||||||
"16f48411f9f12f17407c29098b97ce5479daed0f",
|
"22ac4cb45e947ca3555fe57fbde03746397bfcb2",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"event-timing/event-timing-onloadthenobserve.html": [
|
"event-timing/event-timing-onloadthenobserve.html": [
|
||||||
"7dc113247cd8cd7ffe452edeaffcc07ba67e516e",
|
"07cc236cb47258bce490d2b18a29863922617ba1",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"event-timing/event-timing-only-observe-firstInput.html": [
|
"event-timing/event-timing-only-observe-firstInput.html": [
|
||||||
|
@ -608722,10 +608942,18 @@
|
||||||
"f38761b469da693f2c14a62c96a4671098cbd4e5",
|
"f38761b469da693f2c14a62c96a4671098cbd4e5",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"event-timing/event-timing-retrieve-firstInput.html": [
|
||||||
|
"ded00e61c75dfb29a200082b0f9d477c09297fd4",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"event-timing/event-timing-timingconditions.html": [
|
"event-timing/event-timing-timingconditions.html": [
|
||||||
"1e5dd2fd65cde654f9223ee3a9180a5adfeb4a57",
|
"1e5dd2fd65cde654f9223ee3a9180a5adfeb4a57",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"event-timing/idlharness.any.js": [
|
||||||
|
"5ee98548fb6f2209b8c4b5346830c0d723e68170",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"event-timing/resources/event-timing-crossiframe-childframe.html": [
|
"event-timing/resources/event-timing-crossiframe-childframe.html": [
|
||||||
"7491fd88cb3c8cbfa849620e3690e4a42e454b9e",
|
"7491fd88cb3c8cbfa849620e3690e4a42e454b9e",
|
||||||
"support"
|
"support"
|
||||||
|
@ -631894,6 +632122,10 @@
|
||||||
"71e80c717b2becc9a005e471553910a26fd0a326",
|
"71e80c717b2becc9a005e471553910a26fd0a326",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"interfaces/event-timing.idl": [
|
||||||
|
"0e12737bcc6e75d643abdd0e6bc44d44bcd8e6af",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"interfaces/feature-policy.idl": [
|
"interfaces/feature-policy.idl": [
|
||||||
"c09cc33ce14daefd44db0a84c1a9b39264e856a1",
|
"c09cc33ce14daefd44db0a84c1a9b39264e856a1",
|
||||||
"support"
|
"support"
|
||||||
|
@ -632195,7 +632427,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/web-nfc.idl": [
|
"interfaces/web-nfc.idl": [
|
||||||
"699a31623a335641b8b8be21040f7f80df6555fa",
|
"d54773be499366806bbd93c7fc119ff7a3a2ff72",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/web-share.idl": [
|
"interfaces/web-share.idl": [
|
||||||
|
@ -632247,7 +632479,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webxr.idl": [
|
"interfaces/webxr.idl": [
|
||||||
"5561369931f749224f2dcf87d5fc921af64d82b2",
|
"7f7b43c222bd3bc4dcab0c618402ff8ff61ae470",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/worklets.idl": [
|
"interfaces/worklets.idl": [
|
||||||
|
@ -658235,7 +658467,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-cors-xhr.https.html": [
|
"service-workers/service-worker/fetch-cors-xhr.https.html": [
|
||||||
"397cb81d5462c6a1db7b67c08ad9a5739147745b",
|
"f8ff445673bd42bafcc29c43eb86967dac1f9792",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-csp.https.html": [
|
"service-workers/service-worker/fetch-csp.https.html": [
|
||||||
|
@ -659067,7 +659299,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/resources/fetch-cors-xhr-iframe.html": [
|
"service-workers/service-worker/resources/fetch-cors-xhr-iframe.html": [
|
||||||
"51952a988efe0700276cefa032865c442dfcb6c6",
|
"d88c5103d35b1880932608bea75d21a8d61cc038",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/resources/fetch-csp-iframe.html": [
|
"service-workers/service-worker/resources/fetch-csp-iframe.html": [
|
||||||
|
@ -661015,7 +661247,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"storage/estimate-indexeddb.https.any.js": [
|
"storage/estimate-indexeddb.https.any.js": [
|
||||||
"3e34ad19babf53da04974ceafe0fd4cb7be33621",
|
"c62f5a96c1a2c22142988eabd5b59ce3d3409f95",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"storage/estimate-parallel.https.any.js": [
|
"storage/estimate-parallel.https.any.js": [
|
||||||
|
@ -661615,7 +661847,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/cx-valid.svg": [
|
"svg/geometry/parsing/cx-valid.svg": [
|
||||||
"e7f627ac721fcc90597314ef0c97765566c343b3",
|
"a96fee56555d69297ab833536ed3177cedfd7145",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/cy-computed.svg": [
|
"svg/geometry/parsing/cy-computed.svg": [
|
||||||
|
@ -661627,7 +661859,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/cy-valid.svg": [
|
"svg/geometry/parsing/cy-valid.svg": [
|
||||||
"4372c36ea225328926030830e895f64858e73784",
|
"022445662b7d9d519ca28a1eeca47c9199ceafca",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/r-computed.svg": [
|
"svg/geometry/parsing/r-computed.svg": [
|
||||||
|
@ -661651,7 +661883,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/rx-valid.svg": [
|
"svg/geometry/parsing/rx-valid.svg": [
|
||||||
"e2b628f1de4bd8e2a3fec98fda1aa76b6af79b87",
|
"9d156b3cccfd6bb967372bb2c9ade6fc9527efd9",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/ry-computed.svg": [
|
"svg/geometry/parsing/ry-computed.svg": [
|
||||||
|
@ -661663,7 +661895,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/ry-valid.svg": [
|
"svg/geometry/parsing/ry-valid.svg": [
|
||||||
"4ce5bec4084cf0e6cf1e6744701b756cc18e2f91",
|
"e92e2cf6410ba4071baa81c18ec4462ba60b42dd",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/x-computed.svg": [
|
"svg/geometry/parsing/x-computed.svg": [
|
||||||
|
@ -661675,7 +661907,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/x-valid.svg": [
|
"svg/geometry/parsing/x-valid.svg": [
|
||||||
"5ff2fbd831d7373faee706538f08528dc4ac8a99",
|
"2b06f26ac4c2b7ec0bf2b295854dc8d15fed130e",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/y-computed.svg": [
|
"svg/geometry/parsing/y-computed.svg": [
|
||||||
|
@ -661687,7 +661919,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/geometry/parsing/y-valid.svg": [
|
"svg/geometry/parsing/y-valid.svg": [
|
||||||
"24885ccfc7059dd9e26e57e3839571d2883f73c3",
|
"aad0e4e2937064224de6a2313379fb43ffdf8322",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/historical.html": [
|
"svg/historical.html": [
|
||||||
|
@ -664126,6 +664358,10 @@
|
||||||
"47f70336a6f6774805c08c99f37e8ee7c32ecc10",
|
"47f70336a6f6774805c08c99f37e8ee7c32ecc10",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/color-interpolation-computed.svg": [
|
||||||
|
"88604d75b069afa3bbf894a5ae6c869e420f940d",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/color-interpolation-invalid.svg": [
|
"svg/painting/parsing/color-interpolation-invalid.svg": [
|
||||||
"11fd05be070350c13fabbc3f2627ae80a381f389",
|
"11fd05be070350c13fabbc3f2627ae80a381f389",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664134,6 +664370,10 @@
|
||||||
"9465edb232fb30ed7237f48c159a454e672cd76b",
|
"9465edb232fb30ed7237f48c159a454e672cd76b",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/color-rendering-computed.svg": [
|
||||||
|
"4d63616c794b8c6666c34d46148cd0edd26c06b9",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/color-rendering-invalid.svg": [
|
"svg/painting/parsing/color-rendering-invalid.svg": [
|
||||||
"bfdf95ab2ee9ba336b295a8fa8dcf2a91130cdd1",
|
"bfdf95ab2ee9ba336b295a8fa8dcf2a91130cdd1",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664142,12 +664382,16 @@
|
||||||
"5f7baa2dd08ace602a0a46a2840cfea1925a4055",
|
"5f7baa2dd08ace602a0a46a2840cfea1925a4055",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/fill-computed.svg": [
|
||||||
|
"4678999e8efcfd892e2d83d4ccf252d08ce03ee5",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/fill-invalid.svg": [
|
"svg/painting/parsing/fill-invalid.svg": [
|
||||||
"1feb867c3ab9e83f96e0566b53c75aa3dccb0653",
|
"1feb867c3ab9e83f96e0566b53c75aa3dccb0653",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/fill-opacity-computed.svg": [
|
"svg/painting/parsing/fill-opacity-computed.svg": [
|
||||||
"aa24d3efe8130053ae174a343c074743805794c0",
|
"4526724b999419cd447d5f1a0acababd9653b425",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/fill-opacity-invalid.svg": [
|
"svg/painting/parsing/fill-opacity-invalid.svg": [
|
||||||
|
@ -664158,6 +664402,10 @@
|
||||||
"41cfe985d623d682788c538e87502732821ccfc8",
|
"41cfe985d623d682788c538e87502732821ccfc8",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/fill-rule-computed.svg": [
|
||||||
|
"2b51c9edc4ac9e7cebeb378ad8cccca5b10c1a9b",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/fill-rule-invalid.svg": [
|
"svg/painting/parsing/fill-rule-invalid.svg": [
|
||||||
"d89a81acbb1533cfb121f851a005dde64f82d996",
|
"d89a81acbb1533cfb121f851a005dde64f82d996",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664170,6 +664418,10 @@
|
||||||
"d5bb5ceb0f719c31786e3667bdecd01e1fa248d2",
|
"d5bb5ceb0f719c31786e3667bdecd01e1fa248d2",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/image-rendering-computed.svg": [
|
||||||
|
"18662ef835589024e21a0cdba65861400c10b0cd",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/image-rendering-invalid.svg": [
|
"svg/painting/parsing/image-rendering-invalid.svg": [
|
||||||
"5c3cc9f054bf4f0b21ba7c48c49fe810d9841615",
|
"5c3cc9f054bf4f0b21ba7c48c49fe810d9841615",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664178,6 +664430,10 @@
|
||||||
"18402493f3c779b9427b383cc668033ac46c4936",
|
"18402493f3c779b9427b383cc668033ac46c4936",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-end-computed.svg": [
|
||||||
|
"aa0bc6774a5cea491e36c3432670b3568d50ab7c",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-end-invalid.svg": [
|
"svg/painting/parsing/marker-end-invalid.svg": [
|
||||||
"bc8e5fcc8bab475cdd086f533a7b9d6a82bcff7e",
|
"bc8e5fcc8bab475cdd086f533a7b9d6a82bcff7e",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664186,6 +664442,10 @@
|
||||||
"5be036e994637be7abfe4440618cd4bb16b5d5a7",
|
"5be036e994637be7abfe4440618cd4bb16b5d5a7",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-mid-computed.svg": [
|
||||||
|
"074c17c269e136d5fdacf34ec6920507526d141b",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-mid-invalid.svg": [
|
"svg/painting/parsing/marker-mid-invalid.svg": [
|
||||||
"25cfbba82eb54a30c09e00580100627ccf0420b5",
|
"25cfbba82eb54a30c09e00580100627ccf0420b5",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664194,6 +664454,10 @@
|
||||||
"119fd706b12189342a6ad9d9d94c512df57ccbdc",
|
"119fd706b12189342a6ad9d9d94c512df57ccbdc",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/marker-start-computed.svg": [
|
||||||
|
"e0ad38bbbc8df4563b6a81fba6dcdc54b92c3e1e",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/marker-start-invalid.svg": [
|
"svg/painting/parsing/marker-start-invalid.svg": [
|
||||||
"6c1fdbcd4b577f3d5de2f747d74bb34c670ce3bd",
|
"6c1fdbcd4b577f3d5de2f747d74bb34c670ce3bd",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664202,6 +664466,10 @@
|
||||||
"fd6f2d6fe425ec1e4ab5c7ee6425a5e4ead823bc",
|
"fd6f2d6fe425ec1e4ab5c7ee6425a5e4ead823bc",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/paint-order-computed.svg": [
|
||||||
|
"0cba453f437a2e10f932ff83b95b6835a4920776",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/paint-order-invalid.svg": [
|
"svg/painting/parsing/paint-order-invalid.svg": [
|
||||||
"5043176dd97bd1d99ea2f9674abfa08f06d7383e",
|
"5043176dd97bd1d99ea2f9674abfa08f06d7383e",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664210,6 +664478,10 @@
|
||||||
"25759d222d15a18ca49645e1ff10a17b50341f58",
|
"25759d222d15a18ca49645e1ff10a17b50341f58",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/shape-rendering-computed.svg": [
|
||||||
|
"8dbea5eba6c0b3962c8eec0bc04577762e56a90f",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/shape-rendering-invalid.svg": [
|
"svg/painting/parsing/shape-rendering-invalid.svg": [
|
||||||
"e20ca879dbaf7744157bca497a581d5f6083fcd5",
|
"e20ca879dbaf7744157bca497a581d5f6083fcd5",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664218,12 +664490,24 @@
|
||||||
"803609476f8387710391fcc882ef4c6503eb5620",
|
"803609476f8387710391fcc882ef4c6503eb5620",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-computed.svg": [
|
||||||
|
"331496b01b8f367dde202715251d52d77a864754",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"svg/painting/parsing/stroke-dasharray-computed.svg": [
|
||||||
|
"2e3a74b5728594e7378d47da659e801cfcfec7a9",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-dasharray-invalid.svg": [
|
"svg/painting/parsing/stroke-dasharray-invalid.svg": [
|
||||||
"0c356b6433955588c7b0ed32d9ff8c2eab4c7619",
|
"0c356b6433955588c7b0ed32d9ff8c2eab4c7619",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-dasharray-valid.svg": [
|
"svg/painting/parsing/stroke-dasharray-valid.svg": [
|
||||||
"7301a54e65e2b38fd2e5d83ccb8780fe74ae6295",
|
"e47ebc62a1296f75c42af980b85073ebe135605b",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"svg/painting/parsing/stroke-dashoffset-computed.svg": [
|
||||||
|
"bdb934614c109208326e357ea5b056dd4f754994",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-dashoffset-invalid.svg": [
|
"svg/painting/parsing/stroke-dashoffset-invalid.svg": [
|
||||||
|
@ -664231,13 +664515,17 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-dashoffset-valid.svg": [
|
"svg/painting/parsing/stroke-dashoffset-valid.svg": [
|
||||||
"921b03a6a6f270307f281eafb609d81fc11f2b99",
|
"ff913e06e4f849b5b14fac050986f697df9c81d8",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-invalid.svg": [
|
"svg/painting/parsing/stroke-invalid.svg": [
|
||||||
"a976ccb97742bb9aefc94d6cfd9c1e57ee18a06a",
|
"a976ccb97742bb9aefc94d6cfd9c1e57ee18a06a",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-linecap-computed.svg": [
|
||||||
|
"7b5ce96ce5de296af7aed3d85f76d3ba2fee2ccf",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-linecap-invalid.svg": [
|
"svg/painting/parsing/stroke-linecap-invalid.svg": [
|
||||||
"ba4bd8640e40328f1fe913f497913df3dd7f3219",
|
"ba4bd8640e40328f1fe913f497913df3dd7f3219",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664246,6 +664534,10 @@
|
||||||
"045c4eef7c708dbb7b33a04104290be8a93bbe2d",
|
"045c4eef7c708dbb7b33a04104290be8a93bbe2d",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-linejoin-computed.svg": [
|
||||||
|
"a8e9aab8eb098cc17d470245bf1cedde7a2c5866",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-linejoin-invalid.svg": [
|
"svg/painting/parsing/stroke-linejoin-invalid.svg": [
|
||||||
"6a6c4282803ae337685c5465362c9dcf8981d354",
|
"6a6c4282803ae337685c5465362c9dcf8981d354",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664254,6 +664546,10 @@
|
||||||
"876b2f67dd665c358a207fa14abfa470b787e31f",
|
"876b2f67dd665c358a207fa14abfa470b787e31f",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/stroke-miterlimit-computed.svg": [
|
||||||
|
"d2ec631b168de1f6a53825a00aec84c281ac2ef7",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/stroke-miterlimit-invalid.svg": [
|
"svg/painting/parsing/stroke-miterlimit-invalid.svg": [
|
||||||
"c1307dab5b8c81e3ee1c68f37750a1466b022135",
|
"c1307dab5b8c81e3ee1c68f37750a1466b022135",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -664263,7 +664559,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-opacity-computed.svg": [
|
"svg/painting/parsing/stroke-opacity-computed.svg": [
|
||||||
"58cb144935a378e25644c40bc5b372799a88e792",
|
"02bef376f6178062e46b5035fb856db434351dc2",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-opacity-invalid.svg": [
|
"svg/painting/parsing/stroke-opacity-invalid.svg": [
|
||||||
|
@ -664279,7 +664575,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-width-computed.svg": [
|
"svg/painting/parsing/stroke-width-computed.svg": [
|
||||||
"c9284be9a13a633872d9abb670f1c4390b540030",
|
"71dead0942fc2e660f6ffe239f00ef502c1a8728",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/painting/parsing/stroke-width-invalid.svg": [
|
"svg/painting/parsing/stroke-width-invalid.svg": [
|
||||||
|
@ -664290,6 +664586,10 @@
|
||||||
"02bca189f74fe91088ebe913f848b80dfc24868c",
|
"02bca189f74fe91088ebe913f848b80dfc24868c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"svg/painting/parsing/text-rendering-computed.svg": [
|
||||||
|
"e37f4fed5bbbc231a0d8e0e6989f4f18893c6e6d",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"svg/painting/parsing/text-rendering-invalid.svg": [
|
"svg/painting/parsing/text-rendering-invalid.svg": [
|
||||||
"92da841cad69b8cce5628439f30da5b189259094",
|
"92da841cad69b8cce5628439f30da5b189259094",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -670383,7 +670683,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/browsers/sauce.py": [
|
"tools/wptrunner/wptrunner/browsers/sauce.py": [
|
||||||
"02cc322aa35efb8db6c7a29ce5b95080f482124e",
|
"c6863005a0fc7b48d415daaedae63e759f9b2f27",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat": [
|
"tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat": [
|
||||||
|
@ -670591,7 +670891,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/tests/browsers/test_sauce.py": [
|
"tools/wptrunner/wptrunner/tests/browsers/test_sauce.py": [
|
||||||
"e8542959aa2efbcdc5190afc1c906f0a6717e2c1",
|
"06a5641d50fbbaed4de9df511c567753ef1a326d",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/tests/test_chunker.py": [
|
"tools/wptrunner/wptrunner/tests/test_chunker.py": [
|
||||||
|
@ -670659,7 +670959,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptcommandline.py": [
|
"tools/wptrunner/wptrunner/wptcommandline.py": [
|
||||||
"6881477a3c04de798ee3c30edfa00384da38961a",
|
"08810fcc0272d6cf3096c5fc111014fdae85c9e6",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptlogging.py": [
|
"tools/wptrunner/wptrunner/wptlogging.py": [
|
||||||
|
@ -670719,7 +671019,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wptrunner.py": [
|
"tools/wptrunner/wptrunner/wptrunner.py": [
|
||||||
"14f6cb9068d02ef92fe776ce8cbc2efa39f505ad",
|
"7d35c51d90987672e34b8337d381ae7949845c33",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/wpttest.py": [
|
"tools/wptrunner/wptrunner/wpttest.py": [
|
||||||
|
@ -671134,6 +671434,10 @@
|
||||||
"80128cfbf0ebce7d878dd349fc8838b2a6469a16",
|
"80128cfbf0ebce7d878dd349fc8838b2a6469a16",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"trusted-types/GlobalEventHandlers-onclick.tentative.html": [
|
||||||
|
"6e8c560ebd1dafb4cc2b4509b2340790dade49c2",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"trusted-types/HTMLElement-generic.tentative.html": [
|
"trusted-types/HTMLElement-generic.tentative.html": [
|
||||||
"d1fafa70cd2768e7b98b5eab6da9f5eb77175fbc",
|
"d1fafa70cd2768e7b98b5eab6da9f5eb77175fbc",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -671158,6 +671462,30 @@
|
||||||
"3a880a53778acb165fd5d957eeaca22685baf2b5",
|
"3a880a53778acb165fd5d957eeaca22685baf2b5",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html": [
|
||||||
|
"2dfec26f5a0432e19fdbd139dadd3908b8acac3f",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html": [
|
||||||
|
"22b87965614fd16d280d5a97f9150d07ccca3d3e",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-CSP.tentative.html": [
|
||||||
|
"1293493ec1f7780b297d2040274150f0aba32adc",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-createXXX.tentative.html": [
|
||||||
|
"6a0151ad9bcf7d02b6a98532ba53db509e086f83",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-exposed.tentative.html": [
|
||||||
|
"e671c6fb61dcb58392c9fb0ac3f4fb37a67698bf",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"trusted-types/TrustedTypePolicy-name.tentative.html": [
|
||||||
|
"c121fe4cab50ab52a7159184bfa012e85d555768",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
|
||||||
"a162d84cd820051d6c5868c35b58cd347b0026e5",
|
"a162d84cd820051d6c5868c35b58cd347b0026e5",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -671171,7 +671499,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html": [
|
||||||
"9daf20ec1869919603965942fa6a4c99925ac8e9",
|
"1293493ec1f7780b297d2040274150f0aba32adc",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-defaultTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-defaultTests.tentative.html": [
|
||||||
|
@ -671179,7 +671507,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-exposedTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-exposedTests.tentative.html": [
|
||||||
"af6e04941c3b6206602bc7f547a3b0c9ef555a11",
|
"137d0f54c8228645aaf184cc64654e1d66ffbaa6",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html": [
|
"trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html": [
|
||||||
|
@ -671219,7 +671547,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Document-write.tentative.html": [
|
"trusted-types/block-string-assignment-to-Document-write.tentative.html": [
|
||||||
"0d9ff61c9b305e193f96cebe18810d597aa75158",
|
"5fa0b194df60c28dad98da828f5d22694d966e0f",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
|
"trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
|
||||||
|
@ -671231,7 +671559,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html": [
|
"trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html": [
|
||||||
"646997de472ec98491d2d17fc65aeb77c999c03b",
|
"4d06f014f2934a218b9e54be40fa14b95e0b51a7",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
|
"trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [
|
||||||
|
@ -671243,15 +671571,15 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Location-assign.tentative.html": [
|
"trusted-types/block-string-assignment-to-Location-assign.tentative.html": [
|
||||||
"4ad4af9df5ae86b0bc2ab82d3b5ae062b88d70f6",
|
"4c295ffa284acb21436f06ecbf06ac4073365efe",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Location-href.tentative.html": [
|
"trusted-types/block-string-assignment-to-Location-href.tentative.html": [
|
||||||
"fd0a4e5ea0e53c5b85f0bfb6d092c4cd63ceb790",
|
"86bce7994d6e9e43bddc590519126f4ee266cf06",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Location-replace.tentative.html": [
|
"trusted-types/block-string-assignment-to-Location-replace.tentative.html": [
|
||||||
"9b8cabe58359e664e1ad9d8c43f604f88c7b3784",
|
"aa3af64e12b1d2b296e8dedd40b9cef749b1431c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html": [
|
"trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html": [
|
||||||
|
@ -671267,7 +671595,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/support/helper.sub.js": [
|
"trusted-types/support/helper.sub.js": [
|
||||||
"9ad605975555df539e6444d3b8935197c7925aef",
|
"bae9d2dc7aa963271bdcc6ae72e4064f10ab8d05",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"trusted-types/support/worker.js": [
|
"trusted-types/support/worker.js": [
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[overflow-wrap-break-word-span-001.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
||||||
|
[overflow-wrap-break-word-span-002.html]
|
||||||
|
[#container 1]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -612,5 +612,23 @@
|
||||||
[windows-1254: iso8859-9 (XMLHttpRequest)]
|
[windows-1254: iso8859-9 (XMLHttpRequest)]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1253: x-cp1253 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1254: cp1254 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1253: cp1253 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1252: x-cp1252 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1252: windows-1252 (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[windows-1252: us-ascii (XMLHttpRequest)]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
||||||
[single-byte-decoder.html?TextDecoder]
|
[single-byte-decoder.html?TextDecoder]
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_2.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_5.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -8,12 +8,9 @@
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
|
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[img (srcset 1 cand) valid image, resize to narrow]
|
[img (srcset 1 cand) valid image, resize to narrow]
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[parse-a-sizes-attribute-quirks-mode.html]
|
[parse-a-sizes-attribute-quirks-mode.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (quirks mode)]
|
[<img srcset="/images/green-1x1.png?e38b 50w, /images/green-16x16.png?e38b 51w" sizes="(min-width:max(-200vw, 0)) 1px"> ref sizes="1px" (quirks mode)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[DOMContentLoaded-defer.html]
|
|
||||||
[The end: DOMContentLoaded and defer scripts]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
[document.open() after parser is aborted]
|
[document.open() after parser is aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[async document.open() after parser is aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,283 +0,0 @@
|
||||||
[limited-quirks.html]
|
|
||||||
[top: -\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "1a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "1"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: url('1')]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: calc(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: \\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #0001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: calc(2 * 2px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #01]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: \\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: calc(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #00001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "1"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: url('1')]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: \\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "1a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: calc(2 * 2px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #00001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: url(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: url(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #000001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #000001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: \\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #01]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #0001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,283 +0,0 @@
|
||||||
[no-quirks.html]
|
|
||||||
[top: -\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "1a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "1"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: url('1')]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: calc(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: \\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #0001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: calc(2 * 2px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #01]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: \\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: calc(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: @1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #00001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "1"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: url('1')]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: \\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: "1a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: calc(2 * 2px)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +/**/1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #00001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: url(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: url(1)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #000001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: 1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: #000001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: 1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1\\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: +1A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: @1a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: \\31 .5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: "a"]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #01]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: +1.5]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: #0001]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[bottom: -1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -A]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -a]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[top: -1\\31 ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#sizing-values">
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
<div id="container" data-expected-width="100" style="width:fit-content; min-width:100px; height:100px; background:red;">
|
||||||
|
<div data-expected-width="100" style="width:fit-content; min-width:100%; height:100px; background:green;"></div>
|
||||||
|
</div>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/check-layout-th.js"></script>
|
||||||
|
<script>
|
||||||
|
checkLayout("#container");
|
||||||
|
</script>
|
|
@ -8,9 +8,10 @@
|
||||||
<meta name="assert" content="A Single leading white-space constitutes a soft breaking opportunity, honoring the 'white-space: pre-wrap' property, that must prevent the word to be broken.">
|
<meta name="assert" content="A Single leading white-space constitutes a soft breaking opportunity, honoring the 'white-space: pre-wrap' property, that must prevent the word to be broken.">
|
||||||
<style>
|
<style>
|
||||||
div {
|
div {
|
||||||
position: relative;
|
position: relative;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-family: Ahem;
|
font-family: Ahem;
|
||||||
|
line-height: 1em;
|
||||||
}
|
}
|
||||||
.red {
|
.red {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -22,7 +23,6 @@ div {
|
||||||
}
|
}
|
||||||
.test {
|
.test {
|
||||||
color: green;
|
color: green;
|
||||||
line-height: 1em;
|
|
||||||
width: 5ch;
|
width: 5ch;
|
||||||
|
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
|
|
@ -9,9 +9,10 @@
|
||||||
<meta name="assert" content="A Single leading white-space constitutes a soft breaking opportunity, honoring the 'white-space: pre-wrap' property, that must prevent the word to be broken.">
|
<meta name="assert" content="A Single leading white-space constitutes a soft breaking opportunity, honoring the 'white-space: pre-wrap' property, that must prevent the word to be broken.">
|
||||||
<style>
|
<style>
|
||||||
div {
|
div {
|
||||||
position: relative;
|
position: relative;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-family: Ahem;
|
font-family: Ahem;
|
||||||
|
line-height: 1em;
|
||||||
}
|
}
|
||||||
.fail {
|
.fail {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -21,7 +22,6 @@ div {
|
||||||
span { color: green; }
|
span { color: green; }
|
||||||
.test {
|
.test {
|
||||||
color: green;
|
color: green;
|
||||||
line-height: 1em;
|
|
||||||
width: 5ch;
|
width: 5ch;
|
||||||
|
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS Text Test: overflow-wrap: break-word</title>
|
||||||
|
<link rel="author" title="Koji Ishii" href="kojii@chromium.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-break-word">
|
||||||
|
<link rel="match" href="reference/overflow-wrap-break-word-span-001-ref.html">
|
||||||
|
<meta name="assert" content="Test when the `break-word` value is applied to an inline element.">
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 1;
|
||||||
|
width: 8ch;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div>12345<span>67890</span></div>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS Text Test: overflow-wrap: break-word</title>
|
||||||
|
<link rel="author" title="Koji Ishii" href="kojii@chromium.org">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-break-word">
|
||||||
|
<meta name="assert" content="Test when the `break-word` value is applied to an inline element.">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/check-layout-th.js"></script><style>
|
||||||
|
div {
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 1;
|
||||||
|
width: 5ch;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id=container data-expected-height=20>12345678<span>90</span></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
checkLayout('#container')
|
||||||
|
</script>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div>12345678<br>90</div>
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
|
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
|
||||||
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
|
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
|
||||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#valdef-align-items-baseline">
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#valdef-align-items-baseline">
|
||||||
<link rel="match" href="contain-layout-suppress-baseline-001-ref.html">
|
<link rel="match" href="contain-layout-suppress-baseline-002-ref.html">
|
||||||
<style>
|
<style>
|
||||||
.flexBaselineCheck {
|
.flexBaselineCheck {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -32,7 +32,7 @@ for example:
|
||||||
The test can then do different things based on the URL.
|
The test can then do different things based on the URL.
|
||||||
|
|
||||||
There are two utility scripts in that work well together with variants,
|
There are two utility scripts in that work well together with variants,
|
||||||
`/common /subset-tests.js` and `/common/subset-tests-by- key.js`, where
|
`/common/subset-tests.js` and `/common/subset-tests-by-key.js`, where
|
||||||
a test that would otherwise have too many tests to be useful can be
|
a test that would otherwise have too many tests to be useful can be
|
||||||
split up in ranges of subtests. For example:
|
split up in ranges of subtests. For example:
|
||||||
|
|
||||||
|
|
|
@ -65,12 +65,22 @@
|
||||||
async_test(function(t) {
|
async_test(function(t) {
|
||||||
clickTimeMin = performance.now();
|
clickTimeMin = performance.now();
|
||||||
clickAndBlockMain('button');
|
clickAndBlockMain('button');
|
||||||
|
// Use a dummy observer to know when both clicks have been dispatched.
|
||||||
|
const observerPromise = new Promise((resolve, reject) => {
|
||||||
|
let entryCount = 0;
|
||||||
|
new PerformanceObserver(entryList => {
|
||||||
|
entryCount += entryList.getEntries().length;
|
||||||
|
if (entryCount >= 2)
|
||||||
|
resolve();
|
||||||
|
}).observe({ entryTypes: ['event'] });
|
||||||
|
});
|
||||||
// Event handlers will be dispatched asynchronously, so this will be called
|
// Event handlers will be dispatched asynchronously, so this will be called
|
||||||
// before processing begins.
|
// before processing begins.
|
||||||
processingStartMin = performance.now();
|
processingStartMin = performance.now();
|
||||||
on_event(window, 'load', e => {
|
on_event(window, 'load', e => {
|
||||||
onloadStart = performance.now();
|
onloadStart = performance.now();
|
||||||
clickAndBlockMain('button').then(wait).then(
|
const clickPromise = clickAndBlockMain('button');
|
||||||
|
Promise.all([observerPromise, clickPromise]).then(
|
||||||
t.step_func_done(validateEntries));
|
t.step_func_done(validateEntries));
|
||||||
});
|
});
|
||||||
}, "Event Timing: click, onload.");
|
}, "Event Timing: click, onload.");
|
||||||
|
|
|
@ -31,8 +31,8 @@
|
||||||
if (numEventsObserved >= 2) {
|
if (numEventsObserved >= 2) {
|
||||||
assert_equals(performance.getEntriesByType('event').length, 0,
|
assert_equals(performance.getEntriesByType('event').length, 0,
|
||||||
"There should be no buffered event entries.");
|
"There should be no buffered event entries.");
|
||||||
assert_equals(performance.getEntriesByType('firstInput').length, 0,
|
assert_equals(performance.getEntriesByType('firstInput').length, 1,
|
||||||
"There should be no buffered firstInput entries.");
|
"There should be a buffered firstInput entry.");
|
||||||
// There should be 2 event entries and one firstInput entry.
|
// There should be 2 event entries and one firstInput entry.
|
||||||
assert_equals(numEventsObserved, 2,
|
assert_equals(numEventsObserved, 2,
|
||||||
"There should be 2 observed event entries.");
|
"There should be 2 observed event entries.");
|
||||||
|
@ -42,8 +42,8 @@
|
||||||
}
|
}
|
||||||
})).observe({ entryTypes: ['event', 'firstInput'] });
|
})).observe({ entryTypes: ['event', 'firstInput'] });
|
||||||
on_event(window, 'load', () => {
|
on_event(window, 'load', () => {
|
||||||
clickAndBlockMain('button').then(wait).then(() => {
|
clickAndBlockMain('button').then(() => {
|
||||||
clickAndBlockMain('button').then(wait);
|
clickAndBlockMain('button');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -61,16 +61,22 @@ registration are lost
|
||||||
(Dispatch and Process Click 2 (not buffered, observed))
|
(Dispatch and Process Click 2 (not buffered, observed))
|
||||||
*/
|
*/
|
||||||
async_test(function(t) {
|
async_test(function(t) {
|
||||||
on_event(window, 'load', () => {
|
// Use a dummy observer to know when the first click has been dispatched.
|
||||||
clickAndBlockMain('button').then(() => {
|
const observerPromise = new Promise((resolve, reject) => {
|
||||||
startObserver(t);
|
new PerformanceObserver((entryList, observer) => {
|
||||||
clickAndBlockMain('button').then(wait);
|
resolve();
|
||||||
processingStartMin = performance.now();
|
observer.disconnect();
|
||||||
});
|
}).observe({ entryTypes: ['event'] });
|
||||||
|
});
|
||||||
|
on_event(window, 'load', () => {
|
||||||
|
const clickPromise = clickAndBlockMain('button');
|
||||||
|
Promise.all([observerPromise, clickPromise]).then(() => {
|
||||||
|
startObserver(t);
|
||||||
|
clickAndBlockMain('button');
|
||||||
|
processingStartMin = performance.now();
|
||||||
});
|
});
|
||||||
},
|
});
|
||||||
"Event Timing: onload, click, observer, click."
|
},"Event Timing: onload, click, observer, click.");
|
||||||
);
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<meta charset=utf-8 />
|
||||||
|
<title>Event Timing: firstInput entry should be buffered even without observer</title>
|
||||||
|
<button id='button'>Generate a 'click' event</button>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script src=/resources/testdriver.js></script>
|
||||||
|
<script src=/resources/testdriver-vendor.js></script>
|
||||||
|
|
||||||
|
<script src=resources/event-timing-support.js></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
async_test(function(t) {
|
||||||
|
function testEntries() {
|
||||||
|
// First callback is not ensured to have the entry.
|
||||||
|
if (performance.getEntriesByType('firstInput').length === 0) {
|
||||||
|
t.step_timeout(testEntries, 10);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
assert_equals(performance.getEntriesByType('firstInput').length, 1,
|
||||||
|
"There should be a firstInput entry in the performance timeline");
|
||||||
|
const entry = performance.getEntriesByType('firstInput')[0];
|
||||||
|
assert_equals(entry.name, 'click');
|
||||||
|
assert_equals(entry.entryType, 'firstInput');
|
||||||
|
assert_greater_than(entry.duration, 50,
|
||||||
|
"The first input was a long one.");
|
||||||
|
t.done();
|
||||||
|
}
|
||||||
|
clickAndBlockMain('button').then(wait).then(t.step_func(testEntries));
|
||||||
|
},
|
||||||
|
"Event Timing: check firstInput after onload, observer, click, click."
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
</html>
|
18
tests/wpt/web-platform-tests/event-timing/idlharness.any.js
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
// META: global=window,worker
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
// https://wicg.github.io/event-timing/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['event-timing'],
|
||||||
|
['performance-timeline', 'hr-time', 'dom'],
|
||||||
|
idl_array => {
|
||||||
|
idl_array.add_objects({
|
||||||
|
Performance: ['performance'],
|
||||||
|
// PerformanceEventTiming: [ TODO ]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
18
tests/wpt/web-platform-tests/interfaces/event-timing.idl
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
|
// Source: Event Timing API (https://wicg.github.io/event-timing/)
|
||||||
|
|
||||||
|
interface PerformanceEventTiming : PerformanceEntry {
|
||||||
|
readonly attribute DOMHighResTimeStamp processingStart;
|
||||||
|
readonly attribute DOMHighResTimeStamp processingEnd;
|
||||||
|
readonly attribute boolean cancelable;
|
||||||
|
};
|
||||||
|
|
||||||
|
interface EventCounts {
|
||||||
|
readonly maplike<DOMString, unsigned long>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial interface Performance {
|
||||||
|
readonly attribute EventCounts eventCounts;
|
||||||
|
};
|
|
@ -28,12 +28,12 @@ partial interface Navigator {
|
||||||
[SecureContext, SameObject] readonly attribute NFC nfc;
|
[SecureContext, SameObject] readonly attribute NFC nfc;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef (DOMString or ArrayBuffer or NFCMessage) NFCPushMessage;
|
typedef (DOMString or ArrayBuffer or NFCMessage) NFCMessageSource;
|
||||||
|
|
||||||
[SecureContext]
|
[SecureContext]
|
||||||
interface NFC {
|
interface NFC {
|
||||||
Promise<void> push(NFCPushMessage message, optional NFCPushOptions options);
|
Promise<void> push(NFCMessageSource message, optional NFCPushOptions options);
|
||||||
Promise<long> watch(MessageCallback callback, optional NFCWatchOptions options);
|
Promise<void> watch(MessageCallback callback, optional NFCWatchOptions options);
|
||||||
};
|
};
|
||||||
|
|
||||||
callback MessageCallback = void (NFCMessage message);
|
callback MessageCallback = void (NFCMessage message);
|
||||||
|
|
|
@ -45,7 +45,7 @@ enum XREnvironmentBlendMode {
|
||||||
attribute XRLayer baseLayer;
|
attribute XRLayer baseLayer;
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
Promise<XRFrameOfReference> requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options);
|
Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type, optional XRReferenceSpaceOptions options);
|
||||||
|
|
||||||
FrozenArray<XRInputSource> getInputSources();
|
FrozenArray<XRInputSource> getInputSources();
|
||||||
|
|
||||||
|
@ -57,7 +57,6 @@ enum XREnvironmentBlendMode {
|
||||||
// Events
|
// Events
|
||||||
attribute EventHandler onblur;
|
attribute EventHandler onblur;
|
||||||
attribute EventHandler onfocus;
|
attribute EventHandler onfocus;
|
||||||
attribute EventHandler onresetpose;
|
|
||||||
attribute EventHandler onend;
|
attribute EventHandler onend;
|
||||||
attribute EventHandler onselect;
|
attribute EventHandler onselect;
|
||||||
attribute EventHandler oninputsourceschange;
|
attribute EventHandler oninputsourceschange;
|
||||||
|
@ -70,34 +69,51 @@ callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame)
|
||||||
[SecureContext, Exposed=Window] interface XRFrame {
|
[SecureContext, Exposed=Window] interface XRFrame {
|
||||||
readonly attribute XRSession session;
|
readonly attribute XRSession session;
|
||||||
|
|
||||||
XRViewerPose? getViewerPose(XRFrameOfReference frameOfRef);
|
XRViewerPose? getViewerPose(optional XRReferenceSpace referenceSpace);
|
||||||
XRInputPose? getInputPose(XRInputSource inputSource, XRFrameOfReference frameOfRef);
|
XRInputPose? getInputPose(XRInputSource inputSource, optional XRReferenceSpace referenceSpace);
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget {
|
[SecureContext, Exposed=Window] interface XRSpace : EventTarget {
|
||||||
Float32Array? getTransformTo(XRCoordinateSystem other);
|
Float32Array? getTransformTo(XRSpace other);
|
||||||
};
|
};
|
||||||
|
|
||||||
enum XRFrameOfReferenceType {
|
enum XRReferenceSpaceType {
|
||||||
"head-model",
|
"stationary",
|
||||||
|
"bounded",
|
||||||
|
"unbounded"
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary XRReferenceSpaceOptions {
|
||||||
|
required XRReferenceSpaceType type;
|
||||||
|
};
|
||||||
|
|
||||||
|
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
|
||||||
|
attribute EventHandler onreset;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum XRStationaryReferenceSpaceSubtype {
|
||||||
"eye-level",
|
"eye-level",
|
||||||
"stage",
|
"floor-level",
|
||||||
|
"position-disabled"
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary XRFrameOfReferenceOptions {
|
dictionary XRStationaryReferenceSpaceOptions : XRReferenceSpaceOptions {
|
||||||
boolean disableStageEmulation = false;
|
required XRStationaryReferenceSpaceSubtype subtype;
|
||||||
double stageEmulationHeight = 0.0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem {
|
[SecureContext, Exposed=Window]
|
||||||
readonly attribute XRStageBounds? bounds;
|
interface XRStationaryReferenceSpace : XRReferenceSpace {
|
||||||
readonly attribute double emulatedHeight;
|
readonly attribute XRStationaryReferenceSpaceSubtype subtype;
|
||||||
|
|
||||||
attribute EventHandler onboundschange;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window] interface XRStageBounds {
|
[SecureContext, Exposed=Window]
|
||||||
readonly attribute FrozenArray<DOMPointReadOnly> geometry;
|
interface XRBoundedReferenceSpace : XRReferenceSpace {
|
||||||
|
readonly attribute FrozenArray<DOMPointReadOnly> boundsGeometry;
|
||||||
|
};
|
||||||
|
|
||||||
|
[SecureContext, Exposed=Window]
|
||||||
|
|
||||||
|
interface XRUnboundedReferenceSpace : XRReferenceSpace {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum XREye {
|
enum XREye {
|
||||||
|
@ -224,11 +240,13 @@ dictionary XRInputSourceEventInit : EventInit {
|
||||||
required XRInputSource inputSource;
|
required XRInputSource inputSource;
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)]
|
[SecureContext, Exposed=Window, Constructor(DOMString type, XRReferenceSpaceEventInit eventInitDict)]
|
||||||
interface XRCoordinateSystemEvent : Event {
|
interface XRReferenceSpaceEvent : Event {
|
||||||
readonly attribute XRCoordinateSystem coordinateSystem;
|
readonly attribute XRReferenceSpace referenceSpace;
|
||||||
|
readonly attribute Float32Array? transformMatrix;
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary XRCoordinateSystemEventInit : EventInit {
|
dictionary XRReferenceSpaceEventInit : EventInit {
|
||||||
required XRCoordinateSystem coordinateSystem;
|
required XRReferenceSpace referenceSpace;
|
||||||
|
Float32Array transformMatrix;
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,14 +30,19 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
var channel = new MessageChannel();
|
var channel = new MessageChannel();
|
||||||
channel.port1.onmessage = resolve;
|
channel.port1.onmessage = (event) => {
|
||||||
|
if (event.data === 'done') {
|
||||||
|
resolve();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
test(() => {
|
||||||
|
assert_true(event.data.result);
|
||||||
|
}, event.data.testName);
|
||||||
|
};
|
||||||
frame.contentWindow.postMessage({},
|
frame.contentWindow.postMessage({},
|
||||||
host_info['HTTPS_ORIGIN'],
|
host_info['HTTPS_ORIGIN'],
|
||||||
[channel.port2]);
|
[channel.port2]);
|
||||||
});
|
});
|
||||||
})
|
|
||||||
.then(function(e) {
|
|
||||||
assert_equals(e.data.results, 'finish');
|
|
||||||
});
|
});
|
||||||
}, 'Verify CORS XHR of fetch() in a Service Worker');
|
}, 'Verify CORS XHR of fetch() in a Service Worker');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -26,38 +26,10 @@ function create_test_case_promise(url, with_credentials) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_test_promise(url, with_credentials, expected_result) {
|
window.addEventListener('message', async (evt) => {
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
create_test_case_promise(url, with_credentials)
|
|
||||||
.then(function(result) {
|
|
||||||
if (result == expected_result) {
|
|
||||||
resolve();
|
|
||||||
} else {
|
|
||||||
reject('Result of url:' + url + ' ' +
|
|
||||||
' with_credentials: ' + with_credentials + ' must be ' +
|
|
||||||
expected_result + ' but ' + result);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function create_serial_promise(test_cases) {
|
|
||||||
var promise = Promise.resolve();
|
|
||||||
test_cases.forEach(function(test_case) {
|
|
||||||
promise = promise.then(function() {
|
|
||||||
return create_test_promise(test_case[0], test_case[1], test_case[2]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('message', function(evt) {
|
|
||||||
var port = evt.ports[0];
|
var port = evt.ports[0];
|
||||||
var url = host_info['HTTPS_ORIGIN'] + path;
|
var url = host_info['HTTPS_ORIGIN'] + path;
|
||||||
var remote_url = host_info['HTTPS_REMOTE_ORIGIN'] + path;
|
var remote_url = host_info['HTTPS_REMOTE_ORIGIN'] + path;
|
||||||
// If the 4th value of the item of TEST_CASES is true, the test case outputs
|
|
||||||
// warning messages. So such tests must be executed in serial to match the
|
|
||||||
// expected output text.
|
|
||||||
var TEST_CASES = [
|
var TEST_CASES = [
|
||||||
// Reject tests
|
// Reject tests
|
||||||
[url + '?reject', false, FAIL],
|
[url + '?reject', false, FAIL],
|
||||||
|
@ -95,8 +67,8 @@ window.addEventListener('message', function(evt) {
|
||||||
// Credential test (fallback)
|
// Credential test (fallback)
|
||||||
[url + '?Auth&ignore', false, SUCCESS],
|
[url + '?Auth&ignore', false, SUCCESS],
|
||||||
[url + '?Auth&ignore', true, SUCCESS],
|
[url + '?Auth&ignore', true, SUCCESS],
|
||||||
[remote_url + '?Auth&ignore', false, FAIL, true], // Executed in serial.
|
[remote_url + '?Auth&ignore', false, FAIL],
|
||||||
[remote_url + '?Auth&ignore', true, FAIL, true], // Executed in serial.
|
[remote_url + '?Auth&ignore', true, FAIL],
|
||||||
[
|
[
|
||||||
remote_url + '?Auth&ACAOrigin=' + host_info['HTTPS_ORIGIN'] + '&ignore',
|
remote_url + '?Auth&ACAOrigin=' + host_info['HTTPS_ORIGIN'] + '&ignore',
|
||||||
false, 'STATUS401'
|
false, 'STATUS401'
|
||||||
|
@ -186,24 +158,13 @@ window.addEventListener('message', function(evt) {
|
||||||
true, SUCCESS
|
true, SUCCESS
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
var promises = [];
|
|
||||||
var serial_tests = [];
|
let counter = 0;
|
||||||
for (var i = 0; i < TEST_CASES.length ; ++i) {
|
for (let test of TEST_CASES) {
|
||||||
if (!TEST_CASES[i][3]) {
|
let result = await create_test_case_promise(test[0], test[1]);
|
||||||
promises.push(create_test_promise(TEST_CASES[i][0],
|
let testName = 'test ' + (++counter) + ': ' + test[0] + ' with credentials ' + test[1] + ' must be ' + test[2];
|
||||||
TEST_CASES[i][1],
|
port.postMessage({testName: testName, result: result === test[2]});
|
||||||
TEST_CASES[i][2]));
|
|
||||||
} else {
|
|
||||||
serial_tests.push(TEST_CASES[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
promises.push(create_serial_promise(serial_tests));
|
port.postMessage('done');
|
||||||
Promise.all(promises)
|
|
||||||
.then(function() {
|
|
||||||
port.postMessage({results: 'finish'});
|
|
||||||
})
|
|
||||||
.catch(function(e) {
|
|
||||||
port.postMessage({results: 'failure:' + e});
|
|
||||||
});
|
|
||||||
}, false);
|
}, false);
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,92 +1,101 @@
|
||||||
// META: title=StorageManager: estimate() for indexeddb
|
// META: title=StorageManager: estimate() for indexeddb
|
||||||
|
|
||||||
|
function indexedDbOpenRequest(t, dbname, upgrade_func) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const openRequest = indexedDB.open(dbname);
|
||||||
|
t.add_cleanup(() => {
|
||||||
|
indexedDbDeleteRequest(dbname);
|
||||||
|
});
|
||||||
|
|
||||||
|
openRequest.onerror = () => {
|
||||||
|
reject(openRequest.error);
|
||||||
|
};
|
||||||
|
openRequest.onsuccess = () => {
|
||||||
|
resolve(openRequest.result);
|
||||||
|
};
|
||||||
|
openRequest.onupgradeneeded = event => {
|
||||||
|
upgrade_func(openRequest.result);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function indexedDbDeleteRequest(name) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const deleteRequest = indexedDB.deleteDatabase(name);
|
||||||
|
deleteRequest.onerror = () => {
|
||||||
|
reject(deleteRequest.error);
|
||||||
|
};
|
||||||
|
deleteRequest.onsuccess = () => {
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function transactionPromise(txn) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
txn.onabort = () => {
|
||||||
|
reject(txn.error);
|
||||||
|
};
|
||||||
|
txn.oncomplete = () => {
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_true('estimate' in navigator.storage);
|
assert_true('estimate' in navigator.storage);
|
||||||
assert_equals(typeof navigator.storage.estimate, 'function');
|
assert_equals(typeof navigator.storage.estimate, 'function');
|
||||||
assert_true(navigator.storage.estimate() instanceof Promise);
|
assert_true(navigator.storage.estimate() instanceof Promise);
|
||||||
}, 'estimate() method exists and returns a Promise');
|
}, 'estimate() method exists and returns a Promise');
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
return navigator.storage.estimate().then(result => {
|
const estimate = await navigator.storage.estimate();
|
||||||
assert_true(typeof result === 'object');
|
assert_true(typeof estimate === 'object');
|
||||||
assert_true('usage' in result);
|
assert_true('usage' in estimate);
|
||||||
assert_equals(typeof result.usage, 'number');
|
assert_equals(typeof estimate.usage, 'number');
|
||||||
assert_true('quota' in result);
|
assert_true('quota' in estimate);
|
||||||
assert_equals(typeof result.quota, 'number');
|
assert_equals(typeof estimate.quota, 'number');
|
||||||
});
|
|
||||||
}, 'estimate() resolves to dictionary with members');
|
}, 'estimate() resolves to dictionary with members');
|
||||||
|
|
||||||
promise_test(t => {
|
promise_test(async t => {
|
||||||
const arraySize = 1e6;
|
const arraySize = 1e6;
|
||||||
const objectStoreName = "storageManager";
|
const objectStoreName = "storageManager";
|
||||||
const dbname = this.window ? window.location.pathname :
|
const dbname = this.window ? window.location.pathname :
|
||||||
"estimate-worker.https.html";
|
"estimate-worker.https.html";
|
||||||
|
|
||||||
let db;
|
await indexedDbDeleteRequest(dbname);
|
||||||
let usageBeforeCreate, usageAfterCreate, usageAfterPut;
|
let estimate = await navigator.storage.estimate();
|
||||||
|
|
||||||
function deleteDB(name) {
|
const usageBeforeCreate = estimate.usage;
|
||||||
return new Promise((resolve, reject) => {
|
const db = await indexedDbOpenRequest(t, dbname, (db_to_upgrade) => {
|
||||||
let deleteRequest = indexedDB.deleteDatabase(name);
|
db_to_upgrade.createObjectStore(objectStoreName);
|
||||||
deleteRequest.onerror = () => { reject(deleteRequest.error); };
|
});
|
||||||
deleteRequest.onsuccess = () => { resolve(); };
|
|
||||||
});
|
estimate = await navigator.storage.estimate();
|
||||||
|
const usageAfterCreate = estimate.usage;
|
||||||
|
|
||||||
|
assert_greater_than(
|
||||||
|
usageAfterCreate, usageBeforeCreate,
|
||||||
|
'estimated usage should increase after object store is created');
|
||||||
|
|
||||||
|
const txn = db.transaction(objectStoreName, 'readwrite');
|
||||||
|
const buffer = new ArrayBuffer(arraySize);
|
||||||
|
const view = new Uint8Array(buffer);
|
||||||
|
|
||||||
|
for (let i = 0; i < arraySize; i++) {
|
||||||
|
view[i] = Math.floor(Math.random() * 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
return deleteDB(dbname)
|
const testBlob = new Blob([buffer], {type: "binary/random"});
|
||||||
.then(() => {
|
txn.objectStore(objectStoreName).add(testBlob, 1);
|
||||||
return navigator.storage.estimate();
|
|
||||||
})
|
|
||||||
.then(estimate => {
|
|
||||||
usageBeforeCreate = estimate.usage;
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
let openRequest = indexedDB.open(dbname);
|
|
||||||
openRequest.onerror = () => { reject(openRequest.error); };
|
|
||||||
openRequest.onupgradeneeded = event => {
|
|
||||||
openRequest.result.createObjectStore(objectStoreName);
|
|
||||||
};
|
|
||||||
openRequest.onsuccess = () => { resolve(openRequest.result); };
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.then(connection => {
|
|
||||||
db = connection;
|
|
||||||
return navigator.storage.estimate();
|
|
||||||
})
|
|
||||||
.then(estimate => {
|
|
||||||
usageAfterCreate = estimate.usage;
|
|
||||||
assert_greater_than(
|
|
||||||
usageAfterCreate, usageBeforeCreate,
|
|
||||||
'estimated usage should increase after object store is created');
|
|
||||||
|
|
||||||
let txn = db.transaction(objectStoreName, 'readwrite');
|
await transactionPromise(txn);
|
||||||
let buffer = new ArrayBuffer(arraySize);
|
|
||||||
let view = new Uint8Array(buffer);
|
|
||||||
|
|
||||||
for (let i = 0; i < arraySize; i++) {
|
estimate = await navigator.storage.estimate();
|
||||||
view[i] = parseInt(Math.random() * 255);
|
const usageAfterPut = estimate.usage;
|
||||||
}
|
assert_greater_than(
|
||||||
|
usageAfterPut, usageAfterCreate,
|
||||||
|
'estimated usage should increase after large value is stored');
|
||||||
|
|
||||||
let testBlob = new Blob([buffer], {type: "binary/random"});
|
db.close();
|
||||||
txn.objectStore(objectStoreName).add(testBlob, 1);
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
txn.onabort = () => { reject(txn.error); };
|
|
||||||
txn.oncomplete = () => { resolve(); };
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
return navigator.storage.estimate();
|
|
||||||
})
|
|
||||||
.then(estimate => {
|
|
||||||
usageAfterPut = estimate.usage;
|
|
||||||
assert_greater_than(
|
|
||||||
usageAfterPut, usageAfterCreate,
|
|
||||||
'estimated usage should increase after large value is stored');
|
|
||||||
|
|
||||||
db.close();
|
|
||||||
return deleteDB(dbname);
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
t.done();
|
|
||||||
});
|
|
||||||
}, 'estimate() shows usage increase after large value is stored');
|
}, 'estimate() shows usage increase after large value is stored');
|
||||||
|
|
|
@ -17,6 +17,7 @@ test_valid_value("cx", "0", "0px");
|
||||||
test_valid_value("cx", "-1px");
|
test_valid_value("cx", "-1px");
|
||||||
test_valid_value("cx", "calc(2em + 3ex)");
|
test_valid_value("cx", "calc(2em + 3ex)");
|
||||||
test_valid_value("cx", "4%");
|
test_valid_value("cx", "4%");
|
||||||
|
test_valid_value("cx", "5ch");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 791 B After Width: | Height: | Size: 822 B |
|
@ -17,6 +17,7 @@ test_valid_value("cy", "0", "0px");
|
||||||
test_valid_value("cy", "-1px");
|
test_valid_value("cy", "-1px");
|
||||||
test_valid_value("cy", "calc(2em + 3ex)");
|
test_valid_value("cy", "calc(2em + 3ex)");
|
||||||
test_valid_value("cy", "4%");
|
test_valid_value("cy", "4%");
|
||||||
|
test_valid_value("cy", "5rem");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 791 B After Width: | Height: | Size: 823 B |
|
@ -19,6 +19,7 @@ test_valid_value("rx", "0", "0px");
|
||||||
test_valid_value("rx", "1px");
|
test_valid_value("rx", "1px");
|
||||||
test_valid_value("rx", "calc(2em + 3ex)");
|
test_valid_value("rx", "calc(2em + 3ex)");
|
||||||
test_valid_value("rx", "4%");
|
test_valid_value("rx", "4%");
|
||||||
|
test_valid_value("rx", "5vw");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 861 B |
|
@ -19,6 +19,7 @@ test_valid_value("rx", "0", "0px");
|
||||||
test_valid_value("rx", "1px");
|
test_valid_value("rx", "1px");
|
||||||
test_valid_value("rx", "calc(2em + 3ex)");
|
test_valid_value("rx", "calc(2em + 3ex)");
|
||||||
test_valid_value("rx", "4%");
|
test_valid_value("rx", "4%");
|
||||||
|
test_valid_value("rx", "5vh");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 861 B |
|
@ -17,6 +17,7 @@ test_valid_value("x", "0", "0px");
|
||||||
test_valid_value("x", "-1px");
|
test_valid_value("x", "-1px");
|
||||||
test_valid_value("x", "calc(2em + 3ex)");
|
test_valid_value("x", "calc(2em + 3ex)");
|
||||||
test_valid_value("x", "4%");
|
test_valid_value("x", "4%");
|
||||||
|
test_valid_value("x", "5cm");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 814 B |
|
@ -17,6 +17,7 @@ test_valid_value("y", "0", "0px");
|
||||||
test_valid_value("y", "-1px");
|
test_valid_value("y", "-1px");
|
||||||
test_valid_value("y", "calc(2em + 3ex)");
|
test_valid_value("y", "calc(2em + 3ex)");
|
||||||
test_valid_value("y", "4%");
|
test_valid_value("y", "4%");
|
||||||
|
test_valid_value("y", "5mm");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 814 B |
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().colorInterpolation</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#ColorInterpolationProperty"/>
|
||||||
|
<h:meta name="assert" content="color-interpolation computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("color-interpolation", "auto");
|
||||||
|
test_computed_value("color-interpolation", "srgb");
|
||||||
|
test_computed_value("color-interpolation", "linearrgb");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 827 B |
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().colorRendering</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#ColorRenderingProperty"/>
|
||||||
|
<h:meta name="assert" content="color-rendering computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("color-rendering", "auto");
|
||||||
|
test_computed_value("color-rendering", "optimizespeed");
|
||||||
|
test_computed_value("color-rendering", "optimizequality");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 818 B |
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().fill</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#FillProperty"/>
|
||||||
|
<h:meta name="assert" content="fill computed value is as specified, with url values absolute."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("fill", "none");
|
||||||
|
test_computed_value("fill", "rgb(12, 34, 56)");
|
||||||
|
|
||||||
|
test_computed_value("fill", 'url("https://example.com/")');
|
||||||
|
test_computed_value("fill", 'url("https://example.com/") none');
|
||||||
|
test_computed_value("fill", 'url("https://example.com/") rgb(12, 34, 56)');
|
||||||
|
|
||||||
|
// context-fill and context-stroke are not yet supported by browsers.
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style['fill'] = 'url("a.b#c")';
|
||||||
|
const result = getComputedStyle(target)['fill'];
|
||||||
|
const resolved = new URL("a.b#c", document.URL).href;
|
||||||
|
assert_equals(result, 'url("' + resolved + '")');
|
||||||
|
}, 'url values are made absolute');
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -2,7 +2,7 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
width="800px" height="800px">
|
width="800px" height="800px">
|
||||||
<title>SVG Geometry Properties: getComputedValue().fillOpacity</title>
|
<title>SVG Painting: getComputedValue().fillOpacity</title>
|
||||||
<metadata>
|
<metadata>
|
||||||
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#FillOpacity"/>
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#FillOpacity"/>
|
||||||
<h:meta name="assert" content="fill-opacity computed value is clamped to the range [0,1]."/>
|
<h:meta name="assert" content="fill-opacity computed value is clamped to the range [0,1]."/>
|
||||||
|
|
Before Width: | Height: | Size: 801 B After Width: | Height: | Size: 790 B |
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().fillRule</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#FillRuleProperty"/>
|
||||||
|
<h:meta name="assert" content="fill-rule computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("fill-rule", "nonzero");
|
||||||
|
test_computed_value("fill-rule", "evenodd");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 726 B |
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().imageRendering</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#ImageRenderingProperty"/>
|
||||||
|
<h:meta name="assert" content="image-rendering computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("image-rendering", "auto");
|
||||||
|
test_computed_value("image-rendering", "optimizequality");
|
||||||
|
test_computed_value("image-rendering", "optimizespeed");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 818 B |
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().MarkerEnd</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#MarkerEndProperty"/>
|
||||||
|
<h:meta name="assert" content="marker-end computed value is as specified, with url values absolute."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("marker-end", "none");
|
||||||
|
test_computed_value("marker-end", 'url("https://example.com/")');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style['marker-end'] = 'url("a.b#c")';
|
||||||
|
const result = getComputedStyle(target)['marker-end'];
|
||||||
|
const resolved = new URL("a.b#c", document.URL).href;
|
||||||
|
assert_equals(result, 'url("' + resolved + '")');
|
||||||
|
}, 'url values are made absolute');
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().markerMid</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#MarkerMidProperty"/>
|
||||||
|
<h:meta name="assert" content="marker-mid computed value is as specified, with url values absolute."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("marker-mid", "none");
|
||||||
|
test_computed_value("marker-mid", 'url("https://example.com/")');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style['marker-mid'] = 'url("a.b#c")';
|
||||||
|
const result = getComputedStyle(target)['marker-mid'];
|
||||||
|
const resolved = new URL("a.b#c", document.URL).href;
|
||||||
|
assert_equals(result, 'url("' + resolved + '")');
|
||||||
|
}, 'url values are made absolute');
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().markerStart</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#MarkerStartProperty"/>
|
||||||
|
<h:meta name="assert" content="marker-start computed value is as specified, with url values absolute."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("marker-start", "none");
|
||||||
|
test_computed_value("marker-start", 'url("https://example.com/")');
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style['marker-start'] = 'url("a.b#c")';
|
||||||
|
const result = getComputedStyle(target)['marker-start'];
|
||||||
|
const resolved = new URL("a.b#c", document.URL).href;
|
||||||
|
assert_equals(result, 'url("' + resolved + '")');
|
||||||
|
}, 'url values are made absolute');
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().paintOrder</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#PaintOrderProperty"/>
|
||||||
|
<h:meta name="assert" content="paint-order computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("paint-order", "normal");
|
||||||
|
|
||||||
|
test_computed_value("paint-order", "fill");
|
||||||
|
test_computed_value("paint-order", "stroke");
|
||||||
|
test_computed_value("paint-order", "markers");
|
||||||
|
|
||||||
|
test_computed_value("paint-order", "fill stroke", "fill");
|
||||||
|
test_computed_value("paint-order", "fill markers");
|
||||||
|
test_computed_value("paint-order", "stroke fill", "stroke");
|
||||||
|
test_computed_value("paint-order", "stroke markers");
|
||||||
|
test_computed_value("paint-order", "markers fill", "markers");
|
||||||
|
test_computed_value("paint-order", "markers stroke");
|
||||||
|
|
||||||
|
test_computed_value("paint-order", "fill stroke markers", "fill");
|
||||||
|
test_computed_value("paint-order", "fill markers stroke", "fill markers");
|
||||||
|
test_computed_value("paint-order", "stroke fill markers", "stroke");
|
||||||
|
test_computed_value("paint-order", "stroke markers fill", "stroke markers");
|
||||||
|
test_computed_value("paint-order", "markers fill stroke", "markers");
|
||||||
|
test_computed_value("paint-order", "markers stroke fill", "markers stroke");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().shapeRendering</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#ShapeRenderingProperty"/>
|
||||||
|
<h:meta name="assert" content="shape-rendering computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("shape-rendering", "auto");
|
||||||
|
test_computed_value("shape-rendering", "optimizespeed");
|
||||||
|
test_computed_value("shape-rendering", "crispedges");
|
||||||
|
test_computed_value("shape-rendering", "geometricprecision");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 875 B |
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().stroke</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke computed value is as specified, with url values absolute."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke", "none");
|
||||||
|
test_computed_value("stroke", "rgb(12, 34, 56)");
|
||||||
|
|
||||||
|
test_computed_value("stroke", 'url("https://example.com/")');
|
||||||
|
test_computed_value("stroke", 'url("https://example.com/") none');
|
||||||
|
test_computed_value("stroke", 'url("https://example.com/") rgb(12, 34, 56)');
|
||||||
|
|
||||||
|
// context-fill and context-stroke are not yet supported by browsers.
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style['stroke'] = 'url("a.b#c")';
|
||||||
|
const result = getComputedStyle(target)['stroke'];
|
||||||
|
const resolved = new URL("a.b#c", document.URL).href;
|
||||||
|
assert_equals(result, 'url("' + resolved + '")');
|
||||||
|
}, 'url values are made absolute');
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,33 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().strokeDasharray</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeDasharrayProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke-dasharray computed value uses absolute lengths."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<style>
|
||||||
|
#target {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke-dasharray", "none");
|
||||||
|
|
||||||
|
test_computed_value("stroke-dasharray", "10", "10px");
|
||||||
|
test_computed_value("stroke-dasharray", "calc(10px + 0.5em)", "30px");
|
||||||
|
test_computed_value("stroke-dasharray", "calc(10px - 0.5em)", "0px");
|
||||||
|
test_computed_value("stroke-dasharray", "40%");
|
||||||
|
test_computed_value("stroke-dasharray", "calc(50% + 60px)");
|
||||||
|
|
||||||
|
test_computed_value("stroke-dasharray", "10px 20% 30px", "10px, 20%, 30px");
|
||||||
|
test_computed_value("stroke-dasharray", "0, 5", "0px, 5px");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -20,7 +20,8 @@ test_valid_value("stroke-dasharray", "10px");
|
||||||
test_valid_value("stroke-dasharray", "20%");
|
test_valid_value("stroke-dasharray", "20%");
|
||||||
test_valid_value("stroke-dasharray", "calc(2em + 3ex)");
|
test_valid_value("stroke-dasharray", "calc(2em + 3ex)");
|
||||||
|
|
||||||
test_valid_value("stroke-dasharray", "10px, 20%, 30px");
|
test_valid_value("stroke-dasharray", "10pt 20% 30pc 40in", "10pt, 20%, 30pc, 40in");
|
||||||
|
test_valid_value("stroke-dasharray", "10vmin, 20vmax, 30em, 40ex");
|
||||||
test_valid_value("stroke-dasharray", "0, 5", ["0, 5", "0px, 5px"]); // Edge/Safari serialize numbers as lengths.
|
test_valid_value("stroke-dasharray", "0, 5", ["0, 5", "0px, 5px"]); // Edge/Safari serialize numbers as lengths.
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
|
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().strokeDashoffset</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeDashoffsetProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke-dashoffset computed value is absolute length."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<style>
|
||||||
|
#target {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke-dashoffset", "10", "10px");
|
||||||
|
test_computed_value("stroke-dashoffset", "0.5em", "20px");
|
||||||
|
test_computed_value("stroke-dashoffset", "calc(10px + 0.5em)", "30px");
|
||||||
|
test_computed_value("stroke-dashoffset", "calc(10px - 0.5em)", "-10px");
|
||||||
|
test_computed_value("stroke-dashoffset", "-40%");
|
||||||
|
test_computed_value("stroke-dashoffset", "calc(50% + 60px)");
|
||||||
|
|
||||||
|
// https://www.w3.org/TR/css-values-3/#absolute-lengths
|
||||||
|
test_computed_value("stroke-dashoffset", "254cm", "9600px");
|
||||||
|
test_computed_value("stroke-dashoffset", "2540mm", "9600px");
|
||||||
|
test_computed_value("stroke-dashoffset", "10160Q", "9600px");
|
||||||
|
test_computed_value("stroke-dashoffset", "1in", "96px");
|
||||||
|
test_computed_value("stroke-dashoffset", "6pc", "96px");
|
||||||
|
test_computed_value("stroke-dashoffset", "72pt", "96px");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -17,6 +17,7 @@ test_valid_value("stroke-dashoffset", "0");
|
||||||
test_valid_value("stroke-dashoffset", "10px");
|
test_valid_value("stroke-dashoffset", "10px");
|
||||||
test_valid_value("stroke-dashoffset", "-20%");
|
test_valid_value("stroke-dashoffset", "-20%");
|
||||||
test_valid_value("stroke-dashoffset", "30");
|
test_valid_value("stroke-dashoffset", "30");
|
||||||
|
test_valid_value("stroke-dashoffset", "40Q", "40q");
|
||||||
test_valid_value("stroke-dashoffset", "calc(2em + 3ex)");
|
test_valid_value("stroke-dashoffset", "calc(2em + 3ex)");
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
|
|
Before Width: | Height: | Size: 922 B After Width: | Height: | Size: 975 B |
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().strokeLinecap</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeLinecapProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke-linecap computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke-linecap", "butt");
|
||||||
|
test_computed_value("stroke-linecap", "round");
|
||||||
|
test_computed_value("stroke-linecap", "square");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 795 B |
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().strokeLinejoin</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeLinejoinProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke-linejoin computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke-linejoin", "miter");
|
||||||
|
test_computed_value("stroke-linejoin", "round");
|
||||||
|
test_computed_value("stroke-linejoin", "bevel");
|
||||||
|
// "miter-clip" and "arcs" are not yet supported by browsers.
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 863 B |
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().strokeMiterlimit</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeMiterlimitProperty"/>
|
||||||
|
<h:meta name="assert" content="stroke-miterlimit computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("stroke-miterlimit", "0");
|
||||||
|
test_computed_value("stroke-miterlimit", "0.5");
|
||||||
|
test_computed_value("stroke-miterlimit", "1");
|
||||||
|
test_computed_value("stroke-miterlimit", "7.5");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 852 B |
|
@ -2,7 +2,7 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
width="800px" height="800px">
|
width="800px" height="800px">
|
||||||
<title>SVG Geometry Properties: getComputedValue().strokeOpacity</title>
|
<title>SVG Painting: getComputedValue().strokeOpacity</title>
|
||||||
<metadata>
|
<metadata>
|
||||||
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeOpacityProperty"/>
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeOpacityProperty"/>
|
||||||
<h:meta name="assert" content="stroke-opacity computed value is clamped to the range [0,1]."/>
|
<h:meta name="assert" content="stroke-opacity computed value is clamped to the range [0,1]."/>
|
||||||
|
|
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 810 B |
|
@ -2,13 +2,15 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:h="http://www.w3.org/1999/xhtml"
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
width="800px" height="800px">
|
width="800px" height="800px">
|
||||||
<title>SVG Geometry Properties: getComputedValue().strokeWidth</title>
|
<title>SVG Painting: getComputedValue().strokeWidth</title>
|
||||||
<metadata>
|
<metadata>
|
||||||
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeWidth"/>
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#StrokeWidth"/>
|
||||||
|
<h:meta name="assert" content="stroke-width computed value is absolute length."/>
|
||||||
</metadata>
|
</metadata>
|
||||||
<g id="target"></g>
|
<g id="target"></g>
|
||||||
|
<g id="ref"></g>
|
||||||
<style>
|
<style>
|
||||||
#target {
|
#target, #ref {
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -23,5 +25,36 @@ test_computed_value("stroke-width", "calc(10px - 0.5em)", "0px");
|
||||||
test_computed_value("stroke-width", "40%");
|
test_computed_value("stroke-width", "40%");
|
||||||
test_computed_value("stroke-width", "calc(50% + 60px)");
|
test_computed_value("stroke-width", "calc(50% + 60px)");
|
||||||
|
|
||||||
|
const lengthUnits = [
|
||||||
|
'em',
|
||||||
|
'ex',
|
||||||
|
'ch',
|
||||||
|
'rem',
|
||||||
|
'vw',
|
||||||
|
'vh',
|
||||||
|
'vmin',
|
||||||
|
'vmax',
|
||||||
|
'cm',
|
||||||
|
'mm',
|
||||||
|
'Q',
|
||||||
|
'in',
|
||||||
|
'pt',
|
||||||
|
'pc',
|
||||||
|
'px'
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let lengthUnit of lengthUnits) {
|
||||||
|
const length = '987' + lengthUnit;
|
||||||
|
test(() => {
|
||||||
|
const target = document.getElementById('target');
|
||||||
|
target.style.strokeWidth = length;
|
||||||
|
|
||||||
|
const ref = document.getElementById('ref');
|
||||||
|
ref.style.wordSpacing = length;
|
||||||
|
|
||||||
|
assert_equals(getComputedStyle(target).strokeWidth, getComputedStyle(ref).wordSpacing);
|
||||||
|
}, 'stroke-width computes ' + lengthUnit + ' lengths');
|
||||||
|
}
|
||||||
|
|
||||||
]]></script>
|
]]></script>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 914 B After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:h="http://www.w3.org/1999/xhtml"
|
||||||
|
width="800px" height="800px">
|
||||||
|
<title>SVG Painting: getComputedValue().textRendering</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/painting.html#TextRenderingProperty"/>
|
||||||
|
<h:meta name="assert" content="text-rendering computed value is as specified."/>
|
||||||
|
</metadata>
|
||||||
|
<g id="target"></g>
|
||||||
|
<h:script src="/resources/testharness.js"/>
|
||||||
|
<h:script src="/resources/testharnessreport.js"/>
|
||||||
|
<h:script src="/css/support/computed-testcommon.js"/>
|
||||||
|
<script><![CDATA[
|
||||||
|
|
||||||
|
test_computed_value("text-rendering", "auto");
|
||||||
|
test_computed_value("text-rendering", "optimizespeed");
|
||||||
|
test_computed_value("text-rendering", "optimizelegibility");
|
||||||
|
test_computed_value("text-rendering", "geometricprecision");
|
||||||
|
|
||||||
|
]]></script>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 876 B |
|
@ -133,6 +133,7 @@ class SauceConnect():
|
||||||
self.sauce_key = kwargs["sauce_key"]
|
self.sauce_key = kwargs["sauce_key"]
|
||||||
self.sauce_tunnel_id = kwargs["sauce_tunnel_id"]
|
self.sauce_tunnel_id = kwargs["sauce_tunnel_id"]
|
||||||
self.sauce_connect_binary = kwargs.get("sauce_connect_binary")
|
self.sauce_connect_binary = kwargs.get("sauce_connect_binary")
|
||||||
|
self.sauce_connect_args = kwargs.get("sauce_connect_args")
|
||||||
self.sauce_init_timeout = kwargs.get("sauce_init_timeout")
|
self.sauce_init_timeout = kwargs.get("sauce_init_timeout")
|
||||||
self.sc_process = None
|
self.sc_process = None
|
||||||
self.temp_dir = None
|
self.temp_dir = None
|
||||||
|
@ -171,7 +172,7 @@ class SauceConnect():
|
||||||
"--readyfile=./sauce_is_ready",
|
"--readyfile=./sauce_is_ready",
|
||||||
"--tunnel-domains",
|
"--tunnel-domains",
|
||||||
",".join(self.env_config.domains_set)
|
",".join(self.env_config.domains_set)
|
||||||
])
|
] + self.sauce_connect_args)
|
||||||
|
|
||||||
tot_wait = 0
|
tot_wait = 0
|
||||||
while not os.path.exists('./sauce_is_ready') and self.sc_process.poll() is None:
|
while not os.path.exists('./sauce_is_ready') and self.sc_process.poll() is None:
|
||||||
|
|
|
@ -25,7 +25,8 @@ def test_sauceconnect_success():
|
||||||
sauce_user="aaa",
|
sauce_user="aaa",
|
||||||
sauce_key="bbb",
|
sauce_key="bbb",
|
||||||
sauce_tunnel_id="ccc",
|
sauce_tunnel_id="ccc",
|
||||||
sauce_connect_binary="ddd")
|
sauce_connect_binary="ddd",
|
||||||
|
sauce_connect_args=[])
|
||||||
|
|
||||||
with ConfigBuilder(browser_host="example.net") as env_config:
|
with ConfigBuilder(browser_host="example.net") as env_config:
|
||||||
sauce_connect(None, env_config)
|
sauce_connect(None, env_config)
|
||||||
|
@ -54,7 +55,8 @@ def test_sauceconnect_failure_exit(readyfile, returncode):
|
||||||
sauce_user="aaa",
|
sauce_user="aaa",
|
||||||
sauce_key="bbb",
|
sauce_key="bbb",
|
||||||
sauce_tunnel_id="ccc",
|
sauce_tunnel_id="ccc",
|
||||||
sauce_connect_binary="ddd")
|
sauce_connect_binary="ddd",
|
||||||
|
sauce_connect_args=[])
|
||||||
|
|
||||||
with ConfigBuilder(browser_host="example.net") as env_config:
|
with ConfigBuilder(browser_host="example.net") as env_config:
|
||||||
sauce_connect(None, env_config)
|
sauce_connect(None, env_config)
|
||||||
|
@ -82,7 +84,8 @@ def test_sauceconnect_cleanup():
|
||||||
sauce_user="aaa",
|
sauce_user="aaa",
|
||||||
sauce_key="bbb",
|
sauce_key="bbb",
|
||||||
sauce_tunnel_id="ccc",
|
sauce_tunnel_id="ccc",
|
||||||
sauce_connect_binary="ddd")
|
sauce_connect_binary="ddd",
|
||||||
|
sauce_connect_args=[])
|
||||||
|
|
||||||
with ConfigBuilder(browser_host="example.net") as env_config:
|
with ConfigBuilder(browser_host="example.net") as env_config:
|
||||||
sauce_connect(None, env_config)
|
sauce_connect(None, env_config)
|
||||||
|
@ -106,7 +109,8 @@ def test_sauceconnect_failure_never_ready():
|
||||||
sauce_user="aaa",
|
sauce_user="aaa",
|
||||||
sauce_key="bbb",
|
sauce_key="bbb",
|
||||||
sauce_tunnel_id="ccc",
|
sauce_tunnel_id="ccc",
|
||||||
sauce_connect_binary="ddd")
|
sauce_connect_binary="ddd",
|
||||||
|
sauce_connect_args=[])
|
||||||
|
|
||||||
with ConfigBuilder(browser_host="example.net") as env_config:
|
with ConfigBuilder(browser_host="example.net") as env_config:
|
||||||
sauce_connect(None, env_config)
|
sauce_connect(None, env_config)
|
||||||
|
@ -134,7 +138,8 @@ def test_sauceconnect_tunnel_domains():
|
||||||
sauce_user="aaa",
|
sauce_user="aaa",
|
||||||
sauce_key="bbb",
|
sauce_key="bbb",
|
||||||
sauce_tunnel_id="ccc",
|
sauce_tunnel_id="ccc",
|
||||||
sauce_connect_binary="ddd")
|
sauce_connect_binary="ddd",
|
||||||
|
sauce_connect_args=[])
|
||||||
|
|
||||||
with ConfigBuilder(browser_host="example.net",
|
with ConfigBuilder(browser_host="example.net",
|
||||||
alternate_hosts={"alt": "example.org"},
|
alternate_hosts={"alt": "example.org"},
|
||||||
|
|
|
@ -302,6 +302,10 @@ scheme host and port.""")
|
||||||
help="Number of seconds to wait for Sauce "
|
help="Number of seconds to wait for Sauce "
|
||||||
"Connect tunnel to be available before "
|
"Connect tunnel to be available before "
|
||||||
"aborting")
|
"aborting")
|
||||||
|
sauce_group.add_argument("--sauce-connect-arg", action="append",
|
||||||
|
default=[], dest="sauce_connect_args",
|
||||||
|
help="Command-line argument to forward to the "
|
||||||
|
"Sauce Connect binary (repeatable)")
|
||||||
|
|
||||||
webkit_group = parser.add_argument_group("WebKit-specific")
|
webkit_group = parser.add_argument_group("WebKit-specific")
|
||||||
webkit_group.add_argument("--webkit-port", dest="webkit_port",
|
webkit_group.add_argument("--webkit-port", dest="webkit_port",
|
||||||
|
|
|
@ -284,6 +284,8 @@ def run_tests(config, test_paths, product, **kwargs):
|
||||||
logger.suite_end()
|
logger.suite_end()
|
||||||
if repeat_until_unexpected and unexpected_total > 0:
|
if repeat_until_unexpected and unexpected_total > 0:
|
||||||
break
|
break
|
||||||
|
if len(test_loader.test_ids) == skipped_tests:
|
||||||
|
break
|
||||||
|
|
||||||
if test_total == 0:
|
if test_total == 0:
|
||||||
if skipped_tests > 0:
|
if skipped_tests > 0:
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
|
<body>
|
||||||
|
<div id="container"></div>
|
||||||
|
<script>
|
||||||
|
var container = document.querySelector('#container');
|
||||||
|
|
||||||
|
// Trusted Type assignments do not throw.
|
||||||
|
async_test(t => {
|
||||||
|
window.onclickTest = t.step_func_done();
|
||||||
|
let policy = createScript_policy(window, 'onclick');
|
||||||
|
let script = policy.createScript("window.onclickTest();");
|
||||||
|
|
||||||
|
let el = document.createElement('a');
|
||||||
|
el.setAttribute('onclick', script);
|
||||||
|
container.appendChild(el);
|
||||||
|
el.click();
|
||||||
|
}, "a.onclick assigned via policy (successful Script transformation).");
|
||||||
|
</script>
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
// No name given test
|
||||||
|
test(t => {
|
||||||
|
assert_throws(new TypeError(),
|
||||||
|
() => window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } ),
|
||||||
|
"createPolicy with an empty trusted-types CSP directive");
|
||||||
|
}, "No name list given - policy creation fails.");
|
||||||
|
</script>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test(t => {
|
||||||
|
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
||||||
|
assert_equals(policy.name, 'SomeName');
|
||||||
|
}, "CSP supports wildcards.");
|
||||||
|
</script>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types SomeName JustOneMoreName">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
// Whitelisted name test
|
||||||
|
test(t => {
|
||||||
|
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
||||||
|
assert_equals(policy.name, 'SomeName');
|
||||||
|
}, "Whitelisted policy creation works.");
|
||||||
|
|
||||||
|
// Another whitelisted name test
|
||||||
|
test(t => {
|
||||||
|
let policy = window.TrustedTypes.createPolicy('JustOneMoreName', { createHTML: s => s } );
|
||||||
|
assert_equals(policy.name, 'JustOneMoreName');
|
||||||
|
}, "Another whitelisted policy creation works.");
|
||||||
|
|
||||||
|
// Non-whitelisted names test
|
||||||
|
test(t => {
|
||||||
|
assert_throws(new TypeError(), _ => {
|
||||||
|
window.TrustedTypes.createPolicy('SomeOtherName', { createURL: s => s } );
|
||||||
|
});
|
||||||
|
}, "Non-whitelisted policy creation throws.");
|
||||||
|
</script>
|
|
@ -0,0 +1,119 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test(t => {
|
||||||
|
const p1 = TrustedTypes.createPolicy("policyHTMLAndScript", {
|
||||||
|
createHTML: s => s,
|
||||||
|
createScript: s => s
|
||||||
|
});
|
||||||
|
assert_throws(new TypeError(), _ => { p1.createScriptURL("foo"); });
|
||||||
|
assert_throws(new TypeError(), _ => { p1.createURL("foo"); });
|
||||||
|
|
||||||
|
const p2 = TrustedTypes.createPolicy("policyURLAndScriptURL", {
|
||||||
|
createURL: s => s,
|
||||||
|
createScriptURL: s => s
|
||||||
|
});
|
||||||
|
assert_throws(new TypeError(), _ => { p2.createHTML("foo"); });
|
||||||
|
assert_throws(new TypeError(), _ => { p2.createScript("foo"); });
|
||||||
|
}, "calling undefined callbacks throws");
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
const noopPolicy = {
|
||||||
|
createHTML: (s) => s,
|
||||||
|
createScriptURL: (s) => s,
|
||||||
|
createURL: (s) => s,
|
||||||
|
createScript: (s) => s,
|
||||||
|
};
|
||||||
|
policy = TrustedTypes.createPolicy(Math.random(), noopPolicy, true);
|
||||||
|
let el = document.createElement("div");
|
||||||
|
|
||||||
|
el.title = policy.createHTML(INPUTS.URL);
|
||||||
|
assert_equals(el.title, INPUTS.URL);
|
||||||
|
|
||||||
|
el.title = policy.createURL(INPUTS.HTML);
|
||||||
|
assert_equals(el.title, "");
|
||||||
|
}, "Attributes without type constraints will work as before.");
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
const policy = TrustedTypes.createPolicy("nullpolicy", null);
|
||||||
|
assert_throws(new TypeError(), _ => { policy.createScriptURL("foo"); });
|
||||||
|
assert_throws(new TypeError(), _ => { policy.createURL("foo"); });
|
||||||
|
assert_throws(new TypeError(), _ => { policy.createHTML("foo"); });
|
||||||
|
assert_throws(new TypeError(), _ => { policy.createScript("foo"); });
|
||||||
|
}, "TrustedTypes.createPolicy(.., null) creates empty policy.");
|
||||||
|
|
||||||
|
|
||||||
|
// testCases contains a list of policy functions and expected results (when
|
||||||
|
// called with a given default argument). They also use various helper
|
||||||
|
// variables (declared just below) to test side effects or interactions of
|
||||||
|
// global vars/functions with policy callbacks.
|
||||||
|
let aGlobalVarForSideEffectTesting = "global";
|
||||||
|
var aGlobalObject = { "foo": "well," };
|
||||||
|
function aGlobalFunction(s) { return this.foo + " " + s; }
|
||||||
|
function anotherGlobalFunction(s) { return s + "#" + this.foo; }
|
||||||
|
var foo = "a global var named foo";
|
||||||
|
|
||||||
|
const stringTestCases = [
|
||||||
|
[ s => s, "whatever" ],
|
||||||
|
[ s => null, "null" ],
|
||||||
|
[ s => "well, " + s, "well, whatever" ],
|
||||||
|
[ s => { throw new Error() }, new Error() ],
|
||||||
|
[ s => { aGlobalVarForSideEffectTesting = s; return s }, "whatever" ],
|
||||||
|
[ s => aGlobalVarForSideEffectTesting + s, "whateverwhatever" ],
|
||||||
|
[ aGlobalFunction.bind(aGlobalObject), "well, whatever" ],
|
||||||
|
[ s => aGlobalFunction(s), "a global var named foo whatever" ],
|
||||||
|
];
|
||||||
|
|
||||||
|
const urlTestCases = [
|
||||||
|
[ s => s, INPUTS.SCRIPTURL ],
|
||||||
|
[ s => null, "" ],
|
||||||
|
[ s => s + "#duck", INPUTS.SCRIPTURL + "#duck" ],
|
||||||
|
[ s => { throw new Error() }, new Error() ],
|
||||||
|
[ s => s + "#" + aGlobalVarForSideEffectTesting,
|
||||||
|
INPUTS.SCRIPTURL + "#global" ],
|
||||||
|
[ anotherGlobalFunction.bind(aGlobalObject), INPUTS.SCRIPTURL + "#well," ],
|
||||||
|
[ s => anotherGlobalFunction(s),
|
||||||
|
INPUTS.SCRIPTURL + "#a%20global%20var%20named%20foo" ],
|
||||||
|
];
|
||||||
|
|
||||||
|
function policyBuilder(trustedMethodName, trustedType, defaultArg) {
|
||||||
|
return function(name, fn) {
|
||||||
|
let options = {};
|
||||||
|
options[trustedMethodName] = fn;
|
||||||
|
let policy = window.TrustedTypes.createPolicy(name, options);
|
||||||
|
let result = policy[trustedMethodName](defaultArg);
|
||||||
|
assert_true(result instanceof trustedType);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const testCases = [
|
||||||
|
[TrustedHTML, "createHTML", "whatever", stringTestCases],
|
||||||
|
[TrustedScript, "createScript", "whatever", stringTestCases],
|
||||||
|
[TrustedURL, "createURL", INPUTS.SCRIPTURL, urlTestCases],
|
||||||
|
[TrustedScriptURL, "createScriptURL", INPUTS.SCRIPTURL, urlTestCases],
|
||||||
|
];
|
||||||
|
|
||||||
|
// Iterate over all trusted types, iterate over all test cases.
|
||||||
|
// For each, build the suitable policy and check the result.
|
||||||
|
for (let [trusted_class, trusted_method, default_arg, test_cases] of testCases) {
|
||||||
|
aGlobalVarForSideEffectTesting = "global";
|
||||||
|
let builder = policyBuilder(trusted_method, trusted_class, default_arg);
|
||||||
|
for (let [index, [policy_fn, value]] of test_cases.entries()) {
|
||||||
|
let subtest_name = "TestPolicy" + trusted_class.name + index;
|
||||||
|
test(t => {
|
||||||
|
if (value instanceof Error) {
|
||||||
|
assert_throws(value, () => builder(subtest_name, policy_fn));
|
||||||
|
} else {
|
||||||
|
assert_equals("" + builder(subtest_name, policy_fn), value);
|
||||||
|
}
|
||||||
|
}, subtest_name + " (" + trusted_class.name + ": " +
|
||||||
|
policy_fn.toString() + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
// Not exposed policy test
|
||||||
|
test(t => {
|
||||||
|
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
||||||
|
assert_equals(window.TrustedTypes.getExposedPolicy('SomeName'), null);
|
||||||
|
}, "Null is returned when policy is not exposed - by default");
|
||||||
|
|
||||||
|
// Non-existent policy test
|
||||||
|
test(t => {
|
||||||
|
assert_equals(window.TrustedTypes.getExposedPolicy('JustAName'), null);
|
||||||
|
}, "Null is returned when policy is non-existent.");
|
||||||
|
|
||||||
|
// Exposed policy test
|
||||||
|
test(t => {
|
||||||
|
let policy = window.TrustedTypes.createPolicy('SomeOtherName', { createHTML: s => s }, true );
|
||||||
|
assert_equals(window.TrustedTypes.getExposedPolicy('SomeOtherName'), policy);
|
||||||
|
}, "Policy is returned when exposed == true.");
|
||||||
|
</script>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js" ></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
// Policy name test
|
||||||
|
test(t => {
|
||||||
|
let policy = TrustedTypes.createPolicy('hidden', { createHTML: s => s }, false );
|
||||||
|
assert_true(policy instanceof TrustedTypePolicy);
|
||||||
|
assert_equals(policy.name, 'hidden');
|
||||||
|
}, "policy.name = name");
|
||||||
|
|
||||||
|
// Duplicate names test
|
||||||
|
test(t => {
|
||||||
|
assert_throws(new TypeError(), _ => {
|
||||||
|
TrustedTypes.createPolicy('hidden', { createURL: s => s } );
|
||||||
|
});
|
||||||
|
}, "duplicate policy name attempt throws");
|
||||||
|
|
||||||
|
// Retrieve policy names tests
|
||||||
|
test(t => {
|
||||||
|
let policy = TrustedTypes.createPolicy('exposed', { createURL: s => s }, true );
|
||||||
|
let names = TrustedTypes.getPolicyNames();
|
||||||
|
assert_equals(names.length, 2);
|
||||||
|
assert_true(names.includes('hidden'));
|
||||||
|
assert_true(names.includes('exposed'));
|
||||||
|
}, "getPolicyNames returns all policy names");
|
||||||
|
</script>
|
|
@ -2,23 +2,26 @@
|
||||||
<script src="/resources/testharness.js" ></script>
|
<script src="/resources/testharness.js" ></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="support/helper.sub.js"></script>
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
<meta http-equiv="Content-Security-Policy" content="trusted-types SomeName JustOneMoreName">
|
<meta http-equiv="Content-Security-Policy" content="trusted-types SomeName JustOneMoreName">
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
//Whitelisted name test
|
// Whitelisted name test
|
||||||
test(t => {
|
test(t => {
|
||||||
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
||||||
assert_equals(policy.name, 'SomeName');
|
assert_equals(policy.name, 'SomeName');
|
||||||
}, "Whitelisted policy creation works");
|
}, "Whitelisted policy creation works.");
|
||||||
//Another whitelisted name test
|
|
||||||
|
// Another whitelisted name test
|
||||||
test(t => {
|
test(t => {
|
||||||
let policy = window.TrustedTypes.createPolicy('JustOneMoreName', { createHTML: s => s } );
|
let policy = window.TrustedTypes.createPolicy('JustOneMoreName', { createHTML: s => s } );
|
||||||
assert_equals(policy.name, 'JustOneMoreName');
|
assert_equals(policy.name, 'JustOneMoreName');
|
||||||
}, "Another whitelisted policy creation works");
|
}, "Another whitelisted policy creation works.");
|
||||||
//Non-whitelisted names test
|
|
||||||
|
// Non-whitelisted names test
|
||||||
test(t => {
|
test(t => {
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
window.TrustedTypes.createPolicy('SomeOtherName', { createURL: s => s } );
|
window.TrustedTypes.createPolicy('SomeOtherName', { createURL: s => s } );
|
||||||
});
|
});
|
||||||
}, "Non-whitelisted policy creation throws");
|
}, "Non-whitelisted policy creation throws.");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -2,23 +2,25 @@
|
||||||
<script src="/resources/testharness.js" ></script>
|
<script src="/resources/testharness.js" ></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
<script src="support/helper.sub.js"></script>
|
<script src="support/helper.sub.js"></script>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="trusted-types *">
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
//Not exposed policy test
|
// Not exposed policy test
|
||||||
test(t => {
|
test(t => {
|
||||||
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
let policy = window.TrustedTypes.createPolicy('SomeName', { createHTML: s => s } );
|
||||||
assert_equals(window.TrustedTypes.getExposedPolicy('SomeName'), null);
|
assert_equals(window.TrustedTypes.getExposedPolicy('SomeName'), null);
|
||||||
}, "Null is returned when policy is not exposed");
|
}, "Null is returned when policy is not exposed - by default");
|
||||||
|
|
||||||
//Non-existent policy test
|
// Non-existent policy test
|
||||||
test(t => {
|
test(t => {
|
||||||
let policy = window.TrustedTypes.createPolicy('SomeOtherName', { createHTML: s => s } );
|
let policy = window.TrustedTypes.createPolicy('SomeOtherName', { createHTML: s => s } );
|
||||||
assert_equals(window.TrustedTypes.getExposedPolicy('JustAName'), null);
|
assert_equals(window.TrustedTypes.getExposedPolicy('JustAName'), null);
|
||||||
}, "Null is returned when policy is non-existent");
|
}, "Null is returned when policy is non-existent.");
|
||||||
|
|
||||||
//Exposed policy test
|
// Exposed policy test
|
||||||
test(t => {
|
test(t => {
|
||||||
let policy = window.TrustedTypes.createPolicy('EvenSomeOtherName', { createHTML: s => s }, true );
|
let policy = window.TrustedTypes.createPolicy('EvenSomeOtherName', { createHTML: s => s }, true );
|
||||||
assert_equals(window.TrustedTypes.getExposedPolicy('EvenSomeOtherName'), policy);
|
assert_equals(window.TrustedTypes.getExposedPolicy('EvenSomeOtherName'), policy);
|
||||||
}, "Policy is returned when exposed == true");
|
}, "Policy is returned when exposed == true.");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -9,8 +9,9 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
// TrustedHTML assignments do not throw.
|
// TrustedURL assignments do not throw.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
document.body.innerText = '';
|
||||||
let p = createHTML_policy(window, 1);
|
let p = createHTML_policy(window, 1);
|
||||||
let html = p.createHTML(INPUTS.HTML);
|
let html = p.createHTML(INPUTS.HTML);
|
||||||
document.write(html);
|
document.write(html);
|
||||||
|
@ -19,15 +20,19 @@
|
||||||
|
|
||||||
// String assignments throw.
|
// String assignments throw.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
const old = document.body.innerText;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
document.write('A string');
|
document.write('A string');
|
||||||
});
|
});
|
||||||
|
assert_equals(document.body.innerText, old);
|
||||||
}, "`document.write(string)` throws");
|
}, "`document.write(string)` throws");
|
||||||
|
|
||||||
// Null assignment throws.
|
// Null assignment throws.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
const old = document.body.innerText;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
document.write(null);
|
document.write(null);
|
||||||
});
|
});
|
||||||
|
assert_equals(document.body.innerText, old);
|
||||||
}, "`document.write(null)` throws");
|
}, "`document.write(null)` throws");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -103,6 +103,18 @@
|
||||||
assert_element_accepts_non_trusted_type_explicit_set('a', 'rel', null, 'null');
|
assert_element_accepts_non_trusted_type_explicit_set('a', 'rel', null, 'null');
|
||||||
}, "a.rel accepts null");
|
}, "a.rel accepts null");
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
let div = document.createElement('div');
|
||||||
|
let span = document.createElement('span');
|
||||||
|
|
||||||
|
div.setAttribute('src', INPUTS.URL);
|
||||||
|
let attr = div.getAttributeNode('src');
|
||||||
|
div.removeAttributeNode(attr);
|
||||||
|
span.setAttributeNode(attr);
|
||||||
|
|
||||||
|
assert_equals(span.getAttribute('src'), INPUTS.URL);
|
||||||
|
}, "`span.src = setAttributeNode(div.src)` with string works.");
|
||||||
|
|
||||||
test(t => {
|
test(t => {
|
||||||
let el = document.createElement('iframe');
|
let el = document.createElement('iframe');
|
||||||
|
|
||||||
|
|
|
@ -19,16 +19,20 @@
|
||||||
|
|
||||||
// String assignments throw.
|
// String assignments throw.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.assign("A string");
|
location.assign("A string");
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.assign = string` throws");
|
}, "`location.assign = string` throws");
|
||||||
|
|
||||||
// Null assignment throws.
|
// Null assignment throws.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.assign(null);
|
location.assign(null);
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.assign = null` throws");
|
}, "`location.assign = null` throws");
|
||||||
|
|
||||||
// Create default policy. Applies to all subsequent tests.
|
// Create default policy. Applies to all subsequent tests.
|
||||||
|
|
|
@ -19,19 +19,22 @@
|
||||||
|
|
||||||
// String assignments throw.
|
// String assignments throw.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.href = 'A string';
|
location.href = 'A string';
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.href = string` throws");
|
}, "`location.href = string` throws");
|
||||||
|
|
||||||
// Null assignment throws.
|
// Null assignment throws.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.href = null;
|
location.href = null;
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.href = null` throws");
|
}, "`location.href = null` throws");
|
||||||
|
|
||||||
|
|
||||||
// Create default policy. Applies to all subsequent tests.
|
// Create default policy. Applies to all subsequent tests.
|
||||||
let p = window.TrustedTypes.createPolicy("default",
|
let p = window.TrustedTypes.createPolicy("default",
|
||||||
{ createURL: createLocationURLJS }, true);
|
{ createURL: createLocationURLJS }, true);
|
||||||
|
|
|
@ -19,16 +19,20 @@
|
||||||
|
|
||||||
// String replacements throw.
|
// String replacements throw.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.replace("A string");
|
location.replace("A string");
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.replace = string` throws");
|
}, "`location.replace = string` throws");
|
||||||
|
|
||||||
// Null replacement throws.
|
// Null replacement throws.
|
||||||
test(t => {
|
test(t => {
|
||||||
|
let href = location.href;
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
location.replace(null);
|
location.replace(null);
|
||||||
});
|
});
|
||||||
|
assert_equals(location.href, href);
|
||||||
}, "`location.replace = null` throws");
|
}, "`location.replace = null` throws");
|
||||||
|
|
||||||
// Create default policy. Applies to all subsequent tests.
|
// Create default policy. Applies to all subsequent tests.
|
||||||
|
|
|
@ -87,9 +87,11 @@ function assert_element_accepts_trusted_type(tag, attribute, value, expected) {
|
||||||
|
|
||||||
function assert_throws_no_trusted_type(tag, attribute, value) {
|
function assert_throws_no_trusted_type(tag, attribute, value) {
|
||||||
let elem = document.createElement(tag);
|
let elem = document.createElement(tag);
|
||||||
|
let prev = elem[attribute];
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
elem[attribute] = value;
|
elem[attribute] = value;
|
||||||
});
|
});
|
||||||
|
assert_equals(elem[attribute], prev);
|
||||||
}
|
}
|
||||||
|
|
||||||
function assert_element_accepts_trusted_html_explicit_set(win, c, t, tag, attribute, expected) {
|
function assert_element_accepts_trusted_html_explicit_set(win, c, t, tag, attribute, expected) {
|
||||||
|
@ -120,19 +122,24 @@ function assert_element_accepts_trusted_type_explicit_set(tag, attribute, value,
|
||||||
let elem = document.createElement(tag);
|
let elem = document.createElement(tag);
|
||||||
elem.setAttribute(attribute, value);
|
elem.setAttribute(attribute, value);
|
||||||
assert_equals(elem[attribute] + "", expected);
|
assert_equals(elem[attribute] + "", expected);
|
||||||
|
assert_equals(elem.getAttribute(attribute), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
function assert_throws_no_trusted_type_explicit_set(tag, attribute, value) {
|
function assert_throws_no_trusted_type_explicit_set(tag, attribute, value) {
|
||||||
let elem = document.createElement(tag);
|
let elem = document.createElement(tag);
|
||||||
|
let prev = elem[attribute];
|
||||||
assert_throws(new TypeError(), _ => {
|
assert_throws(new TypeError(), _ => {
|
||||||
elem.setAttribute(attribute, value);
|
elem.setAttribute(attribute, value);
|
||||||
});
|
});
|
||||||
|
assert_equals(elem[attribute], prev);
|
||||||
|
assert_equals(elem.getAttribute(attribute), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
function assert_element_accepts_non_trusted_type_explicit_set(tag, attribute, value, expected) {
|
function assert_element_accepts_non_trusted_type_explicit_set(tag, attribute, value, expected) {
|
||||||
let elem = document.createElement(tag);
|
let elem = document.createElement(tag);
|
||||||
elem.setAttribute(attribute, value);
|
elem.setAttribute(attribute, value);
|
||||||
assert_equals(elem[attribute] + "", expected);
|
assert_equals(elem[attribute] + "", expected);
|
||||||
|
assert_equals(elem.getAttribute(attribute), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
let namespace = 'http://www.w3.org/1999/xhtml';
|
let namespace = 'http://www.w3.org/1999/xhtml';
|
||||||
|
|