Auto merge of #24539 - servo-wpt-sync:wpt_update_24-10-2019, r=servo-wpt-sync

Sync WPT with upstream (24-10-2019)

Automated downstream sync of changes from upstream as of 24-10-2019.
[no-wpt-sync]
r? @servo-wpt-sync
This commit is contained in:
bors-servo 2019-10-24 22:46:50 -04:00 committed by GitHub
commit 273fe590db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
102 changed files with 410 additions and 458 deletions

View file

@ -14,6 +14,9 @@
[Revoke blob URL after creating Request, will fetch] [Revoke blob URL after creating Request, will fetch]
expected: FAIL expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL
[url-with-fetch.any.html] [url-with-fetch.any.html]
[Untitled] [Untitled]

View file

@ -214281,6 +214281,9 @@
"compat/webkit-text-fill-color-property-006-ref.html": [ "compat/webkit-text-fill-color-property-006-ref.html": [
[] []
], ],
"compression/META.yml": [
[]
],
"compression/pako/LICENSE": [ "compression/pako/LICENSE": [
[] []
], ],
@ -468324,6 +468327,10 @@
"1d3965fca6769c70bc02308a4c70b4e58c8990e5", "1d3965fca6769c70bc02308a4c70b4e58c8990e5",
"reftest" "reftest"
], ],
"compression/META.yml": [
"19a0bfaed3f0aa1b498c275ac43100dbcb23010b",
"support"
],
"compression/compression-bad-chunks.any.js": [ "compression/compression-bad-chunks.any.js": [
"06e3be9c0fe6d5663acf07cff12c4b9903c24661", "06e3be9c0fe6d5663acf07cff12c4b9903c24661",
"testharness" "testharness"
@ -485957,7 +485964,7 @@
"testharness" "testharness"
], ],
"contacts/contacts-select.https.window.js": [ "contacts/contacts-select.https.window.js": [
"5503ea6968a8d2bd89e49a67bf0def695738d68d", "617dee8b7f85a77c3d412d87f1c7dcada176749f",
"testharness" "testharness"
], ],
"contacts/resources/helpers.js": [ "contacts/resources/helpers.js": [
@ -513025,11 +513032,11 @@
"support" "support"
], ],
"css/CSS2/generated-content/before-after-positioned-002.html": [ "css/CSS2/generated-content/before-after-positioned-002.html": [
"acab1f5c8b7f207aa42862bce5f54f482686b60d", "30a2649d935ae60f22de40eda87fc6eaed9ccea8",
"reftest" "reftest"
], ],
"css/CSS2/generated-content/before-after-positioned-003.html": [ "css/CSS2/generated-content/before-after-positioned-003.html": [
"45ab57809565ae97f54ea750e73e5ac1cd716327", "f187b2bad0a1d28a7948801aee8f082888f268f5",
"reftest" "reftest"
], ],
"css/CSS2/generated-content/before-after-positioned-004-ref.html": [ "css/CSS2/generated-content/before-after-positioned-004-ref.html": [
@ -513037,7 +513044,7 @@
"support" "support"
], ],
"css/CSS2/generated-content/before-after-positioned-004.html": [ "css/CSS2/generated-content/before-after-positioned-004.html": [
"44c14f91be18fee881fd0301e67e598fb5747271", "99147574a8cf382e56d03c2765cba9e003213a8f",
"reftest" "reftest"
], ],
"css/CSS2/generated-content/before-after-table-parts-001-ref.xht": [ "css/CSS2/generated-content/before-after-table-parts-001-ref.xht": [
@ -572801,11 +572808,11 @@
"testharness" "testharness"
], ],
"css/css-forced-color-adjust/parsing/forced-color-adjust-computed.html": [ "css/css-forced-color-adjust/parsing/forced-color-adjust-computed.html": [
"cd9349c075cdf5d0c25d78f1506971e60f1cc925", "2e1f58974a45d91e36f45c7001c2bb34f5b0e5c3",
"testharness" "testharness"
], ],
"css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html": [ "css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html": [
"f1b6f696a72cf087915b7905b790e00e20e6a076", "6329305a9ce381adbee2f4d82409214d7a3c2fbe",
"testharness" "testharness"
], ],
"css/css-forced-color-adjust/parsing/forced-color-adjust-valid.html": [ "css/css-forced-color-adjust/parsing/forced-color-adjust-valid.html": [
@ -575773,7 +575780,7 @@
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-columns-computed-nogrid.html": [ "css/css-grid/parsing/grid-template-columns-computed-nogrid.html": [
"b95914fe3e55bebd04a77f1146279089efd5f964", "11b0393a676c7f18ede6485fbb9dab7cf1d98067",
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-columns-computed-withcontent.html": [ "css/css-grid/parsing/grid-template-columns-computed-withcontent.html": [
@ -575781,7 +575788,7 @@
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-columns-computed.html": [ "css/css-grid/parsing/grid-template-columns-computed.html": [
"f6d0d9721c9dd8ed1c0441a9dd2e2077b71350d3", "54380ef455eb9d45330e5aa50253c026f0a8fcb4",
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-columns-invalid.html": [ "css/css-grid/parsing/grid-template-columns-invalid.html": [
@ -575793,7 +575800,7 @@
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-rows-computed-nogrid.html": [ "css/css-grid/parsing/grid-template-rows-computed-nogrid.html": [
"03e601acb93191cecaa73b571d5f6cd8e2a6710a", "057a7fa0615fae3797939aa77c762b8335a90f2b",
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-rows-computed-withcontent.html": [ "css/css-grid/parsing/grid-template-rows-computed-withcontent.html": [
@ -575801,7 +575808,7 @@
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-rows-computed.html": [ "css/css-grid/parsing/grid-template-rows-computed.html": [
"40722623aaa1ee805dc6e282951febb0021e2a8a", "b7584e1954369cb4a98f5c3d6989bd03c8528421",
"testharness" "testharness"
], ],
"css/css-grid/parsing/grid-template-rows-invalid.html": [ "css/css-grid/parsing/grid-template-rows-invalid.html": [
@ -577969,7 +577976,7 @@
"testharness" "testharness"
], ],
"css/css-logical/parsing/inset-block-inline-shorthand.html": [ "css/css-logical/parsing/inset-block-inline-shorthand.html": [
"3b2ce6c040bf2bb9a4e7a2b61ff9d76312c07255", "c089c2a0d896ae1b3d3cc3ac0de60f22343f3fa7",
"testharness" "testharness"
], ],
"css/css-logical/parsing/inset-block-inline-valid.html": [ "css/css-logical/parsing/inset-block-inline-valid.html": [
@ -585869,11 +585876,11 @@
"support" "support"
], ],
"css/css-scoping/css-scoping-shadow-assigned-node-with-before-after.html": [ "css/css-scoping/css-scoping-shadow-assigned-node-with-before-after.html": [
"fddb36b6c0d9b4596305bc1fd10c294a17b9c07a", "b926540ae94034ce1acadad02fc3cf4cb7d20580",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-assigned-node-with-rules.html": [ "css/css-scoping/css-scoping-shadow-assigned-node-with-rules.html": [
"3e6a8dde0977f8af5d60ba9018b96316a4aa816f", "e981eae0557bdf98101c474cd7ae5ffe031d16b3",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-host-functional-rule.html": [ "css/css-scoping/css-scoping-shadow-host-functional-rule.html": [
@ -585885,15 +585892,15 @@
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-host-rule.html": [ "css/css-scoping/css-scoping-shadow-host-rule.html": [
"40233f2edf566b7287171586bc1f80b39d5c5407", "ef70b9017cdf3d8a5ca04b5da57f491d9b8dffb5",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-host-with-before-after.html": [ "css/css-scoping/css-scoping-shadow-host-with-before-after.html": [
"e343784c2ecbfd721dcf6bddd4ff09551479bf1b", "c32d8a9e87855b1131851c7e423b3da5de71d916",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-invisible-slot.html": [ "css/css-scoping/css-scoping-shadow-invisible-slot.html": [
"4e35a3e611ed3f7e25558e6a181171f47ff2d046", "be9f308fc40a9107c708aa15facf8d2c455f288a",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [ "css/css-scoping/css-scoping-shadow-nested-slot-display-override.html": [
@ -585901,11 +585908,11 @@
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-root-hides-children.html": [ "css/css-scoping/css-scoping-shadow-root-hides-children.html": [
"3351847ccdf8892e5d75ec661c0eb23d15793b32", "bc526059dcafa63267a9a4abbcf4e120ea738374",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slot-display-override.html": [ "css/css-scoping/css-scoping-shadow-slot-display-override.html": [
"c930faad0c356ad7482c096d4f4877da3fd0be43", "9338a25be6fe21089f359da72b8fe118ac593bdc",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slot-fallback.html": [ "css/css-scoping/css-scoping-shadow-slot-fallback.html": [
@ -585913,31 +585920,31 @@
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slot-style.html": [ "css/css-scoping/css-scoping-shadow-slot-style.html": [
"dfee90ac5dd49232ae138b03baaeaae35b8a0124", "e3f37c33c848d45133717e79ed333afd52219493",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slot.html": [ "css/css-scoping/css-scoping-shadow-slot.html": [
"7c177b8f80bade852221d9ef8e863b40a0ed6f27", "2b588d622e12dff9f146150b25edae0e76b31356",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slotted-nested.html": [ "css/css-scoping/css-scoping-shadow-slotted-nested.html": [
"357bc78532b4d1d370da6626cd55c23af82f820f", "5f930e2e8777e7c4bb84aa19789e54b588122214",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-slotted-rule.html": [ "css/css-scoping/css-scoping-shadow-slotted-rule.html": [
"6c70581e85432cafade9a68443755ee1cd1d5f6d", "9771c5d1dfb6d9139ecd76f7db3c0363b2c5d0c9",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-with-outside-rules.html": [ "css/css-scoping/css-scoping-shadow-with-outside-rules.html": [
"3dd267873d96a5300d058fb67d6b4fa7e06e2296", "c725752cba54234c632d385d2ca1d9b0547da3f6",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-with-rules-no-style-leak.html": [ "css/css-scoping/css-scoping-shadow-with-rules-no-style-leak.html": [
"e9fd52a6eeb2dda3e4f7be9904f03e9666733d79", "e4d1d15b7be7c20dff2d6fe66d86161e885c82c9",
"reftest" "reftest"
], ],
"css/css-scoping/css-scoping-shadow-with-rules.html": [ "css/css-scoping/css-scoping-shadow-with-rules.html": [
"59787f048370401e80542ba7dbb0affcaed06c2f", "3338ecbf72f028cdb657bacc2a176ebd2658333b",
"reftest" "reftest"
], ],
"css/css-scoping/host-context-specificity-001.html": [ "css/css-scoping/host-context-specificity-001.html": [
@ -590761,7 +590768,7 @@
"reftest" "reftest"
], ],
"css/css-text/hyphens/hyphens-overflow-001.html": [ "css/css-text/hyphens/hyphens-overflow-001.html": [
"948b728254a3a097964e3a341f8475c0c93b4340", "4154e5e1181b47f39b238abb40537262fe4906dc",
"reftest" "reftest"
], ],
"css/css-text/hyphens/hyphens-shaping-001.html": [ "css/css-text/hyphens/hyphens-shaping-001.html": [
@ -590789,7 +590796,7 @@
"support" "support"
], ],
"css/css-text/hyphens/reference/hyphens-overflow-001-ref.html": [ "css/css-text/hyphens/reference/hyphens-overflow-001-ref.html": [
"08d521d33960ea5d495de39ce9bb2be5fc5c29a0", "db002ce45d84a89ba9692e8e6d3c97a5227fc64f",
"support" "support"
], ],
"css/css-text/hyphens/reference/hyphens-shaping-001-ref.html": [ "css/css-text/hyphens/reference/hyphens-shaping-001-ref.html": [
@ -601981,7 +601988,7 @@
"testharness" "testharness"
], ],
"css/css-transitions/parsing/transition-timing-function-computed.html": [ "css/css-transitions/parsing/transition-timing-function-computed.html": [
"e57856bab4f16f11f288197bb0244aaffa57be7e", "cb110549d0b072311d6f00e23bb5452170b0f43c",
"testharness" "testharness"
], ],
"css/css-transitions/parsing/transition-timing-function-invalid.html": [ "css/css-transitions/parsing/transition-timing-function-invalid.html": [
@ -614449,7 +614456,7 @@
"support" "support"
], ],
"css/css-writing-modes/wm-propagation-001.html": [ "css/css-writing-modes/wm-propagation-001.html": [
"f552265d0d0b32593f18df806929d86a368ee81b", "a86d32f3ed5e8f7aa637d83f6db6c46ac2c8f93b",
"reftest" "reftest"
], ],
"css/css-writing-modes/wm-propagation-002-ref.html": [ "css/css-writing-modes/wm-propagation-002-ref.html": [
@ -620009,7 +620016,7 @@
"support" "support"
], ],
"css/support/computed-testcommon.js": [ "css/support/computed-testcommon.js": [
"c6719784522136093480178197375bef75159d05", "1e87f2a518cb1c7845a99d6a13330e7a13436eca",
"support" "support"
], ],
"css/support/green.ico": [ "css/support/green.ico": [
@ -629581,7 +629588,7 @@
"reftest" "reftest"
], ],
"custom-elements/CustomElementRegistry.html": [ "custom-elements/CustomElementRegistry.html": [
"2f7cf572b682deae9e734e9c9856f621a9451a53", "368044df3c9373b4ea966bd1b7e9080581b91293",
"testharness" "testharness"
], ],
"custom-elements/Document-createElement-svg.svg": [ "custom-elements/Document-createElement-svg.svg": [
@ -629961,7 +629968,7 @@
"testharness" "testharness"
], ],
"custom-elements/reactions/resources/reactions.js": [ "custom-elements/reactions/resources/reactions.js": [
"87510ceee164ffb331808d1c0a026af43fde1fbc", "5ed32a4fa48c816f57b2cd0f6df5e7deda95000b",
"support" "support"
], ],
"custom-elements/reactions/with-exceptions.html": [ "custom-elements/reactions/with-exceptions.html": [
@ -629985,11 +629992,11 @@
"support" "support"
], ],
"custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html": [ "custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html": [
"5582bca4bb3a5396bd245031df4ddf8f2b7d1d91", "5938a0aeb9f2af389ec7da1131d8965c0216cfca",
"testharness" "testharness"
], ],
"custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html": [ "custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html": [
"9dccd4ca24df3c2cae5fef4ee209ab195546192f", "b9f9f55c705e9ca4f04b783657c7f30bbd7b34ac",
"testharness" "testharness"
], ],
"custom-elements/upgrading.html": [ "custom-elements/upgrading.html": [
@ -639605,7 +639612,7 @@
"manual" "manual"
], ],
"html-longdesc/fail-fragment.html": [ "html-longdesc/fail-fragment.html": [
"a4e2ead8c6ae0ebbc35425a34f5e64ce1aa471c6", "ddfc92a84a02fcf3fe6103359d9c8a62f231ccc0",
"support" "support"
], ],
"html-longdesc/fail.html": [ "html-longdesc/fail.html": [
@ -639621,11 +639628,11 @@
"manual" "manual"
], ],
"html-longdesc/pass-fragment.html": [ "html-longdesc/pass-fragment.html": [
"076f4f05ec66b468fe210f4c30da918bbb2e748f", "ce87936c5862d4aa2cf1d90397d40fb5e2667ba0",
"support" "support"
], ],
"html-longdesc/pass.html": [ "html-longdesc/pass.html": [
"d3ee981d8545df119e68128d7fa1cc95d1976f2b", "b5fee3b2ab60f36b3baf7c22f87c1229a60d54fa",
"support" "support"
], ],
"html-longdesc/picture.png": [ "html-longdesc/picture.png": [
@ -639633,7 +639640,7 @@
"support" "support"
], ],
"html-longdesc/rebased/fail.html": [ "html-longdesc/rebased/fail.html": [
"291ad8fc7236f3bf061126987077b4cdb456d434", "ccbbaa6cf650708a88a5f9e9c2f820c48d99a8e7",
"support" "support"
], ],
"html-longdesc/rebased/picture2.png": [ "html-longdesc/rebased/picture2.png": [
@ -661889,7 +661896,7 @@
"testharness" "testharness"
], ],
"lint.whitelist": [ "lint.whitelist": [
"435a61bc4d09da6cc15eee0ae9ed9f6db6c2b365", "ac2d30427cfe37ad479c50d15db14dc6d2d63a07",
"support" "support"
], ],
"loading/lazyload/common.js": [ "loading/lazyload/common.js": [
@ -675165,7 +675172,7 @@
"testharness" "testharness"
], ],
"pointerevents/extension/pointerevent_constructor.html": [ "pointerevents/extension/pointerevent_constructor.html": [
"6971dcecfdebf3a113ef4ef9c9e8bd7bdf88ea02", "60b579050a18270fa67d633476eb90803ca16a93",
"testharness" "testharness"
], ],
"pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked.html": [ "pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked.html": [
@ -675185,7 +675192,7 @@
"manual" "manual"
], ],
"pointerevents/extension/pointerevent_predicted_events_attributes-manual.html": [ "pointerevents/extension/pointerevent_predicted_events_attributes-manual.html": [
"220a4b82850598c404699e4cf1a1c5a10738b137", "fdfcae1fc8efeaa57927147ef0f72340738b003f",
"manual" "manual"
], ],
"pointerevents/extension/pointerevent_touch-action-pan-down-css_touch.html": [ "pointerevents/extension/pointerevent_touch-action-pan-down-css_touch.html": [
@ -675209,7 +675216,7 @@
"testharness" "testharness"
], ],
"pointerevents/html/pointerevent_drag_interaction-manual.html": [ "pointerevents/html/pointerevent_drag_interaction-manual.html": [
"0ac911fd576d98e897b1aa19ec27236b20f92e43", "b316ba917eca417c4ac09be64b53876734859f5c",
"manual" "manual"
], ],
"pointerevents/idlharness.window.js": [ "pointerevents/idlharness.window.js": [
@ -675337,7 +675344,7 @@
"testharness" "testharness"
], ],
"pointerevents/pointerevent_pointerleave_pen-manual.html": [ "pointerevents/pointerevent_pointerleave_pen-manual.html": [
"bb6dcc4236b0cc5183855275d85208db6460a5cb", "d0d8dd3682513fa44659573f02aa3eb9044c5605",
"manual" "manual"
], ],
"pointerevents/pointerevent_pointermove.html": [ "pointerevents/pointerevent_pointermove.html": [
@ -675377,7 +675384,7 @@
"testharness" "testharness"
], ],
"pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html": [ "pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html": [
"23c28b4bf755e493d747f7814a21aa598f4f0d8c", "f37c7cfd1440b49766a4c7b92a12ef2126849ce7",
"testharness" "testharness"
], ],
"pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html": [ "pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html": [
@ -675521,7 +675528,7 @@
"testharness" "testharness"
], ],
"pointerevents/pointerevent_touch-action-verification.html": [ "pointerevents/pointerevent_touch-action-verification.html": [
"f42d9f6bd6703b962058b79faae413fbed0757cc", "80d61e0a6697208d65e4fc74e0289a0218f5aea1",
"testharness" "testharness"
], ],
"pointerevents/pointerlock/pointerevent_coordinates_when_locked.html": [ "pointerevents/pointerlock/pointerevent_coordinates_when_locked.html": [
@ -675549,7 +675556,7 @@
"testharness" "testharness"
], ],
"pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [ "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [
"a6f238cbee127353fdab9982fe8a9a75d67b23f7", "2421b1c1ce0d083fd6f9c84edcd6eaa909b67379",
"testharness" "testharness"
], ],
"pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [ "pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [
@ -689533,7 +689540,7 @@
"support" "support"
], ],
"resources/chromium/contacts_manager_mock.js": [ "resources/chromium/contacts_manager_mock.js": [
"ae4c33b073dfd2b156030b2cb6d045e133b57c23", "8e7c9eef38e39e39652075e757bcc8bf521c4039",
"support" "support"
], ],
"resources/chromium/device.mojom.js": [ "resources/chromium/device.mojom.js": [
@ -689913,7 +689920,7 @@
"support" "support"
], ],
"resources/test/tests/functional/worker-uncaught-allow.js": [ "resources/test/tests/functional/worker-uncaught-allow.js": [
"957131a890e007bd8ad1e111064849d1e65dd90e", "6925d59349a34bc1123678d51bb84e34f76f7a7d",
"support" "support"
], ],
"resources/test/tests/functional/worker-uncaught-single.js": [ "resources/test/tests/functional/worker-uncaught-single.js": [
@ -689997,7 +690004,7 @@
"support" "support"
], ],
"resources/test/tests/unit/exceptional-cases.html": [ "resources/test/tests/unit/exceptional-cases.html": [
"ef8f91bc61fac62f311e55cbd5c4d184af0c64ad", "236970cbea95a53ad1be21076d5a6af3bc53642e",
"support" "support"
], ],
"resources/test/tests/unit/format-value.html": [ "resources/test/tests/unit/format-value.html": [
@ -690061,7 +690068,7 @@
"support" "support"
], ],
"resources/testharness.js": [ "resources/testharness.js": [
"0b06791fa8f94973a2431e93d59e7c8dadef0d93", "9f7426b7d36a093806790fc35aad28e29ff34e06",
"support" "support"
], ],
"resources/testharness.js.headers": [ "resources/testharness.js.headers": [
@ -693869,7 +693876,7 @@
"testharness" "testharness"
], ],
"shadow-dom/event-inside-slotted-node.html": [ "shadow-dom/event-inside-slotted-node.html": [
"56773142ba6f5904af86696e9801aaf4c6f74a9a", "5f8d3b93c6b41fb5046a0f69b105df9a3855b373",
"testharness" "testharness"
], ],
"shadow-dom/event-post-dispatch.html": [ "shadow-dom/event-post-dispatch.html": [
@ -693897,7 +693904,7 @@
"testharness" "testharness"
], ],
"shadow-dom/focus/focus-method-delegatesFocus.html": [ "shadow-dom/focus/focus-method-delegatesFocus.html": [
"462542e3f7be18bc609b3e6d2c9d9e6ecde30a9f", "babe1760c70fcc4faeba096d7640165e4d0ccab8",
"testharness" "testharness"
], ],
"shadow-dom/focus/focus-selector-delegatesFocus.html": [ "shadow-dom/focus/focus-selector-delegatesFocus.html": [
@ -712741,7 +712748,7 @@
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling.html": [ "webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling.html": [
"27ac0984a79ef276f6f6e32dc9814131487de31a", "8c627f90f22ca322daf890b9f2482fe0daad2176",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audiocontext-interface/.gitkeep": [ "webaudio/the-audio-api/the-audiocontext-interface/.gitkeep": [
@ -712777,7 +712784,7 @@
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html": [ "webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining.html": [
"2df5d03ac076557f6b2fb833efed333e243a320a", "02caea667bba2de523488174053aa251892eeec2",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html": [ "webaudio/the-audio-api/the-audionode-interface/audionode-connect-order.html": [
@ -712817,7 +712824,7 @@
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html": [ "webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html": [
"517d64f3dbb69e610a5ed17475c45f530f749a42", "b0455f86bc0f9880980c1e83fe729d5b6d698f13",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html": [ "webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values.html": [
@ -712905,15 +712912,15 @@
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html": [ "webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime.html": [
"978aeb9733bb2589b44193ed23d9ce153a72bb2b", "c81c3ad23eb9c10f5cf6499bada9ed58bca68b24",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html": [ "webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime.html": [
"42af6a71b3a73c4d480a6ea5ec1966034c1865ab", "9f5e55fe55fec3be2af3b9b468cc329dd62e9616",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html": [ "webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime.html": [
"53427901e3d0759212d540ec82a35ed0df8ef0c4", "41a37bdb913efbf7a9c392b1130cc0bd9a65c251",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html": [ "webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html": [
@ -713321,7 +713328,7 @@
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-gainnode-interface/gain.html": [ "webaudio/the-audio-api/the-gainnode-interface/gain.html": [
"c1ee0240cb9f87bc05fb4f5fb076d01b2de45899", "c41f4c908056aba804bc691c335e528fd1e2f44f",
"testharness" "testharness"
], ],
"webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html": [ "webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html": [

View file

@ -5,9 +5,9 @@
[[data-expected-height\] 7] [[data-expected-height\] 7]
expected: FAIL expected: FAIL
[[data-expected-height\] 1] [[data-expected-height\] 3]
expected: FAIL expected: FAIL
[[data-expected-height\] 2] [[data-expected-height\] 4]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[background-attachment-computed.html]
[Property background-attachment value 'scroll, fixed, local' computes to 'scroll']
expected: FAIL

View file

@ -0,0 +1,4 @@
[quirks-auto-block-size-with-percentage-item.html]
[#container 1]
expected: FAIL

View file

@ -0,0 +1,4 @@
[text-align-computed.html]
[Property text-align value 'match-parent' computes to 'center']
expected: FAIL

View file

@ -236,3 +236,6 @@
[Property letter-spacing value 'calc(max(1em, 19px) * 2' computes to '40px'] [Property letter-spacing value 'calc(max(1em, 19px) * 2' computes to '40px']
expected: FAIL expected: FAIL
[Property letter-spacing value 'calc(min(1em, 21px) - max(0.9em, 20px))' computes to 'normal']
expected: FAIL

View file

@ -35,3 +35,9 @@
[Property opacity value 'calc(min(0.1, 0.2) - max(0.1, 0.05))' computes to '0'] [Property opacity value 'calc(min(0.1, 0.2) - max(0.1, 0.05))' computes to '0']
expected: FAIL expected: FAIL
[Property opacity value 'max(1)' computes to '1']
expected: FAIL
[Property opacity value 'min(1)' computes to '1']
expected: FAIL

View file

@ -38,3 +38,6 @@
[Property margin-left value 'calc(max(10%, 20%) + 5%)' computes to '100px'] [Property margin-left value 'calc(max(10%, 20%) + 5%)' computes to '100px']
expected: FAIL expected: FAIL
[Property margin-left value 'calc(min(10%, 20%) - max(10%, 5%))' computes to '0px']
expected: FAIL

View file

@ -56,3 +56,12 @@
[Property transition-delay value 'min(1s, 2s)' computes to '1s'] [Property transition-delay value 'min(1s, 2s)' computes to '1s']
expected: FAIL expected: FAIL
[Property transition-delay value 'calc(max(0.5s, 400ms) - 500ms)' computes to '0s']
expected: FAIL
[Property transition-delay value 'calc(min(0.5s, 600ms) - 500ms)' computes to '0s']
expected: FAIL
[Property transition-delay value 'calc(min(0.5s, 600ms) - max(500ms, 0.4s))' computes to '0s']
expected: FAIL

View file

@ -11,3 +11,6 @@
[doesn't look up handleEvent method on callable event listeners] [doesn't look up handleEvent method on callable event listeners]
expected: FAIL expected: FAIL
[looks up handleEvent method on every event dispatch]
expected: FAIL

View file

@ -312,15 +312,12 @@
[<iframe>: separate response Content-Type: */* text/html] [<iframe>: separate response Content-Type: */* text/html]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*] [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain] [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain] [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL

View file

@ -56,9 +56,6 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL expected: FAIL
[separate text/javascript error] [separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL
[separate text/javascript ]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[script-resource-with-nonsniffable-types.tentative.sub.html]
expected: TIMEOUT

View file

@ -1,6 +1,6 @@
[embedded-credentials.tentative.sub.html] [embedded-credentials.tentative.sub.html]
type: testharness type: testharness
expected: TIMEOUT expected: CRASH
[Embedded credentials are treated as network errors.] [Embedded credentials are treated as network errors.]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,7 +1,7 @@
[document_domain_access_details.sub.html] [document_domain_access_details.sub.html]
expected: TIMEOUT expected: TIMEOUT
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)] [Access allowed if same-origin with no 'document.domain' modification. (Sanity check)]
expected: TIMEOUT expected: FAIL
[Access is revoked to Window object when we stop being same effective script origin due to document.domain.] [Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN expected: NOTRUN
@ -13,7 +13,7 @@
expected: NOTRUN expected: NOTRUN
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)] [Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)]
expected: NOTRUN expected: FAIL
[Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.] [Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
expected: NOTRUN expected: NOTRUN
@ -22,13 +22,13 @@
expected: NOTRUN expected: NOTRUN
[Access allowed if same-origin and both set document.domain to existing value.] [Access allowed if same-origin and both set document.domain to existing value.]
expected: NOTRUN expected: TIMEOUT
[Access is not revoked to Document object when we stop being same effective script origin due to document.domain.] [Access is not revoked to Document object when we stop being same effective script origin due to document.domain.]
expected: NOTRUN expected: NOTRUN
[Access disallowed if same-origin but only one sets document.domain.] [Access disallowed if same-origin but only one sets document.domain.]
expected: NOTRUN expected: FAIL
[Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.] [Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
expected: NOTRUN expected: NOTRUN

View file

@ -1,24 +1,5 @@
[open-features-negative-innerwidth-innerheight.html] [open-features-negative-innerwidth-innerheight.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`] [HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
expected: FAIL expected: FAIL
[features "innerheight=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404.5" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerheight=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404e1" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,24 +1,5 @@
[open-features-negative-screenx-screeny.html] [open-features-negative-screenx-screeny.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`] [HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
expected: FAIL expected: FAIL
[features "screenx=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "screeny=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "screenx=-0" should NOT set "left=204"]
expected: TIMEOUT
[features "screenx=-204.5" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,24 +1,5 @@
[open-features-negative-top-left.html] [open-features-negative-top-left.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `top`, `left`] [HTML: window.open `features`: negative values for `top`, `left`]
expected: FAIL expected: FAIL
[features "top=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "top=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "top=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204.5" should NOT set "left=204"]
expected: TIMEOUT
[features "left=-0" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,24 +1,5 @@
[open-features-negative-width-height.html] [open-features-negative-width-height.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `width`, `height`] [HTML: window.open `features`: negative values for `width`, `height`]
expected: FAIL expected: FAIL
[features "height=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "width=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404e1" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404.5" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,48 +1,32 @@
[open-features-non-integer-height.html] [open-features-non-integer-height.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `height`] [HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL expected: FAIL
[features "height=405*3" should set "height=405"] [features "height=405*3" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405.32" should set "height=405"] [features "height=405.32" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405e1" should set "height=405"] [features "height=405e1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405/5" should set "height=405"] [features "height=405/5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405^4" should set "height=405"] [features "height=405^4" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405.5" should set "height=405"] [features "height=405.5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405e-1" should set "height=405"] [features "height=405e-1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405 " should set "height=405"] [features "height=405 " should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=405LLl" should set "height=405"] [features "height=405LLl" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "height=/404" should NOT set "height=404"]
expected: TIMEOUT
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[features "height=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=L404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-innerheight.html] [open-features-non-integer-innerheight.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`] [HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL expected: FAIL
[features "innerheight=405e-1" should set "height=405"] [features "innerheight=405e-1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405LLl" should set "height=405"] [features "innerheight=405LLl" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405^4" should set "height=405"] [features "innerheight=405^4" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405e1" should set "height=405"] [features "innerheight=405e1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405 " should set "height=405"] [features "innerheight=405 " should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405/5" should set "height=405"] [features "innerheight=405/5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405.32" should set "height=405"] [features "innerheight=405.32" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405.5" should set "height=405"] [features "innerheight=405.5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=405*3" should set "height=405"] [features "innerheight=405*3" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "innerheight=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-innerwidth.html] [open-features-non-integer-innerwidth.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`] [HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL expected: FAIL
[features "innerwidth=405e-1" should set "width=405"] [features "innerwidth=405e-1" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405*3" should set "width=405"] [features "innerwidth=405*3" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405.5" should set "width=405"] [features "innerwidth=405.5" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405e1" should set "width=405"] [features "innerwidth=405e1" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405.32" should set "width=405"] [features "innerwidth=405.32" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405 " should set "width=405"] [features "innerwidth=405 " should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405LLl" should set "width=405"] [features "innerwidth=405LLl" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405/5" should set "width=405"] [features "innerwidth=405/5" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=405^4" should set "width=405"] [features "innerwidth=405^4" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "innerwidth=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=_404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-left.html] [open-features-non-integer-left.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `left`] [HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL expected: FAIL
[features "left=105e1" should set "left=105"] [features "left=105e1" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105 " should set "left=105"] [features "left=105 " should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105/5" should set "left=105"] [features "left=105/5" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105e-1" should set "left=105"] [features "left=105e-1" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105^4" should set "left=105"] [features "left=105^4" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105LLl" should set "left=105"] [features "left=105LLl" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105.32" should set "left=105"] [features "left=105.32" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105*3" should set "left=105"] [features "left=105*3" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=105.5" should set "left=105"] [features "left=105.5" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "left=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=/104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=_104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-screenx.html] [open-features-non-integer-screenx.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screenx`] [HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL expected: FAIL
[features "screenx=105.5" should set "left=105"] [features "screenx=105.5" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105e1" should set "left=105"] [features "screenx=105e1" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105 " should set "left=105"] [features "screenx=105 " should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105*3" should set "left=105"] [features "screenx=105*3" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105e-1" should set "left=105"] [features "screenx=105e-1" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105^4" should set "left=105"] [features "screenx=105^4" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105LLl" should set "left=105"] [features "screenx=105LLl" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105/5" should set "left=105"] [features "screenx=105/5" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=105.32" should set "left=105"] [features "screenx=105.32" should set "left=105"]
expected: TIMEOUT expected: FAIL
[features "screenx=_104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=/104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-screeny.html] [open-features-non-integer-screeny.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screeny`] [HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL expected: FAIL
[features "screeny=405^4" should set "height=405"] [features "screeny=405^4" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405e-1" should set "height=405"] [features "screeny=405e-1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405LLl" should set "height=405"] [features "screeny=405LLl" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405e1" should set "height=405"] [features "screeny=405e1" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405 " should set "height=405"] [features "screeny=405 " should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405/5" should set "height=405"] [features "screeny=405/5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405*3" should set "height=405"] [features "screeny=405*3" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405.32" should set "height=405"] [features "screeny=405.32" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=405.5" should set "height=405"] [features "screeny=405.5" should set "height=405"]
expected: TIMEOUT expected: FAIL
[features "screeny=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,42 +1,32 @@
[open-features-non-integer-top.html] [open-features-non-integer-top.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `top`] [HTML: window.open `features`: non-integer values for feature `top`]
expected: FAIL expected: FAIL
[features "top=105/5" should set "top=105"] [features "top=105/5" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105*3" should set "top=105"] [features "top=105*3" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105LLl" should set "top=105"] [features "top=105LLl" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105e-1" should set "top=105"] [features "top=105e-1" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105.32" should set "top=105"] [features "top=105.32" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105e1" should set "top=105"] [features "top=105e1" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105 " should set "top=105"] [features "top=105 " should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105^4" should set "top=105"] [features "top=105^4" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=105.5" should set "top=105"] [features "top=105.5" should set "top=105"]
expected: TIMEOUT expected: FAIL
[features "top=/104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=_104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=L104" should NOT set "top=104"]
expected: TIMEOUT

View file

@ -1,48 +1,32 @@
[open-features-non-integer-width.html] [open-features-non-integer-width.html]
type: testharness type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`] [HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL expected: FAIL
[features "width=405^4" should set "width=405"] [features "width=405^4" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405.5" should set "width=405"] [features "width=405.5" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405e1" should set "width=405"] [features "width=405e1" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405 " should set "width=405"] [features "width=405 " should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405.32" should set "width=405"] [features "width=405.32" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405LLl" should set "width=405"] [features "width=405LLl" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405*3" should set "width=405"] [features "width=405*3" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405e-1" should set "width=405"] [features "width=405e-1" should set "width=405"]
expected: TIMEOUT expected: FAIL
[features "width=405/5" should set "width=405"] [features "width=405/5" should set "width=405"]
expected: TIMEOUT expected: FAIL
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=_404" should NOT set "width=404"]
expected: TIMEOUT
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -1,5 +1,5 @@
[form-double-submit-2.html] [form-double-submit-2.html]
expected: ERROR expected: ERROR
[preventDefault should allow onclick submit() to succeed] [preventDefault should allow onclick submit() to succeed]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,5 @@
[form-double-submit-3.html] [form-double-submit-3.html]
expected: ERROR expected: ERROR
[<button> should have the same double-submit protection as <input type=submit>] [<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[form-double-submit.html] [form-double-submit.html]
expected: ERROR expected: ERROR
[default submit action should supersede onclick submit()] [default submit action should supersede onclick submit()]
expected: TIMEOUT expected: FAIL

View file

@ -1,11 +1,7 @@
[form-submission-algorithm.html] [form-submission-algorithm.html]
expected: TIMEOUT
[If form's firing submission events is true, then return; 'submit' event] [If form's firing submission events is true, then return; 'submit' event]
expected: FAIL expected: FAIL
[If form's firing submission events is true, then return; 'invalid' event] [If form's firing submission events is true, then return; 'invalid' event]
expected: FAIL expected: FAIL
[Cannot navigate (after constructing the entry list)]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[005.html] [005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker] [dedicated worker in shared worker in dedicated worker]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[stylesheet_media_queries.html]
[Media queries within stylesheets]
expected: FAIL

View file

@ -0,0 +1,3 @@
spec: https://ricea.github.io/compression/
suggested_reviewers:
- ricea

View file

@ -59,38 +59,53 @@ contactsTestWithUserActivation(async (test, setSelectedContacts) => {
}, 'Supported contact properties are exposed.'); }, 'Supported contact properties are exposed.');
contactsTestWithUserActivation(async (test, setSelectedContacts) => { contactsTestWithUserActivation(async (test, setSelectedContacts) => {
const dwightAddress = {
country: 'US',
city: 'Scranton',
addressLine: ['Schrute Farms'],
};
// Returns two contacts with all information available. // Returns two contacts with all information available.
setSelectedContacts([ setSelectedContacts([
{ name: ['Dwight Schrute'], email: ['dwight@schrutefarmsbnb.com'], tel: ['000-0000'] }, { name: ['Dwight Schrute'], email: ['dwight@schrutefarmsbnb.com'], tel: ['000-0000'], address: [dwightAddress] },
{ name: ['Michael Scott', 'Prison Mike'], email: ['michael@dundermifflin.com'], tel: [] }, { name: ['Michael Scott', 'Prison Mike'], email: ['michael@dundermifflin.com'] },
]); ]);
let results = await navigator.contacts.select(['name', 'email', 'tel'], { multiple: true }); let results = await navigator.contacts.select(['name', 'email', 'tel', 'address'], { multiple: true });
assert_equals(results.length, 2); assert_equals(results.length, 2);
results = results.sort((c1, c2) => JSON.stringify(c1) < JSON.stringify(c2) ? -1 : 1); results = results.sort((c1, c2) => JSON.stringify(c1) < JSON.stringify(c2) ? -1 : 1);
{ {
const dwight = results[0]; const michael = results[0];
assert_own_property(dwight, 'name');
assert_own_property(dwight, 'email');
assert_own_property(dwight, 'tel');
assert_array_equals(dwight.name, ['Dwight Schrute']);
assert_array_equals(dwight.email, ['dwight@schrutefarmsbnb.com']);
assert_array_equals(dwight.tel, ['000-0000']);
}
{
const michael = results[1];
assert_own_property(michael, 'name'); assert_own_property(michael, 'name');
assert_own_property(michael, 'email'); assert_own_property(michael, 'email');
assert_own_property(michael, 'tel'); assert_own_property(michael, 'tel');
assert_own_property(michael, 'address');
assert_array_equals(michael.name, ['Michael Scott', 'Prison Mike']); assert_array_equals(michael.name, ['Michael Scott', 'Prison Mike']);
assert_array_equals(michael.email, ['michael@dundermifflin.com']); assert_array_equals(michael.email, ['michael@dundermifflin.com']);
assert_array_equals(michael.tel, []); assert_array_equals(michael.tel, []);
assert_array_equals(michael.address, []);
}
{
const dwight = results[1];
assert_own_property(dwight, 'name');
assert_own_property(dwight, 'email');
assert_own_property(dwight, 'tel');
assert_own_property(dwight, 'address');
assert_array_equals(dwight.name, ['Dwight Schrute']);
assert_array_equals(dwight.email, ['dwight@schrutefarmsbnb.com']);
assert_array_equals(dwight.tel, ['000-0000']);
assert_equals(dwight.address.length, 1);
const selectedAddress = dwight.address[0];
assert_object_equals({
country: selectedAddress.country,
city: selectedAddress.city,
addressLine: selectedAddress.addressLine,
}, dwightAddress);
} }
}, 'The Contact API correctly returns ContactInfo entries'); }, 'The Contact API correctly returns ContactInfo entries');
@ -98,7 +113,7 @@ contactsTestWithUserActivation(async (test, setSelectedContacts) => {
// Returns two contacts with all information available. // Returns two contacts with all information available.
setSelectedContacts([ setSelectedContacts([
{ name: ['Dwight Schrute'], email: ['dwight@schrutefarmsbnb.com'], tel: ['000-0000'] }, { name: ['Dwight Schrute'], email: ['dwight@schrutefarmsbnb.com'], tel: ['000-0000'] },
{ name: ['Michael Scott', 'Prison Mike'], email: ['michael@dundermifflin.com'], tel: [] }, { name: ['Michael Scott', 'Prison Mike'], email: ['michael@dundermifflin.com'] },
]); ]);
const results = await navigator.contacts.select(['name', 'email', 'tel']); const results = await navigator.contacts.select(['name', 'email', 'tel']);
@ -108,7 +123,7 @@ contactsTestWithUserActivation(async (test, setSelectedContacts) => {
contactsTestWithUserActivation(async (test, setSelectedContacts) => { contactsTestWithUserActivation(async (test, setSelectedContacts) => {
// Returns partial information since no e-mail addresses are requested. // Returns partial information since no e-mail addresses are requested.
setSelectedContacts([{ name: ['Creed'], email: ['creedthoughts@www.creedthoughts.gov.www'], tel: [] }]); setSelectedContacts([{ name: ['Creed'], email: ['creedthoughts@www.creedthoughts.gov.www'] }]);
const results = await navigator.contacts.select(['name']); const results = await navigator.contacts.select(['name']);
@ -125,7 +140,7 @@ contactsTestWithUserActivation(async (test, setSelectedContacts) => {
contactsTestWithUserActivation(async (test, setSelectedContacts) => { contactsTestWithUserActivation(async (test, setSelectedContacts) => {
// Returns partial information since no e-mail addresses are requested. // Returns partial information since no e-mail addresses are requested.
setSelectedContacts([{ name: ['Kelly'], email: [], tel: [] }]); setSelectedContacts([{ name: ['Kelly'] }]);
// First request should work. // First request should work.
const promise1 = new Promise((resolve, reject) => { const promise1 = new Promise((resolve, reject) => {

View file

@ -20,14 +20,14 @@
} }
#test:before{ #test:before{
bottom:0; bottom:0;
right:50px; right:50px;
} }
</style> </style>
</head> </head>
<body> <body>
<p>Test passes if there is a square (four equal sides) at the bottom right of the page.</p> <p>Test passes if there is a square (four equal sides) at the bottom right of the page.</p>
<div id="test"></div> <div id="test"></div>
</body> </body>
</html> </html>

View file

@ -20,14 +20,14 @@
} }
#test:before{ #test:before{
bottom:0; bottom:0;
right:50px; right:50px;
} }
</style> </style>
</head> </head>
<body> <body>
<p>Test passes if there is a square (four equal sides) at the bottom right of the page.</p> <p>Test passes if there is a square (four equal sides) at the bottom right of the page.</p>
<div id="test"></div> <div id="test"></div>
</body> </body>
</html> </html>

View file

@ -21,14 +21,14 @@
} }
#test:before{ #test:before{
left:50px; left:50px;
top:0; top:0;
} }
</style> </style>
</head> </head>
<body> <body>
<p>Test passes if there is a square (four equal sides) below.</p> <p>Test passes if there is a square (four equal sides) below.</p>
<div id="test"></div> <div id="test"></div>
</body> </body>
</html> </html>

View file

@ -6,13 +6,6 @@
<script src="/css/support/computed-testcommon.js"></script> <script src="/css/support/computed-testcommon.js"></script>
<div id="target"></div> <div id="target"></div>
<script> <script>
test_computed_value("forced-color-adjust", "", "auto");
test_computed_value("forced-color-adjust", "auto"); test_computed_value("forced-color-adjust", "auto");
test_computed_value("forced-color-adjust", "none"); test_computed_value("forced-color-adjust", "none");
// reserved and css-wide keywords.
test_computed_value("forced-color-adjust", "initial", "auto");
test_computed_value("forced-color-adjust", "inherit", "auto");
test_computed_value("forced-color-adjust", "unset", "auto");
test_computed_value("forced-color-adjust", "revert", "auto");
test_computed_value("forced-color-adjust", "default", "auto");
</script> </script>

View file

@ -10,4 +10,6 @@
test_invalid_value("forced-color-adjust", "none none"); test_invalid_value("forced-color-adjust", "none none");
test_invalid_value("forced-color-adjust", "none auto"); test_invalid_value("forced-color-adjust", "none auto");
test_invalid_value("forced-color-adjust", "1"); test_invalid_value("forced-color-adjust", "1");
test_invalid_value("forced-color-adjust", "revert");
test_invalid_value("forced-color-adjust", "default");
</script> </script>

View file

@ -25,6 +25,9 @@ test_computed_value("grid-template-columns", "[a] 1px [b]");
test_computed_value("grid-template-columns", "1px repeat(1, 2px) 3px"); test_computed_value("grid-template-columns", "1px repeat(1, 2px) 3px");
test_computed_value("grid-template-columns", "1px repeat(auto-fill, 2px) 3px"); test_computed_value("grid-template-columns", "1px repeat(auto-fill, 2px) 3px");
test_computed_value("grid-template-columns", "1px repeat(auto-fit, 2px) 3px"); test_computed_value("grid-template-columns", "1px repeat(auto-fit, 2px) 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(1, 2px 3px) [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, 2px 3px) [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, 2px 3px) [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(1, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(1, [b] 2px [c]) [d] 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px");

View file

@ -25,6 +25,9 @@ test_computed_value("grid-template-columns", "[a] 1px [b]");
test_computed_value("grid-template-columns", "1px repeat(1, 2px) 3px", "1px 2px 3px"); test_computed_value("grid-template-columns", "1px repeat(1, 2px) 3px", "1px 2px 3px");
test_computed_value("grid-template-columns", "1px repeat(auto-fill, 2px) 3px", "1px 2px 3px"); test_computed_value("grid-template-columns", "1px repeat(auto-fill, 2px) 3px", "1px 2px 3px");
test_computed_value("grid-template-columns", "1px repeat(auto-fit, 2px) 3px", "1px 0px 3px"); test_computed_value("grid-template-columns", "1px repeat(auto-fit, 2px) 3px", "1px 0px 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(1, 2px 3px) [b] 4px", "1px [a] 2px 3px [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, 2px 3px) [b] 4px", "1px [a] 2px 3px [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, 2px 3px) [b] 4px", "1px [a] 0px 0px [b] 4px");
test_computed_value("grid-template-columns", "1px [a] repeat(1, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(1, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px");
test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px", "1px [a b] 0px [c d] 3px"); test_computed_value("grid-template-columns", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px", "1px [a b] 0px [c d] 3px");

View file

@ -25,6 +25,9 @@ test_computed_value("grid-template-rows", "[a] 1px [b]");
test_computed_value("grid-template-rows", "1px repeat(1, 2px) 3px"); test_computed_value("grid-template-rows", "1px repeat(1, 2px) 3px");
test_computed_value("grid-template-rows", "1px repeat(auto-fill, 2px) 3px"); test_computed_value("grid-template-rows", "1px repeat(auto-fill, 2px) 3px");
test_computed_value("grid-template-rows", "1px repeat(auto-fit, 2px) 3px"); test_computed_value("grid-template-rows", "1px repeat(auto-fit, 2px) 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(1, 2px 3px) [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, 2px 3px) [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, 2px 3px) [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(1, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(1, [b] 2px [c]) [d] 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px");

View file

@ -25,6 +25,9 @@ test_computed_value("grid-template-rows", "[a] 1px [b]");
test_computed_value("grid-template-rows", "1px repeat(1, 2px) 3px", "1px 2px 3px"); test_computed_value("grid-template-rows", "1px repeat(1, 2px) 3px", "1px 2px 3px");
test_computed_value("grid-template-rows", "1px repeat(auto-fill, 2px) 3px", "1px 2px 3px"); test_computed_value("grid-template-rows", "1px repeat(auto-fill, 2px) 3px", "1px 2px 3px");
test_computed_value("grid-template-rows", "1px repeat(auto-fit, 2px) 3px", "1px 0px 3px"); test_computed_value("grid-template-rows", "1px repeat(auto-fit, 2px) 3px", "1px 0px 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(1, 2px 3px) [b] 4px", "1px [a] 2px 3px [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, 2px 3px) [b] 4px", "1px [a] 2px 3px [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, 2px 3px) [b] 4px", "1px [a] 0px 0px [b] 4px");
test_computed_value("grid-template-rows", "1px [a] repeat(1, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(1, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(auto-fill, [b] 2px [c]) [d] 3px", "1px [a b] 2px [c d] 3px");
test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px", "1px [a b] 0px [c d] 3px"); test_computed_value("grid-template-rows", "1px [a] repeat(auto-fit, [b] 2px [c]) [d] 3px", "1px [a b] 0px [c d] 3px");

View file

@ -7,7 +7,7 @@
<meta name="assert" content="inset-block, inset-inline support the full grammar '<'top'>{1,2}'."> <meta name="assert" content="inset-block, inset-inline support the full grammar '<'top'>{1,2}'.">
<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="/css/support/parsing-testcommon.js"></script> <script src="/css/support/shorthand-testcommon.js"></script>
</head> </head>
<body> <body>
<script> <script>

View file

@ -37,7 +37,7 @@
background: yellow; background: yellow;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div slot="foo"></div> <div slot="foo"></div>
<div slot="bar"></div> <div slot="bar"></div>

View file

@ -26,7 +26,7 @@
color: red; color: red;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div class="red">FAIL</div> <div class="red">FAIL</div>
<div class="green" slot="green">FAIL</div> <div class="green" slot="green">FAIL</div>

View file

@ -25,7 +25,7 @@
color: green; color: green;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div>FAIL</div> <div>FAIL</div>
</my-host> </my-host>

View file

@ -29,7 +29,7 @@
background: green; background: green;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div>FAIL</div> <div>FAIL</div>
</my-host> </my-host>

View file

@ -19,7 +19,7 @@
height: 50%; height: 50%;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div slot="green" style="background: green;"></div> <div slot="green" style="background: green;"></div>
<div style="background: red;">FAIL</div> <div style="background: red;">FAIL</div>

View file

@ -17,7 +17,7 @@
width: 100%; height: 100%; background: red; width: 100%; height: 100%; background: red;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div>FAIL</div> <div>FAIL</div>
</my-host> </my-host>

View file

@ -20,7 +20,7 @@
background: green; background: green;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div></div> <div></div>
</my-host> </my-host>

View file

@ -21,7 +21,7 @@
height: 50%; height: 50%;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div slot="green" style="background: green;">FAIL</div> <div slot="green" style="background: green;">FAIL</div>
<div slot="green" style="background: inherit;">FAIL</div> <div slot="green" style="background: inherit;">FAIL</div>

View file

@ -19,7 +19,7 @@
height: 50%; height: 50%;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div slot="green" style="background: green;"></div> <div slot="green" style="background: green;"></div>
<div style="background: red;">FAIL</div> <div style="background: red;">FAIL</div>

View file

@ -20,7 +20,7 @@
height: 25px; height: 25px;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<outer-host> <outer-host>
<span slot="outer">FAIL1</span> <span slot="outer">FAIL1</span>
<span slot="inner">FAIL2</span> <span slot="inner">FAIL2</span>

View file

@ -21,7 +21,7 @@
height: 25px; height: 25px;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div class="green">FAIL1</div> <div class="green">FAIL1</div>
<myelem><span>FAIL2</span></myelem> <myelem><span>FAIL2</span></myelem>

View file

@ -24,7 +24,7 @@
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div>FAIL</div> <div>FAIL</div>
</my-host> </my-host>

View file

@ -18,7 +18,7 @@
color:green; color:green;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
</my-host> </my-host>
<div>FAIL</div> <div>FAIL</div>

View file

@ -17,7 +17,7 @@
width: 100%; height: 100%; background: red; width: 100%; height: 100%; background: red;
} }
</style> </style>
<p>Test passes if you see a single 100px by 100px green box below.</p> <p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host> <my-host>
<div>FAIL</div> <div>FAIL</div>
</my-host> </my-host>

View file

@ -9,6 +9,7 @@ div {
font-size: 10px; font-size: 10px;
font-family: Ahem; font-family: Ahem;
width: 5.1ch; width: 5.1ch;
border: 1px solid blue;
} }
</style> </style>
<body> <body>
@ -18,4 +19,7 @@ div {
<div>1234&shy;xx</div> <div>1234&shy;xx</div>
<div>12345&shy;xx</div> <div>12345&shy;xx</div>
<div>123456&shy;xx</div> <div>123456&shy;xx</div>
<div style="width: 10ch"><span>ren&shy;for&shy;cer</span>99999</div>
<div><span>00&shy;1</span>222</div>
</body> </body>

View file

@ -4,6 +4,8 @@
div { div {
font-size: 10px; font-size: 10px;
font-family: Ahem; font-family: Ahem;
width: 5.1ch;
border: 1px solid blue;
} }
</style> </style>
<body> <body>
@ -13,4 +15,7 @@ div {
<div>1234-<br>xx</div> <div>1234-<br>xx</div>
<div>12345-<br>xx</div> <div>12345-<br>xx</div>
<div>123456-<br>xx</div> <div>123456-<br>xx</div>
<div style="width: 10ch">renfor-<br>cer99999</div>
<div>00-<br>1222</div>
</body> </body>

View file

@ -13,8 +13,6 @@
<div id="target"></div> <div id="target"></div>
<script> <script>
test_computed_value("transition-timing-function", "linear"); test_computed_value("transition-timing-function", "linear");
test_computed_value("transition-timing-function", "", "ease");
test_computed_value("transition-timing-function", "initial", "ease");
test_computed_value("transition-timing-function", "ease"); test_computed_value("transition-timing-function", "ease");
test_computed_value("transition-timing-function", "ease-in"); test_computed_value("transition-timing-function", "ease-in");

View file

@ -22,7 +22,7 @@ html::after {
} }
</style> </style>
<script> <script>
document.documentElement.append("This text must be vertical"); document.documentElement.append("This text must be vertical.");
/* This is direct content of the root, /* This is direct content of the root,
and should therefore be vertical, and should therefore be vertical,
as the root's used value is vertical */ as the root's used value is vertical */

View file

@ -21,6 +21,7 @@ function test_computed_value(property, specified, computed) {
test(() => { test(() => {
const target = document.getElementById('target'); const target = document.getElementById('target');
assert_true(property in getComputedStyle(target), property + " doesn't seem to be supported in the computed style"); assert_true(property in getComputedStyle(target), property + " doesn't seem to be supported in the computed style");
assert_true(CSS.supports(property, specified), "'" + specified + "' is a supported value for " + property + ".");
target.style[property] = ''; target.style[property] = '';
target.style[property] = specified; target.style[property] = specified;

View file

@ -313,7 +313,7 @@ test(function () {
get: function (target, name) { get: function (target, name) {
if (name == 'prototype' || name == 'observedAttributes') if (name == 'prototype' || name == 'observedAttributes')
throw 'Unexpected access to observedAttributes'; throw 'Unexpected access to observedAttributes';
prototypeCalls.push(callOrder++); prototypeCalls.push(callOrder++);
prototypeCalls.push(name); prototypeCalls.push(name);
return target[name]; return target[name];
} }
@ -321,7 +321,7 @@ test(function () {
var constructorCalls = []; var constructorCalls = [];
var proxy = new Proxy(constructor, { var proxy = new Proxy(constructor, {
get: function (target, name) { get: function (target, name) {
constructorCalls.push(callOrder++); constructorCalls.push(callOrder++);
constructorCalls.push(name); constructorCalls.push(name);
return target[name]; return target[name];
} }
@ -627,7 +627,7 @@ promise_test(function () {
return Promise.resolve().then(function () { return Promise.resolve().then(function () {
assert_false(resolved, 'The promise returned by "whenDefined" must not be resolved until a custom element is defined'); assert_false(resolved, 'The promise returned by "whenDefined" must not be resolved until a custom element is defined');
assert_false(rejected, 'The promise returned by "whenDefined" must not be rejected until a custom element is defined'); assert_false(rejected, 'The promise returned by "whenDefined" must not be rejected until a custom element is defined');
}); });
}, 'customElements.whenDefined must return an unresolved promise when the registry does not contain the entry with the given name') }, 'customElements.whenDefined must return an unresolved promise when the registry does not contain the entry with the given name')
promise_test(function () { promise_test(function () {

View file

@ -32,7 +32,7 @@ function testNodeDisconnector(testFunction, name) {
let container = document.createElement('div'); let container = document.createElement('div');
container.appendChild(document.createElement('div')); container.appendChild(document.createElement('div'));
document.body.appendChild(container); document.body.appendChild(container);
test(function () { test(function () {
var element = define_new_custom_element(); var element = define_new_custom_element();
var instance = document.createElement(element.name); var instance = document.createElement(element.name);

View file

@ -13,14 +13,14 @@
<body> <body>
<div id="log"></div> <div id="log"></div>
<script> <script>
async function construct_custom_element_in_parser(test, call_function) async function construct_custom_element_in_parser(test, call_function)
{ {
const window = await create_window_in_test(test); const window = await create_window_in_test(test);
const document = window.document; const document = window.document;
document.open(); document.open();
let executed = false; let executed = false;
let exception = null; let exception = null;
class CustomElement extends window.HTMLElement { class CustomElement extends window.HTMLElement {
@ -35,24 +35,24 @@
} }
} }
window.customElements.define('some-element', CustomElement); window.customElements.define('some-element', CustomElement);
document.write('<!DOCTYPE html><html><body><some-element></some-element></body></html>'); document.write('<!DOCTYPE html><html><body><some-element></some-element></body></html>');
document.close(); document.close();
assert_true(executed, 'Must synchronously instantiate a custom element'); assert_true(executed, 'Must synchronously instantiate a custom element');
return {window, document, exception}; return {window, document, exception};
} }
promise_test(async function () { promise_test(async function () {
const result = await construct_custom_element_in_parser(this, (document) => document.open()); const result = await construct_custom_element_in_parser(this, (document) => document.open());
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
}, 'document.open() must throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.open() must throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const result = await construct_custom_element_in_parser(this, (document) => document.open('text/html')); const result = await construct_custom_element_in_parser(this, (document) => document.open('text/html'));
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
}, 'document.open("text/html") must throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.open("text/html") must throw an InvalidStateError when synchronously constructing a custom element');
// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-document-open-window // https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-document-open-window
promise_test(async function () { promise_test(async function () {
let load_promise = new Promise((resolve) => window.onmessage = (event) => resolve(event.data)); let load_promise = new Promise((resolve) => window.onmessage = (event) => resolve(event.data));
@ -60,58 +60,58 @@
assert_equals(result.exception, null); assert_equals(result.exception, null);
assert_equals(await load_promise, 'didNavigate'); assert_equals(await load_promise, 'didNavigate');
}, 'document.open(URL) must NOT throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.open(URL) must NOT throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const result = await construct_custom_element_in_parser(this, (document) => document.close()); const result = await construct_custom_element_in_parser(this, (document) => document.close());
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
}, 'document.close() must throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.close() must throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const result = await construct_custom_element_in_parser(this, (document) => document.write('<b>some text</b>')); const result = await construct_custom_element_in_parser(this, (document) => document.write('<b>some text</b>'));
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
assert_equals(result.document.querySelector('b'), null, 'Must not insert new content'); assert_equals(result.document.querySelector('b'), null, 'Must not insert new content');
assert_false(result.document.documentElement.innerHTML.includes('some text'), 'Must not insert new content'); assert_false(result.document.documentElement.innerHTML.includes('some text'), 'Must not insert new content');
}, 'document.write must throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.write must throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const result = await construct_custom_element_in_parser(this, (document) => document.writeln('<b>some text</b>')); const result = await construct_custom_element_in_parser(this, (document) => document.writeln('<b>some text</b>'));
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
assert_equals(result.document.querySelector('b'), null, 'Must not insert new content'); assert_equals(result.document.querySelector('b'), null, 'Must not insert new content');
assert_false(result.document.documentElement.innerHTML.includes('some text'), 'Must not insert new content'); assert_false(result.document.documentElement.innerHTML.includes('some text'), 'Must not insert new content');
}, 'document.writeln must throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.writeln must throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const another_window = await create_window_in_test(this); const another_window = await create_window_in_test(this);
const result = await construct_custom_element_in_parser(this, (document) => another_window.document.open()); const result = await construct_custom_element_in_parser(this, (document) => another_window.document.open());
assert_equals(result.exception, null); assert_equals(result.exception, null);
}, 'document.open() of another document must not throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.open() of another document must not throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const another_window = await create_window_in_test(this); const another_window = await create_window_in_test(this);
const result = await construct_custom_element_in_parser(this, (document) => another_window.document.open('text/html')); const result = await construct_custom_element_in_parser(this, (document) => another_window.document.open('text/html'));
assert_equals(result.exception, null); assert_equals(result.exception, null);
}, 'document.open("text/html") of another document must not throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.open("text/html") of another document must not throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const another_window = await create_window_in_test(this); const another_window = await create_window_in_test(this);
const result = await construct_custom_element_in_parser(this, (document) => another_window.document.close()); const result = await construct_custom_element_in_parser(this, (document) => another_window.document.close());
assert_equals(result.exception, null); assert_equals(result.exception, null);
}, 'document.close() of another document must not throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.close() of another document must not throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const another_window = await create_window_in_test(this); const another_window = await create_window_in_test(this);
const result = await construct_custom_element_in_parser(this, (document) => another_window.document.write('<b>some text</b>')); const result = await construct_custom_element_in_parser(this, (document) => another_window.document.write('<b>some text</b>'));
assert_equals(result.exception, null); assert_equals(result.exception, null);
assert_equals(another_window.document.querySelector('b').outerHTML, '<b>some text</b>'); assert_equals(another_window.document.querySelector('b').outerHTML, '<b>some text</b>');
}, 'document.write of another document must not throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.write of another document must not throw an InvalidStateError when synchronously constructing a custom element');
promise_test(async function () { promise_test(async function () {
const another_window = await create_window_in_test(this); const another_window = await create_window_in_test(this);
const result = await construct_custom_element_in_parser(this, (document) => another_window.document.writeln('<b>some text</b>')); const result = await construct_custom_element_in_parser(this, (document) => another_window.document.writeln('<b>some text</b>'));
assert_equals(result.exception, null); assert_equals(result.exception, null);
assert_equals(another_window.document.querySelector('b').outerHTML, '<b>some text</b>'); assert_equals(another_window.document.querySelector('b').outerHTML, '<b>some text</b>');
}, 'document.writeln of another document must not throw an InvalidStateError when synchronously constructing a custom element'); }, 'document.writeln of another document must not throw an InvalidStateError when synchronously constructing a custom element');
</script> </script>
</body> </body>
</html> </html>

View file

@ -20,7 +20,7 @@ async function custom_element_reactions_in_parser(test, call_function)
const document = window.document; const document = window.document;
document.open(); document.open();
let executed = false; let executed = false;
let exception = null; let exception = null;
class CustomElement extends window.HTMLElement { class CustomElement extends window.HTMLElement {
@ -35,7 +35,7 @@ async function custom_element_reactions_in_parser(test, call_function)
} }
CustomElement.observedAttributes = ['title']; CustomElement.observedAttributes = ['title'];
window.customElements.define('some-element', CustomElement); window.customElements.define('some-element', CustomElement);
document.write('<!DOCTYPE html><html><body><some-element title="some title"></some-element></body></html>'); document.write('<!DOCTYPE html><html><body><some-element title="some title"></some-element></body></html>');
document.close(); document.close();
@ -47,12 +47,12 @@ promise_test(async function () {
const result = await custom_element_reactions_in_parser(this, (document) => document.open()); const result = await custom_element_reactions_in_parser(this, (document) => document.open());
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
}, 'document.open() must throw an InvalidStateError when processing custom element reactions for a synchronous constructed custom element'); }, 'document.open() must throw an InvalidStateError when processing custom element reactions for a synchronous constructed custom element');
promise_test(async function () { promise_test(async function () {
const result = await custom_element_reactions_in_parser(this, (document) => document.open('text/html')); const result = await custom_element_reactions_in_parser(this, (document) => document.open('text/html'));
assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError'); assert_throws('InvalidStateError', () => { throw result.exception; }, 'Must throw an InvalidStateError');
}, 'document.open("text/html") must throw an InvalidStateError when processing custom element reactions for a synchronous constructed custom element'); }, 'document.open("text/html") must throw an InvalidStateError when processing custom element reactions for a synchronous constructed custom element');
// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-document-open-window // https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-document-open-window
promise_test(async function () { promise_test(async function () {
let load_promise = new Promise((resolve) => window.onmessage = (event) => resolve(event.data)); let load_promise = new Promise((resolve) => window.onmessage = (event) => resolve(event.data));

View file

@ -15,6 +15,6 @@
<p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p> <p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p>
</div> </div>
<p>This paragraph is not part of the description. As of September 2013 there is no conformance requirement making it a failure to read this paragraph, but best practice would be to present only the description, and not this part.</p> <p>This paragraph is not part of the description. As of September 2013 there is no conformance requirement making it a failure to read this paragraph, but best practice would be to present only the description, and not this part.</p>
<p>The description is encapsulated in a well-formed fragment, but since the target of a link is an empty element it is not possible to positively identify it.</p> <p>The description is encapsulated in a well-formed fragment, but since the target of a link is an empty element it is not possible to positively identify it.</p>
</body> </body>
</html> </html>

View file

@ -15,6 +15,6 @@
<p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p> <p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p>
</div> </div>
<p>This paragraph is not part of the description. As of September 2013 there is no conformance requirement making it a failure to read this paragraph, best practice would be to present only the description, and not this part.</p> <p>This paragraph is not part of the description. As of September 2013 there is no conformance requirement making it a failure to read this paragraph, best practice would be to present only the description, and not this part.</p>
<p>The description is encapsulated in a well-formed div element, so it is possible to identify it.</p> <p>The description is encapsulated in a well-formed div element, so it is possible to identify it.</p>
</body> </body>
</html> </html>

View file

@ -7,6 +7,6 @@
<body> <body>
<h1>Pass</h1> <h1>Pass</h1>
<p>The image is a drawn cartoon, on the left is a parson in a wheelchair in profile, facing toward the centre of the image, under a banner with the text "e-democracy?" on it. In front of the person is stairs, at the top of the stairs is a table. On the table is a computer, whose screen says "Vote!" and has a red and a green button</p> <p>The image is a drawn cartoon, on the left is a parson in a wheelchair in profile, facing toward the centre of the image, under a banner with the text "e-democracy?" on it. In front of the person is stairs, at the top of the stairs is a table. On the table is a computer, whose screen says "Vote!" and has a red and a green button</p>
<p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p> <p>The image is signed in the space under the floor that is at the top of the stairs with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©2013. It was actually drawn by Charles McCathie Nevile.</p>
</body> </body>
</html> </html>

View file

@ -7,6 +7,6 @@
<body> <body>
<h1>Pass</h1> <h1>Pass</h1>
<p>(The image is a drawn cartoon, on the right is a parson a wheelchair in profile, facing toward the centre of the image, under a banner with the text "e-democracy?" on it. In front of the person are some stairs, at the top of the stairs is a table. On the table is a computer, whose screen says "Vote!" and has a red and a green button)</p> <p>(The image is a drawn cartoon, on the right is a parson a wheelchair in profile, facing toward the centre of the image, under a banner with the text "e-democracy?" on it. In front of the person are some stairs, at the top of the stairs is a table. On the table is a computer, whose screen says "Vote!" and has a red and a green button)</p>
<p>The image is signed (in the space under the floor that is at the top of the stairs) with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©1999. It was actually drawn by Charles McCathie Nevile.</p> <p>The image is signed (in the space under the floor that is at the top of the stairs) with an "R" rune flipped backwards, somewhat resembling a "Я" with top and bottom border lines sloping upward from left to right, and is marked ©1999. It was actually drawn by Charles McCathie Nevile.</p>
</body> </body>
</html> </html>

View file

@ -13,15 +13,7 @@ INDENT TABS: encoding/legacy*/*
TRAILING WHITESPACE: 2dcontext/tools/current-work-canvas.xhtml TRAILING WHITESPACE: 2dcontext/tools/current-work-canvas.xhtml
TRAILING WHITESPACE: conformance-checkers/* TRAILING WHITESPACE: conformance-checkers/*
TRAILING WHITESPACE: content-security-policy/* TRAILING WHITESPACE: content-security-policy/*
TRAILING WHITESPACE: custom-elements/* TRAILING WHITESPACE: WebIDL/valid/*
TRAILING WHITESPACE: html-longdesc/*
TRAILING WHITESPACE: old-tests/*
TRAILING WHITESPACE: pointerevents/*
TRAILING WHITESPACE: shadow-dom/*
TRAILING WHITESPACE: webaudio/*
TRAILING WHITESPACE: WebIDL/*
TRAILING WHITESPACE: webvtt/*
TRAILING WHITESPACE: server-timing/resources/parsing/*.sub.headers
## File types that should never be checked ## ## File types that should never be checked ##
@ -54,10 +46,6 @@ TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.wasm
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.bmp TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.bmp
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.sxg TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.sxg
## Whitespace needed for testing
TRAILING WHITESPACE: xhr/resources/headers-some-are-empty.asis
## .gitignore ## .gitignore
W3C-TEST.ORG: .gitignore W3C-TEST.ORG: .gitignore
@ -103,6 +91,12 @@ INDENT TABS: html/semantics/embedded-content/the-canvas-element/size.attributes.
INDENT TABS: webvtt/parsing/file-parsing/tests/support/header-tab.vtt INDENT TABS: webvtt/parsing/file-parsing/tests/support/header-tab.vtt
INDENT TABS: webvtt/parsing/file-parsing/tests/support/whitespace-chars.vtt INDENT TABS: webvtt/parsing/file-parsing/tests/support/whitespace-chars.vtt
## Intentional use of trailing whitespace
TRAILING WHITESPACE: server-timing/resources/parsing/*
TRAILING WHITESPACE: webvtt/parsing/file-parsing/support/*.vtt
TRAILING WHITESPACE: webvtt/parsing/file-parsing/tests/support/*.vtt
TRAILING WHITESPACE: xhr/resources/headers-some-are-empty.asis
# Intentional use of print statements # Intentional use of print statements
PRINT STATEMENT: dom/nodes/Document-createElement-namespace-tests/generate.py PRINT STATEMENT: dom/nodes/Document-createElement-namespace-tests/generate.py
PRINT STATEMENT: encrypted-media/polyfill/make-polyfill-tests.py PRINT STATEMENT: encrypted-media/polyfill/make-polyfill-tests.py
@ -434,25 +428,7 @@ CONSOLE: css/css-writing-modes/orthogonal-parent-shrink-to-fit-001*.html
CONSOLE: css/css-writing-modes/tools/generators/gulpfile.js CONSOLE: css/css-writing-modes/tools/generators/gulpfile.js
CONSOLE: css/css-writing-modes/tools/generators/text-orientation-generator.js CONSOLE: css/css-writing-modes/tools/generators/text-orientation-generator.js
TRAILING WHITESPACE: css/CSS2/generated-content/before-after-positioned-002.html
TRAILING WHITESPACE: css/CSS2/generated-content/before-after-positioned-003.html
TRAILING WHITESPACE: css/CSS2/generated-content/before-after-positioned-004.html
TRAILING WHITESPACE: css/css-fonts/support/fonts/gsubtest-lookup3.ufo/features.fea TRAILING WHITESPACE: css/css-fonts/support/fonts/gsubtest-lookup3.ufo/features.fea
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-assigned-node-with-before-after.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-assigned-node-with-rules.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-host-rule.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-host-with-before-after.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-invisible-slot.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-root-hides-children.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-slot-display-override.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-slot.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-slot-style.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-slotted-nested.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-slotted-rule.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-with-outside-rules.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-with-rules.html
TRAILING WHITESPACE: css/css-scoping/css-scoping-shadow-with-rules-no-style-leak.html
TRAILING WHITESPACE: css/css-variables/reference/vars-font-shorthand-001-ref.html
TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7.html TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7.html
TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7-ref.html TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-7-ref.html
TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-8.html TRAILING WHITESPACE: css/vendor-imports/mozilla/mozilla-central-reftests/css21/pagination/moz-css21-float-page-break-inside-avoid-8.html

View file

@ -81,7 +81,7 @@
isPrimary: true, isPrimary: true,
clientX: 300, clientX: 300,
}; };
var p1 = new PointerEvent("pointermove", pointerEventInitDict); var p1 = new PointerEvent("pointermove", pointerEventInitDict);
pointerEventInitDict.clientX += 10; pointerEventInitDict.clientX += 10;
var p2 = new PointerEvent("pointermove", pointerEventInitDict); var p2 = new PointerEvent("pointermove", pointerEventInitDict);

View file

@ -30,7 +30,7 @@
function expect_no_predicted_events(event, eventName) { function expect_no_predicted_events(event, eventName) {
test(function () { test(function () {
assert_equals(event.getPredictedEvents().length, 0, eventName + ' should not have any predicted events'); assert_equals(event.getPredictedEvents().length, 0, eventName + ' should not have any predicted events');
}, expectedPointerType + ' ' + eventName + ' should not have any predicted events'); }, expectedPointerType + ' ' + eventName + ' should not have any predicted events');
} }
function run() { function run() {
var test_pointerEvent = setup_pointerevent_test("predicted events attributes in pointerevents", ['touch']); var test_pointerEvent = setup_pointerevent_test("predicted events attributes in pointerevents", ['touch']);

View file

@ -9,7 +9,7 @@
<script type="text/javascript" src="../pointerevent_support.js"></script> <script type="text/javascript" src="../pointerevent_support.js"></script>
<script> <script>
var eventList = ['pointerdown', 'pointerup', 'pointercancel', 'gotpointercapture', 'lostpointercapture', 'dragstart']; var eventList = ['pointerdown', 'pointerup', 'pointercancel', 'gotpointercapture', 'lostpointercapture', 'dragstart'];
PhaseEnum = { PhaseEnum = {
DndWithoutCapture: 0, DndWithoutCapture: 0,
DndWithCapture: 1, DndWithCapture: 1,
@ -18,7 +18,7 @@
}; };
var phase = PhaseEnum.DndWithoutCapture; var phase = PhaseEnum.DndWithoutCapture;
var received_events = []; var received_events = [];
function resetTestState() { function resetTestState() {
phase = PhaseEnum.DndWithoutCapture; phase = PhaseEnum.DndWithoutCapture;
} }
@ -28,7 +28,7 @@
var target0 = document.querySelector('#target0'); var target0 = document.querySelector('#target0');
var target1 = document.querySelector('#target1'); var target1 = document.querySelector('#target1');
function handleEvent(e) { function handleEvent(e) {
if (e.type == 'pointerdown') { if (e.type == 'pointerdown') {
received_events = []; received_events = [];

View file

@ -57,7 +57,7 @@
<h1>Pointer Event: Dispatch pointerleave (pen)</h1> <h1>Pointer Event: Dispatch pointerleave (pen)</h1>
<h4> <h4>
Test Description: Test Description:
When a pointing device that supports hover (pen stylus) leaves the range of the digitizer while over an element, the pointerleave event must be dispatched. In addition, all the pointer events' isPrimary should always be true when the pointing device leaves and enters the range of the digitizer again. When a pointing device that supports hover (pen stylus) leaves the range of the digitizer while over an element, the pointerleave event must be dispatched. In addition, all the pointer events' isPrimary should always be true when the pointing device leaves and enters the range of the digitizer again.
</h4> </h4>
<br /> <br />
<div id="target0"> <div id="target0">

View file

@ -58,7 +58,7 @@
// If the setPointerCapture method has been invoked on the pointer specified by pointerId, // If the setPointerCapture method has been invoked on the pointer specified by pointerId,
// and the releasePointerCapture method has not been invoked,a lostpointercapture event must be // and the releasePointerCapture method has not been invoked,a lostpointercapture event must be
// dispatched to the element on which the setPointerCapture method was invoked. Furthermore, // dispatched to the element on which the setPointerCapture method was invoked. Furthermore,
// subsequent events for the specified pointer must follow normal hit testing mechanisms for // subsequent events for the specified pointer must follow normal hit testing mechanisms for
// determining the event target. // determining the event target.
// TA: 3.7 // TA: 3.7

View file

@ -3,7 +3,7 @@
<head> <head>
<title>touch-action: basic verification</title> <title>touch-action: basic verification</title>
<meta name="assert" content="TA15.20 - The touch-action CSS property determines whether touch input MAY trigger default behavior supplied by the user agent. <meta name="assert" content="TA15.20 - The touch-action CSS property determines whether touch input MAY trigger default behavior supplied by the user agent.
auto: The user agent MAY determine any permitted touch behaviors, such as panning and zooming manipulations of the viewport, for touches that begin on the element. auto: The user agent MAY determine any permitted touch behaviors, such as panning and zooming manipulations of the viewport, for touches that begin on the element.
none: Touches that begin on the element MUST NOT trigger default touch behaviors. none: Touches that begin on the element MUST NOT trigger default touch behaviors.
pan-x: The user agent MAY consider touches that begin on the element only for the purposes of horizontally scrolling the element's nearest ancestor with horizontally scrollable content. pan-x: The user agent MAY consider touches that begin on the element only for the purposes of horizontally scrolling the element's nearest ancestor with horizontally scrollable content.
pan-y: The user agent MAY consider touches that begin on the element only for the purposes of vertically scrolling the element's nearest ancestor with vertically scrollable content. pan-y: The user agent MAY consider touches that begin on the element only for the purposes of vertically scrolling the element's nearest ancestor with vertically scrollable content.

View file

@ -78,7 +78,7 @@
} }
}); });
on_event(document, 'pointerlockchange', function(event) { on_event(document, 'pointerlockchange', function(event) {
if (document.pointerLockElement == target0) if (document.pointerLockElement == target0)
pointer_locked = true; pointer_locked = true;
else else
pointer_locked = false; pointer_locked = false;

View file

@ -18,18 +18,38 @@ const WebContactsTest = (() => {
this.selectedContacts_ = []; this.selectedContacts_ = [];
} }
async select(multiple, includeNames, includeEmails, includeTel) { formatAddress_(address) {
// These are all required fields in the mojo definition.
return {
country: address.country || '',
addressLine: address.addressLine || [],
region: address.region || '',
city: address.city || '',
dependentLocality: address.dependentLocality || '',
postalCode: address.postCode || '',
sortingCode: address.sortingCode || '',
organization: address.organization || '',
recipient: address.recipient || '',
phone: address.phone || '',
};
}
async select(multiple, includeNames, includeEmails, includeTel, includeAddresses) {
if (this.selectedContacts_ === null) if (this.selectedContacts_ === null)
return {contacts: null}; return {contacts: null};
const contactInfos = this.selectedContacts_.map(contact => { const contactInfos = this.selectedContacts_.map(contact => {
const contactInfo = new blink.mojom.ContactInfo(); const contactInfo = new blink.mojom.ContactInfo();
if (includeNames) if (includeNames)
contactInfo.name = contact.name; contactInfo.name = contact.name || [];
if (includeEmails) if (includeEmails)
contactInfo.email = contact.email; contactInfo.email = contact.email || [];
if (includeTel) if (includeTel)
contactInfo.tel = contact.tel; contactInfo.tel = contact.tel || [];
if (includeAddresses) {
contactInfo.address = contact.address || [];
contactInfo.address = contactInfo.address.map(address => this.formatAddress_(address));
}
return contactInfo; return contactInfo;
}); });

View file

@ -15,3 +15,5 @@ async_test(function(t) {
throw new Error("This error is expected."); throw new Error("This error is expected.");
}, 0); }, 0);
}, 'onerror event is triggered'); }, 'onerror event is triggered');
done();

View file

@ -77,6 +77,23 @@ promise_test(() => {
}); });
}, 'uncaught exception during single-page test'); }, 'uncaught exception during single-page test');
promise_test(() => {
return makeTest(
() => {
setup({ allow_uncaught_exception: true });
throw new Error('this error is expected');
},
() => {
test(function() {}, 'a');
test(function() {}, 'b');
}
).then(({harness, tests}) => {
assert_equals(harness, 'OK');
assert_equals(tests.a, 'PASS');
assert_equals(tests.b, 'PASS');
});
}, 'uncaught exception with subsequent subtest');
promise_test(() => { promise_test(() => {
return makeTest( return makeTest(
() => { () => {

View file

@ -3682,7 +3682,14 @@ policies and contribution forms [3].
tests.status.message = message; tests.status.message = message;
tests.status.stack = stack; tests.status.stack = stack;
} }
done();
// Do not transition to the "complete" phase if the test has been
// configured to allow uncaught exceptions. This gives the test an
// opportunity to define subtests based on the exception reporting
// behavior.
if (!tests.allow_uncaught_exception) {
done();
}
}; };
addEventListener("error", function(e) { addEventListener("error", function(e) {

View file

@ -220,7 +220,7 @@
function testEventInsideNestedShadowsUnderAnotherShadow(outerUpperMode, outerLowerMode, innerMode) { function testEventInsideNestedShadowsUnderAnotherShadow(outerUpperMode, outerLowerMode, innerMode) {
test(function () { test(function () {
var shadow = createNestedShadowTreesWithSlots(innerMode, outerUpperMode, outerLowerMode); var shadow = createNestedShadowTreesWithSlots(innerMode, outerUpperMode, outerLowerMode);
shadow.deepestNodeInLightDOM = shadow.target; // Needed for dispatchEventWithLog to attach event listeners. shadow.deepestNodeInLightDOM = shadow.target; // Needed for dispatchEventWithLog to attach event listeners.
shadow.target = shadow.innerSlot; shadow.target = shadow.innerSlot;
log = dispatchEventWithLog(shadow, new Event('foo', {bubbles: true, composed: true})); log = dispatchEventWithLog(shadow, new Event('foo', {bubbles: true, composed: true}));

View file

@ -208,7 +208,7 @@ test(() => {
assert_equals(shadowRoot.activeElement, aboveSlots); assert_equals(shadowRoot.activeElement, aboveSlots);
assert_equals(document.activeElement, host); assert_equals(document.activeElement, host);
}, "focus() on host with delegatesFocus & tabindex=0, #aboveSlots with tabindex=0 and #belowSlots with tabindex=1"); }, "focus() on host with delegatesFocus & tabindex=0, #aboveSlots with tabindex=0 and #belowSlots with tabindex=1");
test(() => { test(() => {
resetTabIndexAndFocus(); resetTabIndexAndFocus();
setTabIndex([host, slottedToFirstSlot, slottedToSecondSlot, belowSlots], 0); setTabIndex([host, slottedToFirstSlot, slottedToSecondSlot, belowSlots], 0);

View file

@ -75,7 +75,7 @@
// be interpolated correctly after the start frame. The // be interpolated correctly after the start frame. The
// absoluteThreshold below is currently set for Chrome which does // absoluteThreshold below is currently set for Chrome which does
// linear interpolation. This needs to be updated eventually if // linear interpolation. This needs to be updated eventually if
// other browsers do not user interpolation. // other browsers do not user interpolation.
should( should(
output0.slice(0, startFrame + 1), `output0[0:${startFrame}]`) output0.slice(0, startFrame + 1), `output0[0:${startFrame}]`)
.beConstantValueOf(0); .beConstantValueOf(0);

View file

@ -93,7 +93,7 @@
// MediaStreamAudioDestinationNode has no output so it connect method // MediaStreamAudioDestinationNode has no output so it connect method
// chaining isn't possible. // chaining isn't possible.
// MediaStreamSourceNode requires 'stream' object to be constructed, // MediaStreamSourceNode requires 'stream' object to be constructed,
// which is a part of MediaStreamDestinationNode. // which is a part of MediaStreamDestinationNode.
let streamDestination = context.createMediaStreamDestination(); let streamDestination = context.createMediaStreamDestination();

View file

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<!-- <!--
Tests that an audio-rate signal (AudioNode output) can be connected to an Tests that an audio-rate signal (AudioNode output) can be connected to an
AudioParam. Specifically, this tests that an audio-rate signal coming from an AudioParam. Specifically, this tests that an audio-rate signal coming from an
AudioBufferSourceNode playing an AudioBuffer containing a specific curve can be AudioBufferSourceNode playing an AudioBuffer containing a specific curve can be

View file

@ -67,4 +67,4 @@
audit.run(); audit.run();
</script> </script>
</body> </body>
</html> </html>

View file

@ -67,4 +67,4 @@
audit.run(); audit.run();
</script> </script>
</body> </body>
</html> </html>

View file

@ -8,7 +8,7 @@
<script src="/webaudio/resources/audit-util.js"></script> <script src="/webaudio/resources/audit-util.js"></script>
<script src="/webaudio/resources/audit.js"></script> <script src="/webaudio/resources/audit.js"></script>
</head> </head>
<body> <body>
<script> <script>
let audit = Audit.createTaskRunner(); let audit = Audit.createTaskRunner();

Some files were not shown because too many files have changed in this diff Show more