diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-01-16 22:50:02 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-16 22:50:02 -0500 |
commit | c558db97372ce4bafe2bd74a0b42bbfedff752bd (patch) | |
tree | a512afc705de1ef32c8393cb96071039f3487371 | |
parent | 7c043f1bd850790870c23854e5c801c8e04199b1 (diff) | |
parent | 2966715d10282c885f42b6399f20de47399c2fdd (diff) | |
download | servo-c558db97372ce4bafe2bd74a0b42bbfedff752bd.tar.gz servo-c558db97372ce4bafe2bd74a0b42bbfedff752bd.zip |
Auto merge of #22711 - servo-wpt-sync:wpt_update_16-01-2019, r=jdm
Sync WPT with upstream (16-01-2019)
Automated downstream sync of changes from upstream as of 16-01-2019.
[no-wpt-sync]
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22711)
<!-- Reviewable:end -->
71 files changed, 893 insertions, 241 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b398963ae..dd4ffcf4345 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -1,5 +1,4 @@ [url-in-tags-revoke.window.html] - expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL @@ -15,6 +14,3 @@ [Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.] expected: FAIL - [Fetching a blob URL immediately before revoking it works in <script> tags.] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 38a655726e3..ce6ea9398db 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -12709,6 +12709,12 @@ {} ] ], + "html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html": [ + [ + "/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html", + {} + ] + ], "html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-direction-down-manual.html": [ [ "/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-direction-down-manual.html", @@ -113293,6 +113299,18 @@ {} ] ], + "css/css-display/display-inline-dynamic-001.html": [ + [ + "/css/css-display/display-inline-dynamic-001.html", + [ + [ + "/css/css-display/display-inline-dynamic-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-display/run-in/counter-increment-applies-to-011.xht": [ [ "/css/css-display/run-in/counter-increment-applies-to-011.xht", @@ -204250,26 +204268,6 @@ {} ] ], - "async-local-storage/META.yml": [ - [ - {} - ] - ], - "async-local-storage/helpers/als-tests.js": [ - [ - {} - ] - ], - "async-local-storage/helpers/class-assert.js": [ - [ - {} - ] - ], - "async-local-storage/helpers/equality-asserters.js": [ - [ - {} - ] - ], "audio-output/META.yml": [ [ {} @@ -254910,6 +254908,11 @@ {} ] ], + "css/css-display/display-inline-dynamic-001-ref.html": [ + [ + {} + ] + ], "css/css-display/run-in/META.yml": [ [ {} @@ -301315,6 +301318,26 @@ {} ] ], + "kv-storage/META.yml": [ + [ + {} + ] + ], + "kv-storage/helpers/class-assert.js": [ + [ + {} + ] + ], + "kv-storage/helpers/equality-asserters.js": [ + [ + {} + ] + ], + "kv-storage/helpers/kvs-tests.js": [ + [ + {} + ] + ], "lifecycle/META.yml": [ [ {} @@ -307220,6 +307243,11 @@ {} ] ], + "resource-timing/resources/blank_page_green.htm.headers": [ + [ + {} + ] + ], "resource-timing/resources/blue.png": [ [ {} @@ -311925,6 +311953,11 @@ {} ] ], + "service-workers/service-worker/resources/xhr-iframe.html": [ + [ + {} + ] + ], "service-workers/service-worker/resources/xsl-base-url-iframe.xml": [ [ {} @@ -319375,6 +319408,11 @@ {} ] ], + "tools/wptrunner/requirements_epiphany.txt": [ + [ + {} + ] + ], "tools/wptrunner/requirements_firefox.txt": [ [ {} @@ -319595,6 +319633,11 @@ {} ] ], + "tools/wptrunner/wptrunner/browsers/epiphany.py": [ + [ + {} + ] + ], "tools/wptrunner/wptrunner/browsers/fennec.py": [ [ {} @@ -334942,48 +334985,6 @@ {} ] ], - "async-local-storage/api-surface.tentative.https.html": [ - [ - "/async-local-storage/api-surface.tentative.https.html", - {} - ] - ], - "async-local-storage/key-types.tentative.https.html": [ - [ - "/async-local-storage/key-types.tentative.https.html", - {} - ] - ], - "async-local-storage/non-secure-context-dynamic-import.tentative.html": [ - [ - "/async-local-storage/non-secure-context-dynamic-import.tentative.html", - {} - ] - ], - "async-local-storage/non-secure-context-import-statement.tentative.html": [ - [ - "/async-local-storage/non-secure-context-import-statement.tentative.html", - {} - ] - ], - "async-local-storage/non-secure-context-script-element.tentative.html": [ - [ - "/async-local-storage/non-secure-context-script-element.tentative.html", - {} - ] - ], - "async-local-storage/storage-smoke-test.tentative.https.html": [ - [ - "/async-local-storage/storage-smoke-test.tentative.https.html", - {} - ] - ], - "async-local-storage/undefined-value.https.html": [ - [ - "/async-local-storage/undefined-value.https.html", - {} - ] - ], "audio-output/idlharness.https.window.js": [ [ "/audio-output/idlharness.https.window.html", @@ -345956,6 +345957,12 @@ {} ] ], + "css/css-shadow-parts/interaction-with-tree-abiding.html": [ + [ + "/css/css-shadow-parts/interaction-with-tree-abiding.html", + {} + ] + ], "css/css-shadow-parts/invalidation-change-exportparts-forward.html": [ [ "/css/css-shadow-parts/invalidation-change-exportparts-forward.html", @@ -382482,6 +382489,48 @@ {} ] ], + "kv-storage/api-surface.https.html": [ + [ + "/kv-storage/api-surface.https.html", + {} + ] + ], + "kv-storage/key-types.https.html": [ + [ + "/kv-storage/key-types.https.html", + {} + ] + ], + "kv-storage/non-secure-context-dynamic-import.html": [ + [ + "/kv-storage/non-secure-context-dynamic-import.html", + {} + ] + ], + "kv-storage/non-secure-context-import-statement.html": [ + [ + "/kv-storage/non-secure-context-import-statement.html", + {} + ] + ], + "kv-storage/non-secure-context-script-element.html": [ + [ + "/kv-storage/non-secure-context-script-element.html", + {} + ] + ], + "kv-storage/storage-smoke-test.https.html": [ + [ + "/kv-storage/storage-smoke-test.https.html", + {} + ] + ], + "kv-storage/undefined-value.https.html": [ + [ + "/kv-storage/undefined-value.https.html", + {} + ] + ], "lifecycle/freeze.html": [ [ "/lifecycle/freeze.html", @@ -407676,6 +407725,12 @@ {} ] ], + "resource-timing/redirects.sub.html": [ + [ + "/resource-timing/redirects.sub.html", + {} + ] + ], "resource-timing/resource-timing-level1.sub.html": [ [ "/resource-timing/resource-timing-level1.sub.html", @@ -407810,12 +407865,6 @@ {} ] ], - "resource-timing/resource_redirects.html": [ - [ - "/resource-timing/resource_redirects.html", - {} - ] - ], "resource-timing/resource_reparenting.html": [ [ "/resource-timing/resource_reparenting.html", @@ -409886,6 +409935,12 @@ {} ] ], + "service-workers/service-worker/xhr-response-url.https.html": [ + [ + "/service-workers/service-worker/xhr-response-url.https.html", + {} + ] + ], "service-workers/service-worker/xsl-base-url.https.html": [ [ "/service-workers/service-worker/xsl-base-url.https.html", @@ -410660,6 +410715,12 @@ {} ] ], + "storage/estimate-usage-details-service-workers.https.tentative.window.js": [ + [ + "/storage/estimate-usage-details-service-workers.https.tentative.window.html", + {} + ] + ], "storage/idlharness.https.any.js": [ [ "/storage/idlharness.https.any.html", @@ -416264,6 +416325,12 @@ {} ] ], + "webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html": [ + [ + "/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html", + {} + ] + ], "webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html": [ [ "/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html", @@ -455531,50 +455598,6 @@ "55e8b9871e794c944f329e0e9df6ec140124c660", "testharness" ], - "async-local-storage/META.yml": [ - "1bbe9e5ac609aa33914ad79d4af7cb2fdf45b9c7", - "support" - ], - "async-local-storage/api-surface.tentative.https.html": [ - "927871a8961c44bd8adfee1b82aadc9f514962a7", - "testharness" - ], - "async-local-storage/helpers/als-tests.js": [ - "28087abf811dacda1ca00d81fe1306f97dde88ef", - "support" - ], - "async-local-storage/helpers/class-assert.js": [ - "31b25cab9f2d88d8df59a0b4ecb35eef3765e380", - "support" - ], - "async-local-storage/helpers/equality-asserters.js": [ - "ad4623c179d75c8d4ce8b1fa8503f943bf6a7c77", - "support" - ], - "async-local-storage/key-types.tentative.https.html": [ - "c3985b7711f77818260f08635d35ce3da553178b", - "testharness" - ], - "async-local-storage/non-secure-context-dynamic-import.tentative.html": [ - "9270f6c82fa2018d1d6c3a199cbe5f6ca2403b56", - "testharness" - ], - "async-local-storage/non-secure-context-import-statement.tentative.html": [ - "879729696dbb6a767530d77fbd94af0b42afe6b4", - "testharness" - ], - "async-local-storage/non-secure-context-script-element.tentative.html": [ - "feeddafc8daa02556eb0c5fe068dbde1d45642da", - "testharness" - ], - "async-local-storage/storage-smoke-test.tentative.https.html": [ - "f978480ff2b80ba5f892c2a2c429e882d655574d", - "testharness" - ], - "async-local-storage/undefined-value.https.html": [ - "c76c32f950704e42c06d498c4c8614dfbabb2aae", - "testharness" - ], "audio-output/META.yml": [ "b6a7d4d06259117af8fb843f6a8d252bac01a8f3", "support" @@ -540940,7 +540963,7 @@ "reftest" ], "css/css-backgrounds/background-image-first-line.html": [ - "c8dee7050b6241279d5f462263b9fdead50004fc", + "206ff68d17360ee30768651eaab874f0a6c2996e", "reftest" ], "css/css-backgrounds/background-image-none-gradient-repaint.html": [ @@ -547323,6 +547346,14 @@ "3d1dcb020df129dd10d66bb4b04d62c3c280cfb6", "reftest" ], + "css/css-display/display-inline-dynamic-001-ref.html": [ + "8b5f5015f9ebc818cbf48666773440a359e1d740", + "support" + ], + "css/css-display/display-inline-dynamic-001.html": [ + "7df697f940d4a20d26c92fa40266ed1f67d4cd19", + "reftest" + ], "css/css-display/display-list-item-height-after-dom-change.html": [ "f8d6e85cee2325f3ae51a950a276430d26c04189", "testharness" @@ -569935,6 +569966,10 @@ "2dfd4b0510a758c73bf8ac8291088d39077578d7", "testharness" ], + "css/css-shadow-parts/interaction-with-tree-abiding.html": [ + "c11da7d12dea91306b79d141613ad6563dffb18f", + "testharness" + ], "css/css-shadow-parts/invalidation-change-exportparts-forward.html": [ "1e319deb633cdb765ea4613eb7c2b8c6dd0e615a", "testharness" @@ -625171,6 +625206,10 @@ "c8bdaafdb89555c6708f0d84c3d41e437840be5b", "testharness" ], + "html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html": [ + "73a3ff667ea8a450cf737890f44d2bfdbb848e98", + "manual" + ], "html/editing/the-hidden-attribute/hidden-1-ref.html": [ "7346ce919d210a740104ca5e82264bed8377c2d0", "support" @@ -637679,6 +637718,50 @@ "5a4beba7e45830e72c28d460495e977a64a8bc7a", "support" ], + "kv-storage/META.yml": [ + "bf4a1e6e8b44bc78cf7a624a12b254cbac2f25a5", + "support" + ], + "kv-storage/api-surface.https.html": [ + "65452f55be044aa5ec722da26717f527ee81a4e3", + "testharness" + ], + "kv-storage/helpers/class-assert.js": [ + "31b25cab9f2d88d8df59a0b4ecb35eef3765e380", + "support" + ], + "kv-storage/helpers/equality-asserters.js": [ + "ad4623c179d75c8d4ce8b1fa8503f943bf6a7c77", + "support" + ], + "kv-storage/helpers/kvs-tests.js": [ + "0ffe71fad780f599a11d915d3b3512c95844f7bd", + "support" + ], + "kv-storage/key-types.https.html": [ + "0dc930258f8b554c6cae4398df3dba930dcdf03c", + "testharness" + ], + "kv-storage/non-secure-context-dynamic-import.html": [ + "6ccbf84ba1dc6acd4931da279c887635b7f8a771", + "testharness" + ], + "kv-storage/non-secure-context-import-statement.html": [ + "fda02aadf14fcb9be859c091df3a2ac1d2c56994", + "testharness" + ], + "kv-storage/non-secure-context-script-element.html": [ + "66802b1254eda87e1a966d6f835676ecba942cbe", + "testharness" + ], + "kv-storage/storage-smoke-test.https.html": [ + "df6fd8c8181f579df03972d25fe9a91b2354380f", + "testharness" + ], + "kv-storage/undefined-value.https.html": [ + "89da5d5c44f353bc1f5f93eaeaf3acd89eee386c", + "testharness" + ], "lifecycle/META.yml": [ "c1fcbca4c1f8366da1dd9eb91bc9427edeef1153", "support" @@ -637852,7 +637935,7 @@ "testharness" ], "mathml/META.yml": [ - "6b347c12d8978156737257ff90b89cc27ab69847", + "a410f582f0a9b006946e8d9c46e1e0a2b5acea43", "support" ], "mathml/README.md": [ @@ -650236,7 +650319,7 @@ "support" ], "portals/portal-activate-event.html": [ - "ed5602667bb9c898291d81ab2171b99137827a87", + "ac1505d2a5b2fe1df083eae75893483e025a2ad7", "testharness" ], "portals/portals-host-null.html": [ @@ -650256,11 +650339,11 @@ "support" ], "portals/resources/portal-activate-event-portal.html": [ - "d0eebcd12e65193024f6444af922b7503e76d8ec", + "b2759c3701aaba4f5887a8b90bf4ee30e8153661", "support" ], "portals/resources/portal-activate-event-window.html": [ - "1994dc3fad11e8b3ad9e8dc71f4aa96f06baa389", + "cf09caebc0ff9ac38facde84075a7af5be19fd48", "support" ], "portals/resources/portals-rendering-portal.html": [ @@ -659987,6 +660070,10 @@ "63f9e06e19083a6d956af0d5916455cd7e91b89c", "testharness" ], + "resource-timing/redirects.sub.html": [ + "0e3f405e14b7af9f0b2a4fe5ce916ed1e47534de", + "testharness" + ], "resource-timing/resource-timing-level1.js": [ "95b5cdfb1ed0ca2bbfd6b692ad565512218dd7a4", "support" @@ -660079,10 +660166,6 @@ "89b5874978c97cd25e31da263d07c9f91c69bbfa", "testharness" ], - "resource-timing/resource_redirects.html": [ - "606662afda4401dd0dccbac2b71b66f3b1961e6f", - "testharness" - ], "resource-timing/resource_reparenting.html": [ "7d4947fa7703d13a5adb465ff5eebbb4456cace9", "testharness" @@ -660135,6 +660218,10 @@ "b8a1947b77e25ac6b0d100c75932e8c0a67d846f", "support" ], + "resource-timing/resources/blank_page_green.htm.headers": [ + "cb762eff806849df46dc758ef7b98b63f27f54c9", + "support" + ], "resource-timing/resources/blue.png": [ "820f8cace2143bfc45c0c301e84b6c29b8630068", "support" @@ -664987,6 +665074,10 @@ "e388e461448f64d37d747b26830f4e869a2c6528", "support" ], + "service-workers/service-worker/resources/xhr-iframe.html": [ + "bfdfac69712b3e10526e1f059d2638b1fab06eeb", + "support" + ], "service-workers/service-worker/resources/xsl-base-url-iframe.xml": [ "065a07acb284821dde1cbea8680781a524f21bc2", "support" @@ -665171,6 +665262,10 @@ "f9ba656b5178359f2c7b6e2419a57ff12ec79d23", "testharness" ], + "service-workers/service-worker/xhr-response-url.https.html": [ + "9f00cdd183052568ed7c6933f28f7859739e926c", + "testharness" + ], "service-workers/service-worker/xsl-base-url.https.html": [ "1d3c36408a66a7785b884c9cdc39dcd2820f9af0", "testharness" @@ -666119,6 +666214,10 @@ "c854d5b8848638d11563a48348e7c3393ff58459", "testharness" ], + "storage/estimate-usage-details-service-workers.https.tentative.window.js": [ + "cf3a2aa9430d480df4fc7ff2487e7a42d5c15699", + "testharness" + ], "storage/helpers.js": [ "fbc746a30b6dfa6d00fc2db747c78ec09a7beefc", "support" @@ -670864,7 +670963,7 @@ "support" ], "tools/manifest/tests/test_manifest.py": [ - "010a0c0a00a176bdabb561cc2a141aa0d1bbf139", + "8f649f1d098927b62bbf4c12ecade944ac081eee", "support" ], "tools/manifest/tests/test_sourcefile.py": [ @@ -675268,7 +675367,7 @@ "support" ], "tools/tox.ini": [ - "fc66c6c2ac39ce66b915af90a610d420e1278d7a", + "3b0c6d172bc02e8df5fed5a08cd354416eff50dd", "support" ], "tools/webdriver/.gitignore": [ @@ -675308,7 +675407,7 @@ "support" ], "tools/wpt/browser.py": [ - "71d1e61918a86e8d8f0a9faca96c6f1ceade6d31", + "ea8cc04f7d49eb2dd4691c0d7ce012ffb1ade5be", "support" ], "tools/wpt/commands.json": [ @@ -675336,7 +675435,7 @@ "support" ], "tools/wpt/run.py": [ - "44cf3137d41338a7e57e29ae998859b4bc42a82b", + "633d6b254db289f50b77e4c7f589b888caa2b566", "support" ], "tools/wpt/testfiles.py": [ @@ -675443,6 +675542,10 @@ "497cad357398149ade1851079ac5380520932f88", "support" ], + "tools/wptrunner/requirements_epiphany.txt": [ + "9115b7ac4e8f6a6e4703a7b61d2715075e2f6053", + "support" + ], "tools/wptrunner/requirements_firefox.txt": [ "9e6f6b51ad7bf39181811789f0372a6b085d4c7f", "support" @@ -675596,7 +675699,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/__init__.py": [ - "f86792d47410f8f574843c13ed86262bdbfafb21", + "fdedda44d28dcdd079b059864d9fafc992eff8c0", "support" ], "tools/wptrunner/wptrunner/browsers/base.py": [ @@ -675619,6 +675722,10 @@ "c2545de46f0b5def00c273ecfb5a57f0d4029531", "support" ], + "tools/wptrunner/wptrunner/browsers/epiphany.py": [ + "599ec9f3110f89f5d64effe98130ede930f1fb7c", + "support" + ], "tools/wptrunner/wptrunner/browsers/fennec.py": [ "b8e4ebc4aeb9574652ec7dcd83dd0eca6b78aa94", "support" @@ -679887,6 +679994,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html": [ + "b5555b0137af4c1c8f6c5578de4bc9c5eedfe405", + "testharness" + ], "webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html": [ "517d64f3dbb69e610a5ed17475c45f530f749a42", "testharness" diff --git a/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini b/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini new file mode 100644 index 00000000000..86715ffc9c2 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini @@ -0,0 +1,2 @@ +[floats-in-table-caption-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/positioning/abspos-float-with-inline-container.html.ini b/tests/wpt/metadata/css/CSS2/positioning/abspos-float-with-inline-container.html.ini index 7203ab0404c..3f98bb1fa20 100644 --- a/tests/wpt/metadata/css/CSS2/positioning/abspos-float-with-inline-container.html.ini +++ b/tests/wpt/metadata/css/CSS2/positioning/abspos-float-with-inline-container.html.ini @@ -1,2 +1,2 @@ [abspos-float-with-inline-container.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini b/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini deleted file mode 100644 index b1d1b14db72..00000000000 --- a/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-002.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini b/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini deleted file mode 100644 index 3d28990c283..00000000000 --- a/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-height-204.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini deleted file mode 100644 index fb5b6fd0006..00000000000 --- a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[mix-blend-mode-paragraph.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini b/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini deleted file mode 100644 index f20284a5396..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-repeat-round-roundup.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini index 433740c044f..15af52c70e3 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -329,3 +329,9 @@ [Matching font-weight: '430' should prefer '500' over '400 425'] expected: FAIL + [Matching font-style: 'oblique 20deg' should prefer 'oblique 10deg' over 'italic'] + expected: FAIL + + [Matching font-style: 'oblique 21deg' should prefer 'oblique 40deg 50deg' over 'oblique 20deg'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini index 94b74b8dd02..9e36490490f 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini @@ -38,3 +38,6 @@ [Test @font-face matching for weight 420] expected: FAIL + [Test @font-face matching for weight 500] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini new file mode 100644 index 00000000000..693999d7f9d --- /dev/null +++ b/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini @@ -0,0 +1,2 @@ +[line-break-normal-018.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini new file mode 100644 index 00000000000..bd79bd226f9 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini @@ -0,0 +1,2 @@ +[line-break-strict-018.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini new file mode 100644 index 00000000000..ded993140eb --- /dev/null +++ b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini @@ -0,0 +1,2 @@ +[text-transform-full-size-kana-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini new file mode 100644 index 00000000000..047905d059b --- /dev/null +++ b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini @@ -0,0 +1,2 @@ +[text-transform-full-size-kana-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini new file mode 100644 index 00000000000..7e9e3e15a50 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini @@ -0,0 +1,2 @@ +[text-transform-full-size-kana-003.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini new file mode 100644 index 00000000000..f90c86d0e3d --- /dev/null +++ b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini @@ -0,0 +1,2 @@ +[text-transform-full-size-kana-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini b/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini new file mode 100644 index 00000000000..240d1283c3a --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini @@ -0,0 +1,2 @@ +[trailing-ideographic-space-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini deleted file mode 100644 index 3a512b4a124..00000000000 --- a/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[word-break-keep-all-006.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini index 86ce5d7e7f6..8850ec200da 100644 --- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini +++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini @@ -74,6 +74,3 @@ [opacity end] expected: FAIL - [border-top-width end] - expected: FAIL - diff --git a/tests/wpt/metadata/custom-elements/parser/parser-sets-attributes-and-children.html.ini b/tests/wpt/metadata/custom-elements/parser/parser-sets-attributes-and-children.html.ini index b6001e8bba9..b49624917df 100644 --- a/tests/wpt/metadata/custom-elements/parser/parser-sets-attributes-and-children.html.ini +++ b/tests/wpt/metadata/custom-elements/parser/parser-sets-attributes-and-children.html.ini @@ -1,2 +1,2 @@ [parser-sets-attributes-and-children.html] - expected: CRASH + expected: TIMEOUT diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index 1a3993cb103..b935b9c9501 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -2,7 +2,7 @@ type: testharness [single-byte-decoder.html?document] - expected: CRASH + expected: TIMEOUT [ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)] expected: FAIL @@ -32,7 +32,7 @@ [single-byte-decoder.html?XMLHttpRequest] - expected: CRASH + expected: TIMEOUT [ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)] expected: FAIL @@ -55,12 +55,9 @@ expected: FAIL [windows-1252: iso_8859-1:1987 (XMLHttpRequest)] - expected: FAIL - - [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT - [windows-1258: cp1258 (XMLHttpRequest)] + [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT [windows-1256: cp1256 (XMLHttpRequest)] @@ -96,9 +93,6 @@ [windows-1255: x-cp1255 (XMLHttpRequest)] expected: TIMEOUT - [windows-1257: x-cp1257 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1253: windows-1253 (XMLHttpRequest)] expected: TIMEOUT @@ -123,12 +117,6 @@ [windows-1255: windows-1255 (XMLHttpRequest)] expected: TIMEOUT - [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)] - expected: TIMEOUT - - [windows-1256: windows-1256 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1256: x-cp1256 (XMLHttpRequest)] expected: TIMEOUT @@ -141,21 +129,12 @@ [windows-1254: cp1254 (XMLHttpRequest)] expected: TIMEOUT - [windows-1252: iso88591 (XMLHttpRequest)] - expected: TIMEOUT - - [windows-1252: iso_8859-1 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1252: latin1 (XMLHttpRequest)] expected: TIMEOUT [windows-1253: cp1253 (XMLHttpRequest)] expected: TIMEOUT - [windows-1252: iso8859-1 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1252: x-cp1252 (XMLHttpRequest)] expected: TIMEOUT @@ -165,10 +144,10 @@ [windows-1252: windows-1252 (XMLHttpRequest)] expected: TIMEOUT - [windows-1252: iso-ir-100 (XMLHttpRequest)] + [windows-1252: us-ascii (XMLHttpRequest)] expected: TIMEOUT - [windows-1252: us-ascii (XMLHttpRequest)] + [windows-1252: iso-8859-1 (XMLHttpRequest)] expected: TIMEOUT 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 18f786d4963..ea271a945eb 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,3 +312,15 @@ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html */*] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + 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_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini index dc2e45516de..385376c7321 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_5.html] +[traverse_the_history_4.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini index 4886d2227be..3352221fdd7 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -4,7 +4,7 @@ expected: FAIL [picture: source (max-width:500px) valid image, img valid image, resize to wide] - expected: TIMEOUT + expected: FAIL [picture: source (max-width:500px) valid image, img broken image, resize to narrow] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini deleted file mode 100644 index 8cc42056d34..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini +++ /dev/null @@ -1,10 +0,0 @@ -[non-active-document.html] - [DOMParser] - expected: FAIL - - [createHTMLDocument] - expected: FAIL - - [<template>] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini new file mode 100644 index 00000000000..9e522297c94 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini @@ -0,0 +1,7 @@ +[toggleEvent.html] + [Calling open twice on 'details' fires only one toggle event] + expected: FAIL + + [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] + expected: FAIL + diff --git a/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html.ini b/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html.ini index 6c08b446ac6..b6e408b9b86 100644 --- a/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html.ini +++ b/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/offscreencanvas.commit.w.html.ini @@ -1,4 +1,5 @@ [offscreencanvas.commit.w.html] + expected: ERROR [Test that calling OffscreenCanvas's commit pushes its contents to its placeholder.] expected: FAIL diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini index 7725b118e9d..99a24216c88 100644 --- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini @@ -12,6 +12,3 @@ [Verifies the resolution of entry.startTime is at least 5 microseconds.] expected: TIMEOUT - [Verifies the resolution of performance.now() is at least 5 microseconds.] - expected: FAIL - diff --git a/tests/wpt/metadata/resource-timing/redirects.sub.html.ini b/tests/wpt/metadata/resource-timing/redirects.sub.html.ini new file mode 100644 index 00000000000..be00d330226 --- /dev/null +++ b/tests/wpt/metadata/resource-timing/redirects.sub.html.ini @@ -0,0 +1,4 @@ +[redirects.sub.html] + [Testing resource entries] + expected: FAIL + diff --git a/tests/wpt/metadata/resource-timing/resource_timing_buffer_full_eventually.html.ini b/tests/wpt/metadata/resource-timing/resource_timing_buffer_full_eventually.html.ini deleted file mode 100644 index 0a73b6ac31c..00000000000 --- a/tests/wpt/metadata/resource-timing/resource_timing_buffer_full_eventually.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[resource_timing_buffer_full_eventually.html] - expected: CRASH 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/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini new file mode 100644 index 00000000000..6c0e19ae401 --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html.ini @@ -0,0 +1,2 @@ +[audioparam-close.html] + expected: ERROR diff --git a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini index bf2a1d61bab..bfd4d6dd2d6 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini @@ -1,4 +1,5 @@ [import-in-moduleworker.html] + expected: ERROR [Base URL in module dedicated workers: import] expected: FAIL diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini index 333edb3a26e..650c91da4a6 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini @@ -1,4 +1,5 @@ [sharedworker-in-worker.html] + expected: ERROR [Base URL in workers: new SharedWorker()] expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini new file mode 100644 index 00000000000..dbea4f293ad --- /dev/null +++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini @@ -0,0 +1,2 @@ +[transition_calc_implicit.html] + expected: TIMEOUT diff --git a/tests/wpt/mozilla/meta/mozilla/scroll_root.html.ini b/tests/wpt/mozilla/meta/mozilla/scroll_root.html.ini deleted file mode 100644 index ef9d00edd6e..00000000000 --- a/tests/wpt/mozilla/meta/mozilla/scroll_root.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[scroll_root.html] - expected: FAIL diff --git a/tests/wpt/web-platform-tests/async-local-storage/META.yml b/tests/wpt/web-platform-tests/async-local-storage/META.yml deleted file mode 100644 index 1bbe9e5ac60..00000000000 --- a/tests/wpt/web-platform-tests/async-local-storage/META.yml +++ /dev/null @@ -1,3 +0,0 @@ -spec: https://domenic.github.io/async-local-storage/ -suggested_reviewers: - - domenic diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-first-line.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-first-line.html index c8dee7050b6..206ff68d173 100644 --- a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-first-line.html +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-first-line.html @@ -1,6 +1,9 @@ <!DOCTYPE html> -<title>CSS Test: background-image applicability to ::first-letter</title> -<link rel="help" href="http://www.w3.org/TR/css3-background/"> +<html class="reftest-wait"> +<title>CSS Test: background-image applicability to ::first-line</title> +<link rel="help" href="http://www.w3.org/TR/css3-background/#placement"> +<link rel="help" href="http://www.w3.org/TR/css3-background/#the-background-image"> +<link rel="help" href="http://www.w3.org/TR/CSS21/colors.html#background-properties"> <link rel="help" href="http://www.w3.org/TR/CSS21/selector.html#first-line-pseudo"> <link rel="match" href="reference/background-image-first-line-ref.html"> <meta name="flags" content="ahem image"> @@ -17,3 +20,11 @@ </style> <p>Test passes if cat image is visible.</p> <div id="content">X</div> +<script src="/common/reftest-wait.js"></script> +<script> +// Some browser may delay one frame to update the background-image in first-line. +onload = () => { + requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)); +}; +</script> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001-ref.html b/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001-ref.html new file mode 100644 index 00000000000..8b5f5015f9e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001-ref.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<style>div::first-line { font-family:monospace; color:green; }</style> +<p>Test passes if PASS is displayed in green below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001.html b/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001.html new file mode 100644 index 00000000000..7df697f940d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-display/display-inline-dynamic-001.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-display/"> +<link rel="match" href="display-inline-dynamic-001-ref.html"> +<style>div::first-line { font-family:monospace; color:green; }</style> +<p>Test passes if PASS is displayed in green below.</p> +<div>P<span id="showme" style="display:none;">AS</span>S</div> +<script> + document.body.offsetTop; + showme.style.display = "inline"; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-shadow-parts/interaction-with-tree-abiding.html b/tests/wpt/web-platform-tests/css/css-shadow-parts/interaction-with-tree-abiding.html new file mode 100644 index 00000000000..c11da7d12de --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shadow-parts/interaction-with-tree-abiding.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + <head> + <title>CSS Shadow Parts - Interaction with tree-abiding</title> + <meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly"> + <link href="http://www.google.com/" rel="author" title="Google"> + <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="support/shadow-helper.js"></script> + </head> + <body> + <style> + #c-e::part(before-p)::before { color: green; } + #c-e::part(after-p)::after { color: green; } + #c-e::part(placeholder-p)::placeholder { color: green; } + </style> + <script>installCustomElement("custom-element", "custom-element-template");</script> + <template id="custom-element-template"> + <style> + #before-i::before { content: "this text"; color: red; } + #after-i::after { content: "this text"; color: red; } + #placeholder-i::placeholder { color: red; } + </style> + <div> + The following text should be green: + <span id="before-i" part="before-p"></span> + </div> + <div> + The following text should be green: + <span id="after-i" part="after-p"></span> + </div> + <div> + The following text should be green: + <input id="placeholder-i" part="placeholder-p" placeholder="this text"></input> + </div> + </template> + <custom-element id="c-e"></custom-element> + <script> + "use strict"; + const colorGreen = "rgb(0, 128, 0)"; + test(function() { + const el = getElementByShadowIds(document, ["c-e", "before-i"]); + assert_equals(window.getComputedStyle(el, '::before').color, colorGreen); + }, "::before in selected host is styled"); + test(function() { + const el = getElementByShadowIds(document, ["c-e", "after-i"]); + assert_equals(window.getComputedStyle(el, '::after').color, colorGreen); + }, "::after in selected host is styled"); + test(function() { + const el = getElementByShadowIds(document, ["c-e", "placeholder-i"]); + assert_equals(window.getComputedStyle(el, '::placeholder').color, colorGreen); + }, "::placeholder in selected host is styled"); + </script> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html b/tests/wpt/web-platform-tests/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html new file mode 100644 index 00000000000..73a3ff667ea --- /dev/null +++ b/tests/wpt/web-platform-tests/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-event-manual.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>HTML Test: tabindex - focus, click</title> +<link rel="author" title="Intel" href="www.intel.com/"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute"> +<meta name="flags" content="interact"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<h2>Test steps</h2> +<p>Focus on the button below by "Tab" key, then press "Enter" key</p> + +<p><button type="button">Test tabIndex</button></p> + +<script> + +setup({explicit_done: true}); +setup({explicit_timeout: true}); + +let button = document.querySelector("button"); +let focused = false; + +on_event(button, "focus", () => { + focused = !focused; +}); + +on_event(button, "click", () => { + test(() => { + assert_true(focused, "Focus on the button by Tab key"); + }, "Check if click event will be fired when press the 'enter' key while the element is focused"); + done(); +}); + +</script> diff --git a/tests/wpt/web-platform-tests/kv-storage/META.yml b/tests/wpt/web-platform-tests/kv-storage/META.yml new file mode 100644 index 00000000000..bf4a1e6e8b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/kv-storage/META.yml @@ -0,0 +1,3 @@ +spec: https://wicg.github.io/kv-storage/ +suggested_reviewers: + - domenic diff --git a/tests/wpt/web-platform-tests/async-local-storage/api-surface.tentative.https.html b/tests/wpt/web-platform-tests/kv-storage/api-surface.https.html index 927871a8961..65452f55be0 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/api-surface.tentative.https.html +++ b/tests/wpt/web-platform-tests/kv-storage/api-surface.https.html @@ -1,14 +1,14 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage API surface</title> +<title>KV Storage: API surface</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script type="module"> -import { storage, StorageArea } from "std:async-local-storage"; +import { storage, StorageArea } from "std:kv-storage"; import * as classAssert from "./helpers/class-assert.js"; -import { testWithArea } from "./helpers/als-tests.js"; +import { testWithArea } from "./helpers/kvs-tests.js"; test(() => { classAssert.isConstructor(StorageArea); diff --git a/tests/wpt/web-platform-tests/async-local-storage/helpers/class-assert.js b/tests/wpt/web-platform-tests/kv-storage/helpers/class-assert.js index 31b25cab9f2..31b25cab9f2 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/helpers/class-assert.js +++ b/tests/wpt/web-platform-tests/kv-storage/helpers/class-assert.js diff --git a/tests/wpt/web-platform-tests/async-local-storage/helpers/equality-asserters.js b/tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js index ad4623c179d..ad4623c179d 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/helpers/equality-asserters.js +++ b/tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js diff --git a/tests/wpt/web-platform-tests/async-local-storage/helpers/als-tests.js b/tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js index 28087abf811..0ffe71fad78 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/helpers/als-tests.js +++ b/tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js @@ -1,4 +1,4 @@ -import { StorageArea, storage as defaultArea } from "std:async-local-storage"; +import { StorageArea, storage as defaultArea } from "std:kv-storage"; import { assertArrayCustomEquals } from "./equality-asserters.js"; export function testWithArea(testFn, description) { diff --git a/tests/wpt/web-platform-tests/async-local-storage/key-types.tentative.https.html b/tests/wpt/web-platform-tests/kv-storage/key-types.https.html index c3985b7711f..0dc930258f8 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/key-types.tentative.https.html +++ b/tests/wpt/web-platform-tests/kv-storage/key-types.https.html @@ -1,12 +1,12 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage: tests against various key types</title> +<title>KV Storage: tests against various key types</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script type="module"> -import { testWithArea, testVariousMethods } from "./helpers/als-tests.js"; +import { testWithArea, testVariousMethods } from "./helpers/kvs-tests.js"; import { assertEqualDates, assertEqualArrayBuffers, assertArrayBufferEqualsABView } from "./helpers/equality-asserters.js"; diff --git a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-dynamic-import.tentative.html b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-dynamic-import.html index 9270f6c82fa..6ccbf84ba1d 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-dynamic-import.tentative.html +++ b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-dynamic-import.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage: should not work in non-secure contexts when included via import()</title> +<title>KV Storage: should not work in non-secure contexts when included via import()</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -13,6 +13,6 @@ test(() => { }, "Prerequisite check"); promise_test(t => { - return promise_rejects(t, "SecurityError", import("std:async-local-storage")); + return promise_rejects(t, "SecurityError", import("std:kv-storage")); }); </script> diff --git a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-import-statement.tentative.html b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-import-statement.html index 879729696db..fda02aadf14 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-import-statement.tentative.html +++ b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-import-statement.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage: should not work in non-secure contexts when included via an import statement</title> +<title>KV Storage: should not work in non-secure contexts when included via an import statement</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -23,5 +23,5 @@ async_test(t => { </script> <script type="module"> -import "std:async-local-storage"; +import "std:kv-storage"; </script> diff --git a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-script-element.tentative.html b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-script-element.html index feeddafc8da..66802b1254e 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/non-secure-context-script-element.tentative.html +++ b/tests/wpt/web-platform-tests/kv-storage/non-secure-context-script-element.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage: should not work in non-secure contexts when included via a script element</title> +<title>KV Storage: should not work in non-secure contexts when included via a script element</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -22,4 +22,4 @@ async_test(t => { }); </script> -<script type="module" src="std:async-local-storage"></script> +<script type="module" src="std:kv-storage"></script> diff --git a/tests/wpt/web-platform-tests/async-local-storage/storage-smoke-test.tentative.https.html b/tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html index f978480ff2b..df6fd8c8181 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/storage-smoke-test.tentative.https.html +++ b/tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html @@ -1,13 +1,13 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage storage export smoke test</title> +<title>KV storage: storage export smoke test</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script type="module"> -import { testVariousMethodsWithDefaultArea } from "./helpers/als-tests.js"; -import { storage } from "std:async-local-storage"; +import { testVariousMethodsWithDefaultArea } from "./helpers/kvs-tests.js"; +import { storage } from "std:kv-storage"; test(() => { const { backingStore } = storage; @@ -17,7 +17,7 @@ test(() => { assert_own_property(backingStore, "version"); assert_equals(Object.getPrototypeOf(backingStore), Object.prototype); - assert_equals(backingStore.database, "async-local-storage:default"); + assert_equals(backingStore.database, "kv-storage:default"); assert_equals(backingStore.store, "store"); assert_equals(backingStore.version, 1); }, "backingStore returns the correct object"); diff --git a/tests/wpt/web-platform-tests/async-local-storage/undefined-value.https.html b/tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html index c76c32f9507..89da5d5c44f 100644 --- a/tests/wpt/web-platform-tests/async-local-storage/undefined-value.https.html +++ b/tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html @@ -1,14 +1,14 @@ <!DOCTYPE html> <meta charset="utf-8"> -<title>Async local storage: undefined keys</title> -<!-- https://github.com/domenic/async-local-storage/commit/5bf31109f37d1371f619ea33d0e2391f10e8b8f5 --> +<title>KV Storage: undefined values</title> +<!-- https://github.com/wicg/kv-storage/commit/5bf31109f37d1371f619ea33d0e2391f10e8b8f5 --> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script type="module"> -import { StorageArea } from "std:async-local-storage"; -import { testWithArea } from "./helpers/als-tests.js"; +import { StorageArea } from "std:kv-storage"; +import { testWithArea } from "./helpers/kvs-tests.js"; testWithArea(async (area) => { assert_equals(await area.get("key"), undefined); diff --git a/tests/wpt/web-platform-tests/mathml/META.yml b/tests/wpt/web-platform-tests/mathml/META.yml index 6b347c12d89..a410f582f0a 100644 --- a/tests/wpt/web-platform-tests/mathml/META.yml +++ b/tests/wpt/web-platform-tests/mathml/META.yml @@ -1,3 +1,3 @@ -spec: https://w3c.github.io/mathml/ +spec: http://www.mathml-association.org/MathMLinHTML5/ suggested_reviewers: - fred-wang diff --git a/tests/wpt/web-platform-tests/portals/portal-activate-event.html b/tests/wpt/web-platform-tests/portals/portal-activate-event.html index ed5602667bb..ac1505d2a5b 100644 --- a/tests/wpt/web-platform-tests/portals/portal-activate-event.html +++ b/tests/wpt/web-platform-tests/portals/portal-activate-event.html @@ -4,11 +4,29 @@ <script src="/resources/testharnessreport.js"></script> <script> async_test(function(t) { - var bc = new BroadcastChannel("test"); + var bc = new BroadcastChannel("test-eventlistener"); bc.onmessage = t.step_func_done(function(e) { assert_equals(e.data, "passed"); bc.close(); }); - window.open("resources/portal-activate-event-window.html"); + window.open("resources/portal-activate-event-window.html?test=eventlistener"); }, "Tests that the PortalActivateEvent is dispatched when a portal is activated."); + + async_test(function(t) { + var bc = new BroadcastChannel("test-eventhandler"); + bc.onmessage = t.step_func_done(function(e) { + assert_equals(e.data, "passed"); + bc.close(); + }); + window.open("resources/portal-activate-event-window.html?test=eventhandler"); + }, "Tests that the portalactivate event handler is dispatched when a portal is activated."); + + async_test(function(t) { + var bc = new BroadcastChannel("test-bodyeventhandler"); + bc.onmessage = t.step_func_done(function(e) { + assert_equals(e.data, "passed"); + bc.close(); + }); + window.open("resources/portal-activate-event-window.html?test=bodyeventhandler"); + }, "Tests that the HTMLBodyElement has the portalactivate event handler."); </script> diff --git a/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-portal.html b/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-portal.html index d0eebcd12e6..b2759c3701a 100644 --- a/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-portal.html +++ b/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-portal.html @@ -1,13 +1,23 @@ <!DOCTYPE html> <title>Tests that the PortalActivateEvent is dispatched when a portal is activated</title> <script> - window.addEventListener("portalactivate", function(e) { - var bc = new BroadcastChannel("test"); + var test = (new URL(location)).searchParams.get("test"); + + function portalActivate(e) { + var bc = new BroadcastChannel("test-" + test); bc.postMessage("passed"); bc.close(); - }); + } + + if (test == "bodyeventhandler") { + document.write('<body onportalactivate="portalActivate()"></body>'); + } else if (test == "eventhandler") { + window.onportalactivate = portalActivate; + } else if (test == "eventlistener") { + window.addEventListener("portalactivate", portalActivate); + } - var bc = new BroadcastChannel("portal"); + var bc = new BroadcastChannel("portal-" + test); bc.postMessage("loaded"); bc.close(); </script> diff --git a/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-window.html b/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-window.html index 1994dc3fad1..cf09caebc0f 100644 --- a/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-window.html +++ b/tests/wpt/web-platform-tests/portals/resources/portal-activate-event-window.html @@ -1,11 +1,17 @@ <!DOCTYPE html> <script> - var bc = new BroadcastChannel("portal"); - bc.onmessage = function(e) { - document.querySelector("portal").activate(); - bc.close(); + window.onload = function(e) { + var test = (new URL(location)).searchParams.get("test"); + var portal = document.createElement("portal"); + portal.src = "portal-activate-event-portal.html" + location.search; + document.body.appendChild(portal); + + var bc = new BroadcastChannel("portal-" + test); + bc.onmessage = function(e) { + document.querySelector("portal").activate(); + bc.close(); + } } </script> <body> - <portal src="portal-activate-event-portal.html"></portal> </body> diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html b/tests/wpt/web-platform-tests/resource-timing/redirects.sub.html index 606662afda4..0e3f405e14b 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource_redirects.html +++ b/tests/wpt/web-platform-tests/resource-timing/redirects.sub.html @@ -11,16 +11,22 @@ <script src="resources/webperftestharnessextension.js"></script> <script> let iframe; +const redirect_url = 'common/redirect.py'; +const url_prefix = redirect_url + '?location=/resource-timing/resources/'; +const https_url_prefix = redirect_url + '?location=https://{{hosts[][www]}}:{{ports[https][0]}}/resource-timing/resources/'; function setup_iframe() { const iframe_content = - '<link rel="stylesheet" href="/common/redirect.py?location=/resource-timing/resources/resource_timing_test0.css"></link>' + - '<img src="/common/redirect.py?location=/resource-timing/resources/blue.png"></img>' + - '<iframe src="/common/redirect.py?location=/resource-timing/resources/blank_page_green.htm"></iframe>' + - '<script src="/common/redirect.py?location=/resource-timing/resources/empty_script.js"></scr' + 'ipt>' + + '<link rel="stylesheet" href="/' + url_prefix + 'resource_timing_test0.css"></link>' + + '<img src="/' + url_prefix + 'blue.png"></img>' + + '<iframe src="/' + url_prefix + 'blank_page_green.htm"></iframe>' + + '<script src="/' + url_prefix + 'empty_script.js"></scr' + 'ipt>' + '<scr' + 'ipt>' + 'const xhr = new XMLHttpRequest;' + - 'xhr.open("GET", "/common/redirect.py?location=/resource-timing/resources/blank_page_green.htm?id=xhr", false);' + + 'xhr.open("GET", "/' + url_prefix + 'blank_page_green.htm?id=xhr", false);' + 'xhr.send();' + + 'const xhr2 = new XMLHttpRequest;' + + 'xhr2.open("GET", "/' + https_url_prefix + 'blank_page_green.htm?id=xhr", false);' + + 'xhr2.send();' + '</scr' + 'ipt>'; iframe = document.getElementById('frameContext'); iframe.contentWindow.document.write(iframe_content); @@ -30,14 +36,15 @@ function onload_test() { const entries = context.getEntriesByType('resource'); const index = window.location.pathname.lastIndexOf('resource-timing'); - const pathname = window.location.pathname.substring(0, index) + - 'common/redirect.py?location=/resource-timing/resources/'; + const pathname = window.location.pathname.substring(0, index) + url_prefix; + const https_pathname = window.location.pathname.substring(0, index) + https_url_prefix; let expected_entries = {}; expected_entries[pathname + 'resource_timing_test0.css'] = 'link'; expected_entries[pathname + 'blue.png'] = 'img'; expected_entries[pathname + 'blank_page_green.htm'] = 'iframe'; expected_entries[pathname + 'empty_script.js'] = 'script'; expected_entries[pathname + 'blank_page_green.htm?id=xhr'] = 'xmlhttprequest'; + expected_entries[https_pathname + 'blank_page_green.htm?id=xhr'] = 'xmlhttprequest'; test_resource_entries(entries, expected_entries); } diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm.headers b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm.headers new file mode 100644 index 00000000000..cb762eff806 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/blank_page_green.htm.headers @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/xhr-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/xhr-iframe.html new file mode 100644 index 00000000000..bfdfac69712 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/xhr-iframe.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>iframe for xhr tests</title> +<script> +async function xhr(url) { + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + xhr.onload = () => { + resolve(xhr); + }; + xhr.onerror = () => { + reject('xhr failed'); + }; + xhr.open('GET', url); + xhr.send(); + }); +} +</script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/xhr-response-url.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/xhr-response-url.https.html new file mode 100644 index 00000000000..9f00cdd1830 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/xhr-response-url.https.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Service Worker: XHR responseURL uses the response url</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/test-helpers.sub.js"></script> +<script> +const scope = 'resources/xhr-iframe.html'; +const script = 'resources/fetch-rewrite-worker.js'; +let iframe; + +// Test that XMLHttpRequest.responseURL uses the response URL from the service +// worker. +promise_test(async (t) => { + t.add_cleanup(async () => { + if (iframe) + iframe.remove(); + await service_worker_unregister(t, scope); + }); + + // Set up a controlled iframe. + const registration = + await service_worker_unregister_and_register(t, script, scope); + await wait_for_state(t, registration.installing, 'activated'); + iframe = await with_iframe(scope); + + // Build the XHR URL. Set the |url| param to tell the service worker + // to respondWith(fetch(|url|)). + const target = new URL('resources/dummy.txt', window.location); + const url = `test?url=${encodeURIComponent(target)}`; + + // Perform the XHR. + const xhr = await iframe.contentWindow.xhr(url); + assert_equals(xhr.responseURL, target.href); +}, 'XHR responseURL should be the response URL'); +</script> diff --git a/tests/wpt/web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js b/tests/wpt/web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js new file mode 100644 index 00000000000..cf3a2aa9430 --- /dev/null +++ b/tests/wpt/web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js @@ -0,0 +1,38 @@ +// META: title=StorageManager: estimate() for service worker registrations +const wait_for_active = worker => new Promise(resolve =>{ + if (worker.active) { resolve(worker.active); } + + const listen_for_active = worker => e => { + if (e.target.state === 'activated') { resolve(worker.active); } + } + + if (worker.waiting) { + worker.waiting + .addEventListener('statechange', listen_for_active(worker.waiting)); + } + if (worker.installing) { + worker.installing + .addEventListener('statechange', listen_for_active(worker.installing)); + } +}); + +promise_test(async t => { + let estimate = await navigator.storage.estimate(); + const usageBeforeCreate = estimate.usageDetails.serviceWorkerRegistrations || + 0; + // Note: helpers.js is an arbitrary file; it could be any file that + // exists, but this test does not depend on the contents of said file. + const serviceWorkerRegistration = await + navigator.serviceWorker.register('./helpers.js'); + + t.add_cleanup(() => serviceWorkerRegistration.unregister()); + await wait_for_active(serviceWorkerRegistration); + + estimate = await navigator.storage.estimate(); + assert_true('serviceWorkerRegistrations' in estimate.usageDetails); + + const usageAfterCreate = estimate.usageDetails.serviceWorkerRegistrations; + assert_greater_than( + usageAfterCreate, usageBeforeCreate, + 'estimated usage should increase after service worker is registered'); +}, 'estimate() shows usage increase after large value is stored'); diff --git a/tests/wpt/web-platform-tests/tools/manifest/tests/test_manifest.py b/tests/wpt/web-platform-tests/tools/manifest/tests/test_manifest.py index 010a0c0a00a..8f649f1d098 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/tests/test_manifest.py +++ b/tests/wpt/web-platform-tests/tools/manifest/tests/test_manifest.py @@ -66,8 +66,7 @@ def sourcefile_strategy(draw): @h.given(hs.lists(sourcefile_strategy(), - min_size=1, average_size=10, max_size=1000, - unique_by=lambda x: x.rel_path)) + min_size=1, max_size=1000, unique_by=lambda x: x.rel_path)) @h.example([SourceFileWithTest("a", "0"*40, item.ConformanceCheckerTest)]) def test_manifest_to_json(s): m = manifest.Manifest() @@ -83,8 +82,7 @@ def test_manifest_to_json(s): @h.given(hs.lists(sourcefile_strategy(), - min_size=1, average_size=10, - unique_by=lambda x: x.rel_path)) + min_size=1, unique_by=lambda x: x.rel_path)) @h.example([SourceFileWithTest("a", "0"*40, item.TestharnessTest)]) @h.example([SourceFileWithTest("a", "0"*40, item.RefTest, [("/aa", "==")])]) def test_manifest_idempotent(s): diff --git a/tests/wpt/web-platform-tests/tools/tox.ini b/tests/wpt/web-platform-tests/tools/tox.ini index fc66c6c2ac3..3b0c6d172bc 100644 --- a/tests/wpt/web-platform-tests/tools/tox.ini +++ b/tests/wpt/web-platform-tests/tools/tox.ini @@ -8,7 +8,6 @@ deps = pytest-cov mock hypothesis - pytest-catchlog commands = pytest --cov {posargs} diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index 71d1e61918a..ea8cc04f7d4 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -758,3 +758,32 @@ class WebKit(Browser): def version(self, binary=None, webdriver_binary=None): return None + + +class Epiphany(Browser): + """Epiphany-specific interface.""" + + product = "epiphany" + requirements = "requirements_epiphany.txt" + + def install(self, dest=None, channel=None): + raise NotImplementedError + + def find_binary(self, venv_path=None, channel=None): + return find_executable("epiphany") + + def find_webdriver(self, channel=None): + return find_executable("WebKitWebDriver") + + def install_webdriver(self, dest=None, channel=None): + raise NotImplementedError + + def version(self, binary=None, webdriver_binary=None): + if binary is None: + return None + output = call(binary, "--version") + if output: + # Stable release output looks like: "Web 3.30.2" + # Tech Preview output looks like "Web 3.31.3-88-g97db4f40f" + return output.split()[1] + return None diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index 44cf3137d41..633d6b254db 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -422,7 +422,7 @@ class Servo(BrowserSetup): binary = self.browser.find_binary(self.venv.path, None) if binary is None: - raise WptrunError("Unable to find servo binary on the PATH") + raise WptrunError("Unable to find servo binary in PATH") kwargs["binary"] = binary @@ -442,6 +442,29 @@ class WebKit(BrowserSetup): pass +class Epiphany(BrowserSetup): + name = "epiphany" + browser_cls = browser.Epiphany + + def install(self, venv, channel=None): + raise NotImplementedError + + def setup_kwargs(self, kwargs): + if kwargs["binary"] is None: + binary = self.browser.find_binary() + + if binary is None: + raise WptrunError("Unable to find epiphany in PATH") + kwargs["binary"] = binary + + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + raise WptrunError("Unable to find WebKitWebDriver in PATH") + kwargs["webdriver_binary"] = webdriver_binary + + product_setup = { "fennec": Fennec, "firefox": Firefox, @@ -456,6 +479,7 @@ product_setup = { "sauce": Sauce, "opera": Opera, "webkit": WebKit, + "epiphany": Epiphany, } diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt new file mode 100644 index 00000000000..9115b7ac4e8 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt @@ -0,0 +1 @@ +mozprocess == 0.26 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py index f86792d4741..fdedda44d28 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py @@ -34,4 +34,5 @@ product_list = ["chrome", "servo", "servodriver", "opera", - "webkit"] + "webkit", + "epiphany"] diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/epiphany.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/epiphany.py new file mode 100644 index 00000000000..599ec9f3110 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/epiphany.py @@ -0,0 +1,74 @@ +from .base import get_timeout_multiplier # noqa: F401 +from .webkit import WebKitBrowser +from ..executors import executor_kwargs as base_executor_kwargs +from ..executors.executorwebdriver import (WebDriverTestharnessExecutor, # noqa: F401 + WebDriverRefTestExecutor) # noqa: F401 +from ..executors.executorwebkit import WebKitDriverWdspecExecutor # noqa: F401 + +__wptrunner__ = {"product": "epiphany", + "check_args": "check_args", + "browser": "EpiphanyBrowser", + "browser_kwargs": "browser_kwargs", + "executor": {"testharness": "WebDriverTestharnessExecutor", + "reftest": "WebDriverRefTestExecutor", + "wdspec": "WebKitDriverWdspecExecutor"}, + "executor_kwargs": "executor_kwargs", + "env_extras": "env_extras", + "env_options": "env_options", + "run_info_extras": "run_info_extras", + "timeout_multiplier": "get_timeout_multiplier"} + + +def check_args(**kwargs): + pass + + +def browser_kwargs(test_type, run_info_data, config, **kwargs): + return {"binary": kwargs["binary"], + "webdriver_binary": kwargs["webdriver_binary"], + "webdriver_args": kwargs.get("webdriver_args")} + + +def capabilities(server_config, **kwargs): + args = kwargs.get("binary_args", []) + if "--automation-mode" not in args: + args.append("--automation-mode") + + return { + "browserName": "Epiphany", + "browserVersion": "3.31.4", # First version to support automation + "platformName": "ANY", + "webkitgtk:browserOptions": { + "binary": kwargs["binary"], + "args": args, + "certificates": [ + {"host": server_config["browser_host"], + "certificateFile": kwargs["host_cert_path"]}]}} + + +def executor_kwargs(test_type, server_config, cache_manager, run_info_data, + **kwargs): + executor_kwargs = base_executor_kwargs(test_type, server_config, + cache_manager, run_info_data, **kwargs) + executor_kwargs["close_after_done"] = True + executor_kwargs["capabilities"] = capabilities(server_config, **kwargs) + return executor_kwargs + + +def env_extras(**kwargs): + return [] + + +def env_options(): + return {} + + +def run_info_extras(**kwargs): + return {"webkit_port": "gtk"} + + +class EpiphanyBrowser(WebKitBrowser): + def __init__(self, logger, binary=None, webdriver_binary=None, + webdriver_args=None): + WebKitBrowser.__init__(self, logger, binary, webdriver_binary, + webdriver_args) diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html new file mode 100644 index 00000000000..b5555b0137a --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close.html @@ -0,0 +1,161 @@ +<!doctype html> +<html> + <head> + <title>Test AudioParam events very close in time</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/webaudio/resources/audit-util.js"></script> + <script src="/webaudio/resources/audit.js"></script> + </head> + + <body> + <script> + const audit = Audit.createTaskRunner(); + + // Largest sample rate that is required to be supported and is a power of + // two, to eliminate round-off as much as possible. + const sampleRate = 65536; + + // Only need one render quantum for testing. + const testFrames = 128; + + // Largest representable single-float number + const floatMax = Math.fround(3.4028234663852886e38); + + // epspos is the smallest x such that 1 + x != 1 + const epspos = 1.1102230246251568e-16; + // epsneg is the smallest x such that 1 - x != 1 + const epsneg = 5.551115123125784e-17; + + audit.define( + {label: 'no-nan', description: 'NaN does not occur'}, + (task, should) => { + const context = new OfflineAudioContext({ + numberOfChannels: 1, + sampleRate: sampleRate, + length: testFrames + }); + + const src0 = new ConstantSourceNode(context, {offset: 0}); + + // This should always succeed. We just want to print out a message + // that |src0| is a constant source node for the following + // processing. + should(src0, 'src0 = new ConstantSourceNode(context, {offset: 0})') + .beEqualTo(src0); + + src0.connect(context.destination); + + // Values for the first event (setValue). |time1| MUST be 0. + const time1 = 0; + const value1 = 10; + + // Values for the second event (linearRamp). |value2| must be huge, + // and |time2| must be small enough that 1/|time2| overflows a + // single float. This value is the least positive single float. + const value2 = floatMax; + const time2 = 1.401298464324817e-45; + + // These should always succeed; the messages are just informational + // to show the events that we scheduled. + should( + src0.offset.setValueAtTime(value1, time1), + `src0.offset.setValueAtTime(${value1}, ${time1})`) + .beEqualTo(src0.offset); + should( + src0.offset.linearRampToValueAtTime(value2, time2), + `src0.offset.linearRampToValueAtTime(${value2}, ${time2})`) + .beEqualTo(src0.offset); + + src0.start(); + + context.startRendering() + .then(buffer => { + const output = buffer.getChannelData(0); + + // Since time1 = 0, the output at frame 0 MUST be value1. + should(output[0], 'output[0]').beEqualTo(value1); + + // Since time2 < 1, output from frame 1 and later must be a + // constant. + should(output.slice(1), 'output[1]') + .beConstantValueOf(value2); + }) + .then(() => task.done()); + }); + + audit.define( + {label: 'interpolation', description: 'Interpolation of linear ramp'}, + (task, should) => { + const context = new OfflineAudioContext({ + numberOfChannels: 1, + sampleRate: sampleRate, + length: testFrames + }); + + const src1 = new ConstantSourceNode(context, {offset: 0}); + + // This should always succeed. We just want to print out a message + // that |src1| is a constant source node for the following + // processing. + should(src1, 'src1 = new ConstantSourceNode(context, {offset: 0})') + .beEqualTo(src1); + + src1.connect(context.destination); + + const frame = 1; + + // These time values are arranged so that time1 < frame/sampleRate < + // time2. This means we need to interpolate to get a value at given + // frame. + // + // The values are not so important, but |value2| should be huge. + const time1 = frame * (1 - epsneg) / context.sampleRate; + const value1 = 1e15; + + const time2 = frame * (1 + epspos) / context.sampleRate; + const value2 = floatMax; + + should( + src1.offset.setValueAtTime(value1, time1), + `src1.offset.setValueAtTime(${value1}, ${time1})`) + .beEqualTo(src1.offset); + should( + src1.offset.linearRampToValueAtTime(value2, time2), + `src1.offset.linearRampToValueAtTime(${value2}, ${time2})`) + .beEqualTo(src1.offset); + + src1.start(); + + context.startRendering() + .then(buffer => { + const output = buffer.getChannelData(0); + + // Sanity check + should(time2 - time1, 'Event time difference') + .notBeEqualTo(0); + + // Because 0 < time1 < 1, output must be 0 at time 0. + should(output[0], 'output[0]').beEqualTo(0); + + // Because time1 < 1/sampleRate < time2, we need to + // interpolate the value between these times to determine the + // output at frame 1. + const t = frame / context.sampleRate; + const v = value1 + + (value2 - value1) * (t - time1) / (time2 - time1); + + should(output[1], 'output[1]').beCloseTo(v, {threshold: 0}); + + // Because 1 < time2 < 2, the output at frame 2 and higher is + // constant. + should(output.slice(2), 'output[2:]') + .beConstantValueOf(value2); + }) + .then(() => task.done()); + }); + + audit.run(); + </script> + </body> +</html> |