diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 3a3d15b8406..947e223fb28 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,9 +14,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - [url-with-fetch.any.html] [Untitled] @@ -37,6 +34,3 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index bd2e474e4c9..19099fce0f9 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -130303,6 +130303,18 @@ {} ] ], + "css/css-lists/list-marker-symbol-bidi.html": [ + [ + "css/css-lists/list-marker-symbol-bidi.html", + [ + [ + "/css/css-lists/list-marker-symbol-bidi-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html": [ [ "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001.html", @@ -154223,6 +154235,18 @@ {} ] ], + "css/css-text/word-break/word-break-break-all-inline-008.html": [ + [ + "css/css-text/word-break/word-break-break-all-inline-008.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-010-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/word-break/word-break-break-word-overflow-wrap-interactions.html": [ [ "css/css-text/word-break/word-break-break-word-overflow-wrap-interactions.html", @@ -154331,6 +154355,78 @@ {} ] ], + "css/css-text/word-break/word-break-min-content-001.html": [ + [ + "css/css-text/word-break/word-break-min-content-001.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-min-content-002.html": [ + [ + "css/css-text/word-break/word-break-min-content-002.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-min-content-003.html": [ + [ + "css/css-text/word-break/word-break-min-content-003.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-010-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-min-content-004.html": [ + [ + "css/css-text/word-break/word-break-min-content-004.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-010-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-min-content-005.html": [ + [ + "css/css-text/word-break/word-break-min-content-005.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-min-content-006.html": [ + [ + "css/css-text/word-break/word-break-min-content-006.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-002-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/word-break/word-break-normal-001.html": [ [ "css/css-text/word-break/word-break-normal-001.html", @@ -237198,6 +237294,9 @@ "css/CSS2/positioning/left-offset-percentage-002-ref.xht": [ [] ], + "css/CSS2/positioning/line-break-after-leading-oof-001-ref.html": [ + [] + ], "css/CSS2/positioning/position-006-ref.xht": [ [] ], @@ -251568,6 +251667,9 @@ "css/css-lists/list-item-definition-ref.html": [ [] ], + "css/css-lists/list-marker-symbol-bidi-ref.html": [ + [] + ], "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [ [] ], @@ -264423,6 +264525,12 @@ "docs/assets/reftest_graph_example.svg": [ [] ], + "docs/assets/testharness-tutorial-test-screenshot-1.png": [ + [] + ], + "docs/assets/testharness-tutorial-test-screenshot-2.png": [ + [] + ], "docs/conf.py": [ [] ], @@ -264555,6 +264663,9 @@ "docs/writing-tests/testharness-api.md": [ [] ], + "docs/writing-tests/testharness-tutorial.md": [ + [] + ], "docs/writing-tests/testharness.md": [ [] ], @@ -268161,6 +268272,9 @@ "html/browsers/sandboxing/noscript-iframe.html": [ [] ], + "html/browsers/sandboxing/sandbox-new-execution-context-iframe.html": [ + [] + ], "html/browsers/sandboxing/sandbox-parse-noscript-ref.html": [ [] ], @@ -280668,9 +280782,6 @@ "service-workers/service-worker/ServiceWorkerGlobalScope/resources/update-worker.py": [ [] ], - "service-workers/service-worker/fetch-error-worker.js": [ - [] - ], "service-workers/service-worker/multi-globals/current/current.https.html": [ [] ], @@ -280968,6 +281079,9 @@ "service-workers/service-worker/resources/fetch-csp-iframe.html.sub.headers": [ [] ], + "service-workers/service-worker/resources/fetch-error-worker.js": [ + [] + ], "service-workers/service-worker/resources/fetch-event-add-async-worker.js": [ [] ], @@ -334466,6 +334580,12 @@ {} ] ], + "dom/collections/HTMLCollection-own-props.html": [ + [ + "dom/collections/HTMLCollection-own-props.html", + {} + ] + ], "dom/collections/HTMLCollection-supported-property-indices.html": [ [ "dom/collections/HTMLCollection-supported-property-indices.html", @@ -336023,6 +336143,12 @@ {} ] ], + "dom/nodes/aria-attribute-reflection.tentative.html": [ + [ + "dom/nodes/aria-attribute-reflection.tentative.html", + {} + ] + ], "dom/nodes/aria-element-reflection.tentative.html": [ [ "dom/nodes/aria-element-reflection.tentative.html", @@ -353800,6 +353926,12 @@ {} ] ], + "html/browsers/sandboxing/sandbox-new-execution-context.html": [ + [ + "html/browsers/sandboxing/sandbox-new-execution-context.html", + {} + ] + ], "html/browsers/the-window-object/BarProp.window.js": [ [ "html/browsers/the-window-object/BarProp.window.html", @@ -360466,6 +360598,14 @@ {} ] ], + "html/semantics/forms/historical-search-event.html": [ + [ + "html/semantics/forms/historical-search-event.html", + { + "testdriver": true + } + ] + ], "html/semantics/forms/historical.html": [ [ "html/semantics/forms/historical.html", @@ -360818,6 +360958,12 @@ {} ] ], + "html/semantics/forms/the-input-element/checkbox-detached-change-event.html": [ + [ + "html/semantics/forms/the-input-element/checkbox-detached-change-event.html", + {} + ] + ], "html/semantics/forms/the-input-element/checkbox.html": [ [ "html/semantics/forms/the-input-element/checkbox.html", @@ -361022,6 +361168,12 @@ {} ] ], + "html/semantics/forms/the-input-element/radio-detached-change-event.html": [ + [ + "html/semantics/forms/the-input-element/radio-detached-change-event.html", + {} + ] + ], "html/semantics/forms/the-input-element/radio-groupname-case.html": [ [ "html/semantics/forms/the-input-element/radio-groupname-case.html", @@ -421179,18 +421331,18 @@ } ] ], - "web-animations/interfaces/Document/getAnimations.html": [ - [ - "web-animations/interfaces/Document/getAnimations.html", - {} - ] - ], "web-animations/interfaces/Document/timeline.html": [ [ "web-animations/interfaces/Document/timeline.html", {} ] ], + "web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html": [ + [ + "web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html", + {} + ] + ], "web-animations/interfaces/DocumentTimeline/constructor.html": [ [ "web-animations/interfaces/DocumentTimeline/constructor.html", @@ -443344,6 +443496,12 @@ {} ] ], + "css/CSS2/positioning/line-break-after-leading-oof-001.html": [ + [ + "css/CSS2/positioning/line-break-after-leading-oof-001.html", + {} + ] + ], "css/CSS2/positioning/position-001.xht": [ [ "css/CSS2/positioning/position-001.xht", @@ -464972,7 +465130,7 @@ "testharness" ], "animation-worklet/stateful-animator.https.html": [ - "b83590650b19756872c95de8117a248d65c764b0", + "be29fa109cba3b2117d5029f4a70f091a440b324", "testharness" ], "animation-worklet/worklet-animation-animator-name.https.html": [ @@ -469040,7 +469198,7 @@ "support" ], "conformance-checkers/html-aria/_functional/tree/js/prototype.js": [ - "b0e0675867afd4374b2d72935eee422d55c84770", + "c14b177230a50e661b04ff43aefb5a333a54f41b", "support" ], "conformance-checkers/html-aria/accessible-name-input/checkbox-title.html": [ @@ -528839,6 +528997,14 @@ "12c00cf82a57380cdcf5001dcbfc09841a6edfc5", "reftest" ], + "css/CSS2/positioning/line-break-after-leading-oof-001-ref.html": [ + "50c682eddc782d1539a097d2da2fc0f44c44f573", + "support" + ], + "css/CSS2/positioning/line-break-after-leading-oof-001.html": [ + "b00c48156edbfb87a7cdbc2137cda8197c4e9eda", + "visual" + ], "css/CSS2/positioning/position-001.xht": [ "2e5b573ab527eb8f73cd66652b9f06482e8a43e7", "visual" @@ -552828,7 +552994,7 @@ "manual" ], "css/css-animations/animation-fill-mode-001-manual.html": [ - "7c38164b2d825f5a5491a73ea43b8f13daac8e7c", + "2176672367274201489bb5885d3cd00d3bb01fc9", "manual" ], "css/css-animations/animation-fill-mode-002-manual.html": [ @@ -552836,7 +553002,7 @@ "manual" ], "css/css-animations/animation-fill-mode-003-manual.html": [ - "bd5a93245b39979f61c294c9ddaf5111c8947eed", + "561237d2673624b0d11b44e41a36df6b19bb582c", "manual" ], "css/css-animations/animation-fill-mode-004-manual.html": [ @@ -578211,6 +578377,14 @@ "14e351f9ecd34356087fc5ec7361d8e4d9b542e0", "reftest" ], + "css/css-lists/list-marker-symbol-bidi-ref.html": [ + "cf213d731f33201fc6863544f18bf97c51eb2a3c", + "support" + ], + "css/css-lists/list-marker-symbol-bidi.html": [ + "e82d9ae1567111038ee9927bda124956df1ebf03", + "reftest" + ], "css/css-lists/list-marker-with-lineheight-and-overflow-hidden-001-ref.html": [ "ae6486147e28502db80f6b887b1a6b16c30184f2", "support" @@ -578296,7 +578470,7 @@ "reftest" ], "css/css-lists/nested-list-with-list-style-type-none.html": [ - "e103113c3f4d98ed34b4cdda04bd436469d01f54", + "325459df8a2bdb5e23083fe6ee3961dde0fd2027", "testharness" ], "css/css-lists/nested-marker-dynamic.html": [ @@ -584240,7 +584414,7 @@ "reftest" ], "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [ - "4997ae4f564d382fafd03e742a4b706d7e98fc80", + "05c23a3bc143ce2a005b3686af2eae2cb60cb7ba", "testharness" ], "css/css-pseudo/placeholder-input-number-notref.html": [ @@ -597967,6 +598141,10 @@ "bc5a08d38a505b1b08f204e6d243b43fa3dd34bc", "reftest" ], + "css/css-text/word-break/word-break-break-all-inline-008.html": [ + "930ae436fe4f1c91b60e9a84c0925e679b6ddfc0", + "reftest" + ], "css/css-text/word-break/word-break-break-word-crash-001.html": [ "894a6f3aa0ce257a92926158b75a29986a98e079", "testharness" @@ -598011,6 +598189,30 @@ "6532e41609ff6eb2870003ad6761b45f2b60fdae", "reftest" ], + "css/css-text/word-break/word-break-min-content-001.html": [ + "20b610180b359bfdf7da5720d2e962af2ba6343f", + "reftest" + ], + "css/css-text/word-break/word-break-min-content-002.html": [ + "0f5d18ff4b262a8716864c401f2e7f223adbcab3", + "reftest" + ], + "css/css-text/word-break/word-break-min-content-003.html": [ + "84e7cfe872f9af121f5836638db51a306e119c52", + "reftest" + ], + "css/css-text/word-break/word-break-min-content-004.html": [ + "efa61b9cd8af65bdb354ef7b07e7008f8a3b6511", + "reftest" + ], + "css/css-text/word-break/word-break-min-content-005.html": [ + "ccbf9887054c24dc1ddc32cd73945cad087c08b8", + "reftest" + ], + "css/css-text/word-break/word-break-min-content-006.html": [ + "0d772a2d88cfc1f4a9b4ae482fa64a38279b04f2", + "reftest" + ], "css/css-text/word-break/word-break-normal-001.html": [ "61ccba2465f772c46a771a8868e9036ff4a93b9d", "reftest" @@ -612636,11 +612838,11 @@ "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht": [ - "5f971974b8dd0998fddc71a33b5c0020e09f6c8d", + "a7557f928237c68c9e9717feb0be8c0e75e7e8de", "support" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht": [ - "cd1529ce42116abbc68c1a1a25170607ec8021b1", + "b7322a0083cbd04a20083b5ddf07ef767dd6da5b", "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-006-ref.xht": [ @@ -612764,7 +612966,7 @@ "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht": [ - "297457f62c2c575a931be4a21cc1158014aa7ee1", + "e423259f0dbba089c9f3865684b48e853849569e", "support" ], "css/css-writing-modes/sizing-orthog-htb-in-vrl-001.xht": [ @@ -615268,11 +615470,11 @@ "reftest" ], "css/css-writing-modes/wm-propagation-body-scroll-offset-vertical-lr.html": [ - "8c59532b1a50777337007c2b932b1df42067e18f", + "ecab4a84e224ca8f099107af452a6d8746e77816", "testharness" ], "css/css-writing-modes/wm-propagation-body-scroll-offset-vertical-rl.html": [ - "523928f9ad8e40e4f539e81724cb905b1b18159f", + "eb327b00c093239024ef64ace7e76b6bf7cf92aa", "testharness" ], "css/css-writing-modes/wm-propagation-svg-root-scrollbar.svg": [ @@ -630767,6 +630969,14 @@ "48e6488dbb47dc8fccab9193bb34871f2bb930a2", "support" ], + "docs/assets/testharness-tutorial-test-screenshot-1.png": [ + "5195ba25ae647acdc1dc9cd3877d1204abab95df", + "support" + ], + "docs/assets/testharness-tutorial-test-screenshot-2.png": [ + "0010a57173121330bae8df3c3f851db10cffcb67", + "support" + ], "docs/conf.py": [ "e425667ce888dabed639ff29a7e051d3aedcdd0f", "support" @@ -630888,7 +631098,7 @@ "support" ], "docs/writing-tests/index.md": [ - "c4da79c0d8a4832c690fd64cffdebb8da4c23869", + "88e279b0ad128d168efc9be3d25209c8ebfec21e", "support" ], "docs/writing-tests/lint-tool.md": [ @@ -630943,8 +631153,12 @@ "5883308cc66957b1b7215825fd0ea6c7aa1ca74a", "support" ], + "docs/writing-tests/testharness-tutorial.md": [ + "dceb674ac4d643f420a0fdd84da2e37051f4b474", + "support" + ], "docs/writing-tests/testharness.md": [ - "7d38742a7402beeaa011da3bbc0231692c550268", + "17ee097ce185d07ac7353a1541c5c30593b9c387", "support" ], "docs/writing-tests/tools.md": [ @@ -630979,6 +631193,10 @@ "4fc34db7f5f245933013a76335f71e9f4cffe115", "testharness" ], + "dom/collections/HTMLCollection-own-props.html": [ + "1f21c0837ec92bf48b6f497da22e60a435913a06", + "testharness" + ], "dom/collections/HTMLCollection-supported-property-indices.html": [ "62ee6bb6abf69e1a4f1b24937c184f86815aca79", "testharness" @@ -632219,6 +632437,10 @@ "8d9ce2e3ff604ee43807ee0eb1962870439725a9", "testharness" ], + "dom/nodes/aria-attribute-reflection.tentative.html": [ + "0a3a66bdf435ebef64a282eaec8f7a471096daaf", + "testharness" + ], "dom/nodes/aria-element-reflection.tentative.html": [ "848828810f160d5ac01f11bf41b27230b9738800", "testharness" @@ -633552,7 +633774,7 @@ "testharness" ], "element-timing/scroll-to-text.html": [ - "a86dd85ce9c8b8bb2709e2078eff02dd5e19484f", + "ed332740323b076f160121dbd14390f246413c36", "testharness" ], "element-timing/supported-element-type.html": [ @@ -637568,7 +637790,7 @@ "testharness" ], "fetch/api/request/request-init-stream.any.js": [ - "22e3f41bc2d8a38dd097e61145e213e3febbd108", + "df5fb26a0d8fc0d77ea967102be33035b780cea2", "testharness" ], "fetch/api/request/request-keepalive-quota.html": [ @@ -637768,7 +637990,7 @@ "testharness" ], "fetch/api/response/response-static-error.html": [ - "6e927a8bf6267bb9cc7a6f0ad38d332480f5c9ab", + "b2d6e82d4279b7c911f38e4fe8294d03b51ec9f3", "testharness" ], "fetch/api/response/response-static-redirect.html": [ @@ -639656,7 +639878,7 @@ "manual" ], "fullscreen/api/element-ready-check-containing-iframe-manual.tentative.html": [ - "66d9c4316137115a9e29644985c835cb029c8fd9", + "08c420ec0243d67c831124f825e39be492513129", "manual" ], "fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html": [ @@ -640828,7 +641050,7 @@ "testharness" ], "html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-parent.html": [ - "bd2d9dfdb1e58b72b258047793be1bc4f07a3cf4", + "2efc3a6b4a64a8d0e7ded64e7f1eb3f95b3dc634", "testharness" ], "html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-src.html": [ @@ -640840,7 +641062,7 @@ "testharness" ], "html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-src-about-blank.html": [ - "dce6ab2f6934b93d3d6fb9bda5e6c3eb7fc72366", + "0f8a633f1df345ca13937f35fc62d1538695b080", "testharness" ], "html/browsers/browsing-the-web/navigating-across-documents/source/support/dummy.html": [ @@ -640920,7 +641142,7 @@ "testharness" ], "html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-percent-encoded.html": [ - "e8a1e9fd767ce3c744cb6f7e09beb33ab45e1540", + "aa179425c5bb6e8e521ac9871a2afe06829ca518", "testharness" ], "html/browsers/browsing-the-web/scroll-to-fragid/scroll-position-vertical-lr.html": [ @@ -640944,7 +641166,7 @@ "testharness" ], "html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html": [ - "3265a71bf7ca88cc9c4d867be48b3318c59c683c", + "bf62e4cd55c3d15a29b918bdff596ce941a7d8af", "testharness" ], "html/browsers/browsing-the-web/unloading-documents/001.html": [ @@ -642259,6 +642481,14 @@ "1bc116ada46d39b0e7b17dc448cab0c33707057a", "testharness" ], + "html/browsers/sandboxing/sandbox-new-execution-context-iframe.html": [ + "dc15d57c6a352e045ef59d6103ac1540ebc3ad82", + "support" + ], + "html/browsers/sandboxing/sandbox-new-execution-context.html": [ + "6692257bc416114df6c29a2b63586646f5113925", + "testharness" + ], "html/browsers/sandboxing/sandbox-parse-noscript-ref.html": [ "9cf92768f78d2c82df18e3cdb34f8692933439a1", "support" @@ -648924,7 +649154,7 @@ "testharness" ], "html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html": [ - "773739804b3aeaea268080317cd0cb79fba486d7", + "785e8c91ffa55d9bba670bccb979225f7af91a1a", "testharness" ], "html/interaction/focus/tabindex-focus-flag.html": [ @@ -648968,7 +649198,7 @@ "testharness" ], "html/interaction/focus/the-autofocus-attribute/not-on-first-task.html": [ - "50efc176935c710f43a42c31ecc0b7676e96b833", + "ab27342f4fea4eca9138539a119dc47159908ae8", "testharness" ], "html/interaction/focus/the-autofocus-attribute/queue-non-focusable.html": [ @@ -649172,7 +649402,7 @@ "support" ], "html/rendering/non-replaced-elements/flow-content-0/dialog-display.html": [ - "19f8d54df8242940dc0c1a06e0995ab590ec857f", + "48b0e33d9445aef98dd3ff6d5f03fca1fc5eb6e9", "testharness" ], "html/rendering/non-replaced-elements/flow-content-0/dialog.html": [ @@ -649360,7 +649590,7 @@ "reftest" ], "html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js": [ - "b25993fb7303b82469b3dffcc8846c3a54298ca5", + "496bae3a101924975b6a6be3a0d1bf91d78bbd2e", "support" ], "html/rendering/non-replaced-elements/margin-collapsing-quirks/multicol-quirks-mode.html": [ @@ -649520,11 +649750,11 @@ "testharness" ], "html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html": [ - "dae70b394a5a8415429eb10c4dcf70c947bbe10b", + "9f462b5768621858ce152b96c835f8c737b3be02", "testharness" ], "html/rendering/non-replaced-elements/tables/table-vspace-hspace.html": [ - "9a951954e28b2fe634dd17954b42618cdaa8ec6d", + "c081775b8736b618dbad45525ce6b16bfb81a6aa", "testharness" ], "html/rendering/non-replaced-elements/tables/table-width-150percent-ref.html": [ @@ -649980,7 +650210,7 @@ "testharness" ], "html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html": [ - "b5b49d1b86787c5bbc35e960927e008c26cfa0fc", + "b09cafbbe4252b735860e21bd9830bd82f639b03", "testharness" ], "html/rendering/non-replaced-elements/the-page/support/body-marginwidth-marginheight.html": [ @@ -650524,19 +650754,19 @@ "support" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html": [ - "09454a13b20343df287fa530ed90738fa0f0ae27", + "3bf8cfb6cc8949ec30f3491660f01fb452307ccb", "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html": [ - "f5c4e991829535e739f4a543ba9c6e2a7f1ec7b1", + "cc7eb5e5e0298c1a3edeaef55c0103c14e8372d9", "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/dynamic-append.html": [ - "e0896269f308b206db8fc5cf4226311ccbded520", + "4d2fa7894037361075b20097df491bac953bc958", "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree.html": [ - "ec979732e6f032d5a2c4ce6099bc02a34732c7f6", + "2a9f301fffb81da7a764cd7d9b8a99c1269316ee", "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html": [ @@ -650544,7 +650774,7 @@ "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document.html": [ - "66a067fcd84fa5453813b59fa0995d8e35be8f63", + "1e608a3456bbef3c65c1402a23cd7884830f2753", "testharness" ], "html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/;url=foo": [ @@ -651268,7 +651498,7 @@ "testharness" ], "html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html": [ - "cf1b98c2bceafb32652da39197a4da31d7ea9694", + "930d9cbd5b7059ca7c89f2bd3460828fc924ab1d", "testharness" ], "html/semantics/embedded-content/media-elements/ready-states/autoplay.html": [ @@ -653228,19 +653458,19 @@ "testharness" ], "html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_01.html": [ - "efd563f51ac0544ddeb842895d5dbeea62e58de1", + "900d8cd02268dd53f9cb1a8ac2fba16ca4b889d8", "testharness" ], "html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_02.html": [ - "dbe266b2930a67b7e6af7f0386327d0d74a8f8d6", + "d82dafe3ceccfe1dfe2f1c42bc6dd86bdd6bff6d", "testharness" ], "html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_03.html": [ - "c07dd42dc81359a9223033c98ec64cabf30c2cdb", + "5db77ad8902ac8bea17cbd3b131479c3a87d0a96", "testharness" ], "html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_04.html": [ - "755cd45d34b7c174e9e8a81bf055bee6f0975a3d", + "bd076948abe43e00a3bd4252c4fc41aa7f914ddb", "testharness" ], "html/semantics/embedded-content/the-iframe-element/same_origin_child.html": [ @@ -653388,7 +653618,7 @@ "testharness" ], "html/semantics/embedded-content/the-iframe-element/srcdoc_change_hash.html": [ - "457a07f9e2fb3340f7f874d7e434d38b1dd788d0", + "fe72333d1a638966e14e46fdb6b0bdf21beaa75d", "testharness" ], "html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html": [ @@ -653624,7 +653854,7 @@ "testharness" ], "html/semantics/embedded-content/the-img-element/data-url.html": [ - "2fa630043907676d031f3da3c0bc85f56131347d", + "808b5c884c564e52beec9e42437ed5fff4264748", "testharness" ], "html/semantics/embedded-content/the-img-element/decode/image-decode-iframe.html": [ @@ -653792,7 +654022,7 @@ "support" ], "html/semantics/embedded-content/the-img-element/srcset/avoid-reload-on-resize.html": [ - "a8038e5605760b4bcdd4c8bdca47cede880ad7a9", + "52366dcaa7f7638b27adabe1b1007c5baca98580", "testharness" ], "html/semantics/embedded-content/the-img-element/srcset/common.js": [ @@ -653828,7 +654058,7 @@ "testharness" ], "html/semantics/embedded-content/the-img-element/update-src-complete.html": [ - "267c008298309a41e80edad911cfc626b5f301ea", + "de3926a2964598bb73e5257e99b6ce196e2bbecd", "testharness" ], "html/semantics/embedded-content/the-img-element/update-the-image-data/fail-to-resolve.html": [ @@ -654215,8 +654445,12 @@ "0fa9774ce4f15be8909a0aceaa4879e9c5ab39c1", "support" ], + "html/semantics/forms/historical-search-event.html": [ + "b7a089a68e4fd9e22c2bdbd107ee41ef355786cc", + "testharness" + ], "html/semantics/forms/historical.html": [ - "6873ecd251741fb8436a377081d5a6d3de53b7ab", + "277e12416104b0d2171ed7c4eb735e0ca2067988", "testharness" ], "html/semantics/forms/resetting-a-form/reset-event.html": [ @@ -654583,6 +654817,10 @@ "5051fdd4e6f825526ab2de418ce426a81e6dddc2", "testharness" ], + "html/semantics/forms/the-input-element/checkbox-detached-change-event.html": [ + "43420790fdb5434a74df08fa51caf6997a2d77c8", + "testharness" + ], "html/semantics/forms/the-input-element/checkbox.html": [ "c48083d685538c61414b6dc9ca6d40aed964dfe9", "testharness" @@ -654755,6 +654993,10 @@ "ef01c29727758db5832aae37040e0b1aa9c0fd26", "testharness" ], + "html/semantics/forms/the-input-element/radio-detached-change-event.html": [ + "d1b18014981932209f1e65a73f35523bb18e04f4", + "testharness" + ], "html/semantics/forms/the-input-element/radio-groupname-case.html": [ "3c54aca3e76bafe4c409ed33b7833dc982fea693", "testharness" @@ -658752,7 +658994,7 @@ "testharness" ], "html/user-activation/activation-api-iframe-no-activate.tenative.html": [ - "8c7610e28b0be7cb876e2706d712d82db15bfb69", + "bd34518ba883d923067ff0921883387e73a42595", "testharness" ], "html/user-activation/activation-api-iframe.tenative.html": [ @@ -660080,19 +660322,19 @@ "testharness" ], "html/webappapis/timers/negative-setinterval.html": [ - "430d13c58aab69b4a57317bbfc9acfec7a6e3ab1", + "663872cd1f3850ffccbc199f6e92267bfcf65652", "testharness" ], "html/webappapis/timers/negative-settimeout.html": [ - "57e88ee701d80714098b6c710aa661048dbe2182", + "b59fc8f22984c8329119763ea68214d2e46fa8a1", "testharness" ], "html/webappapis/timers/type-long-setinterval.html": [ - "af0299599846680f1fa4106c5f3f6a2fe26d0e1e", + "7fb81ff29ac3a99e2408b51e4cfe7c7b5bd49e17", "testharness" ], "html/webappapis/timers/type-long-settimeout.html": [ - "31fa4f1264211e050864147db24216465e1ac62f", + "4dc7d17ea5f13f9bb379d4acae89263da138c0c9", "testharness" ], "html/webappapis/update-rendering/child-document-raf-order.html": [ @@ -661824,7 +662066,7 @@ "support" ], "interfaces/web-nfc.idl": [ - "b13d047c551db4c74bb8467dda287d5e004d8cb3", + "d2ec623e864141152f9ca2ac79b5252b246257bf", "support" ], "interfaces/web-share.idl": [ @@ -661888,7 +662130,7 @@ "support" ], "interfaces/webxr.idl": [ - "262fa2423afbe2ebb80a0db33994c8520c0d6c52", + "1dab90eff4901a6cf493ae08593e0832f1be548c", "support" ], "interfaces/worklets.idl": [ @@ -667764,11 +668006,11 @@ "testharness" ], "mixed-content/spec.src.json": [ - "e4844a8016b6f3242a1b8dc1110461cd39ff1e33", + "c272bb3f642bfd71ace5e4bcab4a66cadaf732c5", "support" ], "mixed-content/spec_json.js": [ - "009a853077b5c37c6eeae9f87f0be75109c584fd", + "00428b1fa5e6396b82484d33cf36589a8c64dd9a", "support" ], "mst-content-hint/META.yml": [ @@ -676024,7 +676266,7 @@ "testharness" ], "pointerevents/pointerevent_capture_mouse.html": [ - "d8d54db6ba302eff8e2df5c5fe13c209b3183a55", + "32056f09cc1fade179f2528205920b61479b9783", "testharness" ], "pointerevents/pointerevent_capture_suppressing_mouse-manual.html": [ @@ -689568,11 +689810,11 @@ "testharness" ], "referrer-policy/spec.src.json": [ - "ab02dcc1b16e0621ef241b375654a3cd41345e31", + "2674a45d6db37fdd2fed84bf08fea51b5432f456", "support" ], "referrer-policy/spec_json.js": [ - "1b507dbcf14ed32abdf0953f0e0abdaecd73efe9", + "8a15eaee1ebd7886a1f80dc7dc0bac46b08f595d", "support" ], "remote-playback/META.yml": [ @@ -690388,7 +690630,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "d279fcf40d82525ec8e7ee628d267c2168ed7cd7", + "811c0aeafceed8e16148ae4c678b55733fc6c8b8", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -690836,7 +691078,7 @@ "support" ], "resources/testharness.js": [ - "9f7426b7d36a093806790fc35aad28e29ff34e06", + "a44185c1eaf97d89dd023d75354da588873905a4", "support" ], "resources/testharness.js.headers": [ @@ -692575,12 +692817,8 @@ "4f176220d6100c4efb1bfda817b84cf5f53a4f3d", "testharness" ], - "service-workers/service-worker/fetch-error-worker.js": [ - "788252cf3b3b3e5aaaf7013abd2d6940f298a40e", - "support" - ], "service-workers/service-worker/fetch-error.https.html": [ - "901c158f60197e92ec7eaa78989a8ce799e2d8c0", + "ca2f884a9b391acf273a877f5a47338b3fe1130f", "testharness" ], "service-workers/service-worker/fetch-event-add-async.https.html": [ @@ -693427,6 +693665,10 @@ "300efe049b5de8810f7c44863e11c280ca2926f3", "support" ], + "service-workers/service-worker/resources/fetch-error-worker.js": [ + "788252cf3b3b3e5aaaf7013abd2d6940f298a40e", + "support" + ], "service-workers/service-worker/resources/fetch-event-add-async-worker.js": [ "a5a44a57c99cb3a289f0015168609852729d50a5", "support" @@ -694684,7 +694926,7 @@ "testharness" ], "shadow-dom/focus/focus-method-delegatesFocus.html": [ - "babe1760c70fcc4faeba096d7640165e4d0ccab8", + "9c61f663f88a177e1a0c1c6be6a35a40b120d8d7", "testharness" ], "shadow-dom/focus/focus-selector-delegatesFocus.html": [ @@ -701240,7 +701482,7 @@ "support" ], "tools/ci/azure/cleanup_win10.yml": [ - "195cdee8edfb3bd8cd58ac2dc132b63bcb7d531a", + "76852b58cd39f057ae4441b26fd423714b07f445", "support" ], "tools/ci/azure/com.apple.Safari.plist": [ @@ -701360,7 +701602,7 @@ "support" ], "tools/ci/website_build.sh": [ - "d23829f0bcdab7cd4c3b966c8a3fea711737a0d8", + "f6b26310aabce200fc0d77844f5f3ad28de0bb7f", "support" ], "tools/conftest.py": [ @@ -701660,7 +701902,7 @@ "support" ], "tools/manifest/vcs.py": [ - "d87e804c35918ad336acd6800a037676e95b1ee1", + "d4f47f6bf0ab35c9da514edb4c4b779644ff90dd", "support" ], "tools/mypy.ini": [ @@ -706304,7 +706546,7 @@ "support" ], "tools/wptrunner/requirements_webkit.txt": [ - "25cc5846ee7204923217396191996e15fd23dc13", + "f85779a40bd50db1e24dc032ec43a7444341905b", "support" ], "tools/wptrunner/setup.py": [ @@ -706552,7 +706794,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executormarionette.py": [ - "77fe297194012a6f1313cc2ef9b4382d30185d8b", + "14f456aa4767d86eccd330f1ee691d4ef87f44ba", "support" ], "tools/wptrunner/wptrunner/executors/executoropera.py": [ @@ -706564,7 +706806,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorselenium.py": [ - "5246a26fcbf47917ced9ea52b6efa3271544f2d3", + "913a5e6d54225b9c1c77f2b5518955fa726c4fce", "support" ], "tools/wptrunner/wptrunner/executors/executorservo.py": [ @@ -706572,11 +706814,11 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorservodriver.py": [ - "12a750fa0a34e6a74fe0e18671e5c85fe45a06e0", + "67a433d9a588245138f97fb8028a5a349f308f1d", "support" ], "tools/wptrunner/wptrunner/executors/executorwebdriver.py": [ - "65b6723cb82609fea5aa81e523d7639b610c92f4", + "a2601978b578aa546fd5d38c1bb997719ae27d41", "support" ], "tools/wptrunner/wptrunner/executors/executorwebkit.py": [ @@ -706708,7 +706950,7 @@ "support" ], "tools/wptrunner/wptrunner/testrunner.py": [ - "c2cb5c4d26b2866c069537ceb5a96da623d11bb6", + "56fbf08111994ca449949b38a6bed2ce9a7a2fb4", "support" ], "tools/wptrunner/wptrunner/tests/__init__.py": [ @@ -706792,7 +707034,7 @@ "support" ], "tools/wptrunner/wptrunner/webdriver_server.py": [ - "8b711272c7befe890fab4824868118fc13275eca", + "162ffae3fc93aeeb29a2535e829af45b9e15c1f3", "support" ], "tools/wptrunner/wptrunner/wptcommandline.py": [ @@ -710824,7 +711066,7 @@ "support" ], "url/resources/setters_tests.json": [ - "6b7d19b10164a38901abc70345663a550d4ee737", + "d54335f1badecac9d01594ec6e631d6d11e68328", "support" ], "url/resources/toascii.json": [ @@ -712779,14 +713021,14 @@ "5124e5095724521c721b8781dcfc92ff573f48e8", "testharness" ], - "web-animations/interfaces/Document/getAnimations.html": [ - "f6a6c3edd447ccf42da4598db7e771a0ab99b04f", - "testharness" - ], "web-animations/interfaces/Document/timeline.html": [ "b8b4d74d5e536a111449fd0268424ac06a151b95", "testharness" ], + "web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html": [ + "4730f186b34a426b6dd657b113b6e408e0a08b55", + "testharness" + ], "web-animations/interfaces/DocumentTimeline/constructor.html": [ "ca0997ac8f9012b7d019760be97e09fa0f837179", "testharness" @@ -713108,7 +713350,7 @@ "testharness" ], "web-nfc/NDEFReader_scan.https.html": [ - "0a3610099486c6d61c4f9171a2d87950e75cd4e5", + "3fe95cc91478aea7426e882743814723c4517ec6", "testharness" ], "web-nfc/NDEFReader_scan_iframe.https.html": [ @@ -713128,11 +713370,11 @@ "manual" ], "web-nfc/NDEFWriter_push.https.html": [ - "b909bee3171dcfa56af951f2d4a351487bd9705e", + "0d5722bfa019610633cef78d0d2164b2e55de8bb", "testharness" ], "web-nfc/README.md": [ - "87145b0e3ec0064457dfdcaa6bc6cd2595b88afb", + "0787f1f6712e669e1c858940a11da9b22c9c565b", "support" ], "web-nfc/idlharness.https.window.js": [ diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-001.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-001.html.ini new file mode 100644 index 00000000000..3ba7eb5584f --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-001.html.ini @@ -0,0 +1,2 @@ +[word-break-min-content-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-002.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-002.html.ini new file mode 100644 index 00000000000..a99d99d6ec9 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-002.html.ini @@ -0,0 +1,2 @@ +[word-break-min-content-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-004.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-004.html.ini new file mode 100644 index 00000000000..5e0ed296c95 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-004.html.ini @@ -0,0 +1,2 @@ +[word-break-min-content-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-005.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-005.html.ini new file mode 100644 index 00000000000..50024d9fcfc --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-005.html.ini @@ -0,0 +1,2 @@ +[word-break-min-content-005.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-006.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-006.html.ini new file mode 100644 index 00000000000..505329f9ad9 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-min-content-006.html.ini @@ -0,0 +1,2 @@ +[word-break-min-content-006.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini index c511d92d674..03f2f3fe9d1 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini @@ -1,4 +1,5 @@ [perspective-interpolation.html] + expected: CRASH [ perspective interpolation] expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini index 0269091c011..41fde289810 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -3,9 +3,6 @@ [throws if handleEvent is falsy and not callable] expected: NOTRUN - [looks up handleEvent method on every event dispatch] - expected: FAIL - [rethrows errors when getting handleEvent] expected: TIMEOUT diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index c884dc82eab..7fe95a6c291 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -2,6 +2,6 @@ [listeners are called when + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html new file mode 100644 index 00000000000..6692257bc41 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html @@ -0,0 +1,40 @@ + + + + Reuse of iframe about:blank document execution context + + + + + + + +

Reuse of iframe about:blank document execution context in sandbox="allow-scripts" iframe

+ +
+ + diff --git a/tests/wpt/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html b/tests/wpt/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html index 773739804b3..785e8c91ffa 100644 --- a/tests/wpt/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html +++ b/tests/wpt/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html @@ -4,6 +4,17 @@ + @@ -26,6 +37,11 @@
summarysecond summarydetails
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display.html index 19f8d54df82..48b0e33d944 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display.html +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display.html @@ -7,6 +7,7 @@ diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js index b25993fb730..496bae3a101 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js @@ -1,6 +1,7 @@ -var testStyle = getComputedStyle(document.getElementById('test')); -var refStyle = getComputedStyle(document.getElementById('ref')); -for (var prop in testStyle) { - assert_equals(testStyle[prop], refStyle[prop], prop); -} -done(); +test(function() { + var testStyle = getComputedStyle(document.getElementById('test')); + var refStyle = getComputedStyle(document.getElementById('ref')); + for (var prop in testStyle) { + assert_equals(testStyle[prop], refStyle[prop], prop); + } +}); diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html index dae70b394a5..9f462b57686 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html @@ -7,9 +7,10 @@
x
x
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace.html index 9a951954e28..c081775b873 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace.html +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace.html @@ -7,9 +7,10 @@
x
x
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html index b5b49d1b867..b09cafbbe42 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html @@ -4,6 +4,7 @@
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html index 2fa63004390..808b5c884c5 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html @@ -5,6 +5,8 @@

+ + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/historical.html b/tests/wpt/web-platform-tests/html/semantics/forms/historical.html index 6873ecd2517..277e1241610 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/historical.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/historical.html @@ -73,6 +73,18 @@ t('form', 'meter'); t('item', 'form'); t('namedItem', 'form'); +// Never specified but implemented in WebKit/Chromium +test(() => { + assert_false("onsearch" in window); +}, "window.onsearch should not be supported"); + +test(() => { + assert_false("onsearch" in document); +}, "document.onsearch should not be supported"); + +t('onsearch', 'input'); +t('incremental', 'input'); + // // removed in https://github.com/whatwg/html/commit/5c44abc734eb483f9a7ec79da5844d2fe63d9c3b async_test(function() { diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event.html new file mode 100644 index 00000000000..43420790fdb --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event.html new file mode 100644 index 00000000000..d1b18014981 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html index 8c7610e28b0..bd34518ba88 100644 --- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html +++ b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html @@ -32,9 +32,9 @@ // click in parent document test_driver.click(document.getElementById('instructions')); } else if (msg.type == 'child-one-report') { - // state should be false after asked to report + // only the transient state should be false after asked to report assert_false(msg.isActive); - assert_false(msg.hasBeenActive); + assert_true(msg.hasBeenActive); t.done(); } })); diff --git a/tests/wpt/web-platform-tests/html/webappapis/timers/negative-setinterval.html b/tests/wpt/web-platform-tests/html/webappapis/timers/negative-setinterval.html index 430d13c58aa..663872cd1f3 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/timers/negative-setinterval.html +++ b/tests/wpt/web-platform-tests/html/webappapis/timers/negative-setinterval.html @@ -3,6 +3,7 @@ diff --git a/tests/wpt/web-platform-tests/html/webappapis/timers/type-long-setinterval.html b/tests/wpt/web-platform-tests/html/webappapis/timers/type-long-setinterval.html index af029959984..7fb81ff29ac 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/timers/type-long-setinterval.html +++ b/tests/wpt/web-platform-tests/html/webappapis/timers/type-long-setinterval.html @@ -3,6 +3,7 @@ diff --git a/tests/wpt/web-platform-tests/interfaces/web-nfc.idl b/tests/wpt/web-platform-tests/interfaces/web-nfc.idl index b13d047c551..d2ec623e864 100644 --- a/tests/wpt/web-platform-tests/interfaces/web-nfc.idl +++ b/tests/wpt/web-platform-tests/interfaces/web-nfc.idl @@ -18,7 +18,7 @@ interface NDEFRecord { constructor(NDEFRecordInit recordInit); readonly attribute USVString recordType; - readonly attribute USVString mediaType; + readonly attribute USVString? mediaType; readonly attribute USVString id; readonly attribute DataView? data; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl index 262fa2423af..1dab90eff49 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -50,10 +50,13 @@ enum XRVisibilityState { // Events attribute EventHandler onend; - attribute EventHandler onselect; attribute EventHandler oninputsourceschange; + attribute EventHandler onselect; attribute EventHandler onselectstart; attribute EventHandler onselectend; + attribute EventHandler onsqueeze; + attribute EventHandler onsqueezestart; + attribute EventHandler onsqueezeend; attribute EventHandler onvisibilitychange; }; diff --git a/tests/wpt/web-platform-tests/mixed-content/spec.src.json b/tests/wpt/web-platform-tests/mixed-content/spec.src.json index e4844a8016b..c272bb3f642 100644 --- a/tests/wpt/web-platform-tests/mixed-content/spec.src.json +++ b/tests/wpt/web-platform-tests/mixed-content/spec.src.json @@ -240,6 +240,9 @@ "http-rp", "meta" ], + "iframe-blank": [ + "meta" + ], "srcdoc": [ "meta" ], @@ -255,6 +258,7 @@ "supported_subresource": { "top": "*", "iframe": "*", + "iframe-blank": "*", "srcdoc": "*", "worker-classic": [ "xhr", diff --git a/tests/wpt/web-platform-tests/mixed-content/spec_json.js b/tests/wpt/web-platform-tests/mixed-content/spec_json.js index 009a853077b..00428b1fa5e 100644 --- a/tests/wpt/web-platform-tests/mixed-content/spec_json.js +++ b/tests/wpt/web-platform-tests/mixed-content/spec_json.js @@ -1 +1 @@ -var SPEC_JSON = {"subresource_schema": {"supported_delivery_type": {"picture-tag": [], "worklet-layout": [], "worklet-paint": [], "img-tag": [], "a-tag": [], "worklet-layout-import-data": [], "worklet-audio-import-data": [], "worklet-animation": [], "websocket": [], "worklet-paint-import-data": [], "video-tag": [], "object-tag": [], "worklet-audio": [], "beacon": [], "worker-module": [], "worker-import-data": [], "script-tag": [], "worklet-animation-import-data": [], "link-css-tag": [], "xhr": [], "worker-classic": [], "link-prefetch-tag": [], "audio-tag": [], "fetch": []}}, "excluded_tests": [{"delivery_value": null, "origin": "*", "delivery_type": "http-rp", "name": "Skip-redundant-no-opt-in", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "Redundant-subresources", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": ["a-tag"], "optionally-blockable": []}}, {"delivery_value": "*", "origin": ["same-https", "same-http", "cross-https", "cross-http"], "delivery_type": "*", "name": "Skip-origins-not-applicable-to-websockets", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": ["websocket"], "optionally-blockable": []}}, {"delivery_value": "opt-in", "origin": "*", "delivery_type": "meta", "name": "Skip-redundant-for-opt-in-method", "expectation": "*", "expansion": "*", "redirection": ["keep-scheme", "swap-scheme"], "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}], "specification": [{"test_expansion": [{"delivery_value": "opt-in", "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}, {"delivery_value": null, "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "no-opt-in-allows", "expectation": "allowed", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}], "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "name": "optionally-blockable", "title": "Optionally-blockable content"}, {"test_expansion": [{"delivery_value": "opt-in", "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"delivery_value": null, "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "no-opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"delivery_value": "*", "origin": ["cross-ws", "same-ws"], "delivery_type": "*", "name": "ws-downgrade-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "websocket", "optionally-blockable": []}}], "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "name": "blockable", "title": "Blockable content"}, {"test_expansion": [{"delivery_value": "*", "origin": ["same-https"], "delivery_type": "*", "name": "allowed", "expectation": "allowed", "expansion": "default", "redirection": ["no-redirect", "keep-scheme"], "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"delivery_value": "*", "origin": ["same-wss"], "delivery_type": "*", "name": "websocket-allowed", "expectation": "allowed", "expansion": "default", "redirection": ["no-redirect", "keep-scheme"], "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "websocket", "optionally-blockable": []}}], "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "name": "allowed", "title": "Allowed content"}], "test_expansion_schema": {"delivery_value": [null, "opt-in"], "origin": ["same-https", "same-http", "cross-https", "cross-http", "same-wss", "same-ws", "cross-wss", "cross-ws"], "delivery_type": ["http-rp", "meta"], "subresource": {"blockable": ["script-tag", "link-css-tag", "xhr", "worker-classic", "worker-module", "worker-import-data", "worklet-animation", "worklet-audio", "worklet-layout", "worklet-paint", "worklet-animation-import-data", "worklet-audio-import-data", "worklet-layout-import-data", "worklet-paint-import-data", "fetch", "a-tag", "object-tag", "picture-tag", "websocket", "link-prefetch-tag", "beacon"], "optionally-blockable": ["img-tag", "audio-tag", "video-tag"]}, "expectation": ["allowed", "blocked"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-scheme", "swap-scheme"], "source_context_list": ["top", "worker-classic-data", "worker-module-data"], "source_scheme": ["http", "https"]}, "source_context_list_schema": {"worker-classic-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}]}, "top": {"subresourcePolicyDeliveries": [], "description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}]}, "worker-module-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}]}}, "delivery_key": "mixedContent", "source_context_schema": {"supported_delivery_type": {"iframe": ["http-rp", "meta"], "worker-module-data": [], "worker-classic-data": [], "top": ["http-rp", "meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "srcdoc": ["meta"]}, "supported_subresource": {"iframe": "*", "worker-module-data": ["xhr", "fetch", "websocket"], "worker-classic-data": ["xhr", "fetch", "websocket"], "top": "*", "worker-classic": ["xhr", "fetch", "websocket"], "worker-module": ["xhr", "fetch", "websocket"], "srcdoc": "*"}}}; +var SPEC_JSON = {"subresource_schema": {"supported_delivery_type": {"picture-tag": [], "worklet-layout": [], "worklet-paint": [], "img-tag": [], "a-tag": [], "worklet-layout-import-data": [], "worklet-audio-import-data": [], "worklet-animation": [], "websocket": [], "worklet-paint-import-data": [], "video-tag": [], "object-tag": [], "worklet-audio": [], "beacon": [], "worker-module": [], "worker-import-data": [], "script-tag": [], "worklet-animation-import-data": [], "link-css-tag": [], "xhr": [], "worker-classic": [], "link-prefetch-tag": [], "audio-tag": [], "fetch": []}}, "excluded_tests": [{"delivery_value": null, "origin": "*", "delivery_type": "http-rp", "name": "Skip-redundant-no-opt-in", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "Redundant-subresources", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": ["a-tag"], "optionally-blockable": []}}, {"delivery_value": "*", "origin": ["same-https", "same-http", "cross-https", "cross-http"], "delivery_type": "*", "name": "Skip-origins-not-applicable-to-websockets", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": ["websocket"], "optionally-blockable": []}}, {"delivery_value": "opt-in", "origin": "*", "delivery_type": "meta", "name": "Skip-redundant-for-opt-in-method", "expectation": "*", "expansion": "*", "redirection": ["keep-scheme", "swap-scheme"], "source_context_list": "*", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}], "specification": [{"test_expansion": [{"delivery_value": "opt-in", "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}, {"delivery_value": null, "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "no-opt-in-allows", "expectation": "allowed", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}], "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "name": "optionally-blockable", "title": "Optionally-blockable content"}, {"test_expansion": [{"delivery_value": "opt-in", "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"delivery_value": null, "origin": ["cross-http", "same-http"], "delivery_type": "*", "name": "no-opt-in-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"delivery_value": "*", "origin": ["cross-ws", "same-ws"], "delivery_type": "*", "name": "ws-downgrade-blocks", "expectation": "blocked", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "websocket", "optionally-blockable": []}}], "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "name": "blockable", "title": "Blockable content"}, {"test_expansion": [{"delivery_value": "*", "origin": ["same-https"], "delivery_type": "*", "name": "allowed", "expectation": "allowed", "expansion": "default", "redirection": ["no-redirect", "keep-scheme"], "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"delivery_value": "*", "origin": ["same-wss"], "delivery_type": "*", "name": "websocket-allowed", "expectation": "allowed", "expansion": "default", "redirection": ["no-redirect", "keep-scheme"], "source_context_list": "*", "source_scheme": "https", "subresource": {"blockable": "websocket", "optionally-blockable": []}}], "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "name": "allowed", "title": "Allowed content"}], "test_expansion_schema": {"delivery_value": [null, "opt-in"], "origin": ["same-https", "same-http", "cross-https", "cross-http", "same-wss", "same-ws", "cross-wss", "cross-ws"], "delivery_type": ["http-rp", "meta"], "subresource": {"blockable": ["script-tag", "link-css-tag", "xhr", "worker-classic", "worker-module", "worker-import-data", "worklet-animation", "worklet-audio", "worklet-layout", "worklet-paint", "worklet-animation-import-data", "worklet-audio-import-data", "worklet-layout-import-data", "worklet-paint-import-data", "fetch", "a-tag", "object-tag", "picture-tag", "websocket", "link-prefetch-tag", "beacon"], "optionally-blockable": ["img-tag", "audio-tag", "video-tag"]}, "expectation": ["allowed", "blocked"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-scheme", "swap-scheme"], "source_context_list": ["top", "worker-classic-data", "worker-module-data"], "source_scheme": ["http", "https"]}, "source_context_list_schema": {"worker-classic-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}]}, "top": {"subresourcePolicyDeliveries": [], "description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}]}, "worker-module-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}]}}, "delivery_key": "mixedContent", "source_context_schema": {"supported_delivery_type": {"iframe": ["http-rp", "meta"], "worker-module-data": [], "worker-classic-data": [], "top": ["http-rp", "meta"], "worker-classic": ["http-rp"], "iframe-blank": ["meta"], "worker-module": ["http-rp"], "srcdoc": ["meta"]}, "supported_subresource": {"iframe": "*", "worker-module-data": ["xhr", "fetch", "websocket"], "worker-classic-data": ["xhr", "fetch", "websocket"], "top": "*", "worker-classic": ["xhr", "fetch", "websocket"], "iframe-blank": "*", "worker-module": ["xhr", "fetch", "websocket"], "srcdoc": "*"}}}; diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_capture_mouse.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_capture_mouse.html index d8d54db6ba3..32056f09cc1 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_capture_mouse.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_capture_mouse.html @@ -125,11 +125,10 @@ new test_driver.Actions().pointerMove(0, 0, {origin: target0}).send(); on_event(target1, "pointermove", function (event) { - if(isPointerCapture == true) { - test(function() { - assert_unreached("pointermove shouldn't trigger for this target when capture is enabled"); - }, "pointermove shouldn't trigger for the purple rectangle while the black rectangle has capture"); - } + test(function() { + assert_false(isPointerCapture, "pointermove shouldn't trigger for this target when capture is enabled"); + }, "pointermove shouldn't trigger for the purple rectangle while the black rectangle has capture"); + if(!pointermoveNoCaptureGot1) { test_pointermove1.done(); event_log.push('pointermove@target1'); diff --git a/tests/wpt/web-platform-tests/referrer-policy/spec.src.json b/tests/wpt/web-platform-tests/referrer-policy/spec.src.json index ab02dcc1b16..2674a45d6db 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/spec.src.json +++ b/tests/wpt/web-platform-tests/referrer-policy/spec.src.json @@ -668,6 +668,9 @@ "meta", "http-rp" ], + "iframe-blank": [ + "meta" + ], "srcdoc": [ "meta" ], @@ -683,6 +686,7 @@ "supported_subresource": { "top": "*", "iframe": "*", + "iframe-blank": "*", "srcdoc": "*", "worker-classic": [ "xhr", diff --git a/tests/wpt/web-platform-tests/referrer-policy/spec_json.js b/tests/wpt/web-platform-tests/referrer-policy/spec_json.js index 1b507dbcf14..8a15eaee1eb 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/spec_json.js +++ b/tests/wpt/web-platform-tests/referrer-policy/spec_json.js @@ -1 +1 @@ -var SPEC_JSON = {"subresource_schema": {"supported_delivery_type": {"img-tag": ["attr"], "sharedworker-classic": [], "xhr": [], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "iframe-tag": ["attr"], "worker-module": [], "script-tag": ["attr"], "fetch": [], "worker-classic": []}}, "excluded_tests": [{"delivery_value": "*", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin-workers", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgraded-protocol-workers", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "mixed-content-insecure-subresources", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "area-tag", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "area-tag"}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "worker-requests-with-swap-origin-redirect", "expectation": "*", "expansion": "*", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "overhead-for-redirection", "expectation": "*", "expansion": "*", "redirection": ["keep-origin", "swap-origin"], "source_context_list": "*", "source_scheme": "*", "subresource": ["a-tag", "area-tag"]}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "source-https-unsupported-by-web-platform-tests-runners", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": "*", "delivery_type": "rel-noref", "name": "'s delivery_value should be no-referrer", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "specification": [{"test_expansion": [{"delivery_value": null, "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": null, "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": null, "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": null, "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined"}, {"test_expansion": [{"delivery_value": "no-referrer", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'"}, {"test_expansion": [{"delivery_value": "no-referrer-when-downgrade", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'"}, {"test_expansion": [{"delivery_value": "origin", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "name": "origin", "title": "Referrer Policy is set to 'origin'"}, {"test_expansion": [{"delivery_value": "same-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "same-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-secure-default", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "same-origin", "origin": ["same-http", "same-https"], "delivery_type": "*", "name": "same-origin-insecure", "expectation": "omitted", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}, {"delivery_value": "same-origin", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "name": "same-origin", "title": "Referrer Policy is set to 'same-origin'"}, {"test_expansion": [{"delivery_value": "origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-secure-default", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-upgrade", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-downgrade", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": ["same-http", "same-https"], "delivery_type": "*", "name": "same-origin-insecure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'"}, {"test_expansion": [{"delivery_value": "strict-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'"}, {"test_expansion": [{"delivery_value": "strict-origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-insecure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "cross-http", "delivery_type": "*", "name": "cross-insecure", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-secure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-secure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "cross-https", "delivery_type": "*", "name": "cross-secure", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'"}, {"test_expansion": [{"delivery_value": "unsafe-url", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'"}], "test_expansion_schema": {"delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"]}, "source_context_list_schema": {"srcdoc-inherit": {"subresourcePolicyDeliveries": [], "description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}]}, "worker-module": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}]}, "worker-module-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}]}, "worker-classic-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}]}, "top": {"subresourcePolicyDeliveries": [], "description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}]}, "req": {"subresourcePolicyDeliveries": ["nonNullPolicy"], "description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}]}, "worker-classic": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}]}, "iframe": {"subresourcePolicyDeliveries": [], "description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}]}, "srcdoc": {"subresourcePolicyDeliveries": [], "description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}]}}, "delivery_key": "referrerPolicy", "source_context_schema": {"supported_delivery_type": {"iframe": ["meta", "http-rp"], "worker-module-data": [], "worker-classic-data": [], "top": ["meta", "http-rp"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "srcdoc": ["meta"]}, "supported_subresource": {"iframe": "*", "worker-module-data": ["xhr", "fetch"], "worker-classic-data": ["xhr", "fetch"], "top": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "srcdoc": "*"}}}; +var SPEC_JSON = {"subresource_schema": {"supported_delivery_type": {"img-tag": ["attr"], "sharedworker-classic": [], "xhr": [], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "iframe-tag": ["attr"], "worker-module": [], "script-tag": ["attr"], "fetch": [], "worker-classic": []}}, "excluded_tests": [{"delivery_value": "*", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin-workers", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgraded-protocol-workers", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "mixed-content-insecure-subresources", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "area-tag", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "area-tag"}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "worker-requests-with-swap-origin-redirect", "expectation": "*", "expansion": "*", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic"]}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "overhead-for-redirection", "expectation": "*", "expansion": "*", "redirection": ["keep-origin", "swap-origin"], "source_context_list": "*", "source_scheme": "*", "subresource": ["a-tag", "area-tag"]}, {"delivery_value": "*", "origin": "*", "delivery_type": "*", "name": "source-https-unsupported-by-web-platform-tests-runners", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": "*", "delivery_type": "rel-noref", "name": "'s delivery_value should be no-referrer", "expectation": "*", "expansion": "*", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "specification": [{"test_expansion": [{"delivery_value": null, "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": null, "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": null, "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": null, "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined"}, {"test_expansion": [{"delivery_value": "no-referrer", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'"}, {"test_expansion": [{"delivery_value": "no-referrer-when-downgrade", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "no-referrer-when-downgrade", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'"}, {"test_expansion": [{"delivery_value": "origin", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "name": "origin", "title": "Referrer Policy is set to 'origin'"}, {"test_expansion": [{"delivery_value": "same-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "same-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-secure-default", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "same-origin", "origin": ["same-http", "same-https"], "delivery_type": "*", "name": "same-origin-insecure", "expectation": "omitted", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}, {"delivery_value": "same-origin", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "name": "same-origin", "title": "Referrer Policy is set to 'same-origin'"}, {"test_expansion": [{"delivery_value": "origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-secure-default", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-origin-upgrade", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-origin-downgrade", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": ["same-http", "same-https"], "delivery_type": "*", "name": "same-origin-insecure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}, {"delivery_value": "origin-when-cross-origin", "origin": ["cross-http", "cross-https"], "delivery_type": "*", "name": "cross-origin", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'"}, {"test_expansion": [{"delivery_value": "strict-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "insecure-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "secure-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'"}, {"test_expansion": [{"delivery_value": "strict-origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-insecure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-http", "delivery_type": "*", "name": "same-insecure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "cross-http", "delivery_type": "*", "name": "cross-insecure", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": ["same-https", "cross-https"], "delivery_type": "*", "name": "upgrade-protocol", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "http", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": ["same-http", "cross-http"], "delivery_type": "*", "name": "downgrade-protocol", "expectation": "omitted", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-secure", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "same-https", "delivery_type": "*", "name": "same-secure", "expectation": "origin", "expansion": "override", "redirection": "swap-origin", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}, {"delivery_value": "strict-origin-when-cross-origin", "origin": "cross-https", "delivery_type": "*", "name": "cross-secure", "expectation": "origin", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "https", "subresource": "*"}], "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'"}, {"test_expansion": [{"delivery_value": "unsafe-url", "origin": "*", "delivery_type": "*", "name": "generic", "expectation": "stripped-referrer", "expansion": "default", "redirection": "*", "source_context_list": "*", "source_scheme": "*", "subresource": "*"}], "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'"}], "test_expansion_schema": {"delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"]}, "source_context_list_schema": {"srcdoc-inherit": {"subresourcePolicyDeliveries": [], "description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}]}, "worker-module": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}]}, "worker-module-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}]}, "worker-classic-data": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}]}, "top": {"subresourcePolicyDeliveries": [], "description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}]}, "req": {"subresourcePolicyDeliveries": ["nonNullPolicy"], "description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}]}, "worker-classic": {"subresourcePolicyDeliveries": [], "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}]}, "iframe": {"subresourcePolicyDeliveries": [], "description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}]}, "srcdoc": {"subresourcePolicyDeliveries": [], "description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}]}}, "delivery_key": "referrerPolicy", "source_context_schema": {"supported_delivery_type": {"iframe": ["meta", "http-rp"], "worker-module-data": [], "worker-classic-data": [], "top": ["meta", "http-rp"], "worker-classic": ["http-rp"], "iframe-blank": ["meta"], "worker-module": ["http-rp"], "srcdoc": ["meta"]}, "supported_subresource": {"iframe": "*", "worker-module-data": ["xhr", "fetch"], "worker-classic-data": ["xhr", "fetch"], "top": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "iframe-blank": "*", "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "srcdoc": "*"}}}; diff --git a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js index d279fcf40d8..811c0aeafce 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js +++ b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js @@ -32,7 +32,7 @@ function toMojoNDEFRecord(record) { } function toByteArray(data) { - // Convert JS objects to byte array. + // Converts JS objects to byte array. let byteArray = new Uint8Array(0); let tmpData = data; @@ -53,7 +53,7 @@ function toByteArray(data) { function compareNDEFRecords(providedRecord, receivedRecord) { assert_equals(providedRecord.recordType, receivedRecord.recordType); - // Compare media types without charset. + // Compares media types without charset. // Charset should be compared when watch method is implemented, in order // to check that written and read strings are equal. assert_equals(providedRecord.mediaType, @@ -176,6 +176,8 @@ var WebNFCTest = (() => { this.watchers_ = []; this.reading_messages_ = []; this.operations_suspended_ = false; + this.is_ndef_tech_ = true; + this.is_formatted_tag_ = false; } // NFC delegate functions. @@ -183,7 +185,7 @@ var WebNFCTest = (() => { let error = this.getHWError(); if (error) return error; - // Cancel previous pending push operation. + // Cancels previous pending push operation. if (this.pending_promise_func_) { this.cancelPendingPushOperation(); } @@ -193,16 +195,23 @@ var WebNFCTest = (() => { return new Promise(resolve => { this.pending_promise_func_ = resolve; - // Pend push operation if NFC operation is suspended. if (this.operations_suspended_) { - // Do nothing, pends push operation. + // Pends push operation if NFC operation is suspended. } else if (options.timeout && options.timeout !== Infinity && !this.push_completed_) { - // Resolve with TimeoutError, else pend push operation. + // Resolves with TimeoutError, else pend push operation. if (this.push_should_timeout_) { resolve( createNDEFError(device.mojom.NDEFErrorType.TIMER_EXPIRED)); } + } else if (!this.is_ndef_tech_) { + // Resolves with NotSupportedError if the device does not expose + // NDEF technology. + resolve(createNDEFError(device.mojom.NDEFErrorType.NOT_SUPPORTED)); + } else if (this.is_formatted_tag_ && !options.overwrite) { + // Resolves with NotAllowedError if there are NDEF records on the device + // and overwrite is false. + resolve(createNDEFError(device.mojom.NDEFErrorType.NOT_ALLOWED)); } else { resolve(createNDEFError(null)); } @@ -230,8 +239,9 @@ var WebNFCTest = (() => { } this.watchers_.push({id: id, options: options}); - // Ignore reading if NFC operation is suspended. - if(!this.operations_suspended_) { + // Ignores reading if NFC operation is suspended + // or the NFC tag does not expose NDEF technology. + if(!this.operations_suspended_ && this.is_ndef_tech_) { // Triggers onWatch if the new watcher matches existing messages. for (let message of this.reading_messages_) { if (matchesWatchOptions(message, options)) { @@ -301,6 +311,8 @@ var WebNFCTest = (() => { this.cancelPendingPushOperation(); this.bindingSet_.closeAllBindings(); this.interceptor_.stop(); + this.is_ndef_tech_ = true; + this.is_formatted_tag_ = false; } cancelPendingPushOperation() { @@ -319,9 +331,11 @@ var WebNFCTest = (() => { // Sets message that is used to deliver NFC reading updates. setReadingMessage(message) { this.reading_messages_.push(message); - // Ignore reading if NFC operation is suspended. + // Ignores reading if the NFC tag does not expose NDEF technology. + if(!this.is_ndef_tech_) return; + // Ignores reading if NFC operation is suspended. if(this.operations_suspended_) return; - // Ignore reading if NDEFPushOptions.ignoreRead is true. + // Ignores reading if NDEFPushOptions.ignoreRead is true. if(this.push_options_ && this.push_options_.ignoreRead) return; // Triggers onWatch if the new message matches existing watchers. @@ -350,7 +364,7 @@ var WebNFCTest = (() => { // Resumes pending NFC reading. for (let watcher of this.watchers_) { for (let message of this.reading_messages_) { - if (matchesWatchOptions(message, watcher.options)) { + if (matchesWatchOptions(message, watcher.options) && this.is_ndef_tech_) { this.client_.onWatch( [watcher.id], fake_tag_serial_number, toMojoNDEFMessage(message)); @@ -362,6 +376,14 @@ var WebNFCTest = (() => { this.pending_promise_func_(createNDEFError(null)); } } + + setIsNDEFTech(isNdef) { + this.is_ndef_tech_ = isNdef; + } + + setIsFormattedTag(isFormatted) { + this.is_formatted_tag_ = isFormatted; + } } let testInternal = { @@ -371,7 +393,7 @@ var WebNFCTest = (() => { class NFCTestChromium { constructor() { - Object.freeze(this); // Make it immutable. + Object.freeze(this); // Makes it immutable. } initialize() { diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js index 9f7426b7d36..a44185c1eaf 100644 --- a/tests/wpt/web-platform-tests/resources/testharness.js +++ b/tests/wpt/web-platform-tests/resources/testharness.js @@ -3704,7 +3704,13 @@ policies and contribution forms [3]. }, false); addEventListener("unhandledrejection", function(e) { - var message = "Unhandled rejection: " + e.reason.message; + var reason; + if (e.reason) { + reason = e.reason.message ? e.reason.message : e.reason; + } else { + reason = e; + } + var message = "Unhandled rejection: " + reason; // There's no stack for unhandled rejections. error_handler(message); }, false); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error.https.html index 901c158f601..ca2f884a9b3 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error.https.html @@ -7,34 +7,27 @@ diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-error-worker.js similarity index 100% rename from tests/wpt/web-platform-tests/service-workers/service-worker/fetch-error-worker.js rename to tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-error-worker.js diff --git a/tests/wpt/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html b/tests/wpt/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html index babe1760c70..9c61f663f88 100644 --- a/tests/wpt/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html +++ b/tests/wpt/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html @@ -228,5 +228,13 @@ test(() => { assert_equals(document.activeElement, slottedToFirstSlot); }, "focus() on host with delegatesFocus & tabindex=0, #slottedToFirstSlot, #slottedToSecondSlot, #belowSlots with tabindex=0"); +test(() => { + resetTabIndexAndFocus(); + setTabIndex([aboveSlots, belowSlots], 0); + belowSlots.focus(); + host.focus(); + assert_equals(shadowRoot.activeElement, belowSlots); +}, "focus() on host with delegatesFocus and already-focused non-first shadow descendant"); + diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/cleanup_win10.yml b/tests/wpt/web-platform-tests/tools/ci/azure/cleanup_win10.yml index 195cdee8edf..76852b58cd3 100644 --- a/tests/wpt/web-platform-tests/tools/ci/azure/cleanup_win10.yml +++ b/tests/wpt/web-platform-tests/tools/ci/azure/cleanup_win10.yml @@ -4,6 +4,7 @@ steps: - powershell: | function UninstallEdge($edgePath, $uninstallArgs) { + $exitCode = 0 try { cmd /c taskkill /f /im msedge* `> nul 2`> nul cmd /c taskkill /f /im setup.exe `> nul 2`> nul @@ -11,8 +12,11 @@ steps: $installerPath = Get-ChildItem -PATH $edgePath -Filter "setup.exe" -Recurse | Select -First 1 FullName if(-not($installerPath -eq $nul) -and (Test-Path $installerPath.FullName)) { Write-Host "Uninstall: $($installerPath.FullName) $uninstallArgs" - Start-Process "$($installerPath.FullName)" -ArgumentList $uninstallArgs -Wait - Remove-Item -Path $edgePath -Recurse -Force -ErrorAction SilentlyContinue + $setup = Start-Process "$($installerPath.FullName)" -ArgumentList $uninstallArgs -PassThru -Wait + $exitCode = $setup.ExitCode + if ($exitCode -ne $exitCodeSuccess) { + Write-Host "Uninstall failed with ExitCode=$exitCode" + } } else { Write-Host "Failed to find setup.exe under $edgePath" } @@ -20,24 +24,27 @@ steps: } catch [Exception] { Write-Host "Failed to uninstall Edge from $edgePath. ERROR= $($_.Exception.Message)" -ForegroundColor Red } + return $exitCode } function IsEdgeRunning() { return (Get-Process | Where-Object { $_.Name -eq "msedge" }).Length -gt 0 } + # Uninstall exit code success for Edge + $exitCodeSuccess = 19 # restore hosts file $hostFile = "$env:systemroot\System32\drivers\etc\hosts" Copy-Item -Path "$hostFile.back" -Destination $hostFile -Force # uninstall Edge - UninstallEdge "$env:localappdata\Microsoft\Edge\Application" "--uninstall --force-uninstall" - # uninstall Edge Canary channel - UninstallEdge "$env:localappdata\Microsoft\Edge SxS\Application" "--uninstall --msedge-sxs --system-level --force-uninstall" - # uninstall Edge Dev channel - UninstallEdge "$env:systemdrive\Program Files (x86)\Microsoft\Edge Dev\Application" "--uninstall --msedge-dev --system-level --force-uninstall" + $stableExitCode = UninstallEdge "$env:localappdata\Microsoft\Edge" "--uninstall --force-uninstall --verbose-logging" # uninstall Edge Beta channel - UninstallEdge "$env:systemdrive\Program Files (x86)\Microsoft\Edge Beta\Application" "--uninstall --msedge-beta --system-level --force-uninstall" + $betaExitCode = UninstallEdge "$env:systemdrive\Program Files (x86)\Microsoft\Edge Beta" "--uninstall --msedge-beta --force-uninstall --verbose-logging" + # uninstall Edge Dev channel + $devExitCode = UninstallEdge "$env:systemdrive\Program Files (x86)\Microsoft\Edge Dev" "--uninstall --msedge-dev --force-uninstall --verbose-logging" + # uninstall Edge Canary channel + $canaryExitCode = UninstallEdge "$env:localappdata\Microsoft\Edge SxS" "--uninstall --msedge-sxs --force-uninstall --verbose-logging" # Check if Edge is still running and try to close it. # If we fail to close it, then reboot the system @@ -50,7 +57,41 @@ steps: Restart-Computer -Force } } + if (($stableExitCode -ne $exitCodeSuccess) -and + ($betaExitCode -ne $exitCodeSuccess) -and + ($devExitCode -ne $exitCodeSuccess) -and + ($canaryExitCode -ne $exitCodeSuccess)) { + Copy-Item -Path "$env:temp\*edge*.log" -Destination $(Build.ArtifactStagingDirectory) -Force + Throw "Failed to uninstall Edge." + } else { + Write-Host "Successfully uninstalled all Edge channels" + } displayName: 'Restore hosts file and cleanup test machine' condition: always() errorActionPreference: silentlyContinue ignoreLASTEXITCODE: true + +- powershell: | + $channels = @('Edge', 'Edge Beta', 'Edge Dev', 'Edge SxS') + foreach ($channel in $channels) { + Write-Host "Deleting regkeys for $channel folder" + Remove-Item -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft $channel" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft $channel" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKLM:SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKLM:SOFTWARE\WOW6432Node\Microsoft\$channel" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKLM:SOFTWARE\Microsoft\EdgeUpdate" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKLM:SOFTWARE\Microsoft\$channel" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKCU:SOFTWARE\Microsoft\EdgeUpdate" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKCU:SOFTWARE\Microsoft\$channel" -Recurse -Force -ErrorAction SilentlyContinue + + Write-Host "Deleting all remaining Edge folders" + Remove-Item -Path "$env:localappdata\Microsoft\EdgeUpdate" -Recurse -Force -ErrorAction SilentlyContinue + $edgePath = "$env:localappdata\Microsoft\$channel" + Remove-Item -Path $edgePath -Recurse -Force -ErrorAction SilentlyContinue + $edgePath = "$env:systemdrive\Program Files (x86)\Microsoft\$channel" + Remove-Item -Path $edgePath -Recurse -Force -ErrorAction SilentlyContinue + } + displayName: 'Cleanup Edge registry' + condition: always() + errorActionPreference: silentlyContinue + ignoreLASTEXITCODE: true diff --git a/tests/wpt/web-platform-tests/tools/ci/website_build.sh b/tests/wpt/web-platform-tests/tools/ci/website_build.sh index d23829f0bcd..f6b26310aab 100755 --- a/tests/wpt/web-platform-tests/tools/ci/website_build.sh +++ b/tests/wpt/web-platform-tests/tools/ci/website_build.sh @@ -52,6 +52,10 @@ touch .nojekyll # Publish the website by pushing the built contents to the `gh-pages` branch git add . +echo This submission alters the compiled files as follows + +git diff --staged + if is_pull_request ; then echo Submission comes from a pull request. Exiting without publishing. diff --git a/tests/wpt/web-platform-tests/tools/manifest/vcs.py b/tests/wpt/web-platform-tests/tools/manifest/vcs.py index d87e804c359..d4f47f6bf0a 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/vcs.py +++ b/tests/wpt/web-platform-tests/tools/manifest/vcs.py @@ -278,12 +278,11 @@ def walk(root): Unlike os.walk the implementation is not recursive.""" - listdir = os.listdir get_stat = os.stat - listdir = os.listdir - join = os.path.join is_dir = stat.S_ISDIR is_link = stat.S_ISLNK + join = os.path.join + listdir = os.listdir relpath = os.path.relpath root = os.path.abspath(root) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt index 25cc5846ee7..f85779a40bd 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt @@ -1,2 +1 @@ -mozprocess == 0.26 -selenium == 3.9.0 +mozprocess==0.26 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py index 77fe2971940..14f456aa476 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -841,7 +841,7 @@ class MarionetteRefTestExecutor(RefTestExecutor): return self.convert_result(test, result) def screenshot(self, test, viewport_size, dpi): - # https://github.com/w3c/wptrunner/issues/166 + # https://github.com/web-platform-tests/wpt/issues/7135 assert viewport_size is None assert dpi is None diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py index 5246a26fcbf..913a5e6d542 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py @@ -383,7 +383,7 @@ class SeleniumRefTestExecutor(RefTestExecutor): return self.convert_result(test, result) def screenshot(self, test, viewport_size, dpi): - # https://github.com/w3c/wptrunner/issues/166 + # https://github.com/web-platform-tests/wpt/issues/7135 assert viewport_size is None assert dpi is None diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py index 12a750fa0a3..67a433d9a58 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py @@ -282,7 +282,7 @@ class ServoWebDriverRefTestExecutor(RefTestExecutor): return test.result_cls("INTERNAL-ERROR", message), [] def screenshot(self, test, viewport_size, dpi): - # https://github.com/w3c/wptrunner/issues/166 + # https://github.com/web-platform-tests/wpt/issues/7135 assert viewport_size is None assert dpi is None diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index 65b6723cb82..a2601978b57 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -454,7 +454,7 @@ class WebDriverRefTestExecutor(RefTestExecutor): return self.convert_result(test, result) def screenshot(self, test, viewport_size, dpi): - # https://github.com/w3c/wptrunner/issues/166 + # https://github.com/web-platform-tests/wpt/issues/7135 assert viewport_size is None assert dpi is None diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py index c2cb5c4d26b..56fbf081119 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py @@ -707,6 +707,7 @@ class TestRunnerManager(threading.Thread): if self.test_runner_proc is None: return + self.browser.stop(force=True) self.logger.debug("waiting for runner process to end") self.test_runner_proc.join(10) self.logger.debug("After join") diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py index 8b711272c7b..162ffae3fc9 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py @@ -83,7 +83,10 @@ class WebDriverServer(object): def stop(self, force=False): self.logger.debug("Stopping WebDriver") if self.is_alive: - return self._proc.kill() + kill_result = self._proc.kill() + if force and kill_result != 0: + return self._proc.kill(9) + return kill_result return not self.is_alive @property diff --git a/tests/wpt/web-platform-tests/url/resources/setters_tests.json b/tests/wpt/web-platform-tests/url/resources/setters_tests.json index 6b7d19b1016..d54335f1bad 100644 --- a/tests/wpt/web-platform-tests/url/resources/setters_tests.json +++ b/tests/wpt/web-platform-tests/url/resources/setters_tests.json @@ -686,6 +686,17 @@ "port": "2" } }, + { + "comment": "IPv6 literal address with port, crbug.com/1012416", + "href": "http://example.net", + "new_value": "[2001:db8::2]:4002", + "expected": { + "href": "http://[2001:db8::2]:4002/", + "host": "[2001:db8::2]:4002", + "hostname": "[2001:db8::2]", + "port": "4002" + } + }, { "comment": "Default port number is removed", "href": "http://example.net", diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Document/getAnimations.html b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html similarity index 61% rename from tests/wpt/web-platform-tests/web-animations/interfaces/Document/getAnimations.html rename to tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html index f6a6c3edd44..4730f186b34 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/Document/getAnimations.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html @@ -1,7 +1,7 @@ -Document.getAnimations - +DocumentOrShadowRoot.getAnimations + @@ -17,7 +17,8 @@ test(t => { assert_equals(document.getAnimations().length, 0, 'getAnimations returns an empty sequence for a document ' + 'with no animations'); -}, 'Test document.getAnimations for non-animated content'); +}, 'Document.getAnimations() returns an empty sequence for non-animated' + + ' content'); test(t => { const div = createDiv(t); @@ -30,7 +31,7 @@ test(t => { anim2.finish(); assert_equals(document.getAnimations().length, 0, 'getAnimation only returns running animations'); -}, 'Test document.getAnimations for script-generated animations') +}, 'Document.getAnimations() returns script-generated animations') test(t => { const div = createDiv(t); @@ -39,7 +40,8 @@ test(t => { assert_array_equals(document.getAnimations(), [ anim1, anim2 ], 'getAnimations() returns running animations'); -}, 'Test the order of document.getAnimations with script generated animations') +}, 'Document.getAnimations() returns script-generated animations in the order' + + ' they were created') test(t => { // This element exists but is not a descendent of any document, so isn't @@ -52,7 +54,7 @@ test(t => { document.body.appendChild(div); t.add_cleanup(() => { div.remove(); }); assert_equals(document.getAnimations().length, 1); -}, 'Test document.getAnimations for a disconnected node'); +}, 'Document.getAnimations() does not return a disconnected node'); test(t => { const effect = new KeyframeEffect(null, gKeyFrames, 100 * MS_PER_SEC); @@ -62,7 +64,7 @@ test(t => { assert_equals(document.getAnimations().length, 0, 'document.getAnimations() only returns animations targeting ' + 'elements in this document'); -}, 'Test document.getAnimations with null target'); +}, 'Document.getAnimations() does not return an animation with a null target'); promise_test(async t => { const iframe = document.createElement('iframe'); @@ -86,7 +88,66 @@ promise_test(async t => { assert_equals(document.getAnimations().length, 0); assert_equals(iframe.contentDocument.getAnimations().length, 1); anim.finish(); -}, 'Test document.getAnimations for elements inside same-origin iframes'); +}, 'Document.getAnimations() returns animations on elements inside same-origin' + + ' iframes'); + +test(t => { + const div = createDiv(t); + const shadow = div.attachShadow({ mode: 'open' }); + + // Create a tree with the following structure + // + // div + // | + // (ShadowRoot) + // / \ + // childA childB + // (*anim2) | + // grandChild + // (*anim1) + // + // This lets us test that: + // + // a) All children of the ShadowRoot are included + // b) Descendants of the children are included + // c) The result is sorted by composite order (since we fire anim1 before + // anim2 despite childA appearing first in tree order) + + const childA = createDiv(t); + shadow.append(childA); + + const childB = createDiv(t); + shadow.append(childB); + + const grandChild = createDiv(t); + childB.append(grandChild); + + const anim1 = grandChild.animate(gKeyFrames, 100 * MS_PER_SEC) + const anim2 = childA.animate(gKeyFrames, 100 * MS_PER_SEC) + + assert_array_equals( + div.shadowRoot.getAnimations(), + [ anim1, anim2 ], + 'getAnimations() called on ShadowRoot returns expected animations' + ); +}, 'ShadowRoot.getAnimations() return all animations in the shadow tree'); + +test(t => { + const div = createDiv(t); + const shadow = div.attachShadow({ mode: 'open' }); + + const child = createDiv(t); + shadow.append(child); + + child.animate(gKeyFrames, 100 * MS_PER_SEC) + + assert_array_equals( + document.getAnimations(), + [], + 'getAnimations() called on Document does not return animations from shadow' + + ' trees' + ); +}, 'Document.getAnimations() does NOT return animations in shadow trees'); promise_test(async t => { const div = createDiv(t); @@ -114,7 +175,7 @@ promise_test(async t => { // If getAnimations() flushed style, we should get a transitionrun event. await watcher.wait_for('transitionrun'); -}, 'Triggers a style change event'); +}, 'Document.getAnimations() triggers a style change event'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html index 0a361009948..3fe95cc9147 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html @@ -191,4 +191,34 @@ test(() => { }); }, "NDEFReader.scan should fail if signal is not an AbortSignal."); +nfc_test(async (t, mockNFC) => { + const reader = new NDEFReader(); + mockNFC.setIsNDEFTech(false); + mockNFC.setReadingMessage(createMessage([createTextRecord(test_text_data)])); + + await new Promise((resolve, reject) => { + reader.onreading = () => reject("reading event should not be fired."); + reader.scan(); + t.step_timeout(resolve, 100); + }); +}, "Test that NDEFReader.onreading should not be fired if the NFC tag does not \ +expose NDEF technology."); + +nfc_test(async (t, mockNFC) => { + const reader = new NDEFReader(); + const controller = new AbortController(); + mockNFC.setReadingMessage({ records: [] }); + const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); + + const promise = readerWatcher.wait_for("reading").then(event => { + assert_equals(event.serialNumber, fake_tag_serial_number); + assert_equals(event.message.records.length, 0); + controller.abort(); + }); + // NDEFReader#scan() asynchronously dispatches the reading event. + reader.scan({signal : controller.signal}); + await promise; +}, "Test that NDEFReader.onreading should be fired on an unformatted NFC tag \ +with empty records array for NDEFMessage."); + diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html index b909bee3171..0d5722bfa01 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html @@ -19,6 +19,10 @@ const invalid_type_messages = // https://w3c.github.io/web-nfc/#the-push-method - Step 8. createMessage([{}]), + // NDEFMessageSource: not NDEF-formatable. + // https://w3c.github.io/web-nfc/#the-push-method - Step 8. + createMessage([]), + // https://w3c.github.io/web-nfc/#dfn-map-text-to-ndef // NDEFRecord must have data. createMessage([createTextRecord()]), @@ -442,4 +446,35 @@ nfc_test(async (t, mockNFC) => { }, "Test that mediaType should be set to 'application/octet-stream' if \ NDEFRecordInit.record's recordType is external type and NDEFRecordInit.record's \ mediaType is undefined."); + +nfc_test(async (t, mockNFC) => { + const writer = new NDEFWriter(); + mockNFC.setIsNDEFTech(false); + await promise_rejects(t, 'NotSupportedError', writer.push(test_text_data)); +}, "NDEFWriter.push should fail when the NFC device does not expose \ +NDEF technology."); + +nfc_test(async (t, mockNFC) => { + const writer = new NDEFWriter(); + await writer.push(test_text_data, { overwrite: false }); + assertNDEFMessagesEqual(test_text_data, mockNFC.pushedMessage()); +}, "NDEFWriter.push should succeed to push data to an unformatted NFC device \ +when the NDEFPushOptions.overwrite is false."); + +nfc_test(async (t, mockNFC) => { + const writer = new NDEFWriter(); + await writer.push(test_buffer_data); + assertNDEFMessagesEqual(test_buffer_data, mockNFC.pushedMessage()); + await writer.push(test_text_data, { overwrite: true }); + assertNDEFMessagesEqual(test_text_data, mockNFC.pushedMessage()); +}, "NDEFWriter.push should succeed to overwrite the existing data \ +when the NDEFPushOptions.overwrite is true."); + +nfc_test(async (t, mockNFC) => { + const writer = new NDEFWriter(); + const p = writer.push(test_text_data, { overwrite: false }); + mockNFC.setIsFormattedTag(true); + await promise_rejects(t, 'NotAllowedError', p); +}, "NDEFWriter.push should fail when there are NDEF records on the NFC device \ +and NDEFPushOptions.overwrite is false."); diff --git a/tests/wpt/web-platform-tests/web-nfc/README.md b/tests/wpt/web-platform-tests/web-nfc/README.md index 87145b0e3ec..0787f1f6712 100644 --- a/tests/wpt/web-platform-tests/web-nfc/README.md +++ b/tests/wpt/web-platform-tests/web-nfc/README.md @@ -17,6 +17,8 @@ The `WebNFCTest` interface is defined as: setPushShouldTimeout(boolean result); // Sets flag to trigger the pending push to timeout. pushedMessage(); // Gets the pushed `NDEFMessageSource`. pushOptions(); // Gets the pushed `NDEFPushOptions`. + setIsNDEFTech(boolean isNDEF); // Sets if the NFC device exposes NDEF technology. + setIsFormattedTag(boolean isFormatted); // Sets if the NFC tag has formatted NDEF message. }; ```