diff options
150 files changed, 1798 insertions, 876 deletions
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 947e223fb28..3a3d15b8406 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,6 +14,9 @@ [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] @@ -34,3 +37,6 @@ [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 5f2f94c5c09..bd2e474e4c9 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -118425,6 +118425,18 @@ {} ] ], + "css/css-flexbox/flex-child-percent-basis-resize-1.html": [ + [ + "css/css-flexbox/flex-child-percent-basis-resize-1.html", + [ + [ + "/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-flexbox/flex-container-margin.html": [ [ "css/css-flexbox/flex-container-margin.html", @@ -125695,6 +125707,18 @@ {} ] ], + "css/css-grid/grid-child-percent-basis-resize-1.html": [ + [ + "css/css-grid/grid-child-percent-basis-resize-1.html", + [ + [ + "/css/css-grid/grid-child-percent-basis-resize-1-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-grid/grid-definition/fr-unit-with-percentage.html": [ [ "css/css-grid/grid-definition/fr-unit-with-percentage.html", @@ -132967,6 +132991,18 @@ {} ] ], + "css/css-multicol/multicol-clip-scrolled-content-001.html": [ + [ + "css/css-multicol/multicol-clip-scrolled-content-001.html", + [ + [ + "/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-multicol/multicol-collapsing-001.xht": [ [ "css/css-multicol/multicol-collapsing-001.xht", @@ -135451,6 +135487,30 @@ {} ] ], + "css/css-overflow/clip-001.html": [ + [ + "css/css-overflow/clip-001.html", + [ + [ + "/css/css-overflow/clip-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-overflow/dynamic-visible-to-clip-001.html": [ + [ + "css/css-overflow/dynamic-visible-to-clip-001.html", + [ + [ + "/css/css-overflow/clip-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-overflow/float-with-relpos-and-transform.html": [ [ "css/css-overflow/float-with-relpos-and-transform.html", @@ -244827,6 +244887,9 @@ "css/css-flexbox/dynamic-bsize-change-ref.html": [ [] ], + "css/css-flexbox/flex-child-percent-basis-resize-1-ref.html": [ + [] + ], "css/css-flexbox/flex-direction-row-vertical-ref.html": [ [] ], @@ -250878,15 +250941,15 @@ "css/css-grid/alignment/support/style-change.js": [ [] ], - "css/css-grid/alignment/support/width-keyword-classes.css": [ - [] - ], "css/css-grid/animation/grid-template-columns-001-ref.html": [ [] ], "css/css-grid/animation/grid-template-rows-001-ref.html": [ [] ], + "css/css-grid/grid-child-percent-basis-resize-1-ref.html": [ + [] + ], "css/css-grid/grid-definition/grid-template-columns-fit-content-001-ref.html": [ [] ], @@ -252228,6 +252291,9 @@ "css/css-multicol/reference/multicol-basic-ref.html": [ [] ], + "css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html": [ + [] + ], "css/css-multicol/support/1x1-green.png": [ [] ], @@ -252396,6 +252462,9 @@ "css/css-overflow/META.yml": [ [] ], + "css/css-overflow/clip-001-ref.html": [ + [] + ], "css/css-overflow/reference/input-scrollable-region-001-ref.html": [ [] ], @@ -261435,6 +261504,9 @@ "css/support/test-tr.png": [ [] ], + "css/support/width-keyword-classes.css": [ + [] + ], "css/tools/META.yml": [ [] ], @@ -271419,6 +271491,18 @@ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-failure.html.headers": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [ [] ], @@ -271512,7 +271596,7 @@ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-failure.https.html.headers": [ [] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers": [ [] ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers": [ @@ -318874,6 +318958,12 @@ {} ] ], + "css/css-grid/alignment/grid-align.html": [ + [ + "css/css-grid/alignment/grid-align.html", + {} + ] + ], "css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [ [ "css/css-grid/alignment/grid-alignment-implies-size-change-001.html", @@ -322756,6 +322846,12 @@ {} ] ], + "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [ + [ + "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html", + {} + ] + ], "css/css-regions/cssomview-apis-no-region-chain-001.html": [ [ "css/css-regions/cssomview-apis-no-region-chain-001.html", @@ -331330,15 +331426,15 @@ {} ] ], - "css/cssom-view/MediaQueryList-001.html": [ + "css/cssom-view/MediaQueryList-addListener-handleEvent.html": [ [ - "css/cssom-view/MediaQueryList-001.html", + "css/cssom-view/MediaQueryList-addListener-handleEvent.html", {} ] ], - "css/cssom-view/MediaQueryList-with-empty-string.html": [ + "css/cssom-view/MediaQueryList-addListener-removeListener.html": [ [ - "css/cssom-view/MediaQueryList-with-empty-string.html", + "css/cssom-view/MediaQueryList-addListener-removeListener.html", {} ] ], @@ -331636,23 +331732,9 @@ {} ] ], - "css/cssom-view/matchMedia.xht": [ - [ - "css/cssom-view/matchMedia.xht", - { - "timeout": "long" - } - ] - ], - "css/cssom-view/matchMediaAddListener-handleEvent.html": [ - [ - "css/cssom-view/matchMediaAddListener-handleEvent.html", - {} - ] - ], - "css/cssom-view/matchMediaAddListener.html": [ + "css/cssom-view/matchMedia.html": [ [ - "css/cssom-view/matchMediaAddListener.html", + "css/cssom-view/matchMedia.html", {} ] ], @@ -355497,9 +355579,9 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html", {} ] ], @@ -403892,6 +403974,12 @@ {} ] ], + "service-workers/service-worker/referer-toplevel-script-fetch.https.html": [ + [ + "service-workers/service-worker/referer-toplevel-script-fetch.https.html", + {} + ] + ], "service-workers/service-worker/referer.https.html": [ [ "service-workers/service-worker/referer.https.html", @@ -456696,7 +456784,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "7d9bce28879793aadbb9aebaf4f47f451655b5ce", + "82d5a899193681673c5b3843cccdc5f1a67a17ed", "support" ], ".codecov.yml": [ @@ -456732,7 +456820,7 @@ "support" ], ".pyup.yml": [ - "f31f24406307e014bdbe568f3aba8a23b0cb2a86", + "05bee451e2f8891f235313f867be88bbc3ff3a14", "support" ], ".taskcluster.yml": [ @@ -461432,7 +461520,7 @@ "testharness" ], "FileAPI/url/multi-global-origin-serialization.sub.html": [ - "bc30d9c258001a66adb4a7bc62f52d1ef6f23a31", + "0052b26fa62130fa953d27d2278aa350881f1059", "testharness" ], "FileAPI/url/resources/create-helper.html": [ @@ -468748,7 +468836,7 @@ "testharness" ], "compat/webkit-box-removing-triggering-anonymous-merge.html": [ - "8506425548b6ff97491e388dc1a1f3830aa790fc", + "30c243b301fbafc55a03aae0286ba4c2b1983da1", "testharness" ], "compat/webkit-box-vertically-centered.html": [ @@ -488524,7 +488612,7 @@ "testharness" ], "content-security-policy/script-src/scripthash-default-src.sub.html": [ - "6025a67179fe2e71c60e811e7740f84f16da5d2a", + "9e035af7e8b68941f61adfe4847a76ba71464ce4", "testharness" ], "content-security-policy/script-src/scripthash-ignore-unsafeinline.sub.html": [ @@ -488920,7 +489008,7 @@ "testharness" ], "content-security-policy/style-src/stylehash-default-src.sub.html": [ - "c7604b297230757a9511ce42849d7e6a5f478f68", + "236fbdd06011eb67dc1dfd5a84b06deab6e6ad82", "testharness" ], "content-security-policy/style-src/stylenonce-allowed.sub.html": [ @@ -562343,6 +562431,14 @@ "2a1ab9c00cda7b78026eb04e31894bda43392a5d", "reftest" ], + "css/css-flexbox/flex-child-percent-basis-resize-1-ref.html": [ + "2ee6b077d3c6a9375029209a6ce202478db437a4", + "support" + ], + "css/css-flexbox/flex-child-percent-basis-resize-1.html": [ + "7631e02a2261211aee6156d81cac9fdc4c2aea6d", + "reftest" + ], "css/css-flexbox/flex-container-margin.html": [ "4ea7441cb07dbc419d562092e00d08f9d4e13e2e", "reftest" @@ -573996,7 +574092,11 @@ "testharness" ], "css/css-grid/alignment/grid-align-justify-stretch.html": [ - "09c34f1c125da62e6716b0156ffa2e56010035a1", + "9feeed3e0ef2a17b68bce2b7d71cbdb14a06ee2d", + "testharness" + ], + "css/css-grid/alignment/grid-align.html": [ + "a195945d1f97f0f4befc7a8d86a6291a2e1bab34", "testharness" ], "css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [ @@ -575087,10 +575187,6 @@ "766d140d2b239bcc0c11e92481c5ff302d12db5c", "support" ], - "css/css-grid/alignment/support/width-keyword-classes.css": [ - "b5c84a5d5f4611ffe3570c60ab2f55cf093f8ca8", - "support" - ], "css/css-grid/animation/grid-template-columns-001-ref.html": [ "1d53815f37dd9e1809757074ef4a9aad557877e2", "support" @@ -575119,6 +575215,14 @@ "c9ea9332a1e49f300c0520b798653869ad82b5c6", "testharness" ], + "css/css-grid/grid-child-percent-basis-resize-1-ref.html": [ + "2ee6b077d3c6a9375029209a6ce202478db437a4", + "support" + ], + "css/css-grid/grid-child-percent-basis-resize-1.html": [ + "7fb5d8e117d9f0b7e23bf3921843e8ea29ef4522", + "reftest" + ], "css/css-grid/grid-definition/fr-unit-with-percentage.html": [ "82c97abdd5740d466f049d8b45b67e241f204899", "reftest" @@ -579959,6 +580063,10 @@ "6b97ad4811e7c6554d5dc84e1d8b45a2d3efbe1d", "reftest" ], + "css/css-multicol/multicol-clip-scrolled-content-001.html": [ + "868e91de345cc7d27cb0690f49aa8db53bd33e29", + "reftest" + ], "css/css-multicol/multicol-collapsing-001-ref.xht": [ "b5cd90c4704ed5cced1b741b42b71fabd850fe18", "support" @@ -581363,6 +581471,10 @@ "7d88977b059defbe00f1b7dbbb37b58f607cf28b", "support" ], + "css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html": [ + "d19ec1b93a14cc030c5b97de775438d8cebb94c9", + "support" + ], "css/css-multicol/support/1x1-green.png": [ "b98ca0ba0a03c580ac339e4a3653539cfa8edc71", "support" @@ -581699,6 +581811,18 @@ "b9ba7acd150e5022de5c5208cd7f5f7d4dde93c3", "support" ], + "css/css-overflow/clip-001-ref.html": [ + "9ccdbf93c615f6078b82add5362e6032e9efe583", + "support" + ], + "css/css-overflow/clip-001.html": [ + "84bf8cdae55431f00f01358c93712074029fa815", + "reftest" + ], + "css/css-overflow/dynamic-visible-to-clip-001.html": [ + "08114d73b8bf6364d2ad647236fe5388f9eef1b2", + "reftest" + ], "css/css-overflow/float-with-relpos-and-transform.html": [ "6024b7261750e0c5dc4a681dccee2ab72b83abca", "reftest" @@ -584115,6 +584239,10 @@ "94d0c42eca8cffbd5637a1039028925c19e1f851", "reftest" ], + "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [ + "4997ae4f564d382fafd03e742a4b706d7e98fc80", + "testharness" + ], "css/css-pseudo/placeholder-input-number-notref.html": [ "92ae71d83fcbea52e4120ed28af5438dd54d4509", "support" @@ -586664,7 +586792,7 @@ "testharness" ], "css/css-scoping/slotted-parsing.html": [ - "6888693bbf40932d62a19b535adba22adbd43b19", + "2c55a0ded0918b585443f255e81a2d3a2eaa3350", "testharness" ], "css/css-scoping/slotted-placeholder-ref.html": [ @@ -587572,19 +587700,19 @@ "reftest" ], "css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html": [ - "3c01c08a64cc0786ae89d1c69768e546bd1343b3", + "25c465dd3a61fe68723635c1e459be20ff1f1a18", "testharness" ], "css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html": [ - "ff13d25204ae12d63c61ade8fce27b570b64053c", + "3a30e678649f4293b5993358066614314a33e271", "testharness" ], "css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html": [ - "043aa82f4676a3b39d6f441e3f15704be617c003", + "2e52163bf2124f1715c77c51919f73620142316e", "testharness" ], "css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html": [ - "15eb1b8ce5929148fe759a005e73398d3c41ad4d", + "5224b23caef910a7aadbf18afba256cd925f4fbb", "testharness" ], "css/css-shapes/shape-outside/shape-image/reference/shape-image-000-ref.html": [ @@ -588104,7 +588232,7 @@ "support" ], "css/css-shapes/shape-outside/supported-shapes/support/test-utils.js": [ - "616374d4937b2af0490fde1af42e3870ff3b5264", + "906fe6560884c05a65879d9b4dc847e359e56bf4", "support" ], "css/css-shapes/shape-outside/values/shape-image-threshold-000.html": [ @@ -588412,43 +588540,43 @@ "reftest" ], "css/css-shapes/spec-examples/shape-outside-010.html": [ - "83897e9fe6bef26bf617efc7fddd1e3e4f0aad61", + "4f6a4f732d05b06812d2e0e877863a1a43343f6f", "testharness" ], "css/css-shapes/spec-examples/shape-outside-011.html": [ - "93bfbea9ff84cc39bd40bc9c641d1f5f1e0eb428", + "5f63c12cd9688effe9520f075efba3c1ac62c6be", "testharness" ], "css/css-shapes/spec-examples/shape-outside-012.html": [ - "71ef19ef1a6191c3fab59b5bfc7f299f282a5ddb", + "129412f1f5872e71a2cd3c5b9515d4ae230bdc7b", "testharness" ], "css/css-shapes/spec-examples/shape-outside-013.html": [ - "1b7746113b95af219561d88a651a832014b138e6", + "329f033a4a917fd58c8c8ea905096bc14eadfe4b", "testharness" ], "css/css-shapes/spec-examples/shape-outside-014.html": [ - "3e97ae4c3aee9618baa525511d89d3a330b05978", + "682ac0986e453247299789f28143c4ede21f0b14", "testharness" ], "css/css-shapes/spec-examples/shape-outside-015.html": [ - "d75d598bf371e9a5ecce86344075abd5448e17d7", + "23b6b4e3481b41f670387a7610c57419506aa04c", "testharness" ], "css/css-shapes/spec-examples/shape-outside-016.html": [ - "212b21817a923b716066bb585783448e8df8c1ea", + "a7c4d591bc4cc0f3c3cbf62c6051584500cbe8e5", "testharness" ], "css/css-shapes/spec-examples/shape-outside-017.html": [ - "b16362153e512f9cccdeb5059f9bf9fa71c98c43", + "2e9c193044baf93276750384520b18ad47e37fc7", "testharness" ], "css/css-shapes/spec-examples/shape-outside-018.html": [ - "058e5793e5c2e6110f51299b1041da94cb3cdc79", + "6c285e07f9ccd0356143a6b2fb48baad3347bfe5", "testharness" ], "css/css-shapes/spec-examples/shape-outside-019.html": [ - "4f59ff331fe0bf0f9759d9fca3f71a79bdc98971", + "22828e3984ff0cf7396fa8512e0779790d8a5b66", "testharness" ], "css/css-shapes/spec-examples/support/circle-no-shadow.png": [ @@ -588464,7 +588592,7 @@ "support" ], "css/css-shapes/spec-examples/support/spec-example-utils.js": [ - "c5b0411ca2706444814090f6a7bcfa43d55f5d8a", + "6939b753aad8bc17aebe58673a6e2001f59c07a2", "support" ], "css/css-shapes/support/1x1-green.png": [ @@ -605556,7 +605684,7 @@ "testharness" ], "css/css-ui/outline-018.html": [ - "ff79144da2aa50e09504f8f37bb5d230def1fca8", + "c2db6f99719369484f07cee39871841cb498031d", "testharness" ], "css/css-ui/outline-019.html": [ @@ -615371,16 +615499,16 @@ "a6644945910fc83ca079c93507b21117b91de9c3", "support" ], - "css/cssom-view/MediaQueryList-001.html": [ - "06c81d5de4c67efaba23f18abcbf8532257a54eb", + "css/cssom-view/MediaQueryList-addListener-handleEvent.html": [ + "5bdd9dfc9ced8459b459970cf187456c3f82fbe4", "testharness" ], - "css/cssom-view/MediaQueryList-with-empty-string.html": [ - "3d5a5316566411c49895e845d8dd0df8e7553a1e", + "css/cssom-view/MediaQueryList-addListener-removeListener.html": [ + "5446e48e6cfcf20d5005ecfa4f75523f61ab83e2", "testharness" ], "css/cssom-view/MediaQueryListEvent.html": [ - "6631039d248b757b3b423929a8fa4a290ec22287", + "24cce3cc0973cf7478c92ce05137926ea0b78f77", "testharness" ], "css/cssom-view/Screen-pixelDepth-Screen-colorDepth001.html": [ @@ -615599,16 +615727,8 @@ "08fcb3c5386228b167cc76e9cd02a34903c86912", "testharness" ], - "css/cssom-view/matchMedia.xht": [ - "202a3b738dd0d7c83ed9b4cdff8c7212ae09f61e", - "testharness" - ], - "css/cssom-view/matchMediaAddListener-handleEvent.html": [ - "8bc665693d8f722fcd8a1f6fde9d6c36e4ecfd23", - "testharness" - ], - "css/cssom-view/matchMediaAddListener.html": [ - "7236be7febc985a9432e3127b78acf352bb91fa1", + "css/cssom-view/matchMedia.html": [ + "14df3d02425ddf32caa904cfcfe3d8e2fae0c803", "testharness" ], "css/cssom-view/mouseEvent.html": [ @@ -615688,7 +615808,7 @@ "support" ], "css/cssom-view/resources/matchMedia.js": [ - "93f4a31505098033dfe55d8075d7315c590703bb", + "8013699b7dee114da3313ccfba61d57e7e860e5b", "support" ], "css/cssom-view/screenLeftTop.html": [ @@ -620584,7 +620704,7 @@ "support" ], "css/support/parsing-testcommon.js": [ - "7ecd588aaf5160f121b9eb240f58d2739135c829", + "647bc125df9a877f8299de43ff1c83f7d7dea167", "support" ], "css/support/pattern-grg-rgr-grg.png": [ @@ -620711,6 +620831,10 @@ "59843ae54b64f6ce4f7e616d4be491c911ea84cf", "support" ], + "css/support/width-keyword-classes.css": [ + "b5c84a5d5f4611ffe3570c60ab2f55cf093f8ca8", + "support" + ], "css/tools/META.yml": [ "be9be0869d95270a59e2f76a5bdc80ecbd621b83", "support" @@ -630656,7 +630780,7 @@ "support" ], "docs/requirements.txt": [ - "dceaed13bc3f2a724f2ff204ea0824df80977193", + "a9ddeecfe573825febb48afcd16ce4bc02b696ff", "support" ], "docs/reviewing-tests/checklist.md": [ @@ -630680,7 +630804,7 @@ "support" ], "docs/running-tests/android_webview.md": [ - "39b1f3b14abd8fe2183d3fb39a66c8b89ecf815a", + "4a86814fdf71b69e7b6b89d684a208131852cdbe", "support" ], "docs/running-tests/chrome.md": [ @@ -630816,11 +630940,11 @@ "support" ], "docs/writing-tests/testharness-api.md": [ - "eda3ca60cb04c4a1a25aefafe17621e37d4b8fcd", + "5883308cc66957b1b7215825fd0ea6c7aa1ca74a", "support" ], "docs/writing-tests/testharness.md": [ - "d2ec64c834fec80f50e5b3d2cd06e05de790d9a5", + "7d38742a7402beeaa011da3bbc0231692c550268", "support" ], "docs/writing-tests/tools.md": [ @@ -631792,7 +631916,7 @@ "support" ], "dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html": [ - "cc118d42cf4be082bc165d94d7e85cd4dbd2c6ad", + "c41ee2e87713bdd4e8da84f7c4a96f208ff2a0f3", "testharness" ], "dom/nodes/Element-getElementsByTagName.html": [ @@ -638096,11 +638220,11 @@ "testharness" ], "fetch/metadata/iframe.tentative.https.sub.html": [ - "b8f11c66b7edeedeab85b947e0a0138e5dd0f333", + "60ccbba721ba3d11f78c9cf84d7e22fe02724d3f", "testharness" ], "fetch/metadata/iframe.tentative.sub.html": [ - "c5469f458d37bed0ce43ddbf1011085879e9f743", + "be57362e9f0505b36d1faf58cb91af1b237a94e4", "testharness" ], "fetch/metadata/img.tentative.https.sub.html": [ @@ -638116,7 +638240,7 @@ "testharness" ], "fetch/metadata/portal.tentative.https.sub.html": [ - "ee24b5ecbb90c7f0d2892d4f5abeb3c5d1d6acf3", + "f9e370c67fbcbea20fc4fac2957fd50608fca13c", "testharness" ], "fetch/metadata/prefetch.tentative.https.sub.html": [ @@ -648407,6 +648531,22 @@ "4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html": [ + "1666a984588c13610bc23566b67c63851af9f580", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers": [ + "4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html": [ + "c6896762bc48e04fcd60b6849f081caef5661101", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers": [ + "4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [ "a6dd70177584c9115c24beb281e7681110c07624", "support" @@ -648551,11 +648691,11 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [ - "98145310f610f0ca88af938872e9ea2103de600c", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html": [ + "16a054a52e1ef9ecb42fa5d2e7ceff4a1496f3ab", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers": [ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], @@ -657148,15 +657288,15 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js": [ - "0e70da4d3dead587531f97bf1115aea67e623996", + "8a529e10b136ccdf8c133165a52e1ce4c3d9b007", "support" ], "html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js": [ - "3f03f889398b951e451e012b0a9b1c6c42d863be", + "578f7f195190e84b1b02ef679fb79f201b82070a", "support" ], "html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js": [ - "6e16cbd28c4d2ae2f0b3145c34af65059d207273", + "fb88bdda2afbafa3b4074ed6140db73a7bb77268", "support" ], "html/semantics/scripting-1/the-script-element/resources/cocoa-module.js": [ @@ -661460,7 +661600,7 @@ "support" ], "interfaces/media-capabilities.idl": [ - "e067fdc746dd85161fb8e0e7e8f254a3d3d0f5f9", + "71bc46d24109f49d616e05e804bcda01dcd45afb", "support" ], "interfaces/media-playback-quality.idl": [ @@ -661828,7 +661968,7 @@ "testharness" ], "intersection-observer/isIntersecting-change-events.html": [ - "3dcc77886204c59debc89a2ea8aa1dd327d7fd22", + "99bc65bd60afee82f2ddd6b5380437d94811e30d", "testharness" ], "intersection-observer/isIntersecting-threshold.html": [ @@ -664808,7 +664948,7 @@ "support" ], "mediacapture-streams/MediaDevices-SecureContext.html": [ - "e6e8587cdd11f6da78c3a1605dc13ddd5e80f803", + "bada62817691373d16cf0ab18d2d61bec2dc12f0", "testharness" ], "mediacapture-streams/MediaDevices-enumerateDevices-not-allowed-camera.https.html": [ @@ -667844,11 +667984,11 @@ "testharness" ], "navigation-timing/nav2_test_document_open.html": [ - "bc06ed5840a7555d1e2a62580cf5a988ca58a718", + "aa1097248dd133e5e61b17c6f92f1437579b588c", "testharness" ], "navigation-timing/nav2_test_document_replaced.html": [ - "b910f453d12951d01cb584899766b64fe08e836c", + "5972f20e9bd7ffdf27d32b5b30b63913ceeeed09", "testharness" ], "navigation-timing/nav2_test_frame_removed.html": [ @@ -667868,11 +668008,11 @@ "testharness" ], "navigation-timing/nav2_test_navigate_within_document.html": [ - "f39ca0576955999eca8a08331e55cc2925816f36", + "75e6e113b6dba3687df1c8fdbf9c983a9fae8a69", "testharness" ], "navigation-timing/nav2_test_navigation_type_backforward.html": [ - "c4b575810691103db69c610b9ec69425110d7635", + "d0045415b89c45ed9a1a889e8be0abc8123092d5", "testharness" ], "navigation-timing/nav2_test_navigation_type_navigate.html": [ @@ -667880,11 +668020,11 @@ "testharness" ], "navigation-timing/nav2_test_navigation_type_reload.html": [ - "74b85c9dbb5e03266c0ba0145ad45d67a025fd0c", + "0f03f07c57c9c1ac3c868741a23d9f2e6ebb2b2b", "testharness" ], "navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html": [ - "c0dd249545a640ec0cdd759b2114ab725a609039", + "db499c3ed340b946c586ab873320366426928e21", "testharness" ], "navigation-timing/nav2_test_redirect_none.html": [ @@ -667892,11 +668032,11 @@ "testharness" ], "navigation-timing/nav2_test_redirect_server.html": [ - "1d7f6c928ce63c94edc1491d2883c87331e38722", + "9ec2992bef58ec6e0304fb1528814059041f3148", "testharness" ], "navigation-timing/nav2_test_redirect_xserver.html": [ - "06c9b7f3b678a22751a1e8e1a57028216ab21879", + "d8acc8054d87a972d00596d979485847cf6cf4e5", "testharness" ], "navigation-timing/nav2_test_unique_nav_instances.html": [ @@ -676568,7 +676708,7 @@ "testharness" ], "preload/download-resources.html": [ - "557c9656b1813c52e373ee70e565a44e966389bf", + "4da76980357037951b857cb357e024cff7ff44bf", "testharness" ], "preload/dynamic-adding-preload-imagesrcset.html": [ @@ -676588,7 +676728,7 @@ "testharness" ], "preload/link-header-on-subresource.html": [ - "7047115a1caf4989ea5e80e80db35bc2dcdf2a6b", + "418e8a63a7989794e6774ddca7e987bb594c7396", "testharness" ], "preload/link-header-preload-delay-onload.html": [ @@ -676600,7 +676740,7 @@ "support" ], "preload/link-header-preload-imagesrcset.html": [ - "3ae53fed66041957303991f082276b5c80788f83", + "65c8c061ada5ba94b1b6fc6a9b130a5629d72076", "testharness" ], "preload/link-header-preload-imagesrcset.html.headers": [ @@ -676608,7 +676748,7 @@ "support" ], "preload/link-header-preload-nonce.html": [ - "bfac5639cdcfe68716af765eb763bdbe4e94cae5", + "74ea87042b4546beff6b5180aa38685ac01bd084", "testharness" ], "preload/link-header-preload-nonce.html.headers": [ @@ -676616,7 +676756,7 @@ "support" ], "preload/link-header-preload.html": [ - "4dfdfc8873947a95a42d97065a3229e5d20d04e5", + "b5932a1b0aa174f1fe8e28402595e681f39732be", "testharness" ], "preload/link-header-preload.html.headers": [ @@ -676628,11 +676768,11 @@ "testharness" ], "preload/onerror-event.html": [ - "2038e06e941cf7b146fcb744c6c5a2ded3072abc", + "94c8dc772deefc46be48a4545d6c45f8fd17a933", "testharness" ], "preload/onload-event.html": [ - "9111cd8fc8271c97b6165e684a02fe44a5b47eb8", + "8825ffaaa52025484be848b1a6f73d91da210a47", "testharness" ], "preload/preload-csp.sub.html": [ @@ -676648,7 +676788,7 @@ "testharness" ], "preload/preload-with-type.html": [ - "980592274bf3579bebe14804b81f945d7fcee70c", + "eb5675f993b1e98014fd38d8674858f7c66ed7e6", "testharness" ], "preload/preload-xhr.html": [ @@ -676760,7 +676900,7 @@ "support" ], "preload/single-download-late-used-preload.html": [ - "51533ba71445cc5b9edb235aaf28215671a1ca62", + "bf02fdb63625bdf48785a13f795018f2472d2ac5", "testharness" ], "preload/single-download-preload.html": [ @@ -691176,11 +691316,11 @@ "testharness" ], "server-timing/navigation_timing_idl.https.html": [ - "d911d64e47ced02caadfca54b620218ace024f87", + "154bc6b0442bf159e7a8b0a682bee5b21372e450", "testharness" ], "server-timing/resource_timing_idl.https.html": [ - "b1d8699cc6057407f79dbe83b56a8477a38d7c96", + "a719a89097231cb7defe3a910ae0349a11f335c5", "testharness" ], "server-timing/resources/blue.png": [ @@ -692891,6 +693031,10 @@ "176fcb494b664bae43feba0c793e52845df35257", "testharness" ], + "service-workers/service-worker/referer-toplevel-script-fetch.https.html": [ + "f0dd843eef8f8549430b78ce2606d83a59e2fb42", + "testharness" + ], "service-workers/service-worker/referer.https.html": [ "0957e4c5330168b08236ff7c431706a1d92cc1a4", "testharness" @@ -701136,7 +701280,7 @@ "support" ], "tools/ci/azure/pip_install.yml": [ - "f892deb9072e0fdec20540bdb7342a76e83e3391", + "c8795345f6bcf4a943e07a459947e718ad6a0afc", "support" ], "tools/ci/azure/system_info.yml": [ @@ -701172,7 +701316,7 @@ "support" ], "tools/ci/ci_wptrunner_infrastructure.sh": [ - "e5b485dbff8040d797af4d9ce6b0681c6b3d9574", + "8db08794ade26bef899f05c4890c2b88e68df292", "support" ], "tools/ci/commands.json": [ @@ -701184,7 +701328,7 @@ "support" ], "tools/ci/jobs.py": [ - "b7ada2a5b621236d97d4e87a8d7e0960327bc01d", + "3d809efa37ccff2c258343b64791762fc507a90f", "support" ], "tools/ci/make_hosts_file.py": [ @@ -701200,7 +701344,7 @@ "support" ], "tools/ci/taskcluster-run.py": [ - "ad33cb532d2e82cc28a42d75e856709dc53fa22a", + "8a60012d09b4d5be9845cf4ab74e5f87bf4b58ce", "support" ], "tools/ci/tcdownload.py": [ @@ -701924,7 +702068,7 @@ "support" ], "tools/requirements_mypy.txt": [ - "50c3d0d92b2213c1960098900f488f09b197905d", + "cd4ae2b276937a9abc45db59d950d88ddb6dc626", "support" ], "tools/runner/css/bootstrap-theme.min.css": [ @@ -706100,11 +706244,11 @@ "support" ], "tools/wptrunner/docs/usage.rst": [ - "5fed5fcdba4dd264e40ef0f18afd6d9596c62cf2", + "85fd97bf6c12a1fc3a2dbbd24ec2c32659db9114", "support" ], "tools/wptrunner/requirements.txt": [ - "dbed37ccdcdd132993ccda93c235125920096984", + "d8a6c898d24f40c2bcffae42c32e63a9e5b10005", "support" ], "tools/wptrunner/requirements_android_webview.txt": [ @@ -706136,7 +706280,7 @@ "support" ], "tools/wptrunner/requirements_firefox.txt": [ - "2021f550f488860500a053463970350525c15c0c", + "85efd35486d8d9a3724c9cf37aa231dfcdac72ec", "support" ], "tools/wptrunner/requirements_ie.txt": [ @@ -706328,7 +706472,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/firefox.py": [ - "6cf784fd01049a24ad6c8253179ad61d62073774", + "5e3e41eb55fc82567ba9543c283e34635bd8b112", "support" ], "tools/wptrunner/wptrunner/browsers/firefox_android.py": [ @@ -706512,15 +706656,15 @@ "support" ], "tools/wptrunner/wptrunner/manifestexpected.py": [ - "6a3e02b91e406aa2d0cf2560052c66515407d563", + "eae85b1f6661a67dff59ef78a9ed627e3e3603d8", "support" ], "tools/wptrunner/wptrunner/manifestinclude.py": [ - "46618c98cf456fd718d0b81f25768d83c5a9e88f", + "d302831a57abbaadd75fe49e094482dc14223ea3", "support" ], "tools/wptrunner/wptrunner/manifestupdate.py": [ - "83a4834d7859e529cf88dd886e27b01886bc2259", + "af9af18d90715d43bbcd2ae47ce76275bb0e1577", "support" ], "tools/wptrunner/wptrunner/metadata.py": [ @@ -706652,7 +706796,7 @@ "support" ], "tools/wptrunner/wptrunner/wptcommandline.py": [ - "3fc0f6d6b537938f76b99c7122229a6a3deb2713", + "923bdaa55857e793e8d6e8c587167360aed4ae94", "support" ], "tools/wptrunner/wptrunner/wptlogging.py": [ @@ -706716,7 +706860,7 @@ "support" ], "tools/wptrunner/wptrunner/wptrunner.py": [ - "88b51d0fd6a970316ae382f9efa3d8b9c463ace9", + "7dfd86e99c905ec4271707a953db90dedac850cf", "support" ], "tools/wptrunner/wptrunner/wpttest.py": [ @@ -707556,7 +707700,7 @@ "support" ], "update-built-tests.sh": [ - "1a33154898d7adfdff6194d4632b28548cc4c9f8", + "a45058c18f89aa25a577aad817b45f6a1bcbfa6e", "support" ], "upgrade-insecure-requests/META.yml": [ @@ -713268,15 +713412,15 @@ "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html": [ - "20ee27fbc2f6fed7604e44a1957794c0b51476b1", + "3b9e57314d6500ca8c33455d6fe3f949a59216ce", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html": [ - "70f73e29b1f6ce42d7d387e790d342acaf778ad8", + "43d56b8990e1c5101283f58f650bbc0efc801666", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html": [ - "04fe48096459dd0bbf4b3b0fd206c90c0bcae0f0", + "904b14bede544ac63a08dc422df63fb59d53c048", "testharness" ], "webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html": [ @@ -715872,11 +716016,11 @@ "testharness" ], "webmessaging/with-ports/020.html": [ - "4fc2c4e2dd9a81057f1978f4bafc00bd5e8baa44", + "426a3d270008c82b1006adcc3783cbd914d19b34", "testharness" ], "webmessaging/with-ports/021.html": [ - "37a0767fee0f0266e1b933b049242aaf698455c3", + "2801d45a44aeda6cdc7103c9cd360d3d38260bf3", "testharness" ], "webmessaging/with-ports/023.html": [ @@ -715984,11 +716128,11 @@ "support" ], "webmessaging/without-ports/020.html": [ - "e35a1128a0d73100d9d652e5b8c35484dc567f47", + "61bfddb901fa27c9a8432517d799be46136a91db", "testharness" ], "webmessaging/without-ports/021.html": [ - "b240fa0cad53d828b1a3a8c86cf316372b608437", + "5072508d9c618921f03a36f840354cdcb3351068", "testharness" ], "webmessaging/without-ports/023.html": [ @@ -721932,7 +722076,7 @@ "support" ], "workers/constructors/SharedWorker/URLMismatchError.htm": [ - "258eed05bf8ccbb21ba9f76ce91c998cec0f6b20", + "e1a11f4f8fe701365c89f9799794616975c39764", "testharness" ], "workers/constructors/SharedWorker/connect-event.html": [ @@ -722280,7 +722424,7 @@ "support" ], "workers/interfaces/WorkerGlobalScope/close/incoming-message.html": [ - "eb8e69c2b05639ded04f9dc5ded0ffee54f2031d", + "0905d07661dab9f0b68d1ff1a341e7b31b4b08db", "testharness" ], "workers/interfaces/WorkerGlobalScope/close/incoming-message.js": [ @@ -722296,7 +722440,7 @@ "support" ], "workers/interfaces/WorkerGlobalScope/close/setInterval.html": [ - "690f067cffcb88447bb360bef62b44a27f2de5cd", + "2f0ba176d49420a6b43ea71c0d2c6537408e02c5", "testharness" ], "workers/interfaces/WorkerGlobalScope/close/setInterval.js": [ @@ -722304,7 +722448,7 @@ "support" ], "workers/interfaces/WorkerGlobalScope/close/setTimeout.html": [ - "777a03c013de04b981991300f608c7f140047074", + "2bddc0947f638d784c753e30bcb07ba88e62c503", "testharness" ], "workers/interfaces/WorkerGlobalScope/close/setTimeout.js": [ @@ -722984,7 +723128,7 @@ "support" ], "workers/semantics/multiple-workers/004.html": [ - "82cf46aec4cc2b4f5ca365f3d560bac0654969f5", + "552cc8a63340f810fe2c445bd8fd7be1031726b2", "testharness" ], "workers/semantics/multiple-workers/005.html": [ @@ -723024,7 +723168,7 @@ "support" ], "workers/semantics/navigation/001.html": [ - "95cd9aff47d2a2b2e63abd0892c51fc01128acaa", + "f31c2590e58e65e5440dd6254a3af11b742a87dd", "testharness" ], "workers/semantics/navigation/002.html": [ @@ -723156,7 +723300,7 @@ "testharness" ], "workers/shared-worker-name-via-options.html": [ - "cf7fd46649283e82ffca99dfe31ae3c6f36b3aeb", + "1914d66db7489f6306c4365a4d7b7b9fb59fe00e", "testharness" ], "workers/support/ErrorEvent-error.js": [ diff --git a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini index 94a3570d26b..9f60026f6d9 100644 --- a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -5,9 +5,9 @@ [[data-expected-height\] 7] expected: FAIL - [[data-expected-height\] 3] + [[data-expected-height\] 1] expected: FAIL - [[data-expected-height\] 4] + [[data-expected-height\] 2] 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 03f2f3fe9d1..c511d92d674 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,5 +1,4 @@ [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 new file mode 100644 index 00000000000..0269091c011 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -0,0 +1,17 @@ +[MediaQueryList-addListener-handleEvent.html] + expected: TIMEOUT + [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 + + [doesn't look up handleEvent method on callable event listeners] + expected: FAIL + + [throws if handleEvent is thruthy and not callable] + expected: NOTRUN + 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 new file mode 100644 index 00000000000..c884dc82eab --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -0,0 +1,7 @@ +[MediaQueryList-addListener-removeListener.html] + [listeners are called when <iframe> is resized] + expected: FAIL + + [listeners are called correct number of times] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini new file mode 100644 index 00000000000..9407c57bb3b --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini @@ -0,0 +1,4 @@ +[matchMedia.html] + [iframe.matchMedia("(min-aspect-ratio: 1/1)") matches] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini b/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini deleted file mode 100644 index b245ee1cb1f..00000000000 --- a/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini +++ /dev/null @@ -1,18 +0,0 @@ -[matchMedia.xht] - bug: https://github.com/servo/servo/issues/20818 - expected: TIMEOUT - [window.matchMedia exists] - expected: FAIL - - [MediaQueryList.matches for "(min-aspect-ratio: 1/1)"] - expected: FAIL - - [Resize iframe from 200x100 to 200x50, then to 100x50] - expected: NOTRUN - - [Listeners are called in the order which they have been added] - expected: NOTRUN - - [Listener added twice is only called once.] - expected: NOTRUN - diff --git a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini deleted file mode 100644 index 176c9ea4568..00000000000 --- a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini +++ /dev/null @@ -1,10 +0,0 @@ -[matchMediaAddListener-handleEvent.html] - [throws if handleEvent is falsy and not callable] - expected: FAIL - - [rethrows errors when getting handleEvent] - expected: FAIL - - [throws if handleEvent is thruthy and not callable] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini b/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini deleted file mode 100644 index 88382ca83e6..00000000000 --- a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[matchMediaAddListener.html] - type: testharness - [CSS Test: CSSOM View matchMedia addListener] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini deleted file mode 100644 index c3916f8555d..00000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_txt.html] - expected: CRASH diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index e2f972c78f2..c2d790b5256 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,24 +312,27 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*] - expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL [<iframe>: separate response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: */* text/html] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index d2df9b78483..279734168dc 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,3 +56,6 @@ [separate text/javascript x/x] expected: FAIL + [separate text/javascript;charset=windows-1252 text/javascript] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini index 6bd06899fdd..a3a600c5846 100644 --- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini +++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini @@ -1,6 +1,5 @@ [embedded-credentials.tentative.sub.html] type: testharness - expected: TIMEOUT [Embedded credentials are treated as network errors.] expected: FAIL @@ -11,11 +10,5 @@ expected: FAIL [Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.] - expected: TIMEOUT - - [Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.] - expected: TIMEOUT - - [Embedded credentials matching the top-level are not treated as network errors for relative URLs.] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini new file mode 100644 index 00000000000..e495b626d2e --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini @@ -0,0 +1,4 @@ +[navigation-unload-same-origin-fragment.html] + [Tests that a fragment navigation in the unload handler will not block the initial navigation] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini deleted file mode 100644 index 75d75b4cda2..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_2.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini deleted file mode 100644 index 1c16e180b86..00000000000 --- a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[window-iframe-messagechannel-success.https.html] - [postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications] - expected: FAIL - diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini new file mode 100644 index 00000000000..1d4d31c40b5 --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini @@ -0,0 +1,13 @@ +[window-iframe-messagechannel.https.html] + [postMessaging to a same-site iframe via MessageChannel allows them to see each others' modifications] + expected: FAIL + + [postMessaging with a MessageChannel that's been cross-site should succeed] + expected: FAIL + + [postMessaging to a cross-site iframe via MessageChannel should fail] + expected: FAIL + + [postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 5f60c78e73c..f6a7aca3306 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_escaping-3.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index d43f38b40cd..3a32693ffa8 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_nonescaping-2.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index e440b1e38c6..dc856a3d5a3 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_nonescaping-3.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini index 941d0dee0c8..df89cd21511 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini @@ -1,5 +1,5 @@ [form-double-submit-3.html] expected: ERROR [<button> should have the same double-submit protection as <input type=submit>] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini index 127392316de..702af61a3c4 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini @@ -1,7 +1,11 @@ [form-submission-algorithm.html] + expected: TIMEOUT [If form's firing submission events is true, then return; 'submit' event] expected: FAIL [If form's firing submission events is true, then return; 'invalid' event] expected: FAIL + [Cannot navigate (after constructing the entry list)] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini new file mode 100644 index 00000000000..a9677391662 --- /dev/null +++ b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini @@ -0,0 +1,4 @@ +[DOMContentLoaded-defer.html] + [The end: DOMContentLoaded and defer scripts] + expected: FAIL + diff --git a/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini b/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini index ed236342863..60764541b31 100644 --- a/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini +++ b/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini @@ -2,5 +2,5 @@ type: testharness expected: TIMEOUT [Navigation Timing 2 WPT] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini b/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini index ec371a1bf72..8594361ff44 100644 --- a/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini +++ b/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini @@ -1,5 +1,5 @@ [nested-context-navigations-iframe.html] - expected: TIMEOUT + expected: CRASH [Test that iframe navigations are not observable by the parent, even after history navigations by the parent] expected: FAIL diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index 66bd350083b..a56bad443a2 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,4 +1,5 @@ [realtimeanalyser-fft-scaling.html] + expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini deleted file mode 100644 index 663a1f8fa30..00000000000 --- a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[018.html] - expected: TIMEOUT - [origin of the script that invoked the method, javascript:] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini deleted file mode 100644 index 064cf47545b..00000000000 --- a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[017.html] - expected: TIMEOUT - [origin of the script that invoked the method, about:blank] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index f584fce5df1..268949ced5c 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,5 +1,4 @@ [005.html] - expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini index 49f489d2a1c..d6e39444229 100644 --- a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini @@ -1,6 +1,5 @@ [003.html] type: testharness - expected: ERROR [shared] expected: FAIL diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml index 7d9bce28879..82d5a899193 100644 --- a/tests/wpt/web-platform-tests/.azure-pipelines.yml +++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml @@ -89,11 +89,11 @@ jobs: - template: tools/ci/azure/install_safari.yml - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel dev chrome infrastructure/ + - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev chrome infrastructure/ displayName: 'Run tests (Chrome Dev)' - - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel nightly firefox infrastructure/ + - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel nightly firefox infrastructure/ displayName: 'Run tests (Firefox Nightly)' - - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel preview safari infrastructure/ + - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel preview safari infrastructure/ displayName: 'Run tests (Safari Technology Preview)' - task: PublishBuildArtifacts@1 displayName: 'Publish results' @@ -227,7 +227,7 @@ jobs: - template: tools/ci/azure/install_edge.yml - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - - script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel dev edgechromium infrastructure/ + - script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev edgechromium infrastructure/ displayName: 'Run tests (Edge Dev)' - task: PublishBuildArtifacts@1 displayName: 'Publish results' @@ -260,7 +260,7 @@ jobs: channel: dev - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel dev edgechromium + - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel dev edgechromium displayName: 'Run tests (Edge Dev)' - task: PublishBuildArtifacts@1 displayName: 'Publish results' @@ -296,7 +296,7 @@ jobs: channel: canary - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel canary edgechromium + - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel canary edgechromium displayName: 'Run tests (Edge Canary)' - task: PublishBuildArtifacts@1 displayName: 'Publish results' @@ -332,7 +332,7 @@ jobs: - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml # --exclude is a workaround for https://github.com/web-platform-tests/wpt/issues/18634 - - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html + - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html displayName: 'Run tests' - task: PublishBuildArtifacts@1 displayName: 'Publish results' @@ -364,7 +364,7 @@ jobs: - template: tools/ci/azure/install_safari.yml - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel preview safari + - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel preview safari displayName: 'Run tests' - task: PublishBuildArtifacts@1 displayName: 'Publish results' diff --git a/tests/wpt/web-platform-tests/.pyup.yml b/tests/wpt/web-platform-tests/.pyup.yml index f31f2440630..05bee451e2f 100644 --- a/tests/wpt/web-platform-tests/.pyup.yml +++ b/tests/wpt/web-platform-tests/.pyup.yml @@ -7,42 +7,38 @@ search: False # default: empty # allowed: list requirements: - - tools/requirements_flake8.txt: - update: all - pin: True - - tools/requirements_mypy.txt: - update: all - pin: True - - tools/wpt/requirements.txt: - update: all - pin: True - - tools/wptrunner/requirements.txt: - update: all - pin: True - - tools/wptrunner/requirements_chrome.txt: - update: all - pin: True - - tools/wptrunner/requirements_chrome_android.txt: - update: all - pin: True - - tools/wptrunner/requirements_edge.txt: - update: all - pin: True - - tools/wptrunner/requirements_firefox.txt: - update: all - pin: True - - tools/wptrunner/requirements_ie.txt: - update: all - pin: True - - tools/wptrunner/requirements_opera.txt: - update: all - pin: True - - tools/wptrunner/requirements_safari.txt: - update: all - pin: True - - tools/wptrunner/requirements_sauce.txt: - update: all - pin: True - - tools/wptrunner/requirements_servo.txt: - update: all - pin: True + - docs/requirements.txt + - tools/requirements_flake8.txt + - tools/requirements_mypy.txt + - tools/wpt/requirements.txt + - tools/wptrunner/requirements.txt + - tools/wptrunner/requirements_android_webview.txt + - tools/wptrunner/requirements_chrome.txt + - tools/wptrunner/requirements_chrome_android.txt + - tools/wptrunner/requirements_chrome_ios.txt + - tools/wptrunner/requirements_edge.txt + - tools/wptrunner/requirements_edge_chromium.txt + - tools/wptrunner/requirements_epiphany.txt + - tools/wptrunner/requirements_firefox.txt + - tools/wptrunner/requirements_ie.txt + - tools/wptrunner/requirements_opera.txt + - tools/wptrunner/requirements_safari.txt + - tools/wptrunner/requirements_sauce.txt + - tools/wptrunner/requirements_servo.txt + - tools/wptrunner/requirements_webkit.txt + + # try and avoid bogus PRs where these get updated (has happened occasionally) + - annotation-protocol/requirements.txt: + update: False + - css/requirements.txt: + update: False + - tools/third_party/html5lib/requirements-optional.txt: + update: False + - tools/third_party/html5lib/requirements-test.txt: + update: False + - tools/third_party/html5lib/requirements.txt: + update: False + - tools/third_party/pytest/doc/en/requirements.txt: + update: False + - tools/third_party/pytest/tasks/requirements.txt: + update: False diff --git a/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html b/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html index bc30d9c2580..0052b26fa62 100644 --- a/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html +++ b/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html @@ -13,6 +13,7 @@ <script> "use strict"; +setup({ single_test: true }); document.domain = "{{host}}"; window.onload = () => { diff --git a/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html b/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html index 8506425548b..30c243b301f 100644 --- a/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html +++ b/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html @@ -7,8 +7,9 @@ text </div> <script> -// Force a layout before removing. -document.body.offsetTop; -document.getElementById('target').remove(); -done(); +test(function() { + // Force a layout before removing. + document.body.offsetTop; + document.getElementById('target').remove(); +}, '-webkit-box: removal of child'); </script> diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html index 6025a67179f..9e035af7e8b 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html @@ -6,8 +6,9 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script nonce='abc'> + setup({ single_test: true }); window.addEventListener('securitypolicyviolation', function(e) { - test(function() { assert_unreached("Should not have fired event")}); + assert_unreached("Should not have fired event"); }); </script> diff --git a/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html b/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html index c7604b29723..236fbdd0601 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html +++ b/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html @@ -6,8 +6,9 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); window.addEventListener('securitypolicyviolation', function(e) { - test(function() { assert_unreached("securitypolicyviolat was fired")}); + assert_unreached("securitypolicyviolat was fired"); }); </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html new file mode 100644 index 00000000000..2ee6b077d3c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Test Reference: bug 1584018</title> +<link rel="author" title="L. David Baron" href="https://dbaron.org/"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> + +<style> + .container { + width: 100px; + height: 100px; + } + + .scroll-inner { + overflow:scroll; + height:100%; + } + +</style> + +<div class="container"> + <div class="scroll-inner"> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html new file mode 100644 index 00000000000..7631e02a226 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Testcase, bug 1584018</title> +<link rel="author" title="L. David Baron" href="https://dbaron.org/"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1584018"> +<link rel="match" href="flex-child-percent-basis-resize-1-ref.html"> + +<style> + .flex-container { + display: flex; + flex-direction: row; + width: 100px; + } + + .flex-item { + flex: 1 0 auto; + } + + .scroll-outer { + overflow:hidden; + /* this combination is important */ + height: 100%; + max-height: 100px; + } + + .scroll-inner { + overflow:scroll; + height:100%; + } + +</style> + +<div class="flex-container"> + <div class="flex-item"> + <div class="scroll-outer"> + <div class="scroll-inner"> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + </div> + </div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html index 09c34f1c125..9feeed3e0ef 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html @@ -11,7 +11,7 @@ <meta name="flags" content="ahem"> <link rel="stylesheet" href="/css/support/grid.css"> <link rel="stylesheet" href="/css/support/alignment.css"> -<link rel="stylesheet" href="support/width-keyword-classes.css"> +<link rel="stylesheet" href="/css/support/width-keyword-classes.css"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html new file mode 100644 index 00000000000..a195945d1f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html @@ -0,0 +1,222 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Grid Layout test: align-self property</title> +<link rel="author" title="Rossana Monteriso" href="mailto:rmonteriso@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#alignment-values"> +<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#propdef-direction"> +<meta name="assert" content="This test checks that the align-self property is applied correctly for RL and LR, vertical and horizontal writing modes."> +<meta name="flags" content="ahem"> +<link rel="stylesheet" href="/css/support/grid.css"> +<link rel="stylesheet" href="/css/support/alignment.css"> +<link rel="stylesheet" href="/css/support/width-keyword-classes.css"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> + +<style> + +.grid { + grid-template-columns: 100px 100px; + grid-template-rows: 200px 200px; + margin-bottom: 20px; +} + +.cell { + width: 20px; + height: 40px; +} + +.item { + width: 8px; + height: 16px; + background: black; +} +</style> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> + +<body onload="checkLayout('.grid')"> + +<div style="position: relative"> + <div class="grid fit-content" data-expected-width="200" data-expected-height="400"> + <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div> + <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content" data-expected-width="200" data-expected-height="400"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- Default alignment and initial values. --> +<div style="position: relative"> + <div class="grid fit-content alignItemsCenter" data-expected-width="200" data-expected-height="400"> + <div class="cell alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div> + <div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content" data-expected-width="200" data-expected-height="400"> + <div class="alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div> + <div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- RTL direction (it should not affect the block-flow direction). --> +<div style="position: relative"> + <div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400"> + <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div> + <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="80" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="180" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="80" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- RTL direction (it should not affect the block-flow) with opposite directions grid container vs grid item. --> +<div style="position: relative"> + <div class="grid fit-content" data-expected-width="200" data-expected-height="400"> + <div class="alignSelfStretch firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div> + <div class="cell alignSelfStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfCenter secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content" data-expected-width="200" data-expected-height="400"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfFlexStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- Vertical RL writing mode. --> +<div style="position: relative"> + <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200"> + <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div> + <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- Vertical LR writing mode. --> +<div style="position: relative"> + <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200"> + <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div> + <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div> + </div> +</div> + +<!-- Vertical RL writing mode with opposite block-flow directions grid container vs grid item. --> +<div style="position: relative"> + <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200"> + <div class="alignSelfStretch firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100"> + </div> + <div class="cell alignSelfStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfEnd firstRowSecondColumn verticalLR" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfCenter secondRowFirstColumn verticalLR" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfFlexStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfSelfStart secondRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn verticalLR" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + </div> +</div> + +<!-- Vertical LR writing mode with opposite block-flow directions grid container vs grid item. --> +<div style="position: relative"> + <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200"> + <div class="alignSelfStretch firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100"> + </div> + <div class="cell alignSelfStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfEnd firstRowSecondColumn verticalRL" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfCenter secondRowFirstColumn verticalRL" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + </div> +</div> + +<div style="position: relative"> + <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200"> + <div class="cell alignSelfFlexEnd firstRowFirstColumn verticalRL" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfFlexStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfSelfStart secondRowFirstColumn verticalRL" data-offset-x="380" data-offset-y="0" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + <div class="cell alignSelfSelfEnd secondRowSecondColumn verticalRL" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40"> + <div class="item"></div> + </div> + </div> +</div> + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html new file mode 100644 index 00000000000..2ee6b077d3c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Test Reference: bug 1584018</title> +<link rel="author" title="L. David Baron" href="https://dbaron.org/"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> + +<style> + .container { + width: 100px; + height: 100px; + } + + .scroll-inner { + overflow:scroll; + height:100%; + } + +</style> + +<div class="container"> + <div class="scroll-inner"> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html new file mode 100644 index 00000000000..7fb5d8e117d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Testcase, bug 1584018</title> +<link rel="author" title="L. David Baron" href="https://dbaron.org/"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="help" href="https://drafts.csswg.org/css-grid"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1584018"> +<link rel="match" href="grid-child-percent-basis-resize-1-ref.html"> + +<style> + .grid-container { + display: grid; + width: 100px; + } + + .grid-item { + } + + .scroll-outer { + overflow:hidden; + /* this combination is important */ + height: 100%; + max-height: 100px; + } + + .scroll-inner { + overflow:scroll; + height:100%; + } + +</style> + +<div class="grid-container"> + <div class="grid-item"> + <div class="scroll-outer"> + <div class="scroll-inner"> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + <div>0</div> + <div>1</div> + <div>2</div> + <div>3</div> + <div>4</div> + <div>5</div> + <div>6</div> + <div>7</div> + <div>8</div> + <div>9</div> + </div> + </div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html new file mode 100644 index 00000000000..868e91de345 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> +<meta charset="utf-8"> +<title>CSS Test: Multi-column element with scrolled content clipping</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"/> +<link rel="help" href="http://www.w3.org/TR/css3-multicol/#columns"/> +<link rel="match" href="reference/multicol-clip-scrolled-content-001-ref.html"/> +<style> +#columns { + column-width: 350px; +} +.spacer { + height: 200px; + width: 10px; +} +#outer { + border: 1px solid black; + overflow: scroll; + height: 300px; + width: 300px; +} +.inner { + overflow: scroll; +} +.clipped_target { + overflow: scroll; + background: red; + width: 50px; + height: 50px; +} +</style> + +<div class=spacer></div> +<div id=columns> +<div class=spacer></div> +<div id=outer> + <div class=inner> + <pre class=clipped_target> + scrollable + content + goes + here + </pre> + </div> + <div class=spacer></div> + <div class=spacer></div> +</div> +</div> + +<script> +window.onload = () => { outer.scrollTop = 100; }; +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html b/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html new file mode 100644 index 00000000000..d19ec1b93a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> +<meta charset="utf-8"> +<title>CSS Test: Multi-column element with scrolled content clipping (reference)</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"/> +<link rel="help" href="http://www.w3.org/TR/css3-multicol/#columns"/> +<style> +#columns { + column-width: 350px; +} +.spacer { + height: 200px; + width: 10px; +} +#outer { + border: 1px solid black; + overflow: scroll; + height: 300px; + width: 300px; +} +.inner { + overflow: scroll; + visibility: hidden; +} +.clipped_target { + width: 50px; + height: 50px; +} +</style> + +<div class=spacer></div> +<div id=columns> +<div class=spacer></div> +<div id=outer> + <div class=inner> + <pre class=clipped_target> + scrollable + content + goes + here + </pre> + </div> + <div class=spacer></div> + <div class=spacer></div> +</div> +</div> + +<script> +window.onload = () => { outer.scrollTop = 100; }; +</script> +</html> + diff --git a/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html b/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html new file mode 100644 index 00000000000..9ccdbf93c61 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html @@ -0,0 +1,27 @@ +<!doctype html> +<meta charset="utf-8"> +<title>CSS Test Reference</title> +<style> + #target { + width: 100px; + height: 100px; + background: red; + /* For this simple case, hidden and clip are equivalent */ + overflow: hidden; + } + + #container { + overflow: auto; + height: 300px; + } + + #fill { + background: blue; + height: 5000px; + } +</style> +<div id="container"> + <div id="target"> + <div id="fill"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html b/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html new file mode 100644 index 00000000000..84bf8cdae55 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html @@ -0,0 +1,31 @@ +<!doctype html> +<meta charset="utf-8"> +<title>overflow: clip clips its contents and doesn't cause scrollable overflow</title> +<link rel="help" href="https://drafts.csswg.org/css-overflow/#valdef-overflow-clip"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="match" href="clip-001-ref.html"> +<style> + #target { + width: 100px; + height: 100px; + background: red; + overflow: -moz-hidden-unscrollable; + overflow: clip; + } + + #container { + overflow: auto; + height: 300px; + } + + #fill { + background: blue; + height: 5000px; + } +</style> +<div id="container"> + <div id="target"> + <div id="fill"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html b/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html new file mode 100644 index 00000000000..08114d73b8b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html @@ -0,0 +1,36 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Overflow areas are updated when dynamically changed to overflow: clip</title> +<link rel="help" href="https://drafts.csswg.org/css-overflow/#valdef-overflow-clip"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="match" href="clip-001-ref.html"> +<style> + #target { + width: 100px; + height: 100px; + overflow: visible; + } + + #container { + overflow: auto; + height: 300px; + } + #fill { + height: 5000px; + background: blue; + } +</style> +<div id="container"> + <div id="target"> + <div id="fill"></div> + </div> +</div> +<script> +onload = function() { + let target = document.getElementById("target"); + window.unused = target.getBoundingClientRect(); // Update layout + target.style.overflow = "-moz-hidden-unscrollable"; + target.style.overflow = "clip"; +} +</script> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html b/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html new file mode 100644 index 00000000000..4997ae4f564 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: Parsing tree-abiding pseudo-elements</title> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#treelike"> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<meta name="assert" content="This test checks that gutters adjacent to collapsed tracks don't reduce the space available for aligning adjacent grid items." /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<script> +// Generated content pseudo-elements +test_valid_selector("::before"); +test_valid_selector("*::before", "::before"); +test_valid_selector("foo.bar[baz]::before"); +test_invalid_selector("::before *"); + +test_valid_selector("::after"); +test_valid_selector("*::after", "::after"); +test_valid_selector("foo.bar[baz]::after"); +test_invalid_selector("::after *"); + +// List marker pseudo-element +test_valid_selector("::marker"); +test_valid_selector("*::marker", "::marker"); +test_valid_selector("foo.bar[baz]::marker"); +test_invalid_selector("::marker *"); + +// Placeholder input pseudo-element +test_valid_selector("::placeholder"); +test_valid_selector("*::placeholder", "::placeholder"); +test_valid_selector("foo.bar[baz]::placeholder"); +test_invalid_selector("::placeholder *"); + +// Combinations of the above +test_invalid_selector("::before::before"); +test_invalid_selector("::after::before"); +test_invalid_selector("::marker::before"); +test_invalid_selector("::placeholder::before"); + +test_invalid_selector("::before::after"); +test_invalid_selector("::after::after"); +test_invalid_selector("::marker::after"); +test_invalid_selector("::placeholder::after"); + +test_valid_selector("::before::marker"); +test_valid_selector("::after::marker"); +test_invalid_selector("::marker::marker"); +test_invalid_selector("::placeholder::marker"); + +test_invalid_selector("::before::placeholder"); +test_invalid_selector("::after::placeholder"); +test_invalid_selector("::marker::placeholder"); +test_invalid_selector("::placeholder::placeholder"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html b/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html index 6888693bbf4..2c55a0ded09 100644 --- a/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html +++ b/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html @@ -5,31 +5,10 @@ <link rel="help" href="https://drafts.csswg.org/css-scoping/#slotted-pseudo"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> <style id="styleElm"> </style> <script> - function parse_selector(selector_text) { - try { - styleElm.sheet.insertRule(selector_text+"{}"); - styleElm.sheet.deleteRule(0); - return true; - } catch (ex) { - return false; - } - } - - function test_valid_selector(selector_text) { - test(function(){ - assert_true(parse_selector(selector_text)); - }, "Should be a valid selector: '" + selector_text + "'"); - } - - function test_invalid_selector(selector_text) { - test(function(){ - assert_false(parse_selector(selector_text)); - }, "Should be an invalid selector: '" + selector_text + "'"); - } - test_invalid_selector("::slotted"); test_invalid_selector("::slotted()"); test_invalid_selector("::slotted(*).class"); diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html index 3c01c08a64c..25c465dd3a6 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html @@ -55,12 +55,17 @@ </div> <div id="log"></div> <script> + test(function() { + assert_true( verifyTextPoints({ roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50}, containerWidth: 200, containerHeight: 200, lineHeight: 10 - }, 10, 1.5); + }, 10, 1.5), + "Lines positioned properly around the shape." + ); + }); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html index ff13d25204a..3a30e678649 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html @@ -58,12 +58,17 @@ </div> <div id="log"></div> <script> + test(function() { + assert_true( verifyTextPoints({ roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50}, containerWidth: 200, containerHeight: 200, lineHeight: 10 - }, 10, 1); + }, 10, 1), + "Lines positioned properly around the shape." + ); + }); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html index 043aa82f467..2e52163bf21 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html @@ -60,12 +60,17 @@ </div> <div id="log"></div> <script> + test(function() { + assert_true( verifyTextPoints({ roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50}, containerWidth: 200, containerHeight: 200, lineHeight: 10 - }, 10, 1.5); + }, 10, 1.5), + "Lines positioned properly around the shape." + ); + }); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html index 15eb1b8ce59..5224b23caef 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html @@ -59,12 +59,17 @@ </div> <div id="log"></div> <script> + test(function() { + assert_true( verifyTextPoints({ roundedRect: {x: 100, y: 10, width: 100, height: 100, rx: 50, ry: 50}, containerWidth: 200, containerHeight: 200, lineHeight: 10 - }, 10, 1, "right"); + }, 10, 1, "right"), + "Lines positioned properly around the shape." + ); + }); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js index 616374d4937..906fe656088 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js +++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js @@ -1,5 +1,5 @@ function verifyTextPoints(shape, numLines, tolerance, side) { - var failed = false; + var passed = true; if (tolerance === undefined) tolerance = 0.5; if (side === undefined) @@ -19,11 +19,9 @@ function verifyTextPoints(shape, numLines, tolerance, side) { if( Math.abs( (actual - expected[i])) > tolerance ){ line.style.setProperty('color', 'red'); console.log('diff: ' + Math.abs(actual - expected[i])); - failed = true; + passed = false; } } - if (window.done) { - assert_false(failed, "Lines positioned properly around the shape."); - done(); - } + + return passed; } diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html index 83897e9fe6b..4f6a4f732d0 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html @@ -32,8 +32,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [182, 199, 201, 199, 182, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html index 93bfbea9ff8..5f63c12cd96 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html @@ -32,8 +32,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [218, 236, 238, 236, 218, 160]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html index 71ef19ef1a6..129412f1f58 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html @@ -34,8 +34,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [181, 199, 201, 199, 181, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html index 1b7746113b9..329f033a4a9 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html @@ -42,8 +42,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [200, 214, 216, 214, 200, 158, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html index 3e97ae4c3ae..682ac0986e4 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html @@ -46,8 +46,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 3, [182, 198, 200, 198, 182, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html index d75d598bf37..23b6b4e3481 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html @@ -34,8 +34,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html index 212b21817a9..a7c4d591bc4 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html @@ -34,8 +34,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html index b16362153e5..2e9c193044b 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html @@ -33,8 +33,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html index 058e5793e5c..6c285e07f9c 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html @@ -39,7 +39,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> - setup({explicit_done: true}); + setup({single_test: true}); document.fonts.ready.then(()=> { approxShapeTest('test', 'line-', 2, [48, 88, 128, 168, 180, 0]); done(); diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html index 4f59ff331fe..22828e3984f 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html @@ -41,8 +41,10 @@ <script src="/resources/testharnessreport.js"></script> <script src="support/spec-example-utils.js"></script> <script> + setup({ single_test: true }); function checkFloats() { approxShapeTest('test', 'line-', 2, [242, 256, 258, 256, 242, 204, 0]); + done(); } </script> </head> diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js index c5b0411ca27..6939b753aad 100644 --- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js +++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js @@ -11,7 +11,6 @@ function approxShapeTest(testId, linePrefix, epsilon, lineOffsets) { var line = document.getElementById(linePrefix + i); assert_approx_equals(line.offsetLeft, lineOffsets[i] + testOffset, epsilon, 'Line ' + i + ' is positioned properly'); } - done(); } runTest(); } diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html index ff79144da2a..c2db6f99719 100644 --- a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html +++ b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html @@ -29,7 +29,7 @@ outline: solid 1px black; } #test4 { - animation: outline-anim 3s 0s paused reverse-linear; + animation: outline-anim 3s 0s paused reverse linear; outline: solid 1px black; } </style> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html deleted file mode 100644 index 06c81d5de4c..00000000000 --- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <title>CSSOM View Module test:MediaQueryList</title> - <link rel="author" title="unbug" href="mailto:tidelgl@gmail.com" /> - <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface"> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - <style type="text/css"> - </style> -</head> -<body> - <p>This case tests the MediaQueryList</p> - <div id="log"></div> - <script> - test(function(){ - assert_equals(window.matchMedia('(min-width: 1px)').matches, true, "Expected any device to match min-width: 1px"); - },'matchMedia'); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html new file mode 100644 index 00000000000..5bdd9dfc9ce --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html @@ -0,0 +1,106 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name="flags" content="dom"> +<title>CSS Test: CSSOM View MediaQueryList::addListener with handleEvent</title> +<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/matchMedia.js"></script> +<div id="log"></div> +<script> +"use strict"; +setup({ allow_uncaught_exception: true }); + +promise_test(async t => { + const mql = await createMQL(t); + + let _this; + let _event; + const listener = { + handleEvent(event) { + _this = this; + _event = event; + }, + }; + + mql.addListener(listener); + triggerMQLEvent(mql); + await waitForChangesReported(); + + assert_equals(_this, listener); + assert_equals(_event.media, mql.media); + assert_equals(_event.matches, mql.matches); +}, "calls handleEvent method of event listener"); + +promise_test(async t => { + const mql = await createMQL(t); + + let calls = 0; + mql.addListener({ + get handleEvent() { + calls++; + return function() {}; + }, + }); + assert_equals(calls, 0); + + triggerMQLEvent(mql); + await waitForChangesReported(); + assert_equals(calls, 1); + + triggerMQLEvent(mql); + await waitForChangesReported(); + assert_equals(calls, 2); +}, "looks up handleEvent method on every event dispatch"); + +promise_test(async t => { + const mql = await createMQL(t); + + let calls = 0; + const listener = () => { + calls++; + }; + + Object.defineProperty(listener, "handleEvent", { + get: t.unreached_func("handleEvent method should not be looked up on functions"), + }); + mql.addListener(listener); + + triggerMQLEvent(mql); + await waitForChangesReported(); + assert_equals(calls, 1); +}, "doesn't look up handleEvent method on callable event listeners"); + +const uncaught_error_test = async (t, listener) => { + const mql = await createMQL(t); + mql.addListener(listener); + + const eventWatcher = new EventWatcher(t, window, "error"); + const errorPromise = eventWatcher.wait_for("error"); + triggerMQLEvent(mql); + + const event = await errorPromise; + throw event.error; +}; + +promise_test(t => { + const error = { name: "test" }; + const listener = { + get handleEvent() { + throw error; + }, + }; + + return promise_rejects_exactly(t, error, uncaught_error_test(t, listener)); +}, "rethrows errors when getting handleEvent"); + +promise_test(t => { + const listener = { handleEvent: null }; + return promise_rejects(t, new TypeError(), uncaught_error_test(t, listener)); +}, "throws if handleEvent is falsy and not callable"); + +promise_test(t => { + const listener = { handleEvent: "str" }; + return promise_rejects(t, new TypeError(), uncaught_error_test(t, listener)); +}, "throws if handleEvent is thruthy and not callable"); +</script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html new file mode 100644 index 00000000000..5446e48e6cf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html @@ -0,0 +1,121 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name="flags" content="dom"> +<title>CSS Test: CSSOM View MediaQueryList::{add,remove}Listener</title> +<link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com"> +<link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/matchMedia.js"></script> +<div id="log"></div> +<script> +"use strict"; + +test(function() { + const mql = window.matchMedia("all"); + assert_inherits(mql, "addListener"); + assert_equals(typeof mql.addListener, "function"); +}, "MediaQueryList::addListener is a function"); + +promise_test(async t => { + const iframe = await createIFrame(t, 200, 100); + const heightMQL = iframe.contentWindow.matchMedia("(max-height: 50px)"); + const widthMQL = iframe.contentWindow.matchMedia("(min-width: 150px)"); + + let heightEvent; + let widthEvent; + + heightMQL.addListener(event => { + heightEvent = event; + }); + widthMQL.addListener(event => { + widthEvent = event; + }); + + assert_false(heightMQL.matches); + assert_true(widthMQL.matches); + + iframe.height = "50"; // 200x100 => 200x50 + await waitForChangesReported(); + + assert_equals(heightEvent.media, heightMQL.media); + assert_true(heightEvent.matches); + assert_true(heightMQL.matches); + assert_true(widthMQL.matches); + + iframe.width = "100"; // 200x50 => 100x50 + await waitForChangesReported(); + + assert_equals(widthEvent.media, widthMQL.media); + assert_false(widthEvent.matches); + assert_false(widthMQL.matches); + assert_true(heightMQL.matches); +}, "listeners are called when <iframe> is resized"); + +promise_test(async t => { + const mql = await createMQL(t); + + let eventsCount = 0; + mql.addListener(() => { + eventsCount++; + }); + + for (let i = 1; i <= 10; i++) { + triggerMQLEvent(mql); + await waitForChangesReported(); + assert_equals(eventsCount, i); + } +}, "listeners are called correct number of times"); + +promise_test(async t => { + const mql = await createMQL(t); + const calls = []; + + mql.addListener(() => { + calls.push("1st"); + }); + mql.addListener(() => { + calls.push("2nd"); + }); + + triggerMQLEvent(mql); + await waitForChangesReported(); + + assert_equals(calls[0], "1st"); + assert_equals(calls[1], "2nd"); +}, "listeners are called in order they were added"); + +promise_test(async t => { + const mql = await createMQL(t); + + let called = 0; + const listener = () => { + called++; + }; + + mql.addListener(listener); + mql.addListener(listener); + + triggerMQLEvent(mql); + await waitForChangesReported(); + + assert_equals(called, 1); +}, "listener that was added twice is called only once"); + +test(function() { + const mql = window.matchMedia("all"); + assert_inherits(mql, "removeListener"); + assert_equals(typeof mql.removeListener, "function"); +}, "MediaQueryList::removeListener is a function"); + +promise_test(async t => { + const mql = await createMQL(t); + const listener = t.unreached_func("should not be called"); + + mql.addListener(listener); + mql.removeListener(listener); + + triggerMQLEvent(mql); + await waitForChangesReported(); +}, "MediaQueryList::removeListener removes added listener"); +</script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html deleted file mode 100644 index 3d5a5316566..00000000000 --- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html +++ /dev/null @@ -1,12 +0,0 @@ -<!doctype html> -<meta charset="utf-8"> -<title>cssom-view - MediaQueryList with empty string</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -test(function () { - var mql = window.matchMedia(''); - assert_equals(mql.media, '', "This should be an empty media query list"); - assert_equals(mql.matches, true, "Empty media query list should evaluate to true"); -}); -</script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html index 6631039d248..24cce3cc097 100644 --- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html +++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html @@ -10,22 +10,10 @@ "use strict"; test(t => { - assert_equals(MediaQueryListEvent.length, 1); - assert_throws(new TypeError(), () => { - new MediaQueryListEvent(); - }); -}, "type argument is required"); - -test(t => { assert_equals(new MediaQueryListEvent("test").type, "test"); }, 'type can be different from "change"'); test(t => { - assert_equals(Object.getPrototypeOf(MediaQueryListEvent), Event); - assert_true(new MediaQueryListEvent("change") instanceof Event); -}, "extends Event"); - -test(t => { const event = new MediaQueryListEvent("change"); assert_equals(event.media, ""); @@ -47,16 +35,4 @@ test(t => { assert_true(event.bubbles); assert_true(event.cancelable); }, "init dictionary overrides"); - -test(t => { - const event = new MediaQueryListEvent("change"); - assert_idl_attribute(event, "media"); - assert_readonly(event, "media"); -}, "MediaQueryListEvent::media is read-only IDL attribute"); - -test(t => { - const event = new MediaQueryListEvent("change"); - assert_idl_attribute(event, "matches"); - assert_readonly(event, "matches"); -}, "MediaQueryListEvent::matches is read-only IDL attribute"); </script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html new file mode 100644 index 00000000000..14df3d02425 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html @@ -0,0 +1,79 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name="flags" content="dom"> +<title>CSS Test: CSSOM View matchMedia and MediaQueryList</title> +<link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com"> +<link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia"> +<link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface"> +<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/matchMedia.js"></script> +<div id="log"></div> +<script> +"use strict"; + +test(() => { + assert_equals( + typeof window.matchMedia, + "function", + "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run." + ); +}, "window.matchMedia is a function"); + +test(() => { + const mql = window.matchMedia("all"); + assert_equals(mql.media, "all"); + assert_true(mql.matches); +}, 'window.matchMedia("all") matches'); + +test(() => { + const mql = window.matchMedia(""); + assert_equals(mql.media, ""); + assert_true(mql.matches); +}, 'window.matchMedia("") matches'); + +test(() => { + const mql = window.matchMedia("(min-width: 1px)"); + assert_equals(mql.media, "(min-width: 1px)"); + assert_true(mql.matches); +}, 'window.matchMedia("(min-width: 1px)") matches'); + +test(() => { + const mql = window.matchMedia("::"); + assert_true(mql instanceof MediaQueryList); + assert_equals(mql.media, "not all"); + assert_false(mql.matches); +}, 'media query with syntax error is serialized as "not all"'); + +promise_test(async t => { + const iframe = await createIFrame(t, 200); + const mql = iframe.contentWindow.matchMedia("(max-width: 199px), all and (min-width: 200px)"); + assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)"); + assert_true(mql.matches); +}, 'iframe.matchMedia("(max-width: 199px), all and (min-width: 200px)") is serialized w/o "all"'); + +promise_test(async t => { + const iframe = await createIFrame(t); + const mql = iframe.contentWindow.matchMedia("(min-aspect-ratio: 1/1)"); + assert_true(mql.matches); +}, 'iframe.matchMedia("(min-aspect-ratio: 1/1)") matches'); + +promise_test(async t => { + const iframe = await createIFrame(t, 200); + const mql = iframe.contentWindow.matchMedia("(width: 200px)"); + assert_true(mql.matches); +}, 'iframe.matchMedia("(width: 200px)") matches'); + +promise_test(async t => { + const iframe = await createIFrame(t, 200, 100); + const mql = iframe.contentWindow.matchMedia("(max-height: 50px)"); + assert_false(mql.matches); +}, 'iframe.matchMedia("(max-height: 50px)") matches'); + +promise_test(async t => { + const iframe = await createIFrame(t, 200, 100); + const mql = iframe.contentWindow.matchMedia("(min-width: 150px)"); + assert_true(mql.matches); +}, 'iframe.matchMedia("(min-width: 150px)") matches'); +</script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht deleted file mode 100644 index 202a3b738dd..00000000000 --- a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht +++ /dev/null @@ -1,188 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <title>CSS Test: CSSOM View matchMedia and MediaQueryList</title> - <meta name="timeout" content="long"/> - <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com" /> - <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia" /> - <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" /> - <link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries" /> - <meta name="flags" content="dom" /> - <script src="/resources/testharness.js" type="text/javascript" /> - <script src="/resources/testharnessreport.js" type="text/javascript" /> - <style type="text/css"><![CDATA[ - iframe { border: none; } - ]]></style> - </head> - <body> - <noscript>Test not run - javascript required.</noscript> - <div id="log" /> - <iframe width="200" height="100" /> - <script type="text/javascript"><![CDATA[ - function reflow(doc) { - doc.body.offsetWidth; - } - - var iframe = document.querySelector("iframe"); - var iframe_window = window.frames[0]; - - reflow(iframe_window.document); - - test(function(){ - assert_inherits(window, "matchMedia"); - }, "window.matchMedia exists"); - - test(function(){ - assert_true(window.matchMedia instanceof Function, "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run."); - }, "window.matchMedia is a Function"); - - var mql, mql1, mql2, mql3; - - test(function(){ - mql = window.matchMedia("all"); - assert_true(mql instanceof MediaQueryList, "matchMedia(\"all\") returned MediaQueryList object."); - }, "window.matchMedia(\"all\")"); - - test(function(){ - assert_idl_attribute(mql, "media", "Check that MediaQueryList.media exists."); - }, "MediaQueryList.media exists"); - - test(function(){ - assert_readonly(mql, "media", "Check that MediaQueryList.media is readonly."); - }, "MediaQueryList.media is readonly"); - - test(function(){ - assert_equals(mql.media, "all"); - }, "MediaQueryList.media for \"all\""); - - test(function(){ - assert_idl_attribute(mql, "matches", "Check that MediaQueryList.matches exists."); - }, "MediaQueryList.matches exists"); - - test(function(){ - assert_readonly(mql, "matches", "Check that MediaQueryList.matches is readonly."); - }, "MediaQueryList.matches is readonly"); - - test(function(){ - assert_true(mql.matches); - }, "MediaQueryList.matches for \"all\""); - - test(function(){ - assert_inherits(mql, "addListener"); - }, "MediaQueryList.addListener exists"); - - test(function(){ - assert_true(mql.addListener instanceof Function); - }, "MediaQueryList.addListener is a Function"); - - test(function(){ - assert_inherits(mql, "removeListener"); - }, "MediaQueryList.removeListener exists"); - - test(function(){ - assert_true(mql.removeListener instanceof Function); - }, "MediaQueryList.removeListener is a Function"); - - test(function(){ - mql = window.matchMedia("::"); - assert_true(mql instanceof MediaQueryList, "window.matchMedia(\"::\") returned MediaQueryList object."); - assert_equals(mql.media, "not all", "MediaQueryList.media serialized as \"not all\" from original string with syntax error."); - }, "MediaQueryList.media syntax error"); - - test(function(){ - assert_false(mql.matches); - }, "MediaQueryList.matches for \"not all\""); - - test(function(){ - mql = iframe_window.matchMedia("(max-width: 199px), all and (min-width: 200px)"); - assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)"); - assert_true(mql.matches); - }, "MediaQueryList.matches for \"(max-width: 199px), all and (min-width: 200px)\"") - - test(function(){ - mql = iframe_window.matchMedia("(min-aspect-ratio: 1/1)"); - assert_true(mql.matches); - }, "MediaQueryList.matches for \"(min-aspect-ratio: 1/1)\""); - - test(function(){ - mql = iframe_window.matchMedia("(width: 200px)"); - assert_true(mql.matches); - }, "MediaQueryList.matches for \"(width: 200px)\""); - - test(function(){ - mql1 = iframe_window.matchMedia("(max-height: 50px)"); - assert_false(mql1.matches); - }, "MediaQueryList.matches for \"(max-height: 50px)\""); - - test(function(){ - mql2 = iframe_window.matchMedia("(min-width: 150px)"); - assert_true(mql2.matches); - }, "MediaQueryList.matches for \"(min-width: 150px)\""); - - var resizeTest = async_test("Resize iframe from 200x100 to 200x50, then to 100x50"); - var listenerOrderTest = async_test("Listeners are called in the order which they have been added"); - var duplicateListenerTest = async_test("Listener added twice is only called once."); - - window.onload = function(){ - - var rmListener = function(x){ - resizeTest.step(function(){ - assert_unreached("removeListener was not successful."); - }); - }; - - var dupListener = function(x){ - duplicateListenerTest.step(function(){ - assert_false(mql1.dupListenerCalled, "Check that this listener has not been called before."); - mql1.dupListenerCalled = true; - }); - }; - - mql1.firstListenerCalled = false; - mql1.dupListenerCalled = false; - // Add listener twice and remove it below. Should not be called. - mql1.addListener(rmListener); - mql1.addListener(rmListener); - // Add listener twice. Should only be called once. - mql1.addListener(dupListener); - mql1.addListener(dupListener); - - mql1.addListener(function(x){ - resizeTest.step(function(){ - assert_equals(x, mql1, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on."); - assert_true(x.matches, "(max-height: 50px) should now pass."); - assert_true(mql2.matches, "(min-width: 150px) should still pass."); - iframe.width = "100"; - }); - - listenerOrderTest.step(function(){ - assert_false(mql1.firstListenerCalled, "Check that this listener is only called once."); - mql1.firstListenerCalled = true; - }); - }); - - mql1.addListener(function(x){ - listenerOrderTest.step(function(){ - assert_true(mql1.firstListenerCalled, "Check that the listener added last is called last."); - }); - listenerOrderTest.done(); - }); - - mql1.removeListener(rmListener); - - mql2.addListener(function(x){ - duplicateListenerTest.done(); - resizeTest.step(function(){ - assert_equals(x, mql2, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on."); - assert_true(mql1.matches, "(max-height: 50px) should still pass."); - assert_false(x.matches, "(min-width: 150px) should now fail."); - }); - resizeTest.done(); - }); - - iframe.height = "50"; - };]]> - </script> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html deleted file mode 100644 index 8bc665693d8..00000000000 --- a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html +++ /dev/null @@ -1,136 +0,0 @@ -<!doctype html> -<meta charset="utf-8"> -<title>CSS Test: CSSOM View matchMedia handleEvent via addListener</title> -<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/matchMedia.js"></script> -<div id="log"></div> -<script> -setup({ allow_uncaught_exception: true }); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let _this; - let _event; - const eventListener = { - handleEvent(event) { - _this = this; - _event = event; - }, - }; - - mql.addListener(eventListener); - triggerMQLEvent(iframe); - await waitForChangesReported(); - - assert_equals(_this, eventListener); - assert_equals(_event.matches, mql.matches); - assert_equals(_event.media, MEDIA_QUERY); -}, "calls handleEvent method of event listener"); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let uncaughtError; - const errorHandler = event => { - uncaughtError = event.error; - }; - window.addEventListener("error", errorHandler); - t.add_cleanup(() => { - window.removeEventListener("error", errorHandler); - }); - - const thrownError = { name: "test" }; - mql.addListener({ - get handleEvent() { - throw thrownError; - }, - }); - - triggerMQLEvent(iframe); - await waitForChangesReported(); - assert_equals(uncaughtError, thrownError); -}, "rethrows errors when getting handleEvent"); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let calls = 0; - mql.addListener({ - get handleEvent() { - calls++; - return function() {}; - }, - }); - assert_equals(calls, 0); - - triggerMQLEvent(iframe); - await waitForChangesReported(); - assert_equals(calls, 1); - - triggerMQLEvent(iframe); - await waitForChangesReported(); - assert_equals(calls, 2); -}, "looks up handleEvent method on every event dispatch"); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let calls = 0; - const eventListener = function() { calls++; }; - Object.defineProperty(eventListener, "handleEvent", { - get: t.unreached_func("handleEvent method should not be looked up on functions"), - }); - mql.addListener(eventListener); - - triggerMQLEvent(iframe); - await waitForChangesReported(); - assert_equals(calls, 1); -}, "doesn't look up handleEvent method on callable event listeners"); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let uncaughtError; - const errorHandler = event => { - uncaughtError = event.error; - }; - window.addEventListener("error", errorHandler); - t.add_cleanup(() => { - window.removeEventListener("error", errorHandler); - }); - - mql.addListener({ handleEvent: null }); - triggerMQLEvent(iframe); - await waitForChangesReported(); - - assert_equals(uncaughtError.name, "TypeError"); -}, "throws if handleEvent is falsy and not callable"); - -promise_test(async t => { - const iframe = await createIframe(t); - const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY); - - let uncaughtError; - const errorHandler = event => { - uncaughtError = event.error; - }; - window.addEventListener("error", errorHandler); - t.add_cleanup(() => { - window.removeEventListener("error", errorHandler); - }); - - mql.addListener({ handleEvent: "str" }); - triggerMQLEvent(iframe); - await waitForChangesReported(); - - assert_equals(uncaughtError.name, "TypeError"); -}, "throws if handleEvent is thruthy and not callable"); -</script> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html deleted file mode 100644 index 7236be7febc..00000000000 --- a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html +++ /dev/null @@ -1,65 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>CSS Test: CSSOM View matchMedia addListener</title> - <link rel="author" title="Chris Wu" href="mailto:pwx.frontend@gmail.com" /> - <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" /> - <meta name="flags" content="dom" /> - <script src="/resources/testharness.js" type="text/javascript"></script> - <script src="/resources/testharnessreport.js" type="text/javascript"></script> - <style type="text/css"> - iframe { border: none; } - </style> - </head> - <body> - <div id="log"></div> - <iframe width="200" height="100" id="iframe1"></iframe> - <script> - function reflow(doc) { - doc.body.offsetWidth; - } - - var iframe = document.querySelector("iframe"); - var iframe_window = window.frames[0]; - var iframe1 = document.getElementById("iframe1"); - reflow(iframe_window.document); - - var i = 0; - var totalCount = 10; - var count = 0; - var divineCount = 10; - var width_list = [201,199]; - var mq1 = iframe_window.matchMedia("(max-width:200px)"); - mq1.addListener(function(mql){ - - count = count + 1; - - }); - - var equalAssert = async_test("Check for the correct number of event triggers"); - - var changeFrameWidth = function(iWidth) { - iframe1.style.width = iWidth + "px"; - i = (i === 0) ? 1 : 0; - totalCount = totalCount - 1; - if(totalCount > 0) - { - step_timeout(function(){ - changeFrameWidth(width_list[i]); - }, 100); - } - else - { - step_timeout(function(){ - equalAssert.step(function(){ - assert_equals(divineCount, count, "this will be 10 times of event triggers by change width"); - }); - equalAssert.done(); - }, 100); - } - }; - - changeFrameWidth(width_list[0]); - </script> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js b/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js index 93f4a315050..8013699b7de 100644 --- a/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js +++ b/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js @@ -1,11 +1,21 @@ -const IFRAME_BASE_WIDTH = "200"; -const MEDIA_QUERY = `(max-width: ${IFRAME_BASE_WIDTH}px)`; +const IFRAME_DEFAULT_SIZE = "200"; +const iframes = new WeakMap(); + +async function createMQL(t) { + const iframe = await createIFrame(t); + const mql = iframe.contentWindow.matchMedia(`(max-width: ${IFRAME_DEFAULT_SIZE}px)`); + assert_true(mql.matches, "MQL should match on newly created <iframe>"); + iframes.set(mql, iframe); + return mql; +} + +function createIFrame(t, width = IFRAME_DEFAULT_SIZE, height = width) { + assert_not_equals(document.body, null, "<body> element is missing"); -function createIframe(t) { const iframe = document.createElement("iframe"); iframe.srcdoc = ""; - iframe.width = IFRAME_BASE_WIDTH; - iframe.height = "100"; + iframe.width = String(width); + iframe.height = String(height); iframe.style.border = "none"; t.add_cleanup(() => { @@ -14,6 +24,7 @@ function createIframe(t) { return new Promise(resolve => { iframe.addEventListener("load", () => { + iframe.contentDocument.body.offsetWidth; // reflow resolve(iframe); }); @@ -21,8 +32,10 @@ function createIframe(t) { }); } -function triggerMQLEvent(iframe) { - iframe.width = iframe.width === IFRAME_BASE_WIDTH ? "250" : IFRAME_BASE_WIDTH; +function triggerMQLEvent(mql) { + const iframe = iframes.get(mql); + assert_not_equals(iframe, undefined, "Passed MQL instance was not created with createMQL"); + iframe.width = iframe.width === IFRAME_DEFAULT_SIZE ? "250" : IFRAME_DEFAULT_SIZE; } function waitForChangesReported() { diff --git a/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js index 7ecd588aaf5..647bc125df9 100644 --- a/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js +++ b/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js @@ -36,3 +36,62 @@ function test_invalid_value(property, value) { assert_equals(div.style.getPropertyValue(property), ""); }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value"); } + +// serializedSelector can be the expected serialization of selector, +// or an array of permitted serializations, +// or omitted if value should serialize as selector. +function test_valid_selector(selector, serializedSelector) { + if (arguments.length < 2) + serializedSelector = selector; + + const stringifiedSelector = JSON.stringify(selector); + + test(function(){ + document.querySelector(selector); + assert_true(true, stringifiedSelector + " should not throw in querySelector"); + + const style = document.createElement("style"); + document.head.append(style); + const {sheet} = style; + document.head.removeChild(style); + const {cssRules} = sheet; + + assert_equals(cssRules.length, 0, "Sheet should have no rule"); + sheet.insertRule(selector + "{}"); + assert_equals(cssRules.length, 1, "Sheet should have 1 rule"); + + const readSelector = cssRules[0].selectorText; + if (Array.isArray(serializedSelector)) + assert_in_array(readSelector, serializedSelector, "serialization should be sound"); + else + assert_equals(readSelector, serializedSelector, "serialization should be canonical"); + + sheet.deleteRule(0); + assert_equals(cssRules.length, 0, "Sheet should have no rule"); + sheet.insertRule(readSelector + "{}"); + assert_equals(cssRules.length, 1, "Sheet should have 1 rule"); + + assert_equals(cssRules[0].selectorText, readSelector, "serialization should round-trip"); + }, stringifiedSelector + " should be a valid selector"); +} + +function test_invalid_selector(selector) { + const stringifiedSelector = JSON.stringify(selector); + + test(function(){ + assert_throws( + DOMException.SYNTAX_ERR, + () => document.querySelector(selector), + stringifiedSelector + " should throw in querySelector"); + + const style = document.createElement("style"); + document.head.append(style); + const {sheet} = style; + document.head.removeChild(style); + + assert_throws( + DOMException.SYNTAX_ERR, + () => sheet.insertRule(selector + "{}"), + stringifiedSelector + " should throw in insertRule"); + }, stringifiedSelector + " should be an invalid selector"); +} diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/support/width-keyword-classes.css b/tests/wpt/web-platform-tests/css/support/width-keyword-classes.css index b5c84a5d5f4..b5c84a5d5f4 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/alignment/support/width-keyword-classes.css +++ b/tests/wpt/web-platform-tests/css/support/width-keyword-classes.css diff --git a/tests/wpt/web-platform-tests/docs/requirements.txt b/tests/wpt/web-platform-tests/docs/requirements.txt index dceaed13bc3..a9ddeecfe57 100644 --- a/tests/wpt/web-platform-tests/docs/requirements.txt +++ b/tests/wpt/web-platform-tests/docs/requirements.txt @@ -1,3 +1,4 @@ -recommonmark==0.5.0 -Sphinx==1.8.5 +recommonmark==0.6.0 +# pin this to the last Py2 release +Sphinx==1.8.5 # pyup: <2.0 sphinx-argparse==0.2.5 diff --git a/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md b/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md index 39b1f3b14ab..4a86814fdf7 100644 --- a/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md +++ b/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md @@ -6,11 +6,11 @@ Currently, Android WebView support is experimental. ## Prerequisites -#### Please check [Chrome for Android](chrome_android.md) for the common instructions for Android support first. +Please check [Chrome for Android](chrome_android.md) for the common instructions for Android support first. -#### Ensure you have a userdebug or eng Android build installed on the device. +Ensure you have a userdebug or eng Android build installed on the device. -#### Install an up-to-date version of system webview shell. +Install an up-to-date version of system webview shell: 1. Go to [chromium-browser-snapshots](https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Android/) 2. Find the subdirectory with the highest number and click it, this number can be found in the "Commit Position" column of row "LAST_CHANGE" (at bottom of page). @@ -21,7 +21,7 @@ Currently, Android WebView support is experimental. * Run an emulator with [writable system partition from command line](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/android_emulator.md/) -#### If you have an issue with ChromeDriver version mismatch, try one of the following. +If you have an issue with ChromeDriver version mismatch, try one of the following: * Try removing `_venv/bin/chromedriver` such that wpt runner can install a matching version automatically. Failing that, please check your environment path and make sure that no other ChromeDriver is used. @@ -30,16 +30,16 @@ Currently, Android WebView support is experimental. ./wpt run --webdriver-binary <binary path> ... ``` -#### Configure host remap rules in the [webview commandline file](https://cs.chromium.org/chromium/src/android_webview/docs/commandline-flags.md?l=57). +Configure host remap rules in the [webview commandline file](https://cs.chromium.org/chromium/src/android_webview/docs/commandline-flags.md?l=57): ``` adb shell "echo '_ --host-resolver-rules=\"MAP nonexistent.*.test ~NOTFOUND, MAP *.test 127.0.0.1\"' > /data/local/tmp/webview-command-line" ``` -#### Ensure that `adb` can be found on your system's PATH. +Ensure that `adb` can be found on your system's PATH. ## Running Tests -#### Example command line: +Example command line: ```bash ./wpt run --test-type=testharness android_webview <TESTS> diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md index eda3ca60cb0..5883308cc66 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md @@ -452,7 +452,9 @@ is called, the two conditions above apply like normal. Dedicated and shared workers don't have an event that corresponds to the `load` event in a document. Therefore these worker tests always behave as if the -`explicit_done` property is set to true. Service workers depend on the +`explicit_done` property is set to true (unless they are defined using [the +"multi-global" pattern](testharness.html#multi-global-tests)). Service workers +depend on the [install](https://w3c.github.io/ServiceWorker/#service-worker-global-scope-install-event) event which is fired following the completion of [running the worker](https://html.spec.whatwg.org/multipage/workers.html#run-a-worker). diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md index d2ec64c834f..7d38742a740 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md @@ -178,6 +178,11 @@ be made available by the framework: self.GLOBAL.isWindow() self.GLOBAL.isWorker() +Although [the global `done` function must be explicitly invoked for most +dedicated worker tests and shared worker +tests](testharness-api.html#determining-when-all-tests-are-complete), it is +automatically invoked for tests defined using the "multi-global" pattern. + ### Specifying a test title in auto-generated boilerplate tests Use `// META: title=This is the title of the test` at the beginning of the resource. diff --git a/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html b/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html index cc118d42cf4..c41ee2e8771 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html +++ b/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html @@ -5,6 +5,7 @@ <script src=/resources/testharnessreport.js></script> <iframe src="Element-getElementsByTagName-change-document-HTMLNess-iframe.xml"></iframe> <script> + setup({ single_test: true }); onload = function() { var parent = document.createElement("div"); var child1 = document.createElementNS("http://www.w3.org/1999/xhtml", "a"); diff --git a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html index b8f11c66b7e..60ccbba721b 100644 --- a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html @@ -44,36 +44,36 @@ create_test("{{host}}:{{ports[https][0]}}", FORCED, { "site": "same-origin", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[][www]}}:{{ports[https][0]}}", FORCED, { "site": "same-site", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", FORCED, { "site": "cross-site", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{host}}:{{ports[https][0]}}", USER, { "site": "same-origin", "user": "?1", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[][www]}}:{{ports[https][0]}}", USER, { "site": "same-site", "user": "?1", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", USER, { "site": "cross-site", "user": "?1", - "mode": "nested-navigate" + "mode": "navigate" }); </script> diff --git a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html index c5469f458d3..be57362e9f0 100644 --- a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html +++ b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html @@ -68,7 +68,7 @@ assert_header_equals(e.data, { "site": "cross-site", "user": "", - "mode": "nested-navigate", + "mode": "navigate", }); t.done(); })); diff --git a/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html index ee24b5ecbb9..f9e370c67fb 100644 --- a/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html @@ -27,18 +27,18 @@ create_test("{{host}}:{{ports[https][0]}}", { "site": "same-origin", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[][www]}}:{{ports[https][0]}}", { "site": "same-site", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", { "site": "cross-site", "user": "", - "mode": "nested-navigate" + "mode": "navigate" }); </script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html new file mode 100644 index 00000000000..1666a984588 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html @@ -0,0 +1,6 @@ +<!DOCTYPE html> +<script> + const channel = new MessageChannel(); + window.parent.postMessage({ state: "port1", data: channel.port1 }, '*', [channel.port1]); + window.onmessage = () => window.parent.postMessage({ state: "port2", data: channel.port2 }, '*', [channel.port2]); +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers new file mode 100644 index 00000000000..4e798cd9f5d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-origin diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html new file mode 100644 index 00000000000..c6896762bc4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html @@ -0,0 +1,7 @@ +<!DOCTYPE html> +<script> + const channel = new MessageChannel(); + window.parent.postMessage(channel.port2, '*', [channel.port2]); + channel.port1.onmessage = e => { alert(e.data); channel.port1.postMessage("message event received") }; + channel.port1.onmessageerror = () => channel.port1.postMessage("messageerror event received"); +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers new file mode 100644 index 00000000000..4e798cd9f5d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-origin diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html deleted file mode 100644 index 98145310f61..00000000000 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html +++ /dev/null @@ -1,23 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Structured cloning of SharedArrayBuffers into windows using MessageChannel</title> -<link rel="help" href="https://html.spec.whatwg.org/multipage/#structuredserialize"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/test-incrementer.js"></script> - -<div id="log"></div> - -<script> -promise_test(t => { - return new Promise(resolve => { - const iframe = document.createElement("iframe"); - window.onmessage = t.step_func((message) => { - // data will be a MessagePort - resolve(testSharingViaIncrementerScript(t, message.data, "window", message.data, "iframe")); - }); - iframe.src = "resources/incrementer-iframe-messagechannel.html"; - document.body.appendChild(iframe); - }); -}, "postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications"); -</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html new file mode 100644 index 00000000000..16a054a52e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Structured cloning of SharedArrayBuffers into windows using MessageChannel</title> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#structuredserialize"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/test-incrementer.js"></script> +<script src="/common/get-host-info.sub.js"></script> + +<div id="log"></div> + +<script> +["same-origin", "same-site"].forEach(originOrSite => { + promise_test(t => { + return new Promise(resolve => { + const iframe = document.createElement("iframe"); + window.onmessage = t.step_func((message) => { + // data will be a MessagePort + resolve(testSharingViaIncrementerScript(t, message.data, "window", message.data, "iframe")); + }); + let url = "resources/incrementer-iframe-messagechannel.html"; + if (originOrSite === "same-site") { + url = get_host_info().HTTPS_REMOTE_ORIGIN + new URL(url, window.location).pathname; + } + iframe.src = url; + document.body.appendChild(iframe); + }); + }, `postMessaging to a ${originOrSite} iframe via MessageChannel allows them to see each others' modifications`); +}); + +promise_test(t => { + return new Promise(resolve => { + const iframe = document.createElement("iframe"); + window.onmessage = t.step_func(message => { + // data will be a MessagePort + message.data.postMessage(new SharedArrayBuffer(10)); + message.data.onmessage = t.step_func(message => { + assert_equals(message.data, "messageerror event received"); + resolve(); + }); + }); + iframe.src = get_host_info().HTTPS_NOTSAMESITE_ORIGIN + new URL("resources/iframe-messagechannel-failure.html", window.location).pathname; + document.body.append(iframe); + }); +}, "postMessaging to a cross-site iframe via MessageChannel should fail"); + +promise_test(t => { + return new Promise(resolve => { + const iframe = document.createElement("iframe"); + let port = null; + window.onmessage = t.step_func(message => { + if (message.data.state === "port1") { + port = message.data.data; + port.postMessage(new SharedArrayBuffer(10)); + message.source.postMessage("send port2", "*"); + } else if (message.data.state === "port2") { + // Note that onmessage calls start() + message.data.data.onmessage = t.step_func(message => { + assert_true(message.data instanceof SharedArrayBuffer); + assert_equals(message.data.byteLength, 10); + resolve(); + }); + message.data.data.onmessageerror = t.unreached_func(); + } + }); + iframe.src = get_host_info().HTTPS_NOTSAMESITE_ORIGIN + new URL("resources/iframe-messagechannel-complex.html", window.location).pathname; + document.body.append(iframe); + }); +}, "postMessaging with a MessageChannel that's been cross-site should succeed"); +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers index 63b60e490f4..63b60e490f4 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js Binary files differindex 0e70da4d3de..8a529e10b13 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js Binary files differindex 3f03f889398..578f7f19519 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js index 6e16cbd28c4..fb88bdda2af 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js @@ -1,2 +1,2 @@ // JavaScript file with UTF-8 BOM. -executed_utf8_bom = '三村かな子'; +window.executed_utf8_bom = '三村かな子'; diff --git a/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl b/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl index e067fdc746d..71bc46d2410 100644 --- a/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl +++ b/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl @@ -84,6 +84,11 @@ dictionary MediaCapabilitiesInfo { dictionary MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo { required MediaKeySystemAccess keySystemAccess; + MediaDecodingConfiguration configuration; +}; + +dictionary MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo { + MediaEncodingConfiguration configuration; }; [Exposed=Window] diff --git a/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html b/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html index 3dcc7788620..99bc65bd60a 100644 --- a/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html +++ b/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html @@ -92,7 +92,7 @@ function step1() { } function step2() { - assert_equals(entries.length, 4, "Has 3 total notifications because 4th element was added."); + assert_equals(entries.length, 4, "Has 4 total notifications because 4th element was added."); checkRect(entries[3].boundingClientRect, [0, 100, 300, 400], "Check 4th entry rect"); assert_equals(entries[3].target.id, 'target4', "Check 4th entry target id."); checkIsIntersecting(entries, 3, false); diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html index e6e8587cdd1..bada6281769 100644 --- a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html +++ b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html @@ -7,14 +7,13 @@ </head> <body> <script> - -assert_false(window.isSecureContext, "This test must be run in a non secure context"); -assert_false('MediaDevices' in window, "MediaDevices is not exposed"); -assert_false('MediaDeviceInfo' in window, "MediaDeviceInfo is not exposed"); -assert_false('getUserMedia' in navigator, "getUserMedia is not exposed"); -assert_false('mediaDevices' in navigator, "mediaDevices is not exposed"); - -done(); +test(function() { + assert_false(window.isSecureContext, "This test must be run in a non secure context"); + assert_false('MediaDevices' in window, "MediaDevices is not exposed"); + assert_false('MediaDeviceInfo' in window, "MediaDeviceInfo is not exposed"); + assert_false('getUserMedia' in navigator, "getUserMedia is not exposed"); + assert_false('mediaDevices' in navigator, "mediaDevices is not exposed"); +}); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html index bc06ed5840a..aa1097248dd 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html @@ -8,6 +8,8 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); + var navTiming2Attributes = [ 'connectEnd', 'connectStart', diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html index b910f453d12..5972f20e9bd 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html @@ -8,6 +8,8 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); + var navigation_frame; var pnt1; var step = 1; diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html index f39ca057695..75e6e113b6d 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html @@ -13,6 +13,8 @@ <p>This test validates that all of the window.performance.getEntriesByType("navigation") attributes remain unchanged after an in document navigation (URL fragment change).</p> <script> + setup({ single_test: true }); + var navTiming2Attributes = [ 'connectEnd', 'connectStart', diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html index c4b57581069..d0045415b89 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html @@ -8,6 +8,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); function onload_test() { diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html index 74b85c9dbb5..0f03f07c57c 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html @@ -8,6 +8,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); var reload_frame; diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html index c0dd249545a..db499c3ed34 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html @@ -9,6 +9,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/utils.js"></script> <script> + setup({ single_test: true }); function verifyTimingEventOrder(eventOrder, timingEntry) { for (let i = 0; i < eventOrder.length - 1; i++) { diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html index 1d7f6c928ce..9ec2992bef5 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html @@ -9,6 +9,7 @@ <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); function verifyTimingEventOrder(eventOrder, timingEntry) { for (let i = 0; i < eventOrder.length - 1; i++) { diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html index 06c9b7f3b67..d8acc8054d8 100644 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html +++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html @@ -9,6 +9,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/utils.js"></script> <script> + setup({ single_test: true }); function onload_test() { diff --git a/tests/wpt/web-platform-tests/preload/download-resources.html b/tests/wpt/web-platform-tests/preload/download-resources.html index 557c9656b18..4da76980357 100644 --- a/tests/wpt/web-platform-tests/preload/download-resources.html +++ b/tests/wpt/web-platform-tests/preload/download-resources.html @@ -15,7 +15,7 @@ <link rel=preload href="resources/dummy.xml" as="fetch"> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html b/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html index 7047115a1ca..418e8a63a79 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html +++ b/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html @@ -5,7 +5,7 @@ <script src="/preload/resources/preload_helper.js"></script> <link rel=stylesheet href="resources/dummy-preloads-subresource.css?link-header-on-subresource"> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html b/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html index 3ae53fed660..65c8c061ada 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html @@ -6,7 +6,7 @@ <script src="/preload/resources/preload_helper.js"></script> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; var expectation = new Array(10).fill(0); diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html index bfac5639cdc..74ea87042b4 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html @@ -5,7 +5,7 @@ <script nonce="abc" src="/preload/resources/preload_helper.js"></script> <body> <script nonce="abc"> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload.html b/tests/wpt/web-platform-tests/preload/link-header-preload.html index 4dfdfc88739..b5932a1b0aa 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload.html +++ b/tests/wpt/web-platform-tests/preload/link-header-preload.html @@ -5,7 +5,7 @@ <script src="/preload/resources/preload_helper.js"></script> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/onerror-event.html b/tests/wpt/web-platform-tests/preload/onerror-event.html index 2038e06e941..94c8dc772de 100644 --- a/tests/wpt/web-platform-tests/preload/onerror-event.html +++ b/tests/wpt/web-platform-tests/preload/onerror-event.html @@ -28,7 +28,7 @@ <link rel=preload href="non-existent/dummy.xml?empty" onerror="emptyFailed = true;"> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/onload-event.html b/tests/wpt/web-platform-tests/preload/onload-event.html index 9111cd8fc82..8825ffaaa52 100644 --- a/tests/wpt/web-platform-tests/preload/onload-event.html +++ b/tests/wpt/web-platform-tests/preload/onload-event.html @@ -28,7 +28,7 @@ <link rel=preload href="resources/dummy.xml" onload="noTypeLoaded = true;"> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/preload-with-type.html b/tests/wpt/web-platform-tests/preload/preload-with-type.html index 980592274bf..eb5675f993b 100644 --- a/tests/wpt/web-platform-tests/preload/preload-with-type.html +++ b/tests/wpt/web-platform-tests/preload/preload-with-type.html @@ -48,7 +48,7 @@ <link rel=preload href="resources/foo.vtt" as=track type="text/foobar" onload="gibberishLoaded++;"> <body> <script> - setup({explicit_done: true}); + setup({single_test: true}); var iterations = 0; diff --git a/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html b/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html index 51533ba7144..bf02fdb6362 100644 --- a/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html +++ b/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html @@ -5,6 +5,7 @@ <script src="/preload/resources/preload_helper.js"></script> <link rel=preload href="resources/square.png?pipe=trickle(d1)" as=image> <script> + setup({ single_test: true }); var link = document.getElementsByTagName("link")[0] assert_equals(link.as, "image"); link.addEventListener("load", () => { diff --git a/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html b/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html index d911d64e47c..154bc6b0442 100644 --- a/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html +++ b/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html @@ -5,7 +5,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/performance-timeline-utils.js"></script> <script> - setup({explicit_done: true}) + setup({single_test: true}) delayedLoadListener(function(){ assert_not_equals(typeof performance.getEntriesByType('navigation')[0].serverTiming, 'undefined', 'An instance of `PerformanceNavigationTiming` should have a `serverTiming` attribute.') diff --git a/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html b/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html index b1d8699cc60..a719a890972 100644 --- a/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html +++ b/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html @@ -5,7 +5,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/performance-timeline-utils.js"></script> <script> - setup({explicit_done: true}) + setup({single_test: true}) delayedLoadListener(function(){ assert_not_equals(typeof performance.getEntriesByType('resource')[0].serverTiming, 'undefined', 'An instance of `PerformanceResourceTiming` should have a `serverTiming` attribute.') diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html new file mode 100644 index 00000000000..f0dd843eef8 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<title>Service Worker: check referer of top-level script fetch</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/test-helpers.sub.js?pipe=sub"></script> +<script> +async function get_toplevel_script_headers(worker) { + worker.postMessage("getHeaders"); + return new Promise((resolve) => { + navigator.serviceWorker.onmessage = (event) => { + resolve(event.data); + }; + }); +} + +promise_test(async (t) => { + const script = "resources/test-request-headers-worker.py"; + const scope = "resources/blank.html"; + const host_info = get_host_info(); + + const registration = await service_worker_unregister_and_register( + t, script, scope); + t.add_cleanup(() => service_worker_unregister(t, scope)); + await wait_for_state(t, registration.installing, "activated"); + + const headers = await get_toplevel_script_headers(registration.active); + const expected_referer = host_info["HTTPS_ORIGIN"] + location.pathname; + assert_equals(headers["referer"], expected_referer); +}, "Referer of the top-level script fetch should be the document URL"); +</script> diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml b/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml index f892deb9072..c8795345f6b 100644 --- a/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml +++ b/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml @@ -3,7 +3,6 @@ parameters: steps: - script: | - sudo easy_install pip # `sudo pip install` is not used because some packages (e.g. tox) depend on # system packages (e.g. setuptools) which cannot be upgraded due to System # Integrity Protection, see https://stackoverflow.com/a/33004920. diff --git a/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh b/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh index e5b485dbff8..8db08794ade 100755 --- a/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh +++ b/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh @@ -16,7 +16,7 @@ test_infrastructure() { else ARGS=$1 fi - ./wpt run --log-tbpl - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts $ARGS $PRODUCT infrastructure/ + TERM=dumb ./wpt run --log-mach - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts $ARGS $PRODUCT infrastructure/ } main() { diff --git a/tests/wpt/web-platform-tests/tools/ci/jobs.py b/tests/wpt/web-platform-tests/tools/ci/jobs.py index b7ada2a5b62..3d809efa37c 100644 --- a/tests/wpt/web-platform-tests/tools/ci/jobs.py +++ b/tests/wpt/web-platform-tests/tools/ci/jobs.py @@ -32,9 +32,14 @@ job_path_map = { "tools_unittest": ["tools/"], "wptrunner_unittest": ["tools/"], "build_css": ["css/"], - "update_built": ["2dcontext/", + "update_built": ["update-built-tests\\.sh", + "2dcontext/", + "infrastructure/", "html/", - "offscreen-canvas/"], + "offscreen-canvas/", + "mimesniff/", + "css/css-ui/", + "WebIDL"], "wpt_integration": ["tools/"], "wptrunner_infrastructure": ["infrastructure/", "tools/", "resources/"], } diff --git a/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py b/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py index ad33cb532d2..8a60012d09b 100755 --- a/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py +++ b/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py @@ -56,8 +56,8 @@ def main(product, commit_range, wpt_args): logger.info("Running all tests") wpt_args += [ - "--log-tbpl-level=info", - "--log-tbpl=-", + "--log-mach-level=info", + "--log-mach=-", "-y", "--no-pause", "--no-restart-on-unexpected", @@ -70,8 +70,7 @@ def main(product, commit_range, wpt_args): command = ["python", "./wpt", "run"] + wpt_args + [product] logger.info("Executing command: %s" % " ".join(command)) - - retcode = subprocess.call(command) + retcode = subprocess.call(command, env=dict(os.environ, TERM="dumb")) if retcode != 0: sys.exit(retcode) diff --git a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt index 50c3d0d92b2..cd4ae2b2769 100644 --- a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt +++ b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt @@ -1,3 +1,3 @@ mypy==0.730 -mypy-extensions==0.4.2 +mypy-extensions==0.4.3 typed-ast==1.4.0 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst index 5fed5fcdba4..85fd97bf6c1 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst +++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst @@ -164,20 +164,24 @@ metadata files in a subdirectory of the current directory named ``meta``. Output ------ -wptrunner uses [the `mozlog` package](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html) for output. This -structures events such as test results or log messages as JSON objects -that can then be fed to other tools for interpretation. More details -about the message format are given in [the -`mozlog` documentation](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html). +wptrunner uses `the mozlog package +<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_) for +output. This structures events such as test results or log messages as +JSON objects that can then be fed to other tools for +interpretation. More details about the message format are given in +`the mozlog documentation +<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_. By default the raw JSON messages are dumped to stdout. This is convenient for piping into other tools, but not ideal for humans -reading the output. [`mozlog`](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html) comes with several other -formatters, which are accessible through command line options. The -general format of these options is ``--log-name=dest``, where ``name`` -is the name of the format and ``dest`` is a path to a destination -file, or ``-`` for stdout. The raw JSON data is written by the ``raw`` -formatter so, the default setup corresponds to ``--log-raw=-``. +reading the output. `mozlog +<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_ comes +with several other formatters, which are accessible through command +line options. The general format of these options is +``--log-name=dest``, where ``name`` is the name of the format and +``dest`` is a path to a destination file, or ``-`` for stdout. The raw +JSON data is written by the ``raw`` formatter so, the default setup +corresponds to ``--log-raw=-``. A reasonable output format for humans is provided as ``mach``. So in order to output the full raw log to a file and a human-readable diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt index dbed37ccdcd..d8a6c898d24 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt @@ -1,8 +1,8 @@ html5lib==1.0.1 mozinfo==1.1.0 -mozlog==4.2.0 +mozlog==5.0 mozdebug==0.1.1 -pillow==6.2.0 +pillow==6.2.1 urllib3[secure]==1.25.6 requests==2.22.0 six==1.12.0 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt index 2021f550f48..85efd35486d 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt @@ -5,7 +5,7 @@ mozinstall==2.0.0 mozleak==0.2 moznetwork==0.27 mozprocess==1.0.0 -mozprofile==2.3.0 -mozrunner==7.5.1 -mozversion==2.1.0 +mozprofile==2.4.0 +mozrunner==7.7.0 +mozversion==2.2.0 psutil==5.6.3 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py index 6cf784fd010..5e3e41eb55f 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py @@ -80,7 +80,6 @@ def browser_kwargs(test_type, run_info_data, config, **kwargs): "ca_certificate_path": config.ssl_config["ca_cert_path"], "e10s": kwargs["gecko_e10s"], "enable_webrender": kwargs["enable_webrender"], - "lsan_dir": kwargs["lsan_dir"], "stackfix_dir": kwargs["stackfix_dir"], "binary_args": kwargs["binary_args"], "timeout_multiplier": get_timeout_multiplier(test_type, @@ -208,7 +207,7 @@ class FirefoxBrowser(Browser): def __init__(self, logger, binary, prefs_root, test_type, extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None, certutil_binary=None, - ca_certificate_path=None, e10s=False, enable_webrender=False, lsan_dir=None, stackfix_dir=None, + ca_certificate_path=None, e10s=False, enable_webrender=False, stackfix_dir=None, binary_args=None, timeout_multiplier=None, leak_check=False, asan=False, stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", headless=None, **kwargs): Browser.__init__(self, logger) @@ -238,7 +237,6 @@ class FirefoxBrowser(Browser): self.init_timeout = self.init_timeout * timeout_multiplier self.asan = asan - self.lsan_dir = lsan_dir self.lsan_allowed = None self.lsan_max_stack_depth = None self.mozleak_allowed = None @@ -279,8 +277,7 @@ class FirefoxBrowser(Browser): env = test_environment(xrePath=os.path.dirname(self.binary), debugger=self.debug_info is not None, - log=self.logger, - lsanPath=self.lsan_dir) + useLSan=True, log=self.logger) env["STYLO_THREADS"] = str(self.stylo_threads) if self.chaos_mode_flags is not None: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py index 6a3e02b91e4..eae85b1f666 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py @@ -2,10 +2,10 @@ import os from six.moves.urllib.parse import urljoin from collections import deque -from wptmanifest.backends import static -from wptmanifest.backends.base import ManifestItem +from .wptmanifest.backends import static +from .wptmanifest.backends.base import ManifestItem -import expected +from . import expected """Manifest structure used to store expected results of a test. diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py index 46618c98cf4..d302831a57a 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py @@ -8,9 +8,9 @@ import glob import os from six.moves.urllib.parse import urlparse, urlsplit -from wptmanifest.node import DataNode -from wptmanifest.backends import conditional -from wptmanifest.backends.conditional import ManifestItem +from .wptmanifest.node import DataNode +from .wptmanifest.backends import conditional +from .wptmanifest.backends.conditional import ManifestItem class IncludeManifest(ManifestItem): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py index 83a4834d785..af9af18d907 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py @@ -5,16 +5,16 @@ from collections import namedtuple, defaultdict, deque from math import ceil from six import iterkeys, itervalues, iteritems -from wptmanifest import serialize -from wptmanifest.node import (DataNode, ConditionalNode, BinaryExpressionNode, +from .wptmanifest import serialize +from .wptmanifest.node import (DataNode, ConditionalNode, BinaryExpressionNode, BinaryOperatorNode, NumberNode, StringNode, VariableNode, ValueNode, UnaryExpressionNode, UnaryOperatorNode, ListNode) -from wptmanifest.backends import conditional -from wptmanifest.backends.conditional import ManifestItem +from .wptmanifest.backends import conditional +from .wptmanifest.backends.conditional import ManifestItem -import expected -import expectedtree +from . import expected +from . import expectedtree """Manifest structure used to update the expected results of a test diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py index 3fc0f6d6b53..923bdaa5585 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py @@ -263,8 +263,6 @@ scheme host and port.""") help="Disable the WebRender compositor in Gecko.") gecko_group.add_argument("--stackfix-dir", dest="stackfix_dir", action="store", help="Path to directory containing assertion stack fixing scripts") - gecko_group.add_argument("--lsan-dir", dest="lsan_dir", action="store", - help="Path to directory containing LSAN suppressions file") gecko_group.add_argument("--setpref", dest="extra_prefs", action='append', default=[], metavar="PREF=VALUE", help="Defines an extra user preference (overrides those in prefs_root)") @@ -549,9 +547,6 @@ def check_args(kwargs): if kwargs["reftest_internal"] is None: kwargs["reftest_internal"] = True - if kwargs["lsan_dir"] is None: - kwargs["lsan_dir"] = kwargs["prefs_root"] - if kwargs["reftest_screenshot"] is None: kwargs["reftest_screenshot"] = "unexpected" @@ -580,7 +575,7 @@ def check_args_update(kwargs): def create_parser_update(product_choices=None): from mozlog.structured import commandline - import products + from . import products if product_choices is None: config_data = config.load() diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py index 88b51d0fd6a..7dfd86e99c9 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py @@ -121,13 +121,15 @@ def list_tests(test_paths, product, **kwargs): def get_pause_after_test(test_loader, **kwargs): - total_tests = sum(len(item) for item in test_loader.tests.itervalues()) if kwargs["pause_after_test"] is None: if kwargs["repeat_until_unexpected"]: return False if kwargs["headless"]: return False - if kwargs["repeat"] == 1 and kwargs["rerun"] == 1 and total_tests == 1: + tests = test_loader.tests + is_single_testharness = (sum(len(item) for item in tests.itervalues()) == 1 and + len(tests.get("testharness", [])) == 1) + if kwargs["repeat"] == 1 and kwargs["rerun"] == 1 and is_single_testharness: return True return False return kwargs["pause_after_test"] diff --git a/tests/wpt/web-platform-tests/update-built-tests.sh b/tests/wpt/web-platform-tests/update-built-tests.sh index 1a33154898d..a45058c18f8 100755 --- a/tests/wpt/web-platform-tests/update-built-tests.sh +++ b/tests/wpt/web-platform-tests/update-built-tests.sh @@ -7,4 +7,4 @@ html/tools/build.sh offscreen-canvas/tools/build.sh python mimesniff/mime-types/resources/generated-mime-types.py python3 css/css-ui/tools/appearance-build-webkit-reftests.py -python3 WebIDL/generate-setlike.py +python3 WebIDL/tools/generate-setlike.py diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html index 20ee27fbc2f..3b9e57314d6 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html @@ -7,7 +7,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> - + setup({ single_test: true }); var ac = new AudioContext(); var analyser = ac.createAnalyser(); var constant = ac.createConstantSource(); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html index 70f73e29b1f..43d56b8990e 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html @@ -8,6 +8,8 @@ <script src="/resources/testharnessreport.js"></script> <script src="/webaudio/js/helpers.js"></script> <script> +setup({ single_test: true }); + var gTest = { length: 2048, numberOfChannels: 1, diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html index 04fe4809645..904b14bede5 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html @@ -6,6 +6,8 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> + setup({ single_test: true }); + var context = new AudioContext(); var gain = context.createGain(); diff --git a/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html b/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html index 4fc2c4e2dd9..426a3d27000 100644 --- a/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html +++ b/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html @@ -5,6 +5,8 @@ <iframe src="../without-ports/020-1.html"></iframe> <div id="log"></div> <script> +setup({ single_test: true }); + var iframe = document.createElement('iframe'); var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, ''); var url = url_prefix + '/without-ports/020-1.html'; diff --git a/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html b/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html index 37a0767fee0..2801d45a44a 100644 --- a/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html +++ b/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html @@ -5,6 +5,8 @@ <iframe src="../without-ports/020-1.html"></iframe> <div id="log"></div> <script> +setup({ single_test: true }); + var iframe = document.createElement('iframe'); var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, ''); var url = url_prefix + '/without-ports/020-1.html'; diff --git a/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html b/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html index e35a1128a0d..61bfddb901f 100644 --- a/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html +++ b/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html @@ -5,6 +5,8 @@ <iframe src="../without-ports/020-1.html"></iframe> <div id="log"></div> <script> +setup({ single_test: true }); + var iframe = document.createElement('iframe'); var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, ''); var url = url_prefix + '/without-ports/020-1.html'; diff --git a/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html b/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html index b240fa0cad5..5072508d9c6 100644 --- a/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html +++ b/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html @@ -5,6 +5,8 @@ <iframe src="../without-ports/020-1.html"></iframe> <div id="log"></div> <script> +setup({ single_test: true }); + var iframe = document.createElement('iframe'); var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, ''); var url = url_prefix + '/without-ports/020-1.html'; diff --git a/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm b/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm index 258eed05bf8..e1a11f4f8fe 100644 --- a/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm +++ b/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm @@ -6,6 +6,8 @@ <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> +setup({ single_test: true }); + var counter = 0 function maybeDone() { if(counter) { diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html index eb8e69c2b05..0905d07661d 100644 --- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html +++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html @@ -4,6 +4,8 @@ <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> +setup({ single_test: true }); + var worker = new Worker('incoming-message.js'); worker.onmessage = function(e) { assert_unreached("Got message"); diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html index 690f067cffc..2f0ba176d49 100644 --- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html +++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html @@ -4,6 +4,8 @@ <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> +setup({ single_test: true }); + var worker = new Worker('setInterval.js'); worker.onmessage = function(e) { assert_unreached("Got message"); diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html index 777a03c013d..2bddc0947f6 100644 --- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html +++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html @@ -4,6 +4,8 @@ <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> +setup({ single_test: true }); + var worker = new Worker('setTimeout.js'); worker.onmessage = function(e) { assert_unreached("Got message"); diff --git a/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html b/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html index 82cf46aec4c..552cc8a6334 100644 --- a/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html +++ b/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html @@ -5,6 +5,8 @@ <script src="/resources/testharnessreport.js"></script> <div id=log></div> <script> +setup({ single_test: true }); + var i = 0; var load_count = 0; diff --git a/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html b/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html index 95cd9aff47d..f31c2590e58 100644 --- a/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html +++ b/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html @@ -8,6 +8,7 @@ <script src="/resources/testharnessreport.js"></script> <div id=log></div> <script> +setup({ single_test: true }); var date; var newDate; </script> diff --git a/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html b/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html index cf7fd466492..1914d66db74 100644 --- a/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html +++ b/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html @@ -10,6 +10,7 @@ <script> "use strict"; +setup({ single_test: true }); const name = "my name"; |