mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Update web-platform-tests to revision 86e157b387e63ba586d8ad51d2fcd5690626f5ad
This commit is contained in:
parent
bc82521eb7
commit
b642b70974
54 changed files with 728 additions and 480 deletions
|
@ -1,4 +1,5 @@
|
||||||
[url-in-tags-revoke.window.html]
|
[url-in-tags-revoke.window.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -14,3 +15,6 @@
|
||||||
[Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.]
|
[Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Fetching a blob URL immediately before revoking it works in <script> tags.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -109872,7 +109872,7 @@
|
||||||
"/css/css-contain/contain-size-001.html",
|
"/css/css-contain/contain-size-001.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/reference/pass_if_pass_below.html",
|
"/css/css-contain/reference/pass_if_pass_below_clipped.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -109884,7 +109884,7 @@
|
||||||
"/css/css-contain/contain-size-002.html",
|
"/css/css-contain/contain-size-002.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/reference/pass_if_pass_below.html",
|
"/css/css-contain/reference/pass_if_pass_below_clipped.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -109896,7 +109896,7 @@
|
||||||
"/css/css-contain/contain-size-003.html",
|
"/css/css-contain/contain-size-003.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/reference/pass_if_pass_below.html",
|
"/css/css-contain/reference/pass_if_pass_below_clipped.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -109932,7 +109932,7 @@
|
||||||
"/css/css-contain/contain-size-006.html",
|
"/css/css-contain/contain-size-006.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/reference/pass_if_pass_below.html",
|
"/css/css-contain/reference/pass_if_pass_below_clipped.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -110004,7 +110004,7 @@
|
||||||
"/css/css-contain/contain-size-012.html",
|
"/css/css-contain/contain-size-012.html",
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"/css/reference/pass_if_pass_below.html",
|
"/css/css-contain/reference/pass_if_pass_below_clipped.html",
|
||||||
"=="
|
"=="
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -243536,6 +243536,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-contain/reference/pass_if_pass_below_clipped.html": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-contain/reference/quote-scoping-001-ref.html": [
|
"css/css-contain/reference/quote-scoping-001-ref.html": [
|
||||||
[
|
[
|
||||||
{}
|
{}
|
||||||
|
@ -329650,6 +329655,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-logical/animation-004.html": [
|
||||||
|
[
|
||||||
|
"/css/css-logical/animation-004.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-logical/logical-box-border-color.html": [
|
"css/css-logical/logical-box-border-color.html": [
|
||||||
[
|
[
|
||||||
"/css/css-logical/logical-box-border-color.html",
|
"/css/css-logical/logical-box-border-color.html",
|
||||||
|
@ -337584,6 +337595,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"custom-elements/range-and-constructors.html": [
|
||||||
|
[
|
||||||
|
"/custom-elements/range-and-constructors.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"custom-elements/reaction-timing.html": [
|
"custom-elements/reaction-timing.html": [
|
||||||
[
|
[
|
||||||
"/custom-elements/reaction-timing.html",
|
"/custom-elements/reaction-timing.html",
|
||||||
|
@ -361970,6 +361987,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"html/syntax/parsing/meta-inhead-insertion-mode.html": [
|
||||||
|
[
|
||||||
|
"/html/syntax/parsing/meta-inhead-insertion-mode.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"html/syntax/parsing/named-character-references.html": [
|
"html/syntax/parsing/named-character-references.html": [
|
||||||
[
|
[
|
||||||
"/html/syntax/parsing/named-character-references.html",
|
"/html/syntax/parsing/named-character-references.html",
|
||||||
|
@ -366538,12 +366561,6 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"navigation-timing/nav2_idlharness.html": [
|
|
||||||
[
|
|
||||||
"/navigation-timing/nav2_idlharness.html",
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"navigation-timing/nav2_test_attributes_exist.html": [
|
"navigation-timing/nav2_test_attributes_exist.html": [
|
||||||
[
|
[
|
||||||
"/navigation-timing/nav2_test_attributes_exist.html",
|
"/navigation-timing/nav2_test_attributes_exist.html",
|
||||||
|
@ -391198,20 +391215,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"uievents/idlharness.window.js": [
|
||||||
|
[
|
||||||
|
"/uievents/idlharness.window.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"uievents/interface/click-event.htm": [
|
"uievents/interface/click-event.htm": [
|
||||||
[
|
[
|
||||||
"/uievents/interface/click-event.htm",
|
"/uievents/interface/click-event.htm",
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"uievents/interfaces.html": [
|
|
||||||
[
|
|
||||||
"/uievents/interfaces.html",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html": [
|
"uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html": [
|
||||||
[
|
[
|
||||||
"/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html",
|
"/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html",
|
||||||
|
@ -391724,9 +391739,9 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"vibration/idl.html": [
|
"vibration/idlharness.window.js": [
|
||||||
[
|
[
|
||||||
"/vibration/idl.html",
|
"/vibration/idlharness.window.html",
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -393466,6 +393481,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html": [
|
||||||
|
[
|
||||||
|
"/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
||||||
[
|
[
|
||||||
"/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html",
|
"/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html",
|
||||||
|
@ -397766,9 +397787,9 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"webvtt/api/interfaces.html": [
|
"webvtt/api/idlharness.window.js": [
|
||||||
[
|
[
|
||||||
"/webvtt/api/interfaces.html",
|
"/webvtt/api/idlharness.window.html",
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
@ -430604,7 +430625,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"background-fetch/fetch.https.window.js": [
|
"background-fetch/fetch.https.window.js": [
|
||||||
"cca63289206f75de446852c1b37fb0c0911aadd7",
|
"f146212987a4ebb2e90edc190e9232cbd07210f9",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"background-fetch/get-ids.https.window.js": [
|
"background-fetch/get-ids.https.window.js": [
|
||||||
|
@ -430640,15 +430661,15 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"background-fetch/service_workers/sw-update-ui.js": [
|
"background-fetch/service_workers/sw-update-ui.js": [
|
||||||
"ae0ed090b42df76780ae23a9bf250d1e359917c4",
|
"5dec087cd155b486b974f3a26c149fcd113380c3",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"background-fetch/service_workers/sw.js": [
|
"background-fetch/service_workers/sw.js": [
|
||||||
"34ea5d4fb64fb410247d844b89e87f14a9223b11",
|
"10e17f5874f2c76eaff7116107fa5896e31095a0",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"background-fetch/update-ui.https.window.js": [
|
"background-fetch/update-ui.https.window.js": [
|
||||||
"d561267d14eca9abe4bedf6c216d5044778aa843",
|
"aed0bb86d26398aabc3688c6fee90c0cfc7d4206",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"battery-status/META.yml": [
|
"battery-status/META.yml": [
|
||||||
|
@ -451548,7 +451569,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"content-security-policy/securitypolicyviolation/targeting.html": [
|
"content-security-policy/securitypolicyviolation/targeting.html": [
|
||||||
"10b96e9e61da890ac1f53124441083efb03d00c1",
|
"28ca32e3dcc345fff5e187eee24e124cdbb250d4",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html": [
|
"content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html": [
|
||||||
|
@ -518336,15 +518357,15 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-001.html": [
|
"css/css-contain/contain-size-001.html": [
|
||||||
"85bc4f49de1d1d8c58a3677286acfa9a5242512e",
|
"49dfc41601eb32f80c76a427403beb2f98d3f404",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-002.html": [
|
"css/css-contain/contain-size-002.html": [
|
||||||
"bfc6401cfb162929aeff149e3c4476950225dd6d",
|
"b30b02482da592925b6f4aa278ec82d6b30fe36f",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-003.html": [
|
"css/css-contain/contain-size-003.html": [
|
||||||
"1bce52c46a92dd0352209531a5cd697e1c7205f7",
|
"95596c96910dcfb5fa2d5b5c4261ab910019929c",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-004.html": [
|
"css/css-contain/contain-size-004.html": [
|
||||||
|
@ -518356,7 +518377,7 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-006.html": [
|
"css/css-contain/contain-size-006.html": [
|
||||||
"f5c17152d98069f75d136cd526bcdd955e70983a",
|
"f5a5faa49d3090ad2c088ac609e325a86d3d906e",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-007.html": [
|
"css/css-contain/contain-size-007.html": [
|
||||||
|
@ -518380,7 +518401,7 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-012.html": [
|
"css/css-contain/contain-size-012.html": [
|
||||||
"6823292fdf85f8fa96c22d82ab060d0e97eb37bb",
|
"b80e605a32b50c51e75e6ea0eab386377ca94e37",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/contain-size-013.html": [
|
"css/css-contain/contain-size-013.html": [
|
||||||
|
@ -518520,19 +518541,19 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/quote-scoping-001.html": [
|
"css/css-contain/quote-scoping-001.html": [
|
||||||
"b440fdcd8ddea96089f418ea0f7e3bc64ae3acf0",
|
"8c38e45b1ace138cbb795c77fdece555967e043d",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/quote-scoping-002.html": [
|
"css/css-contain/quote-scoping-002.html": [
|
||||||
"d79ec2d7f3aeef3d17467c7d4a41879b15119dce",
|
"9477afdfb1cf3073695a521c28cb9643a66bf00d",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/quote-scoping-003.html": [
|
"css/css-contain/quote-scoping-003.html": [
|
||||||
"ee0420ee1a42ed47ef65eed8378b0aa0b91cd44c",
|
"2a909511c3451c98bcdd059d506279923e6ce709",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/quote-scoping-004.html": [
|
"css/css-contain/quote-scoping-004.html": [
|
||||||
"b31437003365b461dccbb554805c756c4b305f37",
|
"d86382be08532323baad174808181e338adbc932",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/css-contain/reference/contain-layout-breaks-002-ref.html": [
|
"css/css-contain/reference/contain-layout-breaks-002-ref.html": [
|
||||||
|
@ -518608,7 +518629,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"css/css-contain/reference/contain-size-004-ref.html": [
|
"css/css-contain/reference/contain-size-004-ref.html": [
|
||||||
"3048d55f11a058ed951dea5bf2f940d27045ffed",
|
"75ae2bcc2b2d8d019c979c86f2500f9a2ec6ab90",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"css/css-contain/reference/contain-size-005-ref.html": [
|
"css/css-contain/reference/contain-size-005-ref.html": [
|
||||||
|
@ -518683,6 +518704,10 @@
|
||||||
"49e7b85e878b78af41690bb815bb30a450820598",
|
"49e7b85e878b78af41690bb815bb30a450820598",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-contain/reference/pass_if_pass_below_clipped.html": [
|
||||||
|
"044783d1e5488a612d46dca6397346619b539c7b",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"css/css-contain/reference/quote-scoping-001-ref.html": [
|
"css/css-contain/reference/quote-scoping-001-ref.html": [
|
||||||
"0b0e9c467ac9ee3da86d1f9be0eff98c1f937b0b",
|
"0b0e9c467ac9ee3da86d1f9be0eff98c1f937b0b",
|
||||||
"support"
|
"support"
|
||||||
|
@ -534803,6 +534828,10 @@
|
||||||
"bcb4e15d80c4225603ff59b92ccfc56dfc90d877",
|
"bcb4e15d80c4225603ff59b92ccfc56dfc90d877",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"css/css-logical/animation-004.html": [
|
||||||
|
"48cb58a29e4183d8e80527795b0000fb2f821bf3",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-logical/cascading-001-ref.html": [
|
"css/css-logical/cascading-001-ref.html": [
|
||||||
"79a432c4557bbda081a9b1c8d0dd9602c0eb85e5",
|
"79a432c4557bbda081a9b1c8d0dd9602c0eb85e5",
|
||||||
"support"
|
"support"
|
||||||
|
@ -577831,6 +577860,10 @@
|
||||||
"60d88cffb517c0062db338e5ba89e98f7748c280",
|
"60d88cffb517c0062db338e5ba89e98f7748c280",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"custom-elements/range-and-constructors.html": [
|
||||||
|
"d17c3b71480aa9dd2a75ccbc2cccfd362060eb3c",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"custom-elements/reaction-timing.html": [
|
"custom-elements/reaction-timing.html": [
|
||||||
"9e5bafbedfec42d28eb94c95ed84396941bc61ac",
|
"9e5bafbedfec42d28eb94c95ed84396941bc61ac",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -579400,7 +579433,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"dom/nodes/attributes.html": [
|
"dom/nodes/attributes.html": [
|
||||||
"21188933ea43e7e84888c27bc603a5e2bb0bfaa1",
|
"dac191b54cb2cafdaf9a71a297d130e571cd5230",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"dom/nodes/attributes.js": [
|
"dom/nodes/attributes.js": [
|
||||||
|
@ -589380,7 +589413,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"html/dom/historical.html": [
|
"html/dom/historical.html": [
|
||||||
"a36b4b2e92b792b18fb8704d217a089ba07be254",
|
"b79d35f0b8a383d026920d80d7374887f283a31b",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"html/dom/interfaces.https.html": [
|
"html/dom/interfaces.https.html": [
|
||||||
|
@ -598944,7 +598977,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"html/semantics/forms/the-select-element/select-selectedOptions.html": [
|
"html/semantics/forms/the-select-element/select-selectedOptions.html": [
|
||||||
"f8e577a8a066e665468e3ebb7420f7c634657d3b",
|
"6a5c75f2b147ece26f45c83581f5684d4746a4ab",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"html/semantics/forms/the-select-element/select-setcustomvalidity.html": [
|
"html/semantics/forms/the-select-element/select-setcustomvalidity.html": [
|
||||||
|
@ -602323,6 +602356,10 @@
|
||||||
"a3dbdc4e61aad00648c6b9ac34e22c08cbea12ce",
|
"a3dbdc4e61aad00648c6b9ac34e22c08cbea12ce",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"html/syntax/parsing/meta-inhead-insertion-mode.html": [
|
||||||
|
"4317e4eb14a7fdb92e7ca5594f95e13158198417",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"html/syntax/parsing/named-character-references-data.js": [
|
"html/syntax/parsing/named-character-references-data.js": [
|
||||||
"48ab30e4738feb1c95b2d4ad0a381c15c61e38d3",
|
"48ab30e4738feb1c95b2d4ad0a381c15c61e38d3",
|
||||||
"support"
|
"support"
|
||||||
|
@ -604248,7 +604285,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/SVG.idl": [
|
"interfaces/SVG.idl": [
|
||||||
"2ab3741d82f727efb1632bfc1a14611db8677cb8",
|
"01d87b862b4167f79c43ed1b91ef772f5a78f5fe",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/WebCryptoAPI.idl": [
|
"interfaces/WebCryptoAPI.idl": [
|
||||||
|
@ -604280,7 +604317,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/background-fetch.idl": [
|
"interfaces/background-fetch.idl": [
|
||||||
"fc3ed8dad3555a93221c6c7aa1cae0fbc7a6b402",
|
"6957604e7df5bed1c6ec0351ebe838d28773e3fe",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/battery-status.idl": [
|
"interfaces/battery-status.idl": [
|
||||||
|
@ -604352,7 +604389,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-paint-api.idl": [
|
"interfaces/css-paint-api.idl": [
|
||||||
"442bbfac1585768d6df64b48960f35a41b7546be",
|
"c636e2e7d3771fa4d0fb0df06088885552da6e00",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-properties-values-api.idl": [
|
"interfaces/css-properties-values-api.idl": [
|
||||||
|
@ -604716,7 +604753,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webrtc.idl": [
|
"interfaces/webrtc.idl": [
|
||||||
"2849a7d2b272d411dc0eddb134739e4f00ce05cc",
|
"c06e91e6de7b1f44e5f92e2c8eb1d0fabb792b7d",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webusb.idl": [
|
"interfaces/webusb.idl": [
|
||||||
|
@ -607959,10 +607996,6 @@
|
||||||
"851691d6c49808393376486e2616ce8d18075b18",
|
"851691d6c49808393376486e2616ce8d18075b18",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"navigation-timing/nav2_idlharness.html": [
|
|
||||||
"6d1a1249b91ab555df5cf7521935ce229b5a66ab",
|
|
||||||
"testharness"
|
|
||||||
],
|
|
||||||
"navigation-timing/nav2_test_attributes_exist.html": [
|
"navigation-timing/nav2_test_attributes_exist.html": [
|
||||||
"b6048e061ba057cd971b08e032be717f0ad04d0d",
|
"b6048e061ba057cd971b08e032be717f0ad04d0d",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -631764,7 +631797,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/idlharness.window.js": [
|
"svg/idlharness.window.js": [
|
||||||
"e08adf8978731b7c491c1f26e0edcd05c331f2a3",
|
"46e8aaee6afa6b67a2fb515d5155849dea214c00",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"svg/import/animate-dom-01-f-manual.svg": [
|
"svg/import/animate-dom-01-f-manual.svg": [
|
||||||
|
@ -634160,7 +634193,7 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"svg/painting/reftests/paint-order-001-ref.svg": [
|
"svg/painting/reftests/paint-order-001-ref.svg": [
|
||||||
"6e1e016f6f5aa6bff5ca249d75e7b9dce8d11e12",
|
"7822a80b942fee54a87106d7def13429454cc26e",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"svg/painting/reftests/paint-order-001.svg": [
|
"svg/painting/reftests/paint-order-001.svg": [
|
||||||
|
@ -640124,7 +640157,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptserve/setup.py": [
|
"tools/wptserve/setup.py": [
|
||||||
"194c3372c94a0f38c1616566fa546b4dadf0166f",
|
"c9c364b8bacc72a6ff77f9d0c811b2d7d1810d13",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptserve/tests/functional/__init__.py": [
|
"tools/wptserve/tests/functional/__init__.py": [
|
||||||
|
@ -640543,6 +640576,10 @@
|
||||||
"3bf23b4c230749355607b3af6c1a3bdcc256cf19",
|
"3bf23b4c230749355607b3af6c1a3bdcc256cf19",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"uievents/idlharness.window.js": [
|
||||||
|
"928c8c90f0ff4ed99fdec8183cb129bbbea82f3e",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"uievents/interface/README.md": [
|
"uievents/interface/README.md": [
|
||||||
"970fdd4df3517297e344019930d88fbb53b1a002",
|
"970fdd4df3517297e344019930d88fbb53b1a002",
|
||||||
"support"
|
"support"
|
||||||
|
@ -640559,10 +640596,6 @@
|
||||||
"7ea0bdbf138d2fbcd319db2967dca81602bfb74a",
|
"7ea0bdbf138d2fbcd319db2967dca81602bfb74a",
|
||||||
"manual"
|
"manual"
|
||||||
],
|
],
|
||||||
"uievents/interfaces.html": [
|
|
||||||
"0d20f1d71010fdf097b652b7a1c32285e4dfa112",
|
|
||||||
"testharness"
|
|
||||||
],
|
|
||||||
"uievents/keyboard/README.md": [
|
"uievents/keyboard/README.md": [
|
||||||
"38c454dd7c33eefc14022434505321f29dfb4917",
|
"38c454dd7c33eefc14022434505321f29dfb4917",
|
||||||
"support"
|
"support"
|
||||||
|
@ -641327,8 +641360,8 @@
|
||||||
"64e6e9b548233809b217c03e2709f7fbf12fdce9",
|
"64e6e9b548233809b217c03e2709f7fbf12fdce9",
|
||||||
"manual"
|
"manual"
|
||||||
],
|
],
|
||||||
"vibration/idl.html": [
|
"vibration/idlharness.window.js": [
|
||||||
"167090cd67b0169501a6b0b16f8101e8b2b04f84",
|
"fbe14daa6119a8213ca58e2233345af015353a1b",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"vibration/invalid-values.html": [
|
"vibration/invalid-values.html": [
|
||||||
|
@ -643875,6 +643908,10 @@
|
||||||
"e7ccefc655364d20bb240beacc81a4f7a10806dd",
|
"e7ccefc655364d20bb240beacc81a4f7a10806dd",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html": [
|
||||||
|
"dd964ef9e36b1fb46f58c570d8337917541d80d1",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
"webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay.html": [
|
||||||
"ef526c96ffcfc2d420b421ab63d02d9a5486f3cc",
|
"ef526c96ffcfc2d420b421ab63d02d9a5486f3cc",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -647315,8 +647352,8 @@
|
||||||
"8f6c09bf526e462f67563601214c3987b31fe098",
|
"8f6c09bf526e462f67563601214c3987b31fe098",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"webvtt/api/interfaces.html": [
|
"webvtt/api/idlharness.window.js": [
|
||||||
"5222256d617df55f19a9453c6783d59d183fcef7",
|
"53c1ded67493685fb0a7279fa2994bba598c4fd3",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"webvtt/categories.json": [
|
"webvtt/categories.json": [
|
||||||
|
@ -652204,7 +652241,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"xhr/overridemimetype-edge-cases.window.js": [
|
"xhr/overridemimetype-edge-cases.window.js": [
|
||||||
"6dfe755b767e78b60d0828c29d2b9c57e82e3be7",
|
"192a696759c4b82852eee753f417fb8a4cf2718d",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"xhr/overridemimetype-headers-received-state-force-shiftjis.htm": [
|
"xhr/overridemimetype-headers-received-state-force-shiftjis.htm": [
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[vh_not_refreshing_on_chrome.html]
|
||||||
|
expected: FAIL
|
|
@ -3,7 +3,7 @@
|
||||||
disabled: iframe thread issue 5247
|
disabled: iframe thread issue 5247
|
||||||
|
|
||||||
[single-byte-decoder.html?document]
|
[single-byte-decoder.html?document]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
|
|
||||||
[single-byte-decoder.html?XMLHttpRequest]
|
[single-byte-decoder.html?XMLHttpRequest]
|
||||||
expected: CRASH
|
expected: CRASH
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[traverse_the_history_4.html]
|
|
||||||
[Multiple history traversals, last would be aborted]
|
|
||||||
expected: FAIL
|
|
|
@ -30,6 +30,3 @@
|
||||||
[Set HTTP URL frame location.protocol to data]
|
[Set HTTP URL frame location.protocol to data]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Set HTTP URL frame location.protocol to x]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -3,3 +3,9 @@
|
||||||
[document.all cannot find applet]
|
[document.all cannot find applet]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTMLTableHeaderCellElement interface is removed]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTMLTableDataCellElement interface is removed]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[meta-inhead-insertion-mode.html]
|
||||||
|
[Encoding specified in the 'charset' attribute should have precedence over 'content' attribute.]
|
||||||
|
expected: FAIL
|
||||||
|
|
4
tests/wpt/metadata/uievents/idlharness.window.js.ini
Normal file
4
tests/wpt/metadata/uievents/idlharness.window.js.ini
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[idlharness.window.html]
|
||||||
|
[idlharness]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -5,29 +5,26 @@
|
||||||
[response.formData() with input: a&b&c]
|
[response.formData() with input: a&b&c]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
[response.formData() with input: a=b&c=d&]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: a=b&c=d&]
|
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[response.formData() with input: a=b&c=d]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
||||||
[urlencoded-parser.any.worker.html]
|
[urlencoded-parser.any.worker.html]
|
||||||
[response.formData() with input: a&b&c]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[request.formData() with input: a&b&c]
|
[request.formData() with input: a&b&c]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[response.formData() with input: &&&a=b&&&&c=d&]
|
[request.formData() with input: a=b&c=d]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: a=b&c=d&]
|
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: &&&a=b&&&&c=d&]
|
[response.formData() with input: a=b&c=d]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[delaynode-channel-count-1.html]
|
||||||
|
[Test that DelayNode output channelCount matches that of the delayed input]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[005.html]
|
[005.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: ERROR
|
|
||||||
[dedicated worker in shared worker in dedicated worker]
|
[dedicated worker in shared worker in dedicated worker]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[complex-glsl-does-not-crash.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[Overall test]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[shader-uniform-packing-restrictions.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[Overall test]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[shader-with-non-reserved-words.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[Overall test]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ backgroundFetchTest(async (test, backgroundFetch) => {
|
||||||
// Skip `downloaded`, as the transfer may have started already.
|
// Skip `downloaded`, as the transfer may have started already.
|
||||||
|
|
||||||
const {type, results} = await getMessageFromServiceWorker();
|
const {type, results} = await getMessageFromServiceWorker();
|
||||||
assert_equals('backgroundfetched', type);
|
assert_equals('backgroundfetchsuccess', type);
|
||||||
assert_equals(results.length, 1);
|
assert_equals(results.length, 1);
|
||||||
|
|
||||||
assert_true(results[0].url.includes('resources/feature-name.txt'));
|
assert_true(results[0].url.includes('resources/feature-name.txt'));
|
||||||
|
|
|
@ -2,7 +2,7 @@ importScripts('sw-helpers.js');
|
||||||
|
|
||||||
async function updateUI(event) {
|
async function updateUI(event) {
|
||||||
let updateParams = [];
|
let updateParams = [];
|
||||||
switch (event.id) {
|
switch (event.registration.id) {
|
||||||
case 'update-once':
|
case 'update-once':
|
||||||
updateParams = [{title: 'Title1'}];
|
updateParams = [{title: 'Title1'}];
|
||||||
break;
|
break;
|
||||||
|
@ -16,7 +16,7 @@ async function updateUI(event) {
|
||||||
.catch(e => e.message);
|
.catch(e => e.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.addEventListener('backgroundfetched', event => {
|
self.addEventListener('backgroundfetchsuccess', event => {
|
||||||
event.waitUntil(updateUI(event)
|
event.waitUntil(updateUI(event)
|
||||||
.then(update => sendMessageToDocument({ type: event.type, update })))
|
.then(update => sendMessageToDocument({ type: event.type, update })))
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
importScripts('sw-helpers.js');
|
importScripts('sw-helpers.js');
|
||||||
|
|
||||||
async function getFetchResult(settledFetch) {
|
async function getFetchResult(settledFetch) {
|
||||||
|
@ -11,7 +12,7 @@ async function getFetchResult(settledFetch) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
self.addEventListener('backgroundfetched', event => {
|
self.addEventListener('backgroundfetchsuccess', event => {
|
||||||
event.waitUntil(
|
event.waitUntil(
|
||||||
event.fetches.values()
|
event.fetches.values()
|
||||||
.then(fetches => Promise.all(fetches.map(fetch => getFetchResult(fetch))))
|
.then(fetches => Promise.all(fetches.map(fetch => getFetchResult(fetch))))
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// META: script=resources/utils.js
|
// META: script=resources/utils.js
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// Covers functionality provided by BackgroundFetchUpdateEvent.updateUI().
|
// Covers functionality provided by BackgroundFetchUpdateUIEvent.updateUI().
|
||||||
//
|
//
|
||||||
// https://wicg.github.io/background-fetch/#backgroundfetchupdateuievent
|
// https://wicg.github.io/background-fetch/#backgroundfetchupdateuievent
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
.then(t.step_func(e => {
|
.then(t.step_func(e => {
|
||||||
assert_equals(e.blockedURI, "inline");
|
assert_equals(e.blockedURI, "inline");
|
||||||
assert_equals(e.lineNumber, 131);
|
assert_equals(e.lineNumber, 131);
|
||||||
assert_equals(e.columnNumber, 4);
|
assert_in_array(e.columnNumber, [4, 59]);
|
||||||
assert_equals(e.target, document, "Elements created in this document, but pushed into a same-origin frame trigger on that frame's document, not on this frame's document.");
|
assert_equals(e.target, document, "Elements created in this document, but pushed into a same-origin frame trigger on that frame's document, not on this frame's document.");
|
||||||
return watcher.wait_for('securitypolicyviolation');
|
return watcher.wait_for('securitypolicyviolation');
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||||
<meta name=flags content="">
|
<meta name=flags content="">
|
||||||
<meta name=assert content="size containment does not apply to non atomic inlines">
|
<meta name=assert content="size containment does not apply to non atomic inlines">
|
||||||
<link rel="match" href="../reference/pass_if_pass_below.html">
|
<link rel="match" href="reference/pass_if_pass_below_clipped.html">
|
||||||
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||||
<meta name=flags content="">
|
<meta name=flags content="">
|
||||||
<meta name=assert content="size containment does not to apply ruby-base, which is an internal ruby element">
|
<meta name=assert content="size containment does not to apply ruby-base, which is an internal ruby element">
|
||||||
<link rel="match" href="../reference/pass_if_pass_below.html">
|
<link rel="match" href="reference/pass_if_pass_below_clipped.html">
|
||||||
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||||
<link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
|
<link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||||
<meta name=flags content="">
|
<meta name=flags content="">
|
||||||
<meta name=assert content="size containment does not to apply ruby-base-container, which is an internal ruby element">
|
<meta name=assert content="size containment does not to apply ruby-base-container, which is an internal ruby element">
|
||||||
<link rel="match" href="../reference/pass_if_pass_below.html">
|
<link rel="match" href="reference/pass_if_pass_below_clipped.html">
|
||||||
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
<link rel=help href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||||
<link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
|
<link rel=help href="https://drafts.csswg.org/css-display-3/#internal-ruby-element">
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<title>CSS Containment Test: Size containment on table-cell</title>
|
<title>CSS Containment Test: Size containment on table-cell</title>
|
||||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||||
<link rel="match" href="../reference/pass_if_pass_below.html">
|
<link rel="match" href="reference/pass_if_pass_below_clipped.html">
|
||||||
<meta name=assert content="Size containment doesn't apply to table-cell elements.">
|
<meta name=assert content="Size containment doesn't apply to table-cell elements.">
|
||||||
<style>
|
<style>
|
||||||
div {
|
div {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<title>CSS Containment Test: Size containment on table</title>
|
<title>CSS Containment Test: Size containment on table</title>
|
||||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
|
||||||
<link rel="match" href="../reference/pass_if_pass_below.html">
|
<link rel="match" href="reference/pass_if_pass_below_clipped.html">
|
||||||
<meta name=assert content="Size containment doesn't apply to table elements.">
|
<meta name=assert content="Size containment doesn't apply to table elements.">
|
||||||
<style>
|
<style>
|
||||||
div {
|
div {
|
||||||
|
|
|
@ -19,7 +19,7 @@ div::before, span::before {
|
||||||
div::after {
|
div::after {
|
||||||
content: close-quote;
|
content: close-quote;
|
||||||
}
|
}
|
||||||
div {
|
span {
|
||||||
contain: style;
|
contain: style;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -19,10 +19,10 @@ div::before {
|
||||||
div::after, span::after {
|
div::after, span::after {
|
||||||
content: close-quote;
|
content: close-quote;
|
||||||
}
|
}
|
||||||
div {
|
span {
|
||||||
contain: style;
|
contain: style;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<p>Test passes if the text below is "A9Z" (not including the quotation marks).<p>
|
<p>Test passes if the text below is "AZZ" (not including the quotation marks).<p>
|
||||||
<div><span></span></div>
|
<div><span></span></div>
|
||||||
|
|
|
@ -23,7 +23,7 @@ span::before {
|
||||||
div::after {
|
div::after {
|
||||||
content: close-quote;
|
content: close-quote;
|
||||||
}
|
}
|
||||||
div {
|
span {
|
||||||
contain: style;
|
contain: style;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -23,7 +23,7 @@ span::after {
|
||||||
div::after {
|
div::after {
|
||||||
content: close-quote;
|
content: close-quote;
|
||||||
}
|
}
|
||||||
div {
|
span {
|
||||||
contain: style;
|
contain: style;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -9,6 +9,9 @@ rtc {
|
||||||
display: ruby-text-container;
|
display: ruby-text-container;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
div {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<p>This test passes if you can see the word PASS below.
|
<p>This test passes if you can see the word PASS below.
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Reference rendering - passes if there is the word "PASS" below</title>
|
||||||
|
<style>
|
||||||
|
div { overflow: hidden; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Test passes if there is the word "PASS" below.</p>
|
||||||
|
<div>PASS</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
250
tests/wpt/web-platform-tests/css/css-logical/animation-004.html
Normal file
250
tests/wpt/web-platform-tests/css/css-logical/animation-004.html
Normal file
|
@ -0,0 +1,250 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Animating CSS logical properties using CSS Transitions</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-logical/#box">
|
||||||
|
<meta name="assert" content="The specified values of these properties are separate from the specified values of the parallel physical properties, but the flow-relative and physical properties share computed values.">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="../css-animations/support/testcommon.js"></script>
|
||||||
|
|
||||||
|
<div id="log"></div>
|
||||||
|
<div id="test"></div>
|
||||||
|
<script>
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const testEl = document.getElementById("test");
|
||||||
|
|
||||||
|
function makeDeclaration(object = {}) {
|
||||||
|
return Object.entries(object).map(([prop, val]) => prop + ": " + val).join("; ");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts a CSS transition in testEl. By default, the transition will affect the properies
|
||||||
|
* specified in finalStyles, be linear, last 10 seconds and start halfway, but this can be
|
||||||
|
* overridden in baseStyles.
|
||||||
|
*
|
||||||
|
* @param t The testharness.js Test object.
|
||||||
|
* @param baseStyles A dictionary object with property names and values to set on the
|
||||||
|
* element before starting the transition.
|
||||||
|
* @param finalStyles A dictionary object with property names and values towards which
|
||||||
|
* the element will transition.
|
||||||
|
*/
|
||||||
|
function transition(t, baseStyles, finalStyles) {
|
||||||
|
// Clear styles from previous test.
|
||||||
|
testEl.style.cssText = "";
|
||||||
|
testEl.className = "";
|
||||||
|
getComputedStyle(testEl).height;
|
||||||
|
|
||||||
|
// Set base styles
|
||||||
|
const defaultTransition = {
|
||||||
|
"transition-property": Object.keys(finalStyles).join(", "),
|
||||||
|
"transition-timing-function": "linear",
|
||||||
|
"transition-duration": "10s",
|
||||||
|
"transition-delay": "-5s",
|
||||||
|
};
|
||||||
|
addStyle(t, {
|
||||||
|
"#test": makeDeclaration(Object.assign(defaultTransition, baseStyles)),
|
||||||
|
"#test.transition": makeDeclaration(finalStyles),
|
||||||
|
});
|
||||||
|
getComputedStyle(testEl).height;
|
||||||
|
|
||||||
|
// Start the transition
|
||||||
|
testEl.className = "transition";
|
||||||
|
}
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"block-size": "0px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '50px');
|
||||||
|
}, 'Logical properties can be transitioned');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"block-size": "0px",
|
||||||
|
"writing-mode": "vertical-rl",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '50px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '0px');
|
||||||
|
}, 'Logical properties in transitions respect the writing-mode');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"margin-inline-start": "0px",
|
||||||
|
"direction": "rtl",
|
||||||
|
}, {
|
||||||
|
"margin-inline-start": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).marginLeft, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).marginRight, '50px');
|
||||||
|
}, 'Logical properties in transitions respect the direction');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"block-size": "0px",
|
||||||
|
"height": "200px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
"height": "300px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '250px');
|
||||||
|
}, 'Declaration order is respected within declaration blocks');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"transition-timing-function": "step-start",
|
||||||
|
}, {
|
||||||
|
"margin-top": "200px",
|
||||||
|
"margin-block-start": "100px"
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).marginTop, '100px');
|
||||||
|
}, 'Logical properties are able to override physical properties in declaration blocks');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"transition-timing-function": "step-start",
|
||||||
|
}, {
|
||||||
|
"margin-inline": "200px",
|
||||||
|
"margin-inline-start": "0px",
|
||||||
|
"margin-inline-start": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).marginLeft, '100px');
|
||||||
|
}, 'Declaration order is respected amongst logical properties within declaration blocks');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"block-size": "200px",
|
||||||
|
}, {
|
||||||
|
"height": "300px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '250px');
|
||||||
|
}, 'Physical properties and logical properties can be mixed');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"height": "100px",
|
||||||
|
"block-size": "200px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
"height": "300px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '250px');
|
||||||
|
}, 'Declaration order is respected on each keyframe individually');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"width": "0px",
|
||||||
|
"height": "0px",
|
||||||
|
"block-size": "0px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '50px');
|
||||||
|
|
||||||
|
testEl.style.writingMode = 'vertical-rl';
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '50px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '0px');
|
||||||
|
}, 'Transitions update when the writing-mode is changed');
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
transition(t, {
|
||||||
|
"transition-delay": "-9.9s",
|
||||||
|
"width": "0px",
|
||||||
|
"height": "0px",
|
||||||
|
"block-size": "0px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
});
|
||||||
|
const watcher = new EventWatcher(t, testEl, [ 'transitionend' ]);
|
||||||
|
await watcher.wait_for('transitionend');
|
||||||
|
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '100px');
|
||||||
|
|
||||||
|
testEl.style.transition = 'none';
|
||||||
|
testEl.style.writingMode = 'vertical-rl';
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '100px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '0px');
|
||||||
|
}, 'Filling transitions update when the writing-mode is changed');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"width": "0px",
|
||||||
|
"height": "0px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px",
|
||||||
|
"height": "200px",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Initially we are interpolating the height from 0 to 200px
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '100px');
|
||||||
|
|
||||||
|
// But once we change the writing-mode, we will be interpolating *both*
|
||||||
|
// the height (from 0px to 200px) *and* the width (from 0px to 100px).
|
||||||
|
testEl.style.writingMode = 'vertical-rl';
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '50px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '100px');
|
||||||
|
}, 'The number of interpolating properties can be increased when the'
|
||||||
|
+ ' writing-mode is changed');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"width": "100px",
|
||||||
|
"height": "100px",
|
||||||
|
}, {
|
||||||
|
"width": "500px",
|
||||||
|
"block-size": "200px",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Initially we are interpolating the width (100px -> 500px) and the height
|
||||||
|
// (100px -> 200px).
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '300px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '150px');
|
||||||
|
|
||||||
|
// Once we change the writing-mode, we will be interpolating *only* the
|
||||||
|
// width (300px -> 200px).
|
||||||
|
testEl.style.writingMode = 'vertical-rl';
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '250px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '100px');
|
||||||
|
}, 'The number of interpolating properties can be decreased when the'
|
||||||
|
+ ' writing-mode is changed');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
addStyle(t, { ':root': '--writingMode: horizontal-tb' });
|
||||||
|
transition(t, {
|
||||||
|
"width": "0px",
|
||||||
|
"height": "0px",
|
||||||
|
"writing-mode": "var(--writingMode)",
|
||||||
|
"block-size": "0px",
|
||||||
|
}, {
|
||||||
|
"block-size": "100px"
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '50px');
|
||||||
|
|
||||||
|
testEl.style.setProperty('--writingMode', 'vertical-rl');
|
||||||
|
assert_equals(getComputedStyle(testEl).width, '50px');
|
||||||
|
assert_equals(getComputedStyle(testEl).height, '0px');
|
||||||
|
}, 'Transitions update when the writing-mode is changed through a CSS variable');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
transition(t, {
|
||||||
|
"margin-inline-start": "0px",
|
||||||
|
}, {
|
||||||
|
"margin-inline-start": "100px",
|
||||||
|
});
|
||||||
|
assert_equals(getComputedStyle(testEl).marginLeft, '50px');
|
||||||
|
assert_equals(getComputedStyle(testEl).marginRight, '0px');
|
||||||
|
|
||||||
|
testEl.style.direction = 'rtl';
|
||||||
|
assert_equals(getComputedStyle(testEl).marginLeft, '0px');
|
||||||
|
assert_equals(getComputedStyle(testEl).marginRight, '50px');
|
||||||
|
}, 'Transitions update when the direction is changed');
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,61 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Custom elements: Range APIs should invoke constructor in tree order</title>
|
||||||
|
<meta name="author" title="Edgar Chen" href="mailto:echen@mozilla.com">
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/scripting.html#concept-upgrade-an-element">
|
||||||
|
<link rel="help" href="https://dom.spec.whatwg.org/#concept-create-element">
|
||||||
|
<line rel="help" href="https://dom.spec.whatwg.org/#concept-range-extract">
|
||||||
|
<line rel="help" href="https://dom.spec.whatwg.org/#concept-range-clone">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="log"></div>
|
||||||
|
|
||||||
|
<c-e data-index="root">
|
||||||
|
<c-e data-index="root-0">
|
||||||
|
<c-e data-index="root-0-0">
|
||||||
|
<c-e data-index="root-0-0-0"></c-e>
|
||||||
|
<span id="start"></span>
|
||||||
|
</c-e>
|
||||||
|
</c-e>
|
||||||
|
<c-e data-index="root-1"></c-e>
|
||||||
|
<span id="end"></span>
|
||||||
|
</c-e>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var logs = [];
|
||||||
|
class CE extends HTMLElement {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
logs.push(this.dataset.index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
customElements.define('c-e', CE);
|
||||||
|
|
||||||
|
function getRange() {
|
||||||
|
const range = new Range();
|
||||||
|
range.setStart(document.getElementById('start'), 0);
|
||||||
|
range.setEnd(document.getElementById('end'), 0);
|
||||||
|
return range;
|
||||||
|
}
|
||||||
|
|
||||||
|
test(function () {
|
||||||
|
// Clear log for testing.
|
||||||
|
logs = [];
|
||||||
|
getRange().cloneContents();
|
||||||
|
assert_array_equals(logs, ['root-0', 'root-0-0', 'root-1']);
|
||||||
|
}, 'Range.cloneContents should invoke constructor in tree order');
|
||||||
|
|
||||||
|
test(function () {
|
||||||
|
// Clear log for testing.
|
||||||
|
logs = [];
|
||||||
|
getRange().extractContents();
|
||||||
|
assert_array_equals(logs, ['root-0', 'root-0-0']);
|
||||||
|
}, 'Range.extractContents should invoke constructor in tree order');
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -604,7 +604,7 @@ test(function() {
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = document.createElement("div");
|
var el = document.createElement("div");
|
||||||
var other = document.createElement("div");
|
var other = document.createElement("div");
|
||||||
attr = document.createAttribute("foo");
|
var attr = document.createAttribute("foo");
|
||||||
assert_equals(el.setAttributeNode(attr), null);
|
assert_equals(el.setAttributeNode(attr), null);
|
||||||
assert_equals(attr.ownerElement, el);
|
assert_equals(attr.ownerElement, el);
|
||||||
assert_throws("INUSE_ATTRIBUTE_ERR",
|
assert_throws("INUSE_ATTRIBUTE_ERR",
|
||||||
|
@ -614,7 +614,7 @@ test(function() {
|
||||||
|
|
||||||
test(function() {
|
test(function() {
|
||||||
var el = document.createElement("div");
|
var el = document.createElement("div");
|
||||||
attr = document.createAttribute("foo");
|
var attr = document.createAttribute("foo");
|
||||||
assert_equals(el.setAttributeNode(attr), null);
|
assert_equals(el.setAttributeNode(attr), null);
|
||||||
el.setAttribute("bar", "qux");
|
el.setAttribute("bar", "qux");
|
||||||
assert_equals(el.setAttributeNode(attr), attr);
|
assert_equals(el.setAttributeNode(attr), attr);
|
||||||
|
|
|
@ -30,4 +30,13 @@ test(() => {
|
||||||
test(() => {
|
test(() => {
|
||||||
assert_equals(self.getComputedStyle(document.getElementsByTagName("applet")[0], "").cssFloat, "none");
|
assert_equals(self.getComputedStyle(document.getElementsByTagName("applet")[0], "").cssFloat, "none");
|
||||||
}, "applet is not styled")
|
}, "applet is not styled")
|
||||||
|
|
||||||
|
// removed in https://github.com/whatwg/html/commit/e383ae23776362cafb2fb4bbba70c8c9080d4b0f
|
||||||
|
test(() => {
|
||||||
|
assert_false("HTMLTableDataCellElement" in window);
|
||||||
|
}, "HTMLTableDataCellElement interface is removed")
|
||||||
|
|
||||||
|
test(() => {
|
||||||
|
assert_false("HTMLTableHeaderCellElement" in window);
|
||||||
|
}, "HTMLTableHeaderCellElement interface is removed")
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -114,12 +114,15 @@ test(() => {
|
||||||
test(() => {
|
test(() => {
|
||||||
const select = document.getElementById("select-same-object-change");
|
const select = document.getElementById("select-same-object-change");
|
||||||
const before = select.selectedOptions;
|
const before = select.selectedOptions;
|
||||||
|
assert_equals(before.length, 3);
|
||||||
|
|
||||||
select.selectedOptions[1].selected = false;
|
select.selectedOptions[1].selected = false;
|
||||||
|
|
||||||
const after = select.selectedOptions;
|
const after = select.selectedOptions;
|
||||||
|
|
||||||
assert_equals(before, after);
|
assert_equals(before, after);
|
||||||
|
assert_equals(before.length, 2);
|
||||||
|
assert_equals(after.length, 2);
|
||||||
|
|
||||||
}, ".selectedOptions should return the same object after selection changes - [SameObject]");
|
}, ".selectedOptions should return the same object after selection changes - [SameObject]");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Encoding specified in the "charset" attribute should have precedence over "content" attribute.</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" charset="iso-8859-15">
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inhead">
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
test(function () {
|
||||||
|
assert_equals(document.characterSet, "ISO-8859-15");
|
||||||
|
}, "Encoding specified in the 'charset' attribute should have precedence over 'content' attribute.");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -673,11 +673,16 @@ SVGScriptElement includes SVGURIReference;
|
||||||
[Exposed=Window]
|
[Exposed=Window]
|
||||||
interface SVGAElement : SVGGraphicsElement {
|
interface SVGAElement : SVGGraphicsElement {
|
||||||
[SameObject] readonly attribute SVGAnimatedString target;
|
[SameObject] readonly attribute SVGAnimatedString target;
|
||||||
[SameObject] readonly attribute SVGAnimatedString download;
|
attribute DOMString download;
|
||||||
[SameObject] readonly attribute SVGAnimatedString rel;
|
attribute USVString ping;
|
||||||
[SameObject] readonly attribute SVGAnimatedString relList;
|
attribute DOMString rel;
|
||||||
[SameObject] readonly attribute SVGAnimatedString hreflang;
|
[SameObject, PutsForward=value] readonly attribute DOMTokenList relList;
|
||||||
[SameObject] readonly attribute SVGAnimatedString type;
|
attribute DOMString hreflang;
|
||||||
|
attribute DOMString type;
|
||||||
|
|
||||||
|
attribute DOMString text;
|
||||||
|
|
||||||
|
attribute DOMString referrerPolicy;
|
||||||
};
|
};
|
||||||
|
|
||||||
SVGAElement includes SVGURIReference;
|
SVGAElement includes SVGURIReference;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
// GENERATED CONTENT - DO NOT EDIT
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
// Content of this file was automatically extracted from the
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
// "Background Fetch" spec.
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
// See: https://wicg.github.io/background-fetch/
|
// Source: Background Fetch (https://wicg.github.io/background-fetch/)
|
||||||
|
|
||||||
partial interface ServiceWorkerGlobalScope {
|
partial interface ServiceWorkerGlobalScope {
|
||||||
attribute EventHandler onbackgroundfetched;
|
attribute EventHandler onbackgroundfetchsuccess;
|
||||||
attribute EventHandler onbackgroundfetchfail;
|
attribute EventHandler onbackgroundfetchfail;
|
||||||
attribute EventHandler onbackgroundfetchabort;
|
attribute EventHandler onbackgroundfetchabort;
|
||||||
attribute EventHandler onbackgroundfetchclick;
|
attribute EventHandler onbackgroundfetchclick;
|
||||||
|
@ -22,9 +22,12 @@ interface BackgroundFetchManager {
|
||||||
// TODO: in future this should become an async iterator for BackgroundFetchRegistration objects
|
// TODO: in future this should become an async iterator for BackgroundFetchRegistration objects
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary BackgroundFetchOptions {
|
dictionary BackgroundFetchUIOptions {
|
||||||
sequence<IconDefinition> icons = [];
|
sequence<IconDefinition> icons = [];
|
||||||
DOMString title = "";
|
DOMString title = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary BackgroundFetchOptions : BackgroundFetchUIOptions {
|
||||||
unsigned long long downloadTotal = 0;
|
unsigned long long downloadTotal = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,73 +46,50 @@ interface BackgroundFetchRegistration : EventTarget {
|
||||||
readonly attribute unsigned long long uploaded;
|
readonly attribute unsigned long long uploaded;
|
||||||
readonly attribute unsigned long long downloadTotal;
|
readonly attribute unsigned long long downloadTotal;
|
||||||
readonly attribute unsigned long long downloaded;
|
readonly attribute unsigned long long downloaded;
|
||||||
readonly attribute BackgroundFetchActiveFetches activeFetches;
|
readonly attribute BackgroundFetchState state;
|
||||||
|
readonly attribute BackgroundFetchFailureReason failureReason;
|
||||||
|
|
||||||
attribute EventHandler onprogress;
|
attribute EventHandler onprogress;
|
||||||
|
|
||||||
Promise<boolean> abort();
|
Promise<boolean> abort();
|
||||||
|
Promise<BackgroundFetchRecord> match(RequestInfo request, optional CacheQueryOptions options);
|
||||||
|
Promise<sequence<BackgroundFetchRecord>> matchAll(optional RequestInfo request, optional CacheQueryOptions options);
|
||||||
|
};
|
||||||
|
|
||||||
|
enum BackgroundFetchState { "pending", "success", "failure" };
|
||||||
|
|
||||||
|
enum BackgroundFetchFailureReason {
|
||||||
|
"",
|
||||||
|
// The operation was aborted by the user, or abort() was called.
|
||||||
|
"aborted",
|
||||||
|
// A response had a not-ok-status.
|
||||||
|
"bad-status",
|
||||||
|
// A fetch failed for other reasons, e.g. CORS, MIX, an invalid partial response,
|
||||||
|
// or a general network failure for a fetch that cannot be retried.
|
||||||
|
"fetch-error",
|
||||||
|
// Storage quota was reached during the operation.
|
||||||
|
"quota-exceeded",
|
||||||
|
// The provided downloadTotal was exceeded.
|
||||||
|
"total-download-exceeded"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=(Window,Worker)]
|
[Exposed=(Window,Worker)]
|
||||||
interface BackgroundFetchActiveFetches {
|
interface BackgroundFetchRecord {
|
||||||
Promise<BackgroundFetchActiveFetch> match(RequestInfo request, optional CacheQueryOptions options);
|
|
||||||
Promise<sequence<BackgroundFetchActiveFetch>> matchAll(RequestInfo request, optional CacheQueryOptions options);
|
|
||||||
Promise<sequence<BackgroundFetchActiveFetch>> values();
|
|
||||||
};
|
|
||||||
|
|
||||||
[Exposed=(Window,Worker)]
|
|
||||||
interface BackgroundFetchActiveFetch : BackgroundFetchFetch {
|
|
||||||
readonly attribute Promise<Response> responseReady;
|
|
||||||
// In future this will include a fetch observer
|
|
||||||
};
|
|
||||||
|
|
||||||
[Exposed=(Window,Worker)]
|
|
||||||
interface BackgroundFetchFetch {
|
|
||||||
readonly attribute Request request;
|
readonly attribute Request request;
|
||||||
|
readonly attribute Promise<Response> responseReady;
|
||||||
|
// TODO: In future this will include a fetch observer
|
||||||
};
|
};
|
||||||
|
|
||||||
[Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker]
|
[Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker]
|
||||||
interface BackgroundFetchEvent : ExtendableEvent {
|
interface BackgroundFetchEvent : ExtendableEvent {
|
||||||
readonly attribute DOMString id;
|
readonly attribute BackgroundFetchRegistration registration;
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary BackgroundFetchEventInit : ExtendableEventInit {
|
dictionary BackgroundFetchEventInit : ExtendableEventInit {
|
||||||
required DOMString id;
|
required BackgroundFetchRegistration registration;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker]
|
[Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker]
|
||||||
interface BackgroundFetchSettledEvent : BackgroundFetchEvent {
|
interface BackgroundFetchUpdateUIEvent : BackgroundFetchEvent {
|
||||||
readonly attribute BackgroundFetchSettledFetches fetches;
|
Promise<void> updateUI(optional BackgroundFetchUIOptions options);
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary BackgroundFetchSettledEventInit : BackgroundFetchEventInit {
|
|
||||||
required BackgroundFetchSettledFetches fetches;
|
|
||||||
};
|
|
||||||
|
|
||||||
[Exposed=ServiceWorker]
|
|
||||||
interface BackgroundFetchSettledFetches {
|
|
||||||
Promise<BackgroundFetchSettledFetch> match(RequestInfo request, optional CacheQueryOptions options);
|
|
||||||
Promise<sequence<BackgroundFetchSettledFetch>> matchAll(RequestInfo request, optional CacheQueryOptions options);
|
|
||||||
Promise<sequence<BackgroundFetchSettledFetch>> values();
|
|
||||||
};
|
|
||||||
|
|
||||||
[Exposed=ServiceWorker]
|
|
||||||
interface BackgroundFetchSettledFetch : BackgroundFetchFetch {
|
|
||||||
readonly attribute Response? response;
|
|
||||||
};
|
|
||||||
|
|
||||||
[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker]
|
|
||||||
interface BackgroundFetchUpdateEvent : BackgroundFetchSettledEvent {
|
|
||||||
Promise<void> updateUI(DOMString title);
|
|
||||||
};
|
|
||||||
|
|
||||||
[Constructor(DOMString type, BackgroundFetchClickEventInit init), Exposed=ServiceWorker]
|
|
||||||
interface BackgroundFetchClickEvent : BackgroundFetchEvent {
|
|
||||||
readonly attribute BackgroundFetchState state;
|
|
||||||
};
|
|
||||||
|
|
||||||
dictionary BackgroundFetchClickEventInit : BackgroundFetchEventInit {
|
|
||||||
required BackgroundFetchState state;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum BackgroundFetchState { "pending", "succeeded", "failed" };
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// GENERATED CONTENT - DO NOT EDIT
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
// Content of this file was automatically extracted from the
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
// "CSS Painting API Level 1" spec.
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
// See: https://drafts.css-houdini.org/css-paint-api-1/
|
// Source: CSS Painting API Level 1 (https://drafts.css-houdini.org/css-paint-api-1/)
|
||||||
|
|
||||||
partial interface CSS {
|
partial namespace CSS {
|
||||||
[SameObject] readonly attribute Worklet paintWorklet;
|
[SameObject] readonly attribute Worklet paintWorklet;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// GENERATED CONTENT - DO NOT EDIT
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
// Content of this file was automatically extracted from the
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
// "WebRTC 1.0: Real-time Communication Between Browsers" spec.
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
// See: https://w3c.github.io/webrtc-pc/
|
// Source: WebRTC 1.0: Real-time Communication Between Browsers (https://w3c.github.io/webrtc-pc/)
|
||||||
|
|
||||||
dictionary RTCConfiguration {
|
dictionary RTCConfiguration {
|
||||||
sequence<RTCIceServer> iceServers;
|
sequence<RTCIceServer> iceServers;
|
||||||
|
@ -105,7 +105,7 @@ interface RTCPeerConnection : EventTarget {
|
||||||
readonly attribute RTCSessionDescription? remoteDescription;
|
readonly attribute RTCSessionDescription? remoteDescription;
|
||||||
readonly attribute RTCSessionDescription? currentRemoteDescription;
|
readonly attribute RTCSessionDescription? currentRemoteDescription;
|
||||||
readonly attribute RTCSessionDescription? pendingRemoteDescription;
|
readonly attribute RTCSessionDescription? pendingRemoteDescription;
|
||||||
Promise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate);
|
Promise<void> addIceCandidate(RTCIceCandidateInit candidate);
|
||||||
readonly attribute RTCSignalingState signalingState;
|
readonly attribute RTCSignalingState signalingState;
|
||||||
readonly attribute RTCIceGatheringState iceGatheringState;
|
readonly attribute RTCIceGatheringState iceGatheringState;
|
||||||
readonly attribute RTCIceConnectionState iceConnectionState;
|
readonly attribute RTCIceConnectionState iceConnectionState;
|
||||||
|
@ -129,7 +129,7 @@ partial interface RTCPeerConnection {
|
||||||
Promise<void> setLocalDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
Promise<void> setLocalDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
||||||
Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
||||||
Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
||||||
Promise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
Promise<void> addIceCandidate(RTCIceCandidateInit candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
|
||||||
};
|
};
|
||||||
|
|
||||||
callback RTCPeerConnectionErrorCallback = void (DOMException error);
|
callback RTCPeerConnectionErrorCallback = void (DOMException error);
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Navigation Timing 2 IDL tests</title>
|
|
||||||
<link rel="author" title="Google" href="http://www.google.com/" />
|
|
||||||
<link rel="help" href="http://www.w3.org/TR/navigation-timing-2/#sec-PerformanceNavigationTiming"/>
|
|
||||||
<script src="/resources/testharness.js"></script>
|
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
|
||||||
<script src="/resources/WebIDLParser.js"></script>
|
|
||||||
<script src="/resources/idlharness.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<pre id='untested_idl' style='display:none'>
|
|
||||||
|
|
||||||
interface PerformanceResourceTiming : PerformanceEntry {
|
|
||||||
readonly attribute DOMString initiatorType;
|
|
||||||
readonly attribute DOMHighResTimeStamp workerStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp redirectStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp redirectEnd;
|
|
||||||
readonly attribute DOMHighResTimeStamp fetchStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp domainLookupStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp domainLookupEnd;
|
|
||||||
readonly attribute DOMHighResTimeStamp connectStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp connectEnd;
|
|
||||||
readonly attribute DOMHighResTimeStamp secureConnectionStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp requestStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp responseStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp responseEnd;
|
|
||||||
[MeasureAs=PerformanceResourceTimingSizes] readonly attribute unsigned long long transferSize;
|
|
||||||
[MeasureAs=PerformanceResourceTimingSizes] readonly attribute unsigned long long encodedBodySize;
|
|
||||||
[MeasureAs=PerformanceResourceTimingSizes] readonly attribute unsigned long long decodedBodySize;
|
|
||||||
};
|
|
||||||
interface PerformanceEntry {};
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<pre id='idl'>
|
|
||||||
enum NavigationType {
|
|
||||||
"navigate",
|
|
||||||
"reload",
|
|
||||||
"back_forward",
|
|
||||||
"prerender"
|
|
||||||
};
|
|
||||||
|
|
||||||
interface PerformanceNavigationTiming : PerformanceResourceTiming {
|
|
||||||
readonly attribute DOMHighResTimeStamp unloadEventStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp unloadEventEnd;
|
|
||||||
readonly attribute DOMHighResTimeStamp domInteractive;
|
|
||||||
readonly attribute DOMHighResTimeStamp domContentLoadedEventStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp domContentLoadedEventEnd;
|
|
||||||
readonly attribute DOMHighResTimeStamp domComplete;
|
|
||||||
readonly attribute DOMHighResTimeStamp loadEventStart;
|
|
||||||
readonly attribute DOMHighResTimeStamp loadEventEnd;
|
|
||||||
readonly attribute NavigationType type;
|
|
||||||
readonly attribute unsigned short redirectCount;
|
|
||||||
[Default] object toJSON();
|
|
||||||
};
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
function test_idl() {
|
|
||||||
var idl_array = new IdlArray();
|
|
||||||
|
|
||||||
idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
|
|
||||||
idl_array.add_idls(document.getElementById("idl").textContent);
|
|
||||||
|
|
||||||
idl_array.test();
|
|
||||||
}
|
|
||||||
test_idl();
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -11,12 +11,12 @@ const elements = [
|
||||||
'svg',
|
'svg',
|
||||||
'g',
|
'g',
|
||||||
'defs',
|
'defs',
|
||||||
'Desc',
|
'desc',
|
||||||
'title',
|
'title',
|
||||||
'symbol',
|
'symbol',
|
||||||
'use',
|
'use',
|
||||||
'image',
|
'image',
|
||||||
'Switch',
|
'switch',
|
||||||
'style',
|
'style',
|
||||||
'path',
|
'path',
|
||||||
'rect',
|
'rect',
|
||||||
|
@ -49,8 +49,7 @@ const elements = [
|
||||||
'animate',
|
'animate',
|
||||||
'set',
|
'set',
|
||||||
'animateMotion',
|
'animateMotion',
|
||||||
'mPath',
|
'mpath',
|
||||||
'animateColor',
|
|
||||||
'animateColor',
|
'animateColor',
|
||||||
'animateTransform',
|
'animateTransform',
|
||||||
'font',
|
'font',
|
||||||
|
@ -127,12 +126,12 @@ idl_test(
|
||||||
SVGSVGElement: ['objects.svg'],
|
SVGSVGElement: ['objects.svg'],
|
||||||
SVGGElement: ['objects.g'],
|
SVGGElement: ['objects.g'],
|
||||||
SVGDefsElement: ['objects.defs'],
|
SVGDefsElement: ['objects.defs'],
|
||||||
SVGDescElement: ['objects.Desc'],
|
SVGDescElement: ['objects.desc'],
|
||||||
SVGTitleElement: ['objects.title'],
|
SVGTitleElement: ['objects.title'],
|
||||||
SVGSymbolElement: ['objects.symbol'],
|
SVGSymbolElement: ['objects.symbol'],
|
||||||
SVGUseElement: ['objects.use'],
|
SVGUseElement: ['objects.use'],
|
||||||
SVGImageElement: ['objects.image'],
|
SVGImageElement: ['objects.image'],
|
||||||
SVGSwitchElement: ['objects.Switch'],
|
SVGSwitchElement: ['objects.switch'],
|
||||||
SVGStyleElement: ['objects.style'],
|
SVGStyleElement: ['objects.style'],
|
||||||
SVGPoint: ['objects.svg.createSVGPoint()'],
|
SVGPoint: ['objects.svg.createSVGPoint()'],
|
||||||
SVGPointList: ['objects.polygon.points'],
|
SVGPointList: ['objects.polygon.points'],
|
||||||
|
@ -193,7 +192,7 @@ idl_test(
|
||||||
SVGAnimateElement: ['objects.animate'],
|
SVGAnimateElement: ['objects.animate'],
|
||||||
SVGSetElement: ['objects.set'],
|
SVGSetElement: ['objects.set'],
|
||||||
SVGAnimateMotionElement: ['objects.animateMotion'],
|
SVGAnimateMotionElement: ['objects.animateMotion'],
|
||||||
SVGMPathElement: ['objects.mPath'],
|
SVGMPathElement: ['objects.mpath'],
|
||||||
SVGAnimateColorElement: ['objects.animateColor'],
|
SVGAnimateColorElement: ['objects.animateColor'],
|
||||||
SVGAnimateTransformElement: ['objects.animateTransform'],
|
SVGAnimateTransformElement: ['objects.animateTransform'],
|
||||||
SVGFontElement: ['objects.font'],
|
SVGFontElement: ['objects.font'],
|
||||||
|
|
|
@ -51,11 +51,11 @@
|
||||||
<use xlink:href="#path"/>
|
<use xlink:href="#path"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="translate(240,220)">
|
<g transform="translate(240,220)">
|
||||||
<use xlink:href="#path"/>
|
<use xlink:href="#path" style="marker:none"/>
|
||||||
<use xlink:href="#path" style="stroke:none"/>
|
<use xlink:href="#path" style="stroke:none"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="translate(360,220)">
|
<g transform="translate(360,220)">
|
||||||
<use xlink:href="#path"/>
|
<use xlink:href="#path" style="stroke:none"/>
|
||||||
<use xlink:href="#path" style="marker:none"/>
|
<use xlink:href="#path" style="marker:none"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="translate(120,320)">
|
<g transform="translate(120,320)">
|
||||||
|
@ -63,10 +63,10 @@
|
||||||
</g>
|
</g>
|
||||||
<g transform="translate(240,320)">
|
<g transform="translate(240,320)">
|
||||||
<use xlink:href="#path"/>
|
<use xlink:href="#path"/>
|
||||||
<use xlink:href="#path" style="stroke:none"/>
|
<use xlink:href="#path" style="stroke:none;marker:none"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="translate(360,320)">
|
<g transform="translate(360,320)">
|
||||||
<use xlink:href="#path"/>
|
<use xlink:href="#path" style="stroke:none"/>
|
||||||
<use xlink:href="#path" style="marker:none"/>
|
<use xlink:href="#path" style="marker:none"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
|
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -1,7 +1,7 @@
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
PACKAGE_VERSION = '2.0'
|
PACKAGE_VERSION = '2.0'
|
||||||
deps = ["six>=1.8"]
|
deps = ["six>=1.8", "h2==3.0.1"]
|
||||||
|
|
||||||
setup(name='wptserve',
|
setup(name='wptserve',
|
||||||
version=PACKAGE_VERSION,
|
version=PACKAGE_VERSION,
|
||||||
|
|
20
tests/wpt/web-platform-tests/uievents/idlharness.window.js
Normal file
20
tests/wpt/web-platform-tests/uievents/idlharness.window.js
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['uievents'],
|
||||||
|
['dom'],
|
||||||
|
idl_array => {
|
||||||
|
idl_array.add_objects({
|
||||||
|
FocusEvent: ['new FocusEvent("event")'],
|
||||||
|
MouseEvent: ['new MouseEvent("event")'],
|
||||||
|
WheelEvent: ['new WheelEvent("event")'],
|
||||||
|
KeyboardEvent: ['new KeyboardEvent("event")'],
|
||||||
|
CompositionEvent: ['new CompositionEvent("event")'],
|
||||||
|
UIEvent: ['new UIEvent("event")'],
|
||||||
|
InputEvent: ['new InputEvent("event")'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
|
@ -1,48 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<meta charset=utf-8>
|
|
||||||
<title>UI Events IDL tests</title>
|
|
||||||
<meta name=timeout content=long>
|
|
||||||
<script src=/resources/testharness.js></script>
|
|
||||||
<script src=/resources/testharnessreport.js></script>
|
|
||||||
<script src=/resources/WebIDLParser.js></script>
|
|
||||||
<script src=/resources/idlharness.js></script>
|
|
||||||
|
|
||||||
<h1>UI Events IDL tests</h1>
|
|
||||||
<div id=log></div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
"use strict";
|
|
||||||
function doTest([dom, uievents]) {
|
|
||||||
var idlArray = new IdlArray();
|
|
||||||
idlArray.add_untested_idls(dom);
|
|
||||||
idlArray.add_idls(uievents);
|
|
||||||
|
|
||||||
idlArray.add_objects({
|
|
||||||
FocusEvent: ['new FocusEvent("event")'],
|
|
||||||
MouseEvent: ['new MouseEvent("event")'],
|
|
||||||
WheelEvent: ['new WheelEvent("event")'],
|
|
||||||
KeyboardEvent: ['new KeyboardEvent("event")'],
|
|
||||||
CompositionEvent: ['new CompositionEvent("event")'],
|
|
||||||
UIEvent: ['new UIEvent("event")'],
|
|
||||||
InputEvent: ['new InputEvent("event")'],
|
|
||||||
});
|
|
||||||
idlArray.test();
|
|
||||||
};
|
|
||||||
|
|
||||||
function fetchData(url) {
|
|
||||||
return fetch(url).then((response) => response.text());
|
|
||||||
}
|
|
||||||
|
|
||||||
function waitForLoad() {
|
|
||||||
return new Promise(function(resolve) {
|
|
||||||
addEventListener("load", resolve);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
promise_test(function() {
|
|
||||||
return Promise.all([fetchData("/interfaces/dom.idl"),
|
|
||||||
fetchData("/interfaces/uievents.idl")])
|
|
||||||
.then(doTest);
|
|
||||||
}, "Test driver");
|
|
||||||
|
|
||||||
</script>
|
|
|
@ -1,23 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<meta charset=utf-8>
|
|
||||||
<title>IDL harness tests for Vibration API</title>
|
|
||||||
<body>
|
|
||||||
<h1>Description</h1>
|
|
||||||
<p>
|
|
||||||
This test validates the IDL defined by the Vibration API.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This test uses <a href="/resources/idlharness.js">idlharness.js</a>
|
|
||||||
</p>
|
|
||||||
<div id="log"></div>
|
|
||||||
<script src=/resources/testharness.js></script>
|
|
||||||
<script src=/resources/testharnessreport.js></script>
|
|
||||||
<script src=/resources/WebIDLParser.js></script>
|
|
||||||
<script src=/resources/idlharness.js></script>
|
|
||||||
<script>
|
|
||||||
var idl_array = new IdlArray();
|
|
||||||
idl_array.add_untested_idls("interface Navigator {};");
|
|
||||||
idl_array.add_idls("partial interface Navigator { boolean vibrate ((unsigned long or sequence<unsigned long>) pattern);};");
|
|
||||||
idl_array.add_objects({Navigator: ['navigator']});
|
|
||||||
idl_array.test();
|
|
||||||
</script>
|
|
12
tests/wpt/web-platform-tests/vibration/idlharness.window.js
Normal file
12
tests/wpt/web-platform-tests/vibration/idlharness.window.js
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['vibration'],
|
||||||
|
['html'],
|
||||||
|
idl_array => {
|
||||||
|
idl_array.add_objects({Navigator: ['navigator']});
|
||||||
|
}
|
||||||
|
);
|
|
@ -0,0 +1,104 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Test that DelayNode output channelCount matches that of the delayed input</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script>
|
||||||
|
// See https://github.com/WebAudio/web-audio-api/issues/25
|
||||||
|
|
||||||
|
// sampleRate is a power of two so that delay times are exact in base-2
|
||||||
|
// floating point arithmetic.
|
||||||
|
const SAMPLE_RATE = 32768;
|
||||||
|
// Arbitrary delay time in frames (but this is assumed a multiple of block
|
||||||
|
// size below):
|
||||||
|
const DELAY_FRAMES = 3 * 128;
|
||||||
|
// Implementations may apply interpolation to input samples, which can spread
|
||||||
|
// the effect of input with larger channel counts over neighbouring blocks.
|
||||||
|
// This test ignores enough neighbouring blocks to ignore the effects of
|
||||||
|
// filter radius of up to this number of frames:
|
||||||
|
const INTERPOLATION_GRACE = 128;
|
||||||
|
// Number of frames of DelayNode output that are known to be stereo:
|
||||||
|
const STEREO_FRAMES = 128;
|
||||||
|
// The delay will be increased at this frame to switch DelayNode output back
|
||||||
|
// to mono.
|
||||||
|
const MONO_OUTPUT_START_FRAME =
|
||||||
|
DELAY_FRAMES + INTERPOLATION_GRACE + STEREO_FRAMES;
|
||||||
|
// Number of frames of output that are known to be mono after the known stereo
|
||||||
|
// and interpolation grace.
|
||||||
|
const MONO_FRAMES = 128;
|
||||||
|
// Total length allows for interpolation after effects of stereo input are
|
||||||
|
// finished and one block to test return to mono output:
|
||||||
|
const TOTAL_LENGTH =
|
||||||
|
MONO_OUTPUT_START_FRAME + INTERPOLATION_GRACE + MONO_FRAMES;
|
||||||
|
// maxDelayTime, is a multiple of block size, because the Gecko implementation
|
||||||
|
// once had a bug with delayTime = maxDelayTime in this situation:
|
||||||
|
const MAX_DELAY_FRAMES = TOTAL_LENGTH + INTERPOLATION_GRACE;
|
||||||
|
|
||||||
|
promise_test(() => {
|
||||||
|
let context = new OfflineAudioContext({numberOfChannels: 1,
|
||||||
|
length: TOTAL_LENGTH,
|
||||||
|
sampleRate: SAMPLE_RATE});
|
||||||
|
|
||||||
|
// Only channel 1 of the splitter is connected to the destination.
|
||||||
|
let splitter = new ChannelSplitterNode(context, {numberOfOutputs: 2});
|
||||||
|
splitter.connect(context.destination, 1);
|
||||||
|
|
||||||
|
// A gain node has channelCountMode "max" and channelInterpretation
|
||||||
|
// "speakers", and so will up-mix a mono input when there is stereo input.
|
||||||
|
let gain = new GainNode(context);
|
||||||
|
gain.connect(splitter);
|
||||||
|
|
||||||
|
// The delay node initially outputs a single channel of silence, when it
|
||||||
|
// does not have enough signal in its history to output what it has
|
||||||
|
// previously received. After the delay period, it will then output the
|
||||||
|
// stereo signal it received.
|
||||||
|
let delay =
|
||||||
|
new DelayNode(context,
|
||||||
|
{maxDelayTime: MAX_DELAY_FRAMES / context.sampleRate,
|
||||||
|
delayTime: DELAY_FRAMES / context.sampleRate});
|
||||||
|
// Schedule an increase in the delay to return to mono silent output from
|
||||||
|
// the unfilled portion of the DelayNode's buffer.
|
||||||
|
delay.delayTime.setValueAtTime(MAX_DELAY_FRAMES / context.sampleRate,
|
||||||
|
MONO_OUTPUT_START_FRAME / context.sampleRate);
|
||||||
|
delay.connect(gain);
|
||||||
|
|
||||||
|
let stereoMerger = new ChannelMergerNode(context, {numberOfInputs: 2});
|
||||||
|
stereoMerger.connect(delay);
|
||||||
|
|
||||||
|
let leftOffset = 0.125;
|
||||||
|
let rightOffset = 0.5;
|
||||||
|
let leftSource = new ConstantSourceNode(context, {offset: leftOffset});
|
||||||
|
let rightSource = new ConstantSourceNode(context, {offset: rightOffset});
|
||||||
|
leftSource.start();
|
||||||
|
rightSource.start();
|
||||||
|
leftSource.connect(stereoMerger, 0, 0);
|
||||||
|
rightSource.connect(stereoMerger, 0, 1);
|
||||||
|
// Connect a mono source directly to the gain, so that even stereo silence
|
||||||
|
// will be detected in channel 1 of the gain output because it will cause
|
||||||
|
// the mono source to be up-mixed.
|
||||||
|
let monoOffset = 0.25
|
||||||
|
let monoSource = new ConstantSourceNode(context, {offset: monoOffset});
|
||||||
|
monoSource.start();
|
||||||
|
monoSource.connect(gain);
|
||||||
|
|
||||||
|
return context.startRendering().
|
||||||
|
then((buffer) => {
|
||||||
|
let output = buffer.getChannelData(0);
|
||||||
|
|
||||||
|
function assert_samples_equal(startIndex, length, expected, description)
|
||||||
|
{
|
||||||
|
for (let i = startIndex; i < startIndex + length; ++i) {
|
||||||
|
assert_equals(output[i], expected, description + ` at ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_samples_equal(0, DELAY_FRAMES - INTERPOLATION_GRACE,
|
||||||
|
0, "Initial mono");
|
||||||
|
assert_samples_equal(DELAY_FRAMES + INTERPOLATION_GRACE, STEREO_FRAMES,
|
||||||
|
monoOffset + rightOffset, "Stereo");
|
||||||
|
assert_samples_equal(MONO_OUTPUT_START_FRAME + INTERPOLATION_GRACE,
|
||||||
|
MONO_FRAMES,
|
||||||
|
0, "Final mono");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
15
tests/wpt/web-platform-tests/webvtt/api/idlharness.window.js
Normal file
15
tests/wpt/web-platform-tests/webvtt/api/idlharness.window.js
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['webvtt'],
|
||||||
|
['html', 'dom'],
|
||||||
|
idl_array => {
|
||||||
|
idl_array.add_objects({
|
||||||
|
VTTCue: ['new VTTCue(0, 0, "")'],
|
||||||
|
VTTRegion: ['new VTTRegion()'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
|
@ -1,138 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<meta charset=utf-8>
|
|
||||||
<title>WebVTT IDL tests</title>
|
|
||||||
<script src=/resources/testharness.js></script>
|
|
||||||
<script src=/resources/testharnessreport.js></script>
|
|
||||||
<script src=/resources/WebIDLParser.js></script>
|
|
||||||
<script src=/resources/idlharness.js></script>
|
|
||||||
|
|
||||||
<h1>WebVTT IDL tests</h1>
|
|
||||||
<div id=log></div>
|
|
||||||
|
|
||||||
<script type=text/plain id=untested>
|
|
||||||
// HTML
|
|
||||||
interface TextTrackCue : EventTarget {
|
|
||||||
readonly attribute TextTrack? track;
|
|
||||||
|
|
||||||
attribute DOMString id;
|
|
||||||
attribute double startTime;
|
|
||||||
attribute double endTime;
|
|
||||||
attribute boolean pauseOnExit;
|
|
||||||
|
|
||||||
attribute EventHandler onenter;
|
|
||||||
attribute EventHandler onexit;
|
|
||||||
};
|
|
||||||
|
|
||||||
[TreatNonObjectAsNull]
|
|
||||||
callback EventHandlerNonNull = any (Event event);
|
|
||||||
typedef EventHandlerNonNull? EventHandler;
|
|
||||||
|
|
||||||
// DOM
|
|
||||||
[Exposed=(Window,Worker)]
|
|
||||||
interface EventTarget {
|
|
||||||
void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options);
|
|
||||||
void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options);
|
|
||||||
boolean dispatchEvent(Event event);
|
|
||||||
};
|
|
||||||
|
|
||||||
callback interface EventListener {
|
|
||||||
void handleEvent(Event event);
|
|
||||||
};
|
|
||||||
|
|
||||||
dictionary EventListenerOptions {
|
|
||||||
boolean capture = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
dictionary AddEventListenerOptions : EventListenerOptions {
|
|
||||||
boolean passive = false;
|
|
||||||
boolean once = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
[Constructor,
|
|
||||||
Exposed=Window]
|
|
||||||
interface DocumentFragment : Node {
|
|
||||||
};
|
|
||||||
|
|
||||||
[Exposed=Window]
|
|
||||||
interface Node : EventTarget {
|
|
||||||
const unsigned short ELEMENT_NODE = 1;
|
|
||||||
const unsigned short ATTRIBUTE_NODE = 2;
|
|
||||||
const unsigned short TEXT_NODE = 3;
|
|
||||||
const unsigned short CDATA_SECTION_NODE = 4;
|
|
||||||
const unsigned short ENTITY_REFERENCE_NODE = 5; // historical
|
|
||||||
const unsigned short ENTITY_NODE = 6; // historical
|
|
||||||
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
|
|
||||||
const unsigned short COMMENT_NODE = 8;
|
|
||||||
const unsigned short DOCUMENT_NODE = 9;
|
|
||||||
const unsigned short DOCUMENT_TYPE_NODE = 10;
|
|
||||||
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
|
|
||||||
const unsigned short NOTATION_NODE = 12; // historical
|
|
||||||
readonly attribute unsigned short nodeType;
|
|
||||||
readonly attribute DOMString nodeName;
|
|
||||||
|
|
||||||
readonly attribute USVString baseURI;
|
|
||||||
|
|
||||||
readonly attribute boolean isConnected;
|
|
||||||
readonly attribute Document? ownerDocument;
|
|
||||||
Node getRootNode(optional GetRootNodeOptions options);
|
|
||||||
readonly attribute Node? parentNode;
|
|
||||||
readonly attribute Element? parentElement;
|
|
||||||
boolean hasChildNodes();
|
|
||||||
[SameObject] readonly attribute NodeList childNodes;
|
|
||||||
readonly attribute Node? firstChild;
|
|
||||||
readonly attribute Node? lastChild;
|
|
||||||
readonly attribute Node? previousSibling;
|
|
||||||
readonly attribute Node? nextSibling;
|
|
||||||
|
|
||||||
[CEReactions] attribute DOMString? nodeValue;
|
|
||||||
[CEReactions] attribute DOMString? textContent;
|
|
||||||
[CEReactions] void normalize();
|
|
||||||
|
|
||||||
[CEReactions, NewObject] Node cloneNode(optional boolean deep = false);
|
|
||||||
boolean isEqualNode(Node? otherNode);
|
|
||||||
boolean isSameNode(Node? otherNode); // historical alias of ===
|
|
||||||
|
|
||||||
const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
|
|
||||||
const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
|
|
||||||
const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
|
|
||||||
const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
|
|
||||||
const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
|
|
||||||
const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
|
|
||||||
unsigned short compareDocumentPosition(Node other);
|
|
||||||
boolean contains(Node? other);
|
|
||||||
|
|
||||||
DOMString? lookupPrefix(DOMString? namespace);
|
|
||||||
DOMString? lookupNamespaceURI(DOMString? prefix);
|
|
||||||
boolean isDefaultNamespace(DOMString? namespace);
|
|
||||||
|
|
||||||
[CEReactions] Node insertBefore(Node node, Node? child);
|
|
||||||
[CEReactions] Node appendChild(Node node);
|
|
||||||
[CEReactions] Node replaceChild(Node node, Node child);
|
|
||||||
[CEReactions] Node removeChild(Node child);
|
|
||||||
};
|
|
||||||
|
|
||||||
dictionary GetRootNodeOptions {
|
|
||||||
boolean composed = false;
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
// https://w3c.github.io/webvtt/
|
|
||||||
|
|
||||||
promise_test(async () => {
|
|
||||||
const webvttIDL = await fetch('/interfaces/webvtt.idl').then(response =>
|
|
||||||
response.text(),
|
|
||||||
);
|
|
||||||
var idlArray = new IdlArray();
|
|
||||||
idlArray.add_untested_idls(document.getElementById('untested').textContent);
|
|
||||||
idlArray.add_idls(webvttIDL);
|
|
||||||
idlArray.add_objects({
|
|
||||||
VTTCue: ['new VTTCue(0, 0, "")'],
|
|
||||||
VTTRegion: ['new VTTRegion()'],
|
|
||||||
});
|
|
||||||
idlArray.test();
|
|
||||||
done();
|
|
||||||
}, 'webvtt interfaces.');
|
|
||||||
</script>
|
|
|
@ -5,7 +5,7 @@ async_test(t => {
|
||||||
let secondTime = false;
|
let secondTime = false;
|
||||||
client.onload = t.step_func(() => {
|
client.onload = t.step_func(() => {
|
||||||
if(!secondTime) {
|
if(!secondTime) {
|
||||||
assert_equals(client.responseText, "\uFFFD");
|
assert_equals(client.responseText, "\uFFFD\uFFFD");
|
||||||
secondTime = true;
|
secondTime = true;
|
||||||
client.open("GET", testURL);
|
client.open("GET", testURL);
|
||||||
client.send();
|
client.send();
|
||||||
|
@ -32,7 +32,7 @@ async_test(t => {
|
||||||
async_test(t => {
|
async_test(t => {
|
||||||
const client = new XMLHttpRequest();
|
const client = new XMLHttpRequest();
|
||||||
client.onload = t.step_func_done(() => {
|
client.onload = t.step_func_done(() => {
|
||||||
assert_equals(client.responseText, "\uFFFD")
|
assert_equals(client.responseText, "\uFFFD\uFFFD")
|
||||||
});
|
});
|
||||||
client.open("GET", testURL);
|
client.open("GET", testURL);
|
||||||
client.overrideMimeType("text/plain;charset=342");
|
client.overrideMimeType("text/plain;charset=342");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue