aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini (renamed from tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini)2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json146
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini (renamed from tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini)2
-rw-r--r--tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini4
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js4
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht2
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht6
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html35
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html4
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html10
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html7
-rw-r--r--tests/wpt/web-platform-tests/interfaces/background-sync.idl (renamed from tests/wpt/web-platform-tests/interfaces/BackgroundSync.idl)0
-rw-r--r--tests/wpt/web-platform-tests/lint.ignore1
-rw-r--r--tests/wpt/web-platform-tests/manifest/META.yml5
-rw-r--r--tests/wpt/web-platform-tests/manifest/link-rel-manifest.html11
-rw-r--r--tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html33
-rw-r--r--tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html34
-rw-r--r--tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html70
-rw-r--r--tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html26
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html26
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html23
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html24
-rw-r--r--tests/wpt/web-platform-tests/tools/docker/README.md18
-rw-r--r--tests/wpt/web-platform-tests/tools/docker/commands.json28
-rw-r--r--tests/wpt/web-platform-tests/tools/docker/frontend.py99
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/README.md19
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/run.py15
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py3
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html12
-rw-r--r--tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js29
73 files changed, 716 insertions, 142 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
new file mode 100644
index 00000000000..f29da48a2a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-003.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
new file mode 100644
index 00000000000..4bfb0c2053a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-004.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..baa9f1a7541
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini
new file mode 100644
index 00000000000..9206a00a170
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini
new file mode 100644
index 00000000000..f6e7c61b425
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini
index 4a1e8110f6f..f8e7e539aae 100644
--- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini
@@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
+ [Hit test within unscaled box]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
index 23c61ede1a1..c131078eace 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
@@ -17,6 +17,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
deleted file mode 100644
index e181af5397f..00000000000
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementsFromPoint-invalid-cases.html]
- [The root element is the last element returned for otherwise empty queries within the viewport]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
index dae4682b753..156f3115faf 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
@@ -321,15 +321,18 @@
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
index 5c001592859..b2ffc8abf78 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
@@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
+ [separate text/javascript error]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
index 61682d248e2..30e1b851fd4 100644
--- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
- [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata-layout-2020/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-layout-2020/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-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
index 75d75b4cda2..51f8272a6de 100644
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_2.html]
+[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 8e2a63e3b7f..8e2b6af33d8 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,8 +1,8 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
+ expected: TIMEOUT
[opener of discarded nested browsing context]
expected: FAIL
[opener of discarded auxiliary browsing context]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini
new file mode 100644
index 00000000000..f9badfdf02a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini
@@ -0,0 +1,2 @@
+[event_loadstart.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 88f4ddd0e9a..42ebcc9d57e 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 3080be9afc0..d913fcbb129 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
deleted file mode 100644
index fca4d908c89..00000000000
--- a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[module-static-import-delayed.html]
- [document.write in an imported module]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index dbec6f2c2ff..450c88bd32b 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -3,3 +3,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
+ [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
deleted file mode 100644
index 663a1f8fa30..00000000000
--- a/tests/wpt/metadata-layout-2020/webmessaging/without-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/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 70c944c6c93..7b48dd98d38 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -678,6 +678,15 @@
]
]
},
+ "scroll-animations": {
+ "null-scroll-source-crash.html": [
+ "5ffc522d68e751995e6183a49f85d2ca7378f66d",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"selection": {
"selection-select-all-move-input-crash.html": [
"6f692dc5e7d69a30a407f107268c9e012efcd9e3",
@@ -50633,7 +50642,7 @@
]
],
"c414-flt-fit-000.xht": [
- "099c67163544bff7daaddfe7b08db543620a2a4e",
+ "15a53e4aa02b1ec7ec69a42f1df4eeca02f98999",
[
null,
[
@@ -81744,6 +81753,32 @@
{}
]
],
+ "min-height-applies-to-013.xht": [
+ "ec0137bba43dc40496ad6cd3a0f09748d410e1da",
+ [
+ null,
+ [
+ [
+ "/css/reference/pass_if_square_96px_black.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "min-height-applies-to-014.xht": [
+ "48ccd1914fd7835bc066332149b967969853a2be",
+ [
+ null,
+ [
+ [
+ "/css/reference/pass_if_square_96px_black.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"min-height-applies-to-015.xht": [
"158c9a29c7c924517f8e3e21bbeaac23fe70bed6",
[
@@ -237521,6 +237556,19 @@
]
},
"scroll-animations": {
+ "animation-with-animatable-interface.html": [
+ "4c3fa027fd073e5e86eafd8d10dc898ab0fb88a5",
+ [
+ null,
+ [
+ [
+ "/scroll-animations/animation-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"animation-with-display-none.html": [
"310cb5fc8b0ca7c0ab042a1aecf664528dc3b5eb",
[
@@ -272566,7 +272614,7 @@
[]
],
"c414-flt-fit-000-ref.xht": [
- "ae8e72079a6d60287e093aa330c08dd7062d7bcd",
+ "49f2b02d99895d35897daaad5e719ae5cd1421d1",
[]
],
"c414-flt-fit-001-ref.xht": [
@@ -330696,7 +330744,7 @@
[]
],
"load-into-the-iframe.html": [
- "05a80be73745465ddcd65bc5745a674824974590",
+ "9e08eb587ab38283b53034128ca36c82b545d03f",
[]
],
"navigation-changed-iframe.html": [
@@ -333975,10 +334023,6 @@
}
},
"interfaces": {
- "BackgroundSync.idl": [
- "c52dcdb89843e80e9bd89591df76ba26f7172dab",
- []
- ],
"CSP.idl": [
"e427ae8801a7863a59d9507d384e075e34bd4731",
[]
@@ -334047,6 +334091,10 @@
"cf3d75125402197f7b1a52b4a38fe9acc168643f",
[]
],
+ "background-sync.idl": [
+ "c52dcdb89843e80e9bd89591df76ba26f7172dab",
+ []
+ ],
"badging.idl": [
"01481820935a08675e4bef734aada27b3151e814",
[]
@@ -334821,7 +334869,7 @@
]
},
"lint.ignore": [
- "078a706f079c3cfc2a88dbd8ce9b3b290d1ffcfb",
+ "9d057e76edc3bb6a94adcff9c897ef48e2235e3c",
[]
],
"loading": {
@@ -334882,6 +334930,12 @@
[]
]
},
+ "manifest": {
+ "META.yml": [
+ "013fc58a29fa7f83e5e6a034d3a343bc87ab629d",
+ []
+ ]
+ },
"mathml": {
"META.yml": [
"5aea9088d744bfa835ca91217c9a6d9f60253e3e",
@@ -341603,6 +341657,10 @@
"39149915cc573b3f8a5e0e01a10729494aec59f1",
[]
],
+ "embed-navigation-is-not-intercepted-iframe.html": [
+ "5e86f67735f778c590eeb5fd29567dbb23033055",
+ []
+ ],
"embedded-content-from-server.html": [
"ff50a9c752690d6726d0cd6d9820947f1bc5d4b0",
[]
@@ -342175,6 +342233,10 @@
"0aeb81951ede48c62780fe723013b2ad77ffe336",
[]
],
+ "object-navigation-is-not-intercepted-iframe.html": [
+ "5c8ab79a500a93ce04e6704e5762eacd717c4f71",
+ []
+ ],
"onactivate-throw-error-from-nested-event-worker.js": [
"7c97014fd042affbd38d77fa538d8a584d7c72f7",
[]
@@ -344501,7 +344563,7 @@
[]
],
"README.md": [
- "9342aded298bdd0e5daac12289c78163d1d5bec5",
+ "2203727ef96f313cd7c5e6afb766a07b70969cec",
[]
],
"__init__.py": [
@@ -344509,7 +344571,7 @@
[]
],
"commands.json": [
- "15182cc9e6531d5a5ba3d42c9f00821946c5e8a3",
+ "421b0a636c2593bb3aa133b133373b54be6796ea",
[]
],
"documentation": {
@@ -344519,7 +344581,7 @@
]
},
"frontend.py": [
- "59a1cff2ebd0efda06fadd144a84b5d35b2d81c8",
+ "6d35d4c3826311da2b36b9f2efe6dd7bfd0cc7a8",
[]
],
"retry.py": [
@@ -344891,7 +344953,7 @@
],
"quic": {
"README.md": [
- "5a64b701cfb85900c219463624e6afa299a3813d",
+ "ef1d66e3220285f8b1eb0e0a7d188a09350c3fd8",
[]
],
"__init__.py": [
@@ -350113,7 +350175,7 @@
[]
],
"run.py": [
- "a9fdeada1ec780a50093f221673cf406864e36c2",
+ "95d9369f2a888657c23315d8d97b9eb636e3db96",
[]
],
"testfiles.py": [
@@ -350138,7 +350200,7 @@
[]
],
"test_run.py": [
- "ef58ec41b2b4cfc14955b701627d047af78f29bc",
+ "d533977e0c7436010ec9d81c826dd6f8453a9785",
[]
],
"test_testfiles.py": [
@@ -352045,7 +352107,7 @@
[]
],
"keyframe-tests.js": [
- "3cf3cf22bf8666a3800dfd3cc3cd4e37c7f7598e",
+ "43e0d7575f2cc47294e2435f311e26c66bb52a36",
[]
],
"keyframe-utils.js": [
@@ -357794,7 +357856,7 @@
"testharness": {
"BackgroundSync": {
"idlharness.https.any.js": [
- "120477a51e61ad32f629e991a12e8bc99c4dbb7e",
+ "29fb87b8263e87a0d570c874a9531e64d5d76b83",
[
"BackgroundSync/idlharness.https.any.html",
{
@@ -401818,6 +401880,13 @@
{}
]
],
+ "text-overflow-ellipsis-self-painting.html": [
+ "2810f8dae1810f3385fe978f0066210cfc24fdf6",
+ [
+ null,
+ {}
+ ]
+ ],
"text-overflow-ellipsis-width-001.html": [
"2042111588254242c202527589507b40ef0c3538",
[
@@ -455975,7 +456044,7 @@
]
],
"iframe_sandbox_allow_top_navigation-1.html": [
- "feb876608aca54d9bbe9113a9e5a28fa1d2e0ee2",
+ "b033ec44d24e106a265bf480296f09cbe3e27c32",
[
null,
{}
@@ -455989,7 +456058,7 @@
]
],
"iframe_sandbox_allow_top_navigation-3.html": [
- "c7c56d670e5a32884b39e4034f83f5443cd76290",
+ "c3e5dc1fd6a0c5786dfeed57699bbf37901fa08e",
[
null,
{}
@@ -468677,6 +468746,15 @@
]
]
},
+ "manifest": {
+ "link-rel-manifest.html": [
+ "8eb39703a082daedc921b156287b014eaf836665",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"mathml": {
"presentation-markup": {
"direction": {
@@ -474818,6 +474896,13 @@
{}
]
],
+ "parent-no-child-bad-subdomain.sub.https.html": [
+ "2653dabd980b8caf65cf84b4765a2cfc0c4cb5c9",
+ [
+ null,
+ {}
+ ]
+ ],
"parent-no-child-yes-same.sub.https.html": [
"4239e1644638b04d330ff70f8a27e97f5af88ab0",
[
@@ -474832,6 +474917,13 @@
{}
]
],
+ "parent-no-child-yes-with-params-subdomain.sub.https.html": [
+ "164a19ff381f9f351af805cf8ff73ddac92bafb1",
+ [
+ null,
+ {}
+ ]
+ ],
"parent-no-child1-no-child2-yes-children-different.sub.https.html": [
"3c879391a4571398a4254a15906411d5e844c596",
[
@@ -491849,7 +491941,7 @@
]
],
"embed-and-object-are-not-intercepted.https.html": [
- "34556a785aea6810243ca473fc40066d16265116",
+ "581dbeca9772268ab85a2b50d8f7f45cf61e781f",
[
null,
{}
@@ -509905,7 +509997,7 @@
]
],
"animate.html": [
- "00e68b429621f65e68285bda2fa04ccb39f3f8e9",
+ "dad633ba9a2ca0ed10574c973b036f76b738d0db",
[
null,
{}
@@ -535897,20 +535989,6 @@
{}
]
],
- "min-height-applies-to-013.xht": [
- "13ddef79ec10b58218885d267dc47f4e5ae90ec9",
- [
- null,
- {}
- ]
- ],
- "min-height-applies-to-014.xht": [
- "2abb772d9b53644c2d46d2bbbf100273cf38258a",
- [
- null,
- {}
- ]
- ],
"min-width-014.xht": [
"611e40506bcc1e0ecfcce3ad84ea005efa221b9d",
[
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
new file mode 100644
index 00000000000..f29da48a2a0
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-003.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
new file mode 100644
index 00000000000..4bfb0c2053a
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-004.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..baa9f1a7541
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini
new file mode 100644
index 00000000000..9206a00a170
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini
new file mode 100644
index 00000000000..f6e7c61b425
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
index 4a1e8110f6f..f8e7e539aae 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
@@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
+ [Hit test within unscaled box]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini b/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini
new file mode 100644
index 00000000000..86a5270bfde
--- /dev/null
+++ b/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini
@@ -0,0 +1,4 @@
+[text-overflow-ellipsis-self-painting.html]
+ [CSS Basic User Interface Test: ellipsis when there are self-painting objects]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
index 5733d536fd3..85e94926cb3 100644
--- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
@@ -21,6 +21,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
deleted file mode 100644
index e181af5397f..00000000000
--- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementsFromPoint-invalid-cases.html]
- [The root element is the last element returned for otherwise empty queries within the viewport]
- expected: FAIL
-
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 7a3bb3e6f0d..ed08877281b 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -321,15 +321,18 @@
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate 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 5c001592859..b2ffc8abf78 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
+ [separate text/javascript error]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index 61682d248e2..30e1b851fd4 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
- [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
- 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-layout-2020/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_3.html.ini
index 75d75b4cda2..51f8272a6de 100644
--- a/tests/wpt/metadata-layout-2020/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_3.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_2.html]
+[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 2532dceabac..fd369192a02 100644
--- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
+ expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@@ -7,5 +7,5 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 2a166bb97b7..fc37df7e3fa 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 963d4cd20ef..9df1ac56f2a 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
deleted file mode 100644
index fca4d908c89..00000000000
--- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[module-static-import-delayed.html]
- [document.write in an imported module]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 0cef5158fae..01f7b72cbe7 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -4,3 +4,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
+ [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
deleted file mode 100644
index 663a1f8fa30..00000000000
--- a/tests/wpt/metadata/webmessaging/without-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/web-platform-tests/BackgroundSync/idlharness.https.any.js b/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js
index 120477a51e6..29fb87b8263 100644
--- a/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js
+++ b/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js
@@ -4,10 +4,10 @@
'use strict';
-// https://wicg.github.io/BackgroundSync/spec/
+// https://wicg.github.io/background-sync/spec/
idl_test(
- ['BackgroundSync'],
+ ['background-sync'],
['service-workers', 'html', 'dom'],
idlArray => {
const isServiceWorker = location.pathname.includes('.serviceworker.');
diff --git a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht
index ae8e72079a6..49f2b02d998 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht
@@ -11,6 +11,7 @@
<style type="text/css"><![CDATA[
table
{
+ font: 16px monospace;
border-collapse: separate;
border: blue solid medium;
border-spacing: 0px;
@@ -33,7 +34,6 @@
td
{
- color: navy;
padding: 0;
}
]]></style>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht
index 099c6716354..15a53e4aa02 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht
@@ -10,8 +10,8 @@
<link rel="match" href="c414-flt-fit-000-ref.xht" />
<style type="text/css"><![CDATA[
- div { border: solid blue; padding: 1em; width: 14em; margin: 10px; }
- div p { margin: 0; width: 5em; float: left; color: navy; }
+ div { font: 16px monospace; border: solid blue; padding: 1em; width: 14em; margin: 10px; }
+ div p { margin: 0; width: 5em; float: left; }
]]></style>
</head>
@@ -22,7 +22,7 @@
<p> 2 </p>
<p> 4 </p>
3
- 5&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
+ 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!-- the font is set to monospace so we know how wide a nbsp is -->
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht
index 13ddef79ec1..ec0137bba43 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-min-height" />
<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights" />
+ <link rel="match" href="../../reference/pass_if_square_96px_black.html" />
<meta name="flags" content="" />
<meta name="assert" content="The 'min-height' property applies to elements with 'display' set to 'table'." />
<style type="text/css">
@@ -36,4 +37,4 @@
</div>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht
index 2abb772d9b5..48ccd1914fd 100644
--- a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht
+++ b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht
@@ -5,6 +5,7 @@
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-min-height" />
<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights" />
+ <link rel="match" href="../../reference/pass_if_square_96px_black.html" />
<meta name="flags" content="" />
<meta name="assert" content="The 'min-height' property applies to elements with 'display' set to 'inline-table'." />
<style type="text/css">
@@ -36,4 +37,4 @@
</div>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html b/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html
new file mode 100644
index 00000000000..2810f8dae18
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>CSS Basic User Interface Test: ellipsis when there are self-painting objects</title>
+<link rel="help" href="http://www.w3.org/TR/css3-ui/#text-overflow">
+<link rel="help" href="https://crbug.com/1005645">
+<link rel="author" href="mailto:kojii@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+.test {
+ width: 5ch;
+ white-space: nowrap;
+}
+.ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+span {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ background: red;
+ opacity: 0.3;
+}
+</style>
+<body>
+ <div id="test" class="test ellipsis">1234567890 <span></span></div>
+ <div id="ref" class="test">1234567890 <span></span></div>
+<script>
+test(() => {
+ const ref_element = document.getElementById('ref');
+ const test_element = document.getElementById('test');
+ assert_equals(test_element.scrollWidth, ref_element.scrollWidth);
+});
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
index feb876608ac..b033ec44d24 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html
@@ -8,7 +8,6 @@
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
- <iframe sandbox="allow-top-navigation allow-scripts"></iframe>
<script>
// We are the main test page. Open a popup, so that we can
// can experiment navigation of the top frame.
@@ -17,7 +16,8 @@
assert_equals(e.data, "can navigate");
e.source.close();
}));
- window.open("support/load-into-the-iframe.html");
+ let sandbox = "allow-top-navigation allow-scripts";
+ window.open("support/load-into-the-iframe.html?sandbox=" + sandbox);
}, "Frames with `allow-top-navigation` should be able to navigate the top frame.");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
index c7c56d670e5..c3e5dc1fd6a 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html
@@ -9,10 +9,6 @@
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
- <!-- Specifying both allow-top-navigation and
- allow-top-navigation-by-user-activation is a document conformance
- error: allow-top-navigation-by-user-activation will have no effect. -->
- <iframe sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-scripts"></iframe>
<script>
// We are the main test page. Open a popup, so that we can
// can experiment navigation of the top frame.
@@ -21,7 +17,11 @@
assert_equals(e.data, "can navigate");
e.source.close();
}));
- window.open("support/load-into-the-iframe.html");
+ // Specifying both allow-top-navigation and
+ // allow-top-navigation-by-user-activation is a document conformance
+ // error: allow-top-navigation-by-user-activation will have no effect.
+ let sandbox = "allow-top-navigation allow-top-navigation-by-user-activation allow-scripts";
+ window.open("support/load-into-the-iframe.html?sandbox=" + sandbox);
}, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set.");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html
index 05a80be7374..9e08eb587ab 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html
@@ -7,13 +7,18 @@
<body>
<iframe sandbox="allow-scripts"></iframe>
<script>
+ let frame = document.querySelector("iframe");
+ let sandbox = new URL(location.href).searchParams.get("sandbox");
+ if (sandbox) {
+ frame.sandbox = sandbox;
+ }
// We're the popup (i.e. a top frame). Load into the iframe the page
// trying to modifying the top frame and transmit the result to our
// opener.
onmessage = function(e) {
opener.postMessage(e.data, "*")
}
- document.querySelector("iframe").src = "iframe-that-performs-top-navigation-on-popup.html";
+ frame.src = "iframe-that-performs-top-navigation-on-popup.html";
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/interfaces/BackgroundSync.idl b/tests/wpt/web-platform-tests/interfaces/background-sync.idl
index c52dcdb8984..c52dcdb8984 100644
--- a/tests/wpt/web-platform-tests/interfaces/BackgroundSync.idl
+++ b/tests/wpt/web-platform-tests/interfaces/background-sync.idl
diff --git a/tests/wpt/web-platform-tests/lint.ignore b/tests/wpt/web-platform-tests/lint.ignore
index 078a706f079..9d057e76edc 100644
--- a/tests/wpt/web-platform-tests/lint.ignore
+++ b/tests/wpt/web-platform-tests/lint.ignore
@@ -757,6 +757,7 @@ TESTHARNESS-IN-OTHER-TYPE: html/semantics/interactive-elements/the-summary-eleme
TESTHARNESS-IN-OTHER-TYPE: html/semantics/text-level-semantics/the-ruby-element/rt-without-ruby-crash.html
TESTHARNESS-IN-OTHER-TYPE: portals/portals-no-frame-crash.html
TESTHARNESS-IN-OTHER-TYPE: quirks/table-replaced-descendant-percentage-height-crash.html
+TESTHARNESS-IN-OTHER-TYPE: scroll-animations/null-scroll-source-crash.html
TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-circular-filter-reference-crash.html
TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-clip-path-crash.html
TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-defs-crash.html
diff --git a/tests/wpt/web-platform-tests/manifest/META.yml b/tests/wpt/web-platform-tests/manifest/META.yml
new file mode 100644
index 00000000000..013fc58a29f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/manifest/META.yml
@@ -0,0 +1,5 @@
+spec: https://w3c.github.io/manifest/
+suggested_reviewers:
+ - marcoscaceres
+ - mgiuca
+ - kenchris
diff --git a/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html b/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html
new file mode 100644
index 00000000000..8eb39703a08
--- /dev/null
+++ b/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<title>Test that "manifest" is a supported value for the `rel` of a `link`</title>
+<link rel="help" href="https://w3c.github.io/manifest">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(() => {
+ const result = document.createElement("link").relList.supports("manifest")
+ assert_true(result, "Expected true if manifest is supported as a link relationship");
+}, 'link element supports a rel value of "manifest".');
+</script>
diff --git a/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html
new file mode 100644
index 00000000000..2653dabd980
--- /dev/null
+++ b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Parent is not isolated, child attempts to isolate but uses a bad header value, child is a subdomain of the parent</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id="log"></div>
+
+<script type="module">
+import { insertIframe, sendWasmModule, setBothDocumentDomains } from "./resources/helpers.mjs";
+
+for (const badValue of ["", "?0", "true", "\"?1\"", "1", "?2", "(?1)"]) {
+ let frameWindow;
+ promise_test(async () => {
+ frameWindow = await insertIframe("{{hosts[][www]}}", badValue);
+ }, `"${badValue}": frame insertion`);
+
+ // Since the header values are bad there should be no isolation
+
+ promise_test(async () => {
+ const whatHappened = await sendWasmModule(frameWindow);
+
+ assert_equals(whatHappened, "WebAssembly.Module message received");
+ }, `"${badValue}": message event must occur for`);
+
+ promise_test(async () => {
+ await setBothDocumentDomains(frameWindow);
+
+ // Must not throw
+ frameWindow.document;
+ }, `"${badValue}": setting document.domain must give sync access`);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html
new file mode 100644
index 00000000000..164a19ff381
--- /dev/null
+++ b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Parent is not isolated, child is isolated using parameters on its structured header, child is a subdomain of the parent</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id="log"></div>
+
+<script type="module">
+import { insertIframe, sendWasmModule, setBothDocumentDomains } from "./resources/helpers.mjs";
+
+let frameWindow;
+promise_setup(async () => {
+ frameWindow = await insertIframe("{{hosts[][www]}}", "?1;param1;param2=value2");
+});
+
+// Since they're different-origin, the child's isolation request is respected,
+// so the parent ends up in the site-keyed agent cluster and the child in the
+// origin-keyed one.
+
+promise_test(async () => {
+ const whatHappened = await sendWasmModule(frameWindow);
+
+ assert_equals(whatHappened, "messageerror");
+}, "messageerror event must occur");
+
+promise_test(async () => {
+ await setBothDocumentDomains(frameWindow);
+
+ assert_throws_dom("SecurityError", DOMException, () => {
+ frameWindow.document;
+ });
+}, "setting document.domain should no-op instead of giving sync access");
+</script>
diff --git a/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html b/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html
new file mode 100644
index 00000000000..4c3fa027fd0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html
@@ -0,0 +1,70 @@
+<html class="reftest-wait">
+<title>Scroll-linked animation with Animatable interface</title>
+<link rel="help" href="https://drafts.csswg.org/scroll-animations/">
+<meta name="assert" content="ScrollTimeline should work with animatable
+interface">
+<link rel="match" href="animation-ref.html">
+
+<script src="/web-animations/testcommon.js"></script>
+<script src="/common/reftest-wait.js"></script>
+
+<style>
+ #box {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+ }
+
+ #covered {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ #scroller {
+ overflow: auto;
+ height: 100px;
+ width: 100px;
+ will-change: transform;
+ /* force compositing */
+ }
+
+ #contents {
+ height: 1000px;
+ width: 100%;
+ }
+</style>
+
+<div id="box"></div>
+<div id="covered"></div>
+<div id="scroller">
+ <div id="contents"></div>
+</div>
+
+<script>
+ const scroller = document.getElementById('scroller');
+ const scroll_timeline = new ScrollTimeline({
+ scrollSource: scroller,
+ timeRange: 1000
+ });
+ const box = document.getElementById('box');
+ const animation = box.animate(
+ [
+ { transform: 'translateY(0)', opacity: 1 },
+ { transform: 'translateY(200px)', opacity: 0 }
+ ], {
+ duration: 1000,
+ timeline: scroll_timeline
+ }
+ );
+
+ animation.ready.then(() => {
+ // Move the scroller to the halfway point.
+ const maxScroll = scroller.scrollHeight - scroller.clientHeight;
+ scroller.scrollTop = 0.5 * maxScroll;
+
+ waitForAnimationFrames(2).then(_ => {
+ takeScreenshot();
+ });
+ });
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html b/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html
new file mode 100644
index 00000000000..5ffc522d68e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html
@@ -0,0 +1,26 @@
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1088319">
+<meta name="assert" content="Playing animation with null scroll source should not crash.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ html {
+ overflow: scroll;
+ }
+
+ body {
+ overflow: scroll;
+ }
+</style>
+<div id="box"></div>
+<script>
+ test(() => {
+ const effect = new KeyframeEffect(box, []);
+ const timeline = new ScrollTimeline({
+ timeRange: 1000
+ });
+ const animation = new Animation(effect, timeline);
+ assert_equals(document.scrollingElement, null,
+ "This test relies on scrolling element being nil");
+ animation.play();
+ }, "Playing animation with null scroll source should not crash");
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html
index 34556a785ae..581dbeca977 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html
@@ -75,4 +75,30 @@ promise_test(t => {
});
}, 'requests for OBJECT elements of an image should not be intercepted by service workers');
+promise_test(t => {
+ let frame;
+ return with_iframe('resources/object-navigation-is-not-intercepted-iframe.html')
+ .then(f => {
+ frame = f;
+ t.add_cleanup(() => { frame.remove(); });
+ return frame.contentWindow.test_promise;
+ })
+ .then(result => {
+ assert_equals(result, 'request for embedded content was not intercepted');
+ });
+ }, 'post-load navigation of OBJECT elements should not be intercepted by service workers');
+
+
+promise_test(t => {
+ let frame;
+ return with_iframe('resources/embed-navigation-is-not-intercepted-iframe.html')
+ .then(f => {
+ frame = f;
+ t.add_cleanup(() => { frame.remove(); });
+ return frame.contentWindow.test_promise;
+ })
+ .then(result => {
+ assert_equals(result, 'request for embedded content was not intercepted');
+ });
+ }, 'post-load navigation of EMBED elements should not be intercepted by service workers');
</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html
new file mode 100644
index 00000000000..5e86f67735f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>iframe for embed-and-object-are-not-intercepted test</title>
+<body>
+<script>
+// The EMBED element will call this with the result about whether the EMBED
+// request was intercepted by the service worker.
+var report_result;
+
+// Our parent (the root frame of the test) will examine this to get the result.
+var test_promise = new Promise(resolve => {
+ report_result = resolve;
+ });
+
+let el = document.createElement('embed');
+el.src = "/common/blank.html";
+el.addEventListener('load', _ => {
+ window[0].location = "/service-workers/service-worker/resources/embedded-content-from-server.html";
+}, { once: true });
+document.body.appendChild(el);
+</script>
+
+</body>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html
new file mode 100644
index 00000000000..5c8ab79a500
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>iframe for embed-and-object-are-not-intercepted test</title>
+<body>
+<script>
+// The OBJECT element will call this with the result about whether the OBJECT
+// request was intercepted by the service worker.
+var report_result;
+
+// Our parent (the root frame of the test) will examine this to get the result.
+var test_promise = new Promise(resolve => {
+ report_result = resolve;
+ });
+
+let el = document.createElement('object');
+el.data = "/common/blank.html";
+el.addEventListener('load', _ => {
+ window[0].location = "/service-workers/service-worker/resources/embedded-content-from-server.html";
+}, { once: true });
+document.body.appendChild(el);
+</script>
+
+</body>
+
diff --git a/tests/wpt/web-platform-tests/tools/docker/README.md b/tests/wpt/web-platform-tests/tools/docker/README.md
index 9342aded298..2203727ef96 100644
--- a/tests/wpt/web-platform-tests/tools/docker/README.md
+++ b/tests/wpt/web-platform-tests/tools/docker/README.md
@@ -4,15 +4,13 @@ images must be updated as well. Doing this requires you be part of the
'webplatformtests' organization on Docker Hub; ping @Hexcles or @stephenmcgruer
if you are not a member.
-In this directory, run the following, where `<tag>` is of the form
-`webplatformtests/wpt:{current-version + 0.01}`:
+The tag for a new docker image is of the form
+`webplatformtests/wpt:{current-version + 0.01}`
-```sh
-# --pull forces Docker to get the newest base image.
-docker build --pull -t <tag> .
-docker push <tag>
-```
+To update the docker image:
-Then update the following Taskcluster configurations to use the new image:
-* `.taskcluster.yml` (the decision task)
-* `tools/ci/tc/tasks/test.yml` (all the other tasks)
+* Update the following Taskcluster configurations to use the new image:
+ - `.taskcluster.yml` (the decision task)
+ - `tools/ci/tc/tasks/test.yml` (all the other tasks)
+
+* Run `wpt docker-push`
diff --git a/tests/wpt/web-platform-tests/tools/docker/commands.json b/tests/wpt/web-platform-tests/tools/docker/commands.json
index 15182cc9e65..421b0a636c2 100644
--- a/tests/wpt/web-platform-tests/tools/docker/commands.json
+++ b/tests/wpt/web-platform-tests/tools/docker/commands.json
@@ -1,6 +1,26 @@
{
- "docker-run": {"path": "frontend.py", "script": "run", "parser": "parser_run", "help": "Run wpt docker image",
- "virtualenv": false},
- "docker-build": {"path": "frontend.py", "script": "build", "help": "Build wpt docker image",
- "virtualenv": false}
+ "docker-run": {
+ "path": "frontend.py",
+ "script": "run",
+ "parser": "parser_run",
+ "help": "Run wpt docker image",
+ "virtualenv": false
+ },
+ "docker-build": {
+ "path": "frontend.py",
+ "script": "build",
+ "help": "Build wpt docker image",
+ "virtualenv": false
+ },
+ "docker-push": {
+ "path": "frontend.py",
+ "script": "push",
+ "parser": "parser_push",
+ "help": "Build and push wpt docker image",
+ "virtualenv": true,
+ "install": [
+ "requests",
+ "pyyaml"
+ ]
+ }
}
diff --git a/tests/wpt/web-platform-tests/tools/docker/frontend.py b/tests/wpt/web-platform-tests/tools/docker/frontend.py
index 59a1cff2ebd..6d35d4c3826 100644
--- a/tests/wpt/web-platform-tests/tools/docker/frontend.py
+++ b/tests/wpt/web-platform-tests/tools/docker/frontend.py
@@ -1,18 +1,111 @@
import argparse
-import subprocess
+import logging
import os
+import re
+import subprocess
+import sys
+
+from six import iteritems
here = os.path.abspath(os.path.dirname(__file__))
wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir))
-def build(*args, **kwargs):
+logger = logging.getLogger()
+
+
+def build(tag="wpt:local", *args, **kwargs):
subprocess.check_call(["docker",
"build",
"--pull",
- "--tag", "wpt:local",
+ "--tag", tag,
here])
+def parser_push():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--tag", action="store",
+ help="Tag to use (default is taken from .taskcluster.yml)")
+ parser.add_argument("--force", action="store_true",
+ help="Ignore warnings and push anyway")
+ return parser
+
+
+def walk_yaml(root, target):
+ rv = []
+ if isinstance(root, list):
+ for value in root:
+ if isinstance(value, (dict, list)):
+ rv.extend(walk_yaml(value, target))
+ elif isinstance(root, dict):
+ for key, value in iteritems(root):
+ if isinstance(value, (dict, list)):
+ rv.extend(walk_yaml(value, target))
+ elif key == target:
+ rv.append(value)
+ return rv
+
+
+def read_image_name():
+ import yaml
+ with open(os.path.join(wpt_root, ".taskcluster.yml")) as f:
+ taskcluster_data = yaml.safe_load(f)
+ taskcluster_values = set(walk_yaml(taskcluster_data, "image"))
+ with open(os.path.join(wpt_root, "tools", "ci", "tc", "tasks", "test.yml")) as f:
+ test_data = yaml.safe_load(f)
+ tests_value = test_data["components"]["wpt-base"]["image"]
+ return taskcluster_values, tests_value
+
+
+def lookup_tag(tag):
+ import requests
+ org, repo_version = tag.split("/", 1)
+ repo, version = repo_version.rsplit(":", 1)
+ resp = requests.get("https://hub.docker.com/v2/repositories/%s/%s/tags/%s" %
+ (org, repo, version))
+ if resp.status_code == 200:
+ return True
+ if resp.status_code == 404:
+ return False
+ resp.raise_for_status()
+
+
+def push(venv, tag=None, force=False, *args, **kwargs):
+ taskcluster_tags, tests_tag = read_image_name()
+
+ taskcluster_tag = taskcluster_tags.pop()
+
+ error_log = logger.warning if force else logger.error
+ if len(taskcluster_tags) != 0 or tests_tag != taskcluster_tag:
+ error_log("Image names in .taskcluster.yml and tools/ci/tc/tasks/test.yml "
+ "don't match.")
+ if not force:
+ sys.exit(1)
+ if tag is not None and tag != taskcluster_tag:
+ error_log("Supplied tag doesn't match .taskcluster.yml or "
+ "tools/ci/tc/tasks/test.yml; remember to update before pushing")
+ if not force:
+ sys.exit(1)
+ if tag is None:
+ logger.info("Using tag %s from .taskcluster.yml" % taskcluster_tag)
+ tag = taskcluster_tag
+
+ tag_re = re.compile(r"webplatformtests/wpt:\d\.\d+")
+ if not tag_re.match(tag):
+ error_log("Tag doesn't match expected format webplatformtests/wpt:0.x")
+ if not force:
+ sys.exit(1)
+
+ if lookup_tag(tag):
+ # No override for this case
+ logger.critical("Tag %s already exists" % tag)
+ sys.exit(1)
+
+ build(tag)
+ subprocess.check_call(["docker",
+ "push",
+ tag])
+
+
def parser_run():
parser = argparse.ArgumentParser()
parser.add_argument("--rebuild", action="store_true", help="Force rebuild of image")
diff --git a/tests/wpt/web-platform-tests/tools/quic/README.md b/tests/wpt/web-platform-tests/tools/quic/README.md
index 5a64b701cfb..ef1d66e3220 100644
--- a/tests/wpt/web-platform-tests/tools/quic/README.md
+++ b/tests/wpt/web-platform-tests/tools/quic/README.md
@@ -11,20 +11,23 @@ authors can implement custom handlers by putting python scripts in
## Custom Handlers
The QuicTransportServer calls functions defined in each handler script.
- - handle_client_indication is called during the client indication process.
+ - `handle_client_indication` is called during the client indication process.
This function is called with three arguments:
- - connection: aioquic.asyncio.QuicConnectionProtocol
- - origin: str The origin of the initiator.
- - query: Dict[str, str] The dictionary of query parameters of the URL of the
- connection.
+ - `connection`: [`aioquic.asyncio.QuicConnectionProtocol`](protocol)
+ - `origin`: `str` The origin of the initiator.
+ - `query`: `Dict[str, str]` The dictionary of query parameters of the URL of the
+ connection.
A handler can abort the client indication process either by raising an
exception or closing the connection.
- - handle_event is called when a QuicEvent arrives.
- - connection: aioquic.asyncio.QuicConnectionProtocol
- - event: aioquic.quic.events.QuicEvent
+ - `handle_event` is called when a [`QuicEvent`](event) arrives.
+ - `connection`: [`aioquic.asyncio.QuicConnectionProtocol`](protocol)
+ - `event`: [`aioquic.quic.events.QuicEvent`](event)
This function is not called until the client indication process finishes
successfully.
+
+[protocol]: https://aioquic.readthedocs.io/en/latest/asyncio.html#aioquic.asyncio.QuicConnectionProtocol
+[event]: https://aioquic.readthedocs.io/en/latest/quic.html#module-aioquic.quic.events
diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py
index a9fdeada1ec..95d9369f2a8 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/run.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/run.py
@@ -156,11 +156,10 @@ class BrowserSetup(object):
name = None
browser_cls = None
- def __init__(self, venv, prompt=True, sub_product=None):
+ def __init__(self, venv, prompt=True):
self.browser = self.browser_cls(logger)
self.venv = venv
self.prompt = prompt
- self.sub_product = sub_product
def prompt_install(self, component):
if not self.prompt:
@@ -588,8 +587,10 @@ class Sauce(BrowserSetup):
raise NotImplementedError
def setup_kwargs(self, kwargs):
- kwargs.set_if_none("sauce_browser", self.sub_product[0])
- kwargs.set_if_none("sauce_version", self.sub_product[1])
+ if kwargs["sauce_browser"] is None:
+ raise WptrunError("Missing required argument --sauce-browser")
+ if kwargs["sauce_version"] is None:
+ raise WptrunError("Missing required argument --sauce-version")
kwargs["test_types"] = ["testharness", "reftest"]
@@ -719,9 +720,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
kwargs = utils.Kwargs(iteritems(kwargs))
- product_parts = kwargs["product"].split(":")
- kwargs["product"] = product_parts[0].replace("-", "_")
- sub_product = product_parts[1:]
+ kwargs["product"] = kwargs["product"].replace("-", "_")
check_environ(kwargs["product"])
args_general(kwargs)
@@ -729,7 +728,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
if kwargs["product"] not in product_setup:
raise WptrunError("Unsupported product %s" % kwargs["product"])
- setup_cls = product_setup[kwargs["product"]](venv, prompt, sub_product)
+ setup_cls = product_setup[kwargs["product"]](venv, prompt)
setup_cls.install_requirements()
affected_revish = kwargs.pop("affected", None)
diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py
index ef58ec41b2b..d533977e0c7 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py
@@ -69,5 +69,6 @@ def test_setup_wptrunner(venv, logger, product):
kwargs["binary"] = sys.argv[0]
kwargs["webdriver_binary"] = sys.argv[0]
if kwargs["product"] == "sauce":
- kwargs["product"] = "sauce:firefox:63"
+ kwargs["sauce_browser"] = "firefox"
+ kwargs["sauce_version"] = "63"
run.setup_wptrunner(venv, **kwargs)
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
index 00e68b42962..dad633ba9a2 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
@@ -202,6 +202,18 @@ async_test(t => {
}, 'Element.animate() correctly sets the Animation\'s timeline when ' +
'triggered on an element in a different document');
+for (const subtest of gAnimationTimelineTests) {
+ test(t => {
+ const anim = createDiv(t).animate(null, { timeline: subtest.timeline });
+ assert_not_equals(anim, null,
+ 'An animation sohuld be created');
+ assert_equals(anim.timeline, subtest.expectedTimeline,
+ 'Animation timeline should be '+
+ subtest.expectedTimelineDescription);
+ }, 'Element.animate() correctly sets the Animation\'s timeline '
+ + subtest.description + ' in KeyframeAnimationOptions.');
+}
+
test(t => {
const anim = createDiv(t).animate(null, 2000);
assert_equals(anim.playState, 'running');
diff --git a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js
index 3cf3cf22bf8..43e0d7575f2 100644
--- a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js
+++ b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js
@@ -796,3 +796,32 @@ const gInvalidKeyframeEffectOptionTests = [
{ desc: 'a variable easing', input: { easing: 'var(--x)' } },
{ desc: 'a multi-value easing', input: { easing: 'ease-in-out, ease-out' } },
];
+
+// There is currently only ScrollTimeline that can be constructed and used here
+// beyond document timeline. Given that ScrollTimeline is not stable as of yet
+// it's tested in scroll-animations/animation-with-animatable-interface.html.
+const gAnimationTimelineTests = [
+ {
+ expectedTimeline: document.timeline,
+ expectedTimelineDescription: 'document.timeline',
+ description: 'with no timeline parameter'
+ },
+ {
+ timeline: undefined,
+ expectedTimeline: document.timeline,
+ expectedTimelineDescription: 'document.timeline',
+ description: 'with undefined timeline'
+ },
+ {
+ timeline: null,
+ expectedTimeline: null,
+ expectedTimelineDescription: 'null',
+ description: 'with null timeline'
+ },
+ {
+ timeline: document.timeline,
+ expectedTimeline: document.timeline,
+ expectedTimelineDescription: 'document.timeline',
+ description: 'with DocumentTimeline'
+ },
+]; \ No newline at end of file