aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini4
-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-005.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini27
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini2
-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-iframes.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini11
-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_2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini8
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.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/workers/shared-worker-in-data-url-context.window.js.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json375
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini4
-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-005.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini5
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini3
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-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_2.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini4
-rw-r--r--tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini4
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini3
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.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/workers/shared-worker-in-data-url-context.window.js.ini5
-rw-r--r--tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html48
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html51
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js4
-rw-r--r--tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html1
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html41
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html38
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html37
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html36
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html27
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html17
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html21
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html14
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-001.html (renamed from tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html30
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html (renamed from tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html30
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html30
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html5
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html (renamed from tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/support/reference.pngbin0 -> 3452 bytes
-rw-r--r--tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html27
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html30
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html10
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html93
-rw-r--r--tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js8
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html17
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js17
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js9
-rw-r--r--tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml224
-rw-r--r--tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html1
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html108
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html115
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html6
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg3
-rw-r--r--tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html4
-rw-r--r--tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html48
-rw-r--r--tests/wpt/web-platform-tests/webauthn/helpers.js29
-rw-r--r--tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html56
-rw-r--r--tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js77
154 files changed, 1870 insertions, 600 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
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
deleted file mode 100644
index f29da48a2a0..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[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-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
deleted file mode 100644
index baa9f1a7541..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-005.html]
- [Miss clipped float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
index a2abfbb3e90..7c466cf783f 100644
--- a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
@@ -2,39 +2,12 @@
[[data-expected-height\] 1]
expected: FAIL
- [[data-expected-height\] 10]
- expected: FAIL
-
[[data-expected-height\] 3]
expected: FAIL
[[data-expected-height\] 2]
expected: FAIL
- [[data-expected-height\] 5]
- expected: FAIL
-
- [[data-expected-height\] 4]
- expected: FAIL
-
[[data-expected-height\] 7]
expected: FAIL
- [[data-expected-height\] 6]
- expected: FAIL
-
- [[data-expected-height\] 9]
- expected: FAIL
-
- [[data-expected-height\] 8]
- expected: FAIL
-
- [[data-expected-height\] 13]
- expected: FAIL
-
- [[data-expected-height\] 12]
- expected: FAIL
-
- [[data-expected-height\] 11]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini
deleted file mode 100644
index e5010b774b5..00000000000
--- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[flexitem-stretch-range.html]
- 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-iframes.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini
index 171592fc08f..6ef8bb1049f 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini
@@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
+ [elementsFromPoint on inner documents]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini
new file mode 100644
index 00000000000..ee77d05167d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini
new file mode 100644
index 00000000000..c0ac1d5055e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini
new file mode 100644
index 00000000000..7e2330ecc85
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini
new file mode 100644
index 00000000000..7b5c3027187
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini
@@ -0,0 +1,2 @@
+[effect-reference-convolve-error-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini
new file mode 100644
index 00000000000..180e39f034b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini
@@ -0,0 +1,2 @@
+[filters-drop-shadow-001.html]
+ 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 e3aa2c0f5fb..b3d30b5580b 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
@@ -312,27 +312,18 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
- expected: FAIL
-
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html */*]
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 a63e414f43a..87c807a49ff 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%0C]
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_2.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
new file mode 100644
index 00000000000..51f8272a6de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
@@ -0,0 +1,4 @@
+[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
new file mode 100644
index 00000000000..8e2b6af33d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -0,0 +1,8 @@
+[embedded-opener-remove-frame.html]
+ expected: TIMEOUT
+ [opener of discarded nested browsing context]
+ expected: FAIL
+
+ [opener of discarded auxiliary browsing context]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index f4f994c5d6f..7a36937927c 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
- expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
new file mode 100644
index 00000000000..178680e5d14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
@@ -0,0 +1,2 @@
+[script-onerror-insertion-point-2.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini
new file mode 100644
index 00000000000..3e7da9f9a61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fill.maxWidth.fontface.html]
+ [fillText works on @font-face fonts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini
new file mode 100644
index 00000000000..b857906dd86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fill.maxWidth.fontface.worker.html]
+ [fillText works on @font-face fonts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
index 86a5be6e204..659d83f0afc 100644
--- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
@@ -44,3 +44,6 @@
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 38772 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 15790.\n\t[15790\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
expected: FAIL
+ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42287 more errors.\n\tMax AbsError of 1.9900983572006226e+0 at index of 41022.\n\t[41022\]\t-9.9751412868499756e-1\t9.9258422851562500e-1\t1.9900983572006226e+0\t2.0049667323212912e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index 004169c5c1e..b8b6960bbd7 100644
--- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -77,3 +77,6 @@
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t-1.0346872832000000e+10\t5.6332010030746460e-1\t1.0346872832563320e+10\t1.8367661347280018e+10\t9.0957000000000003e-5\n\t[31081\]\t4.5699145518560934e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 1.0346872832563320e+10 at index of 31080.\n\tMax RelError of 1.8367661347280018e+10 at index of 31080.\n]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t1.1879997299240753e-31\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5617870207630095e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31080.\n]
+ 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/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini
index 10dda3a6659..6d92f8835c6 100644
--- a/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini
@@ -1,7 +1,8 @@
[shared-worker-in-data-url-context.window.html]
+ expected: TIMEOUT
[Create a shared worker in a data url frame]
- expected: FAIL
+ expected: TIMEOUT
[Create a data url shared worker in a data url frame]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 6c672ba3c9a..d16e86f65bf 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -179185,6 +179185,19 @@
{}
]
],
+ "preserve3d-overflow-percent.html": [
+ "1c4962001e3f5f55c2a671f43abe217454cc2ae5",
+ [
+ null,
+ [
+ [
+ "/common/blank.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"rotate": {
"svg-rotate-3args-002.html": [
"5906a2f4041319143b926f75af321b714f66d39b",
@@ -202665,13 +202678,39 @@
{}
]
],
- "backdrop-filters-grayscale.html": [
- "925c83cd027c1398544d4f6aa7e996f1b14fdac7",
+ "backdrop-filters-grayscale-001.html": [
+ "75fe110b823b6b1e5068af9c75e0ad6e154beb21",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "backdrop-filters-grayscale-002.html": [
+ "971bed88d3abe3b8239e1fc2e47864c8b22a7911",
[
null,
[
[
- "/css/filter-effects/backdrop-filters-grayscale-ref.html",
+ "/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "backdrop-filters-grayscale-003.html": [
+ "816846df2a6254f4271f09ee9e273c74d561c4d3",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html",
"=="
]
],
@@ -203055,6 +203094,45 @@
{}
]
],
+ "dynamic-filter-changes-001.html": [
+ "e2a28a3fe45ba90ad512e47b8756a01680b36511",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/dynamic-filter-changes-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "effect-reference-after-001.html": [
+ "e8bbc787df5ddd047df3e393d8e07b17c2f95fc9",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/effect-reference-after-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "effect-reference-convolve-error-001.html": [
+ "11922ef83a4b53e5706d183c9253f83a93d7d128",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"fecolormatrix-type.html": [
"5d003f7f9c5175edfa869567d2fe69b95160644d",
[
@@ -203328,6 +203406,19 @@
{}
]
],
+ "filter-url-to-non-existent-filter-001.html": [
+ "6351c903f029ce2325326a177801cdd31af4505d",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"filtered-block-is-container.html": [
"6f99f364e638028098ae10319290e8bf2a9a9457",
[
@@ -203380,13 +203471,26 @@
{}
]
],
- "filters-drop-shadow.html": [
- "b54851322b111e2a9bd3cba53ca57fab7f93f3ae",
+ "filters-drop-shadow-001.html": [
+ "81fa0cb2ad1bab60976b1d3e844f741f9c143467",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/filters-drop-shadow-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "filters-drop-shadow-002.html": [
+ "e9eca4da04a02f7311f3805737797258551e111d",
[
null,
[
[
- "/css/filter-effects/filters-drop-shadow-ref.html",
+ "/css/filter-effects/reference/filters-drop-shadow-002-ref.html",
"=="
]
],
@@ -285573,7 +285677,7 @@
[]
],
"flexitem-stretch-range-ref.html": [
- "e941a157be0f93da78dfdaedf2c2d701b1bf31f8",
+ "01c617698e26960960be4210fd726ce102e188bc",
[]
],
"floated-flexitem-ref.html": [
@@ -302489,7 +302593,7 @@
"properties": {
"resources": {
"testsuite.js": [
- "27042c787a1bfc3d3ad1d70f91de8aa09433001f",
+ "0ec25662c2392d4d80b1c67c19eacc3dc138bae0",
[]
]
}
@@ -306863,10 +306967,6 @@
"7978fec4d492b90d9a159ffa07dd4bc05a87f4e2",
[]
],
- "backdrop-filters-grayscale-ref.html": [
- "eb403f16a0030aca22fefbf919daa987aaa2ee50",
- []
- ],
"backdrop-filters-hue-rotate-ref.html": [
"c70f6bcf9e315f2a9d39b3a564649d2f2d6b7e5d",
[]
@@ -307055,10 +307155,6 @@
"aa6c12e33b5bc3779c9a49ee3c9edd69ffe2ed8f",
[]
],
- "filters-drop-shadow-ref.html": [
- "3776a006095dd3ec5b9ea826e3260c91469711b6",
- []
- ],
"filters-grayscale-001-ref.html": [
"e219a55d33e234f0ed58a45c1175ca66e01b335a",
[]
@@ -307080,6 +307176,42 @@
[]
],
"reference": {
+ "backdrop-filters-grayscale-001-ref.html": [
+ "eb403f16a0030aca22fefbf919daa987aaa2ee50",
+ []
+ ],
+ "backdrop-filters-grayscale-002-ref.html": [
+ "b241017d17b414944c82240ef756c87c582af9f4",
+ []
+ ],
+ "backdrop-filters-grayscale-003-ref.html": [
+ "9ce975c1ef631dc4e8e59c35fcacf6d9c7483b58",
+ []
+ ],
+ "dynamic-filter-changes-001-ref.html": [
+ "699d57c2a8c087c25079232a443a6e2b72c1e79e",
+ []
+ ],
+ "effect-reference-after-001-ref.html": [
+ "cbcff3fa444c580acc67640ce330edcf898aeeb2",
+ []
+ ],
+ "effect-reference-convolve-error-001-ref.html": [
+ "f718ea6abfbab54333ba674ff0dcd320d8672bcd",
+ []
+ ],
+ "filter-url-to-non-existent-filter-001-ref.html": [
+ "c1aeed8c441e6f72c6faa893d64ae30bdacbec06",
+ []
+ ],
+ "filters-drop-shadow-001-ref.html": [
+ "3776a006095dd3ec5b9ea826e3260c91469711b6",
+ []
+ ],
+ "filters-drop-shadow-002-ref.html": [
+ "4227e8cb140e13cbb88a6b1cc366b32b57c2f923",
+ []
+ ],
"filters-opacity-001-ref.html": [
"17d891ee707c36b7d404d9836060d7bb9275e841",
[]
@@ -307210,6 +307342,10 @@
"8b4b25364e0ffbe09e563e13b567fa57330e48d5",
[]
],
+ "reference.png": [
+ "68641b76771abf086dc213b353ac2088fffb931a",
+ []
+ ],
"ruler-h-50%.png": [
"cf2eea6b438a11503a89414cbb2f9f1fde55df0c",
[]
@@ -328814,7 +328950,7 @@
[]
],
"mathml-fragments.js": [
- "8376ccf375def30bec02e4226ea189140efcbe65",
+ "7e2113e95bf549155c9b30a6ca60a365fc384768",
[]
],
"operator-dictionary.js": [
@@ -330064,7 +330200,7 @@
[]
],
"tests2d.yaml": [
- "846dc8b3eedc80171b4ea103b936eaa863b81d6c",
+ "4ff765bdd7990c70f72c0876cc648f62611bc596",
[]
]
}
@@ -345309,7 +345445,7 @@
[]
],
"helpers.js": [
- "27abaaf4766c4a2fe85f1034be8df9145b712f75",
+ "c355d0586257b802c3f4a401c7ddedad16c860f9",
[]
],
"resources": {
@@ -346276,6 +346412,12 @@
[]
]
},
+ "simulcast": {
+ "simulcast.js": [
+ "ed08ddca44866367bd66ea3b5a7c3a6f58a85f03",
+ []
+ ]
+ },
"third_party": {
"README.md": [
"56a2295dd103db76836d17fa513f56d09891c586",
@@ -381020,6 +381162,20 @@
null,
{}
]
+ ],
+ "revert-val-004.html": [
+ "6a7046c0e467896d8eb76efe7f4ae06409dc288a",
+ [
+ null,
+ {}
+ ]
+ ],
+ "revert-val-005.html": [
+ "7295605d4bb6e4ce875b57c0e58b7294422a0096",
+ [
+ null,
+ {}
+ ]
]
},
"css-color": {
@@ -382535,7 +382691,7 @@
]
],
"overflow-auto-006.html": [
- "4fda7effa7204a9edbf0fc15580c8eec252c6b94",
+ "be0f8f19abb0b675af648fbd54799ed60d6ab32f",
[
null,
{}
@@ -383601,7 +383757,7 @@
]
],
"forced-color-adjust-invalid.html": [
- "6329305a9ce381adbee2f4d82409214d7a3c2fbe",
+ "464b07298467e6b9ed82e8c90cf815f4fcc3b9b5",
[
null,
{}
@@ -388825,7 +388981,7 @@
]
],
"property-cascade.html": [
- "5f0b7eb50c21397e0fe2995dd242fa454f78ca7c",
+ "bb50213d5ce171b98b3569e2fd39fcc3b3b22abb",
[
null,
{}
@@ -388873,6 +389029,13 @@
{}
]
],
+ "registered-property-revert.html": [
+ "3d0473ea4397fab0440355a11eb0bff941a50323",
+ [
+ null,
+ {}
+ ]
+ ],
"self-utils.html": [
"b770c86c38269656d77c3e382d3fe0391cdd8cd0",
[
@@ -399093,7 +399256,7 @@
]
],
"will-change-invalid.html": [
- "83710ddbce4d05105afac38416f1ce0f343f937c",
+ "aa99676b3f98d28d6c327ad771f4cd0b35a37a74",
[
null,
{}
@@ -406410,6 +406573,13 @@
{}
]
],
+ "move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html": [
+ "41e012a62e9617f372f85d0a0cedefe8ad42fbd6",
+ [
+ null,
+ {}
+ ]
+ ],
"non-html-document.html": [
"ffd2e6f59464c56fac6694856978192ed03a199c",
[
@@ -435292,6 +435462,13 @@
{}
]
],
+ "image-parse-url-base.html": [
+ "f8201c4948be8df1132c602afb134b71ebd75768",
+ [
+ null,
+ {}
+ ]
+ ],
"img.complete.html": [
"d8d5a84eb7998044fb24847cc0ac5a1185b82bb6",
[
@@ -435398,7 +435575,7 @@
]
],
"relevant-mutations.html": [
- "8b8ce7dfe980967ab8153651f83e6dfba7fb1af5",
+ "db9a7eecc1141ef0a215c3aaadb280eb2d9acbe5",
[
null,
{
@@ -447062,6 +447239,13 @@
{}
]
],
+ "margin-003.html": [
+ "5f0dbf4cc0edcdb406d53f74d55afa500865e392",
+ [
+ null,
+ {}
+ ]
+ ],
"padding-001.html": [
"afcd930452655f2265cf5929c28200e0668a3cc4",
[
@@ -461150,182 +461334,182 @@
]
],
"2d.text.draw.align.center.html": [
- "4a395296bf05d2352a3ec881551d181bf4a5865a",
+ "3dfd54b34806d2e8c6576214dd5e68b18bebbbda",
[
null,
{}
]
],
"2d.text.draw.align.center.worker.js": [
- "e252bd4c2029a18a0f1a515c1c62b2e1b6ea2c98",
+ "41df11ce275e424181368f9745ea5fd598dc7145",
[
"offscreen-canvas/text/2d.text.draw.align.center.worker.html",
{}
]
],
"2d.text.draw.align.end.ltr.html": [
- "0db1858dffb0b9b62b49b6dbb84c4c27870d1813",
+ "9048f3c9110c1e0852847051d3dce75f2d466bfa",
[
null,
{}
]
],
"2d.text.draw.align.end.ltr.worker.js": [
- "c059df58e60c3c1398e1c33d962ab4940859b4cc",
+ "8566b5b93051f2f7143acb1494f11f2296d1978a",
[
"offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.html",
{}
]
],
"2d.text.draw.align.end.rtl.html": [
- "9f8f8c464263c43f37d02421a2b9a4755d0940b3",
+ "db7586cabdc71e43103b8adb30ab0ccd223a8d2f",
[
null,
{}
]
],
"2d.text.draw.align.end.rtl.worker.js": [
- "89011c3691b2f3e82032df0bdcc5588cfe07451e",
+ "be8462689d4d4f2ff90613c4ebb2fbb2960e6a14",
[
"offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.html",
{}
]
],
"2d.text.draw.align.left.html": [
- "a57aa95073c66fd421e5a5fdf21f1ff43620eb60",
+ "ce394fb2293f42ca69d802131c834cf9055980b8",
[
null,
{}
]
],
"2d.text.draw.align.left.worker.js": [
- "90964286fa39384cc946aae206b722ef5d48e805",
+ "f224b958a417f2645e82e9ed26105e91b05a13f6",
[
"offscreen-canvas/text/2d.text.draw.align.left.worker.html",
{}
]
],
"2d.text.draw.align.right.html": [
- "087b379c519ef5b9bb9b3ec6692398ce60ab1d81",
+ "aeb26b5e07e1b83a30ef52418697e010f878d06b",
[
null,
{}
]
],
"2d.text.draw.align.right.worker.js": [
- "1af5da343f914a08fc54a29faf247d7ad69c8e9a",
+ "80cf656bd4623d9dba2f49466d03ec90d14507d4",
[
"offscreen-canvas/text/2d.text.draw.align.right.worker.html",
{}
]
],
"2d.text.draw.align.start.ltr.html": [
- "72af4d3ab25c1c0c4f3a947d46f8927b218f8f53",
+ "ee4f15178b6d2415196522fcc3124320aa99aba8",
[
null,
{}
]
],
"2d.text.draw.align.start.ltr.worker.js": [
- "eb98a053b5cb3936791b1007bfaa3e8b69892f3d",
+ "c1ac7de15a3ab484545b26553015b2da558db43e",
[
"offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.html",
{}
]
],
"2d.text.draw.align.start.rtl.html": [
- "ab4179a5296f6527750e1a7d5fbe9a4dbb02f4c5",
+ "33408f3c910d4a82e83d8f603f00b44014fc0725",
[
null,
{}
]
],
"2d.text.draw.align.start.rtl.worker.js": [
- "585ad732f31c2bf77fba3d42e92be79e64f053e1",
+ "c01e3c4c6b8d4c0d9ce85f8d54b7a1284f9c2305",
[
"offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.html",
{}
]
],
"2d.text.draw.baseline.alphabetic.html": [
- "c64bf9d49973a9b64c8ab3940812aacd20f0352b",
+ "fa93666c783de20631ab7d92a1704fad754cb1a6",
[
null,
{}
]
],
"2d.text.draw.baseline.alphabetic.worker.js": [
- "3112e118d305443fe996ded9e6228b313360031c",
+ "d234d3e4f5e707a46c506854610c63b583bf9011",
[
"offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.html",
{}
]
],
"2d.text.draw.baseline.bottom.html": [
- "f5381e3a61c2245657013f54282b1979d2a1f53e",
+ "ffdc84d54ec96bcaa6b51a82cd6e4cf6ff9bedf4",
[
null,
{}
]
],
"2d.text.draw.baseline.bottom.worker.js": [
- "e8e75fa11af359b352f60efaea2667b4a31c73af",
+ "0dc46e7ccb042b808ea72d2c833f611e116397d1",
[
"offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.html",
{}
]
],
"2d.text.draw.baseline.hanging.html": [
- "3dc426b792c7162f8c2f013d3ee7453133603942",
+ "38d44158b768e6100baba0d6b525d95ccbbe3dee",
[
null,
{}
]
],
"2d.text.draw.baseline.hanging.worker.js": [
- "de79c40997c1d4c46bdabf83bebbcdb6b7f103e0",
+ "c1030c8a5aa9b4a1ad68ec995fa1bb7fc4863892",
[
"offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.html",
{}
]
],
"2d.text.draw.baseline.ideographic.html": [
- "df3f17df2cd9c9c23f845ef578ac7d20421d1901",
+ "fb1aad2b934d0d6c9647e7a87e05b38913a3cc06",
[
null,
{}
]
],
"2d.text.draw.baseline.ideographic.worker.js": [
- "b4f2770a70f978aa287e63b997139995499ec777",
+ "f3ca4a1d5a8713dd00bafa8b05e14531a95410ff",
[
"offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.html",
{}
]
],
"2d.text.draw.baseline.middle.html": [
- "cf1a28d9a264ed782980bfea0043951bebfb4edd",
+ "0a7f356f8e99e46dafb8192a310d608447b6100c",
[
null,
{}
]
],
"2d.text.draw.baseline.middle.worker.js": [
- "9b644c87ac06a37008be8294989b61b0722a3a0f",
+ "800d6023d492ceda2675049171a42d4641c098ee",
[
"offscreen-canvas/text/2d.text.draw.baseline.middle.worker.html",
{}
]
],
"2d.text.draw.baseline.top.html": [
- "19ebb86517b73c3c1f3c29019a2f30d023f8eee3",
+ "b9c6d1e57c2cbae0939ba980ce10febdf33b8ff8",
[
null,
{}
]
],
"2d.text.draw.baseline.top.worker.js": [
- "5e886571aaef788cb5e7a9a4b0fcb5f2d4f37ed5",
+ "1079f146a328cb9aea8f07a2b290be5632beddf6",
[
"offscreen-canvas/text/2d.text.draw.baseline.top.worker.html",
{}
@@ -461346,28 +461530,28 @@
]
],
"2d.text.draw.fill.maxWidth.bound.html": [
- "0dfb4269c92931ee71fbb286a14003e6acd97a3b",
+ "ef942c013bfa35f27b598fa86aef1f36ef7f6eba",
[
null,
{}
]
],
"2d.text.draw.fill.maxWidth.bound.worker.js": [
- "0b1fe8514a01c579e2b4ceb534455961d0e623ee",
+ "8300b221894cea0b04f024d490a4b16d180d02c3",
[
"offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.html",
{}
]
],
"2d.text.draw.fill.maxWidth.fontface.html": [
- "f14ca8c02c7ffedd64eb7dc6996429722704697a",
+ "8a8d68fd2dbf7e0f5ea14c38c0a680f49038b9ca",
[
null,
{}
]
],
"2d.text.draw.fill.maxWidth.fontface.worker.js": [
- "96a3979f5bab6e885bf60961bce60e0a322a692d",
+ "dfcacffba1203ace267da46f659eb75053386435",
[
"offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.html",
{}
@@ -461430,126 +461614,126 @@
]
],
"2d.text.draw.fontface.html": [
- "285b6e387ecae23ba1e9391b2ca150e500cd8aab",
+ "f0273f66c2c6cb7300cee750fd22a1c04abf245e",
[
null,
{}
]
],
"2d.text.draw.fontface.notinpage.html": [
- "d9d9708de8dbb80c66ead186add9431f5420c790",
+ "55b1e71adbe2e9b9a73e5e5b0ee37c71536eb786",
[
null,
{}
]
],
"2d.text.draw.fontface.notinpage.worker.js": [
- "33b9929442168ef7297020134e3954d1fd799bb8",
+ "d7132bb8befa6c3847047c06b79d445adbe99e95",
[
"offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.html",
{}
]
],
"2d.text.draw.fontface.repeat.html": [
- "ee204a002baa7c7297080dfae8d7e38d8fd6cb60",
+ "3448c241c8bf7dacd3202a5e7abe959a14a69f13",
[
null,
{}
]
],
"2d.text.draw.fontface.repeat.worker.js": [
- "f278469a6b8acc591d35803bbf6de0c035ac7d38",
+ "d5774654161aa2fea5a4824e09331d89a9b6be62",
[
"offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.html",
{}
]
],
"2d.text.draw.fontface.worker.js": [
- "eeadc01c74b17bb9cca0942faf3f6f01e10eb3d7",
+ "2bef1267d87cc5b18e81351aa8e89fd84583422f",
[
"offscreen-canvas/text/2d.text.draw.fontface.worker.html",
{}
]
],
"2d.text.draw.space.basic.html": [
- "a9daf1df14f128255dcb9645cbe600a88de2df82",
+ "108e7a6b74fdbdf5aedb09a3057afa82ae27d759",
[
null,
{}
]
],
"2d.text.draw.space.basic.worker.js": [
- "b14c246e4014c1b3915165dd44b5ac566d402d3a",
+ "18d01b82fb2ec670ffc2518de26b3a5fdc8eb44a",
[
"offscreen-canvas/text/2d.text.draw.space.basic.worker.html",
{}
]
],
"2d.text.draw.space.collapse.end.html": [
- "cd11c29baf3c68a1fd014b85edab6cdf942c7448",
+ "7489fe62341e6f8b031644f3449757571443d281",
[
null,
{}
]
],
"2d.text.draw.space.collapse.end.worker.js": [
- "7b40c640543a94c9f6066cec2c3cbc4381f98752",
+ "10670f056889b3eceaaa21eafac0e85901c5b735",
[
"offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.html",
{}
]
],
"2d.text.draw.space.collapse.nonspace.html": [
- "1924626c53517989a00f17e327e8066d3124f8cf",
+ "3241ac7557df61ccbba28a0c7a661013dcbb3bbb",
[
null,
{}
]
],
"2d.text.draw.space.collapse.nonspace.worker.js": [
- "f13bcc931fc795cf7787abf4d119a872033057e1",
+ "04627cd233189a3b7e8228a6bb000ce3a79c98c7",
[
"offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.html",
{}
]
],
"2d.text.draw.space.collapse.other.html": [
- "586ae37025f7d5e338cf6458da900ae12595236c",
+ "1afde6d0d4ebc3bdccef687b0b88b46fa03ba737",
[
null,
{}
]
],
"2d.text.draw.space.collapse.other.worker.js": [
- "0f88a4412bc4827eedfb6cb92874686e7e8f91fc",
+ "375b18421a08afd4b76ad41f7bf9a9d5b0df4a3b",
[
"offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.html",
{}
]
],
"2d.text.draw.space.collapse.space.html": [
- "ac0d0b4e5986f538c7cba0c396880b2c23c38d3b",
+ "621d052e55c29bce9b9b51188883c045d97094dc",
[
null,
{}
]
],
"2d.text.draw.space.collapse.space.worker.js": [
- "2ff1ba55637d69af9a203b5fe2ac9bcec07e2c5f",
+ "0e367af4e2497b1cf655d020a5307af8aff07020",
[
"offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.html",
{}
]
],
"2d.text.draw.space.collapse.start.html": [
- "a9e1f5a47df80d803f03d3b75d7fd817afc9a5af",
+ "3b86a0a1b429067e4d5af62c01a659ce09447ec0",
[
null,
{}
]
],
"2d.text.draw.space.collapse.start.worker.js": [
- "a9a8cc277835bed200f525a1d52fc1080e2acb5b",
+ "81c6a571a0ad27735721ad4dd1db40a75b50828d",
[
"offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.html",
{}
@@ -463625,10 +463809,12 @@
]
],
"two-ids.https.html": [
- "630f07280790e0631fe1c2e795194bd541ffee72",
+ "da9ab2e951171050bba0b91557657d1c953824b9",
[
null,
- {}
+ {
+ "timeout": "long"
+ }
]
]
}
@@ -465592,7 +465778,7 @@
]
],
"pointerevent_pointercapture-in-custom-element.html": [
- "e8f143b309f2dbdda19c90e1aef1865ecf889f47",
+ "6f7c9058d676091788c7f1e3cad961bad54eb2c8",
[
null,
{
@@ -465601,7 +465787,7 @@
]
],
"pointerevent_pointercapture-in-shadow-dom.html": [
- "8279665f97b0ee522b9bd5710d5ec5ad677df85a",
+ "94636231a6f2a53ffcb3478fea225067b636265f",
[
null,
{
@@ -489031,7 +489217,7 @@
]
],
"svglength-additive-by-8.html": [
- "c61cb65ebd923f82d3c44ae00328e4712d214019",
+ "459fc7382a596292d913ab9643be6b32a32726e2",
[
null,
{}
@@ -490047,14 +490233,14 @@
]
],
"stroke-dasharray-invalid.svg": [
- "0c356b6433955588c7b0ed32d9ff8c2eab4c7619",
+ "53a9640c8ffbcb2ec511ea808f02574e934e07b8",
[
null,
{}
]
],
"stroke-dasharray-valid.svg": [
- "e47ebc62a1296f75c42af980b85073ebe135605b",
+ "9326118ceb886c64c936a0dbbf789b87f7302391",
[
null,
{}
@@ -490068,14 +490254,14 @@
]
],
"stroke-dashoffset-invalid.svg": [
- "64e2eec764a13bab403172a1568d085d745033d2",
+ "2040355e2282a59d95a5ace4e1114b0cd14c4741",
[
null,
{}
]
],
"stroke-dashoffset-valid.svg": [
- "f34774e68d7afa7a336ed7cbd30b44695451d74d",
+ "fe7ba12c8870a556b7fd66d74bb18bc5cbf84cf4",
[
null,
{}
@@ -490187,14 +490373,14 @@
]
],
"stroke-width-invalid.svg": [
- "0d3f63d077f29a0a36f6443164dc7f24421a3f62",
+ "2111e376ac4000096cd13e939ecce1cb652e805f",
[
null,
{}
]
],
"stroke-width-valid.svg": [
- "f90781284dcf54b2e864e0607ae3e880a40531e1",
+ "1ee0449afae675b84f1118875ae21c3c7aee67cc",
[
null,
{}
@@ -500697,7 +500883,17 @@
]
],
"getcredential-passing.https.html": [
- "c5237d2cda27e573ee591e95fdad92fae06e56a7",
+ "1af35aa9cb14327d3d1d4ea660b7380d6b0f65bd",
+ [
+ null,
+ {
+ "testdriver": true,
+ "timeout": "long"
+ }
+ ]
+ ],
+ "getcredential-rk-passing.https.html": [
+ "8c0254fee4258478e5920c30f693c84e07cfcb2e",
[
null,
{
@@ -502809,7 +503005,16 @@
null,
{}
]
- ]
+ ],
+ "simulcast": {
+ "basic.https.html": [
+ "ae2e7eec11b85bb0f5b0444e6e6cf7123e7e26e0",
+ [
+ null,
+ {}
+ ]
+ ]
+ }
},
"webrtc-extensions": {
"RTCRtpParameters-maxFramerate.html": [
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
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
deleted file mode 100644
index f29da48a2a0..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-003.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
deleted file mode 100644
index baa9f1a7541..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-005.html]
- [Miss clipped float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
index 94a3570d26b..076c791cd3d 100644
--- a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
+++ b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
@@ -8,6 +8,9 @@
[[data-expected-height\] 3]
expected: FAIL
- [[data-expected-height\] 4]
+ [[data-expected-height\] 1]
+ expected: FAIL
+
+ [[data-expected-height\] 2]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini
deleted file mode 100644
index e5010b774b5..00000000000
--- a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[flexitem-stretch-range.html]
- 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-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
index 171592fc08f..6ef8bb1049f 100644
--- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
@@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
+ [elementsFromPoint on inner documents]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini
new file mode 100644
index 00000000000..ee77d05167d
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini
new file mode 100644
index 00000000000..c0ac1d5055e
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini
new file mode 100644
index 00000000000..7e2330ecc85
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filters-grayscale-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini
deleted file mode 100644
index 2bc222e8e5e..00000000000
--- a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[backdrop-filters-grayscale.html]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini b/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini
new file mode 100644
index 00000000000..7b5c3027187
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini
@@ -0,0 +1,2 @@
+[effect-reference-convolve-error-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini
new file mode 100644
index 00000000000..180e39f034b
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini
@@ -0,0 +1,2 @@
+[filters-drop-shadow-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini
deleted file mode 100644
index f2f0dfffb8d..00000000000
--- a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[filters-drop-shadow.html]
- type: reftest
- 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 81b31a1596f..0d56c1a0b15 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,27 +312,18 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
- expected: FAIL
-
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html */*]
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_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
new file mode 100644
index 00000000000..51f8272a6de
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
@@ -0,0 +1,4 @@
+[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 c757b400205..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
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index e440b1e38c6..dc856a3d5a3 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
- expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
new file mode 100644
index 00000000000..178680e5d14
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
@@ -0,0 +1,2 @@
+[script-onerror-insertion-point-2.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini
new file mode 100644
index 00000000000..3e7da9f9a61
--- /dev/null
+++ b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fill.maxWidth.fontface.html]
+ [fillText works on @font-face fonts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini
new file mode 100644
index 00000000000..b857906dd86
--- /dev/null
+++ b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fill.maxWidth.fontface.worker.html]
+ [fillText works on @font-face fonts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
index a012bab4355..b4279e25e58 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
@@ -113,3 +113,6 @@
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 38772 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 15790.\n\t[15790\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
expected: FAIL
+ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42287 more errors.\n\tMax AbsError of 1.9900983572006226e+0 at index of 41022.\n\t[41022\]\t-9.9751412868499756e-1\t9.9258422851562500e-1\t1.9900983572006226e+0\t2.0049667323212912e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index 059fadbd2df..cb0e30a2ee1 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -308,3 +308,6 @@
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t-1.0346872832000000e+10\t5.6332010030746460e-1\t1.0346872832563320e+10\t1.8367661347280018e+10\t9.0957000000000003e-5\n\t[31081\]\t4.5699145518560934e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 1.0346872832563320e+10 at index of 31080.\n\tMax RelError of 1.8367661347280018e+10 at index of 31080.\n]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t1.1879997299240753e-31\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5617870207630095e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31080.\n]
+ 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/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
index 10dda3a6659..6d92f8835c6 100644
--- a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
+++ b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini
@@ -1,7 +1,8 @@
[shared-worker-in-data-url-context.window.html]
+ expected: TIMEOUT
[Create a shared worker in a data url frame]
- expected: FAIL
+ expected: TIMEOUT
[Create a data url shared worker in a data url frame]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html
new file mode 100644
index 00000000000..6a7046c0e46
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<title>CSS Cascade: using 'revert' with the 'all' property</title>
+<link rel="help" href="https://drafts.csswg.org/css-cascade/#default">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ div {
+ display: inline;
+ }
+ .revert {
+ all: revert;
+ }
+</style>
+<div id=div></div>
+<script>
+ test(function() {
+ let cs = getComputedStyle(div);
+ assert_equals(cs.display, 'inline');
+ div.className = 'revert';
+ assert_equals(cs.display, 'block');
+ }, 'The revert keyword works with the all property');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html
new file mode 100644
index 00000000000..7295605d4bb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>CSS Cascade: 'revert' in css-logical properties</title>
+<link rel="help" href="https://drafts.csswg.org/css-cascade/#default">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #h1_physical {
+ margin: 0px;
+ margin: revert;
+ }
+ #h1_logical {
+ margin: 0px;
+ margin-inline-start: revert;
+ margin-inline-end: revert;
+ margin-block-start: revert;
+ margin-block-end: revert;
+ }
+</style>
+<h1 id=h1_physical></h1>
+<h1 id=h1_logical></h1>
+<h1 id=ref></h1>
+<script>
+ test(function() {
+ let actual = getComputedStyle(h1_physical).marginTop;
+ let expected = getComputedStyle(ref).marginTop;
+ // This test assumes that the UA style sheet sets a non-0px value on
+ // <h1> elements:
+ assert_not_equals(expected, '0px');
+ assert_equals(actual, expected);
+ }, 'The revert keyword works with physical properties');
+
+ test(function() {
+ let actual = getComputedStyle(h1_logical).marginTop;
+ let expected = getComputedStyle(ref).marginTop;
+ // This test assumes that the UA style sheet sets a non-0px value on
+ // <h1> elements:
+ assert_not_equals(expected, '0px');
+ assert_equals(actual, expected);
+ }, 'The revert keyword works with logical properties');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html
index 4fda7effa72..be0f8f19abb 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html
@@ -42,14 +42,6 @@
<div class="overflow"><div style="width: 100px; height: 20px"></div></div>
</div>
-<div class="flexbox vertical to-be-checked" check-height check-accounts-scrollbar>
- <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
-</div>
-
-<div class="flexbox row-reverse vertical to-be-checked" check-height check-accounts-scrollbar>
- <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
-</div>
-
<div class="flexbox to-be-checked" check-height check-accounts-scrollbar>
<div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
</div>
@@ -66,14 +58,6 @@
<div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
</div>
-<div class="inline-flexbox column to-be-checked" check-width check-accounts-scrollbar>
- <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
-</div>
-
-<div class="inline-flexbox column-reverse to-be-checked" check-width check-accounts-scrollbar>
- <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
-</div>
-
<div class="inline-flexbox column vertical to-be-checked" check-width check-accounts-scrollbar>
<div class="overflow"><div style="width: 20px; height: 100px"></div></div>
</div>
@@ -82,14 +66,6 @@
<div class="overflow"><div style="width: 20px; height: 100px"></div></div>
</div>
-<div class="inline-flexbox column to-be-checked" check-width check-accounts-scrollbar>
- <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
-</div>
-
-<div class="inline-flexbox column-reverse to-be-checked" check-width check-accounts-scrollbar>
- <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
-</div>
-
<div class="inline-flexbox column vertical to-be-checked" check-width>
<div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html
index e941a157be0..01c617698e2 100644
--- a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html
@@ -3,7 +3,7 @@
<body>
<p>When stretching a range input, the thumb should be centered vertically.</p>
<div style="height: 200px;">
- <input type="range" style="width: 100%; height: 100%; margin: 0;">
+ <input type="range" style="width: 100%; height: 100%; margin: 0; box-sizing: border-box;">
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html b/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html
index 6329305a9ce..464b0729846 100644
--- a/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html
@@ -10,6 +10,5 @@
test_invalid_value("forced-color-adjust", "none none");
test_invalid_value("forced-color-adjust", "none auto");
test_invalid_value("forced-color-adjust", "1");
- test_invalid_value("forced-color-adjust", "revert");
test_invalid_value("forced-color-adjust", "default");
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html
index 5f0b7eb50c2..bb50213d5ce 100644
--- a/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#the-registerproperty-function" />
-<meta name="assert" content="Verifies that registering a propety does not affect the cascade" />
+<meta name="assert" content="Verifies that registering a property does not affect the cascade" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html
new file mode 100644
index 00000000000..3d0473ea439
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1" />
+<link rel="help" href="https://drafts.csswg.org/css-cascade/#default" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #parent {
+ --inherited: 10px;
+ --non-inherited: 10px;
+ }
+ #child {
+ --inherited: 20px;
+ --non-inherited: 20px;
+ --inherited: revert;
+ --non-inherited: revert;
+ }
+</style>
+<div id=parent>
+ <div id=child>
+ </div>
+</div>
+<script>
+
+CSS.registerProperty({
+ name: "--inherited",
+ syntax: "<length>",
+ initialValue: "0px",
+ inherits: true
+});
+
+CSS.registerProperty({
+ name: "--non-inherited",
+ syntax: "<length>",
+ initialValue: "0px",
+ inherits: false
+});
+
+test(function(){
+ let cs = getComputedStyle(child);
+ assert_equals(cs.getPropertyValue('--inherited'), '10px');
+}, 'Inherited registered custom property can be reverted');
+
+test(function(){
+ let cs = getComputedStyle(child);
+ assert_equals(cs.getPropertyValue('--non-inherited'), '0px');
+}, 'Non-inherited registered custom property can be reverted');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html b/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html
new file mode 100644
index 00000000000..1c4962001e3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Overflow with preserve-3d and percentage-transformed parent is computed using the right reference box</title>
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#transform-style-property">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1626840">
+<link rel="mismatch" href="/common/blank.html">
+<style>
+:root {
+ overflow: hidden;
+}
+body {
+ margin: 0;
+ font-size: 28px;
+}
+#map {
+ width: 100%;
+ height: 100%;
+ backface-visibility: hidden;
+}
+.floor {
+ width: 100%;
+ height: 100vh;
+}
+.skew {
+ height: 20em;
+ width: 20em;
+ position: relative;
+ left: 50%;
+ top: calc(50% + 1.5em);
+ transform-origin: 0% 0%;
+ transform: rotateX(45deg) rotateZ(-45deg) translateX(-50%) translateY(-50%);
+ transform-style: preserve-3d;
+}
+.cylinder {
+ position: absolute;
+ background-color: green;
+ transform-style: preserve-3d;
+ width: 7em;
+ height: 7em;
+ transform: translateZ(1em);
+}
+</style>
+<div id="map">
+ <div class="floor">
+ <div class="skew" style="width: 13em; height: 47em; left: calc(50% + 0em); top: calc(50% + 0.5em);">
+ <div class="cylinder" style="left: calc(1.5em + 0em); top: calc(38em + 0em);"></div>
+ </div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
index 27042c787a1..0ec25662c23 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
@@ -33,6 +33,10 @@ const gCssWideKeywordsExamples = [
description: 'unset keyword',
input: new CSSKeywordValue('initial')
},
+ {
+ description: 'revert keyword',
+ input: new CSSKeywordValue('revert')
+ },
];
const gVarReferenceExamples = [
diff --git a/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html b/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html
index 83710ddbce4..aa99676b3f9 100644
--- a/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html
@@ -22,6 +22,7 @@ test_invalid_value("will-change", "contents, auto");
test_invalid_value("will-change", "transform, initial");
test_invalid_value("will-change", "transform, inherit");
test_invalid_value("will-change", "transform, unset");
+test_invalid_value("will-change", "transform, revert");
test_invalid_value("will-change", "transform, default");
// will-change additionally excludes the following from <custom-ident>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html
new file mode 100644
index 00000000000..75fe110b823
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>CSS Backdrop Filters: Grayscale(50%)</title>
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=831485">
+<link rel="match" href="reference/backdrop-filters-grayscale-001-ref.html">
+<meta name="assert" content="Check that backdrop-filter works with grayscale(50%)."/>
+<style>
+.square {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ top: 100px;
+ left: 100px;
+ background: blue;
+}
+
+.filt {
+ backdrop-filter: grayscale(50%);
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ top: 50px;
+ left: 50px;
+}
+
+.greenbox {
+ position: absolute;
+ width: 50px;
+ height: 50px;
+ top: 75px;
+ left: 75px;
+ background: green;
+}
+</style>
+<p>You should see a dark blue rectangle with a green box.</p>
+<div class="square"></div>
+<div class="filt">
+ <div class="greenbox"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html
new file mode 100644
index 00000000000..971bed88d3a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>CSS Backdrop Filters: Grayscale(100%) with transparent background color</title>
+<link rel="author" title="Hendrik Wagenaar" href="mailto:hendrikw@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=497522">
+<link rel="match" href="reference/backdrop-filters-grayscale-002-ref.html">
+<meta name="assert" content="Check that backdrop-filter works with grayscale(100%) and a transparent background color."/>
+
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+}
+
+.background_object {
+ left: 10px;
+ top: 10px;
+ background: orange;
+}
+
+.grayscale_backdrop {
+ left: 60px;
+ top: 60px;
+ background: #fff0;
+ backdrop-filter: grayscale(100%);
+}
+</style>
+</head>
+
+<body>
+ <div class="background_object"></div>
+ <div class="grayscale_backdrop"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html
new file mode 100644
index 00000000000..816846df2a6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>CSS Backdrop Filters: Grayscale(100%) with no background</title>
+<link rel="author" title="Jay Dasika" href="mailto:jaydasika@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=527452">
+<link rel="match" href="reference/backdrop-filters-grayscale-003-ref.html">
+<meta name="assert" content="Check that backdrop-filter works with grayscale(100%) and no background."/>
+
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+}
+
+.background_object {
+ left: 10px;
+ top: 10px;
+ background: orange;
+}
+
+.grayscale_backdrop {
+ left: 60px;
+ top: 60px;
+ backdrop-filter: grayscale(100%);
+}
+</style>
+</head>
+
+<body>
+ <div class="background_object"></div>
+ <div class="grayscale_backdrop"></div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html
deleted file mode 100644
index 925c83cd027..00000000000
--- a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<title>CSS Backdrop Filters Animation: Grayscale</title>
-<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
-<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
-<link rel="match" href="backdrop-filters-grayscale-ref.html">
-<style>
- .square {
- position: absolute;
- width: 100px;
- height: 100px;
- top: 100px;
- left: 100px;
- background: blue;
- }
- .filt {
- backdrop-filter: grayscale(50%);
- position: absolute;
- width: 200px;
- height: 200px;
- top: 50px;
- left: 50px;
- }
- .greenbox {
- position: absolute;
- width: 50px;
- height: 50px;
- top: 75px;
- left: 75px;
- background: green;
- }
-</style>
-<p>You should see a dark blue rectangle with a green box.</p>
-<div class="square"></div>
-<div class="filt">
- <div class="greenbox"></div>
-</div>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html b/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html
new file mode 100644
index 00000000000..e2a28a3fe45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>CSS Filters: dynamic filter changes on images with will-change: transform</title>
+<link rel="author" title="Noel Gordon" href="mailto:noel@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=405803">
+<link rel="match" href="reference/dynamic-filter-changes-001-ref.html">
+<meta name="assert" content="A filtered image should be visible after adding a filter to an image with will-change: transform."/>
+
+<style>
+.filter {
+ filter: invert(100%);
+}
+</style>
+
+<script src="/common/reftest-wait.js"></script>
+<script>
+function load(element) {
+ element.classList.add('filter');
+ takeScreenshotDelayed(0);
+}
+</script>
+
+<body>
+ <img style="will-change: transform" onload="load(this)" src="/images/green-256x256.png">
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html
new file mode 100644
index 00000000000..e8bbc787df5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<title>SVG Filters: feColorMatrix filter</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feColorMatrixElement">
+<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=90405">
+<link rel="match" href="reference/effect-reference-after-001-ref.html">
+<meta name="assert" content="Check that a reference filter with forward references work"/>
+<body>
+<img style="filter: url(#MyFilter);" src="support/reference.png">
+<svg width="0px" height="0px">
+ <defs>
+ <filter id="MyFilter">
+ <feColorMatrix type="hueRotate" values="180"/>
+ </filter>
+ </defs>
+</svg>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html
new file mode 100644
index 00000000000..11922ef83a4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<title>SVG Filters: feConvolveMatrix filter</title>
+<link rel="author" title="Fredrik Söderquist" href="mailto:fs@opera.com">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feConvolveMatrixElement">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#ColorInterpolationFiltersProperty">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feColorMatrixElement">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=533457">
+<link rel="match" href="reference/effect-reference-convolve-error-001-ref.html">
+<meta name="assert" content="feConvolveMatrix without a kernelMatrix acts as a pass through filter"/>
+<div style="width: 100px; height: 100px; background-color: red; filter: url(#f)"></div>
+<svg height="0">
+ <filter id="f" x="0" y="0" width="1" height="1">
+ <feConvolveMatrix/>
+ <feColorMatrix values="1 0 0 0 0,
+ 0 1 0 0 0.5,
+ 0 0 1 0 0,
+ 0 0 0 1 1"
+ color-interpolation-filters="sRGB"/>
+ </filter>
+</svg>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html b/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html
new file mode 100644
index 00000000000..6351c903f02
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>CSS Filters: url() with non-existent filter reference</title>
+<link rel="author" title="Justin Novosad" href="mailto:junov@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#local-urls">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=419429">
+<link rel="match" href="reference/filter-url-to-non-existent-filter-001-ref.html">
+<meta name="assert" content="Tests that a non-existent filter reference is gracefully ignored."/>
+
+<marquee>
+ <li style="filter: url(#foo); color: white"></li>
+</marquee>
+<!-- Test passes by not crashing -->
+<p>PASS</p>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow.html b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-001.html
index b54851322b1..81fa0cb2ad1 100644
--- a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow.html
+++ b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-001.html
@@ -6,7 +6,7 @@
<link rel="reviewer" title="Dirk Schulze" href="mailto:dschulze@adobe.com">
<link rel="help" href="https://www.w3.org/TR/filter-effects-1/#funcdef-filter-drop-shadow">
<link rel="help" href="http://www.w3.org/TR/filter-effects-1/#dropshadowEquivalent">
- <link rel="match" href="filters-drop-shadow-ref.html">
+ <link rel="match" href="reference/filters-drop-shadow-001-ref.html">
<meta name="flags" content="">
<meta name="assert" content="This test verifies that the drop-shadow shorthand works. Green box with green shadow.
The shadows appear 10px down and 20px right under the Green box. The red box must not appear under the Green box.">
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html
new file mode 100644
index 00000000000..e9eca4da04a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<title>CSS Filters: drop-shadow filter on element with clipped children</title>
+<link rel="author" title="Stephen White" href="mailto:senorblanco@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=350411">
+<link rel="match" href="reference/filters-drop-shadow-002-ref.html">
+<meta name="assert" content="Check that clipping gets correctly applied on children of a container with a drop-shadow filter in effect."/>
+
+<style>
+.container {
+ filter: drop-shadow(5px 5px 5px black);
+}
+.circle-mask {
+ border-radius: 80px;
+ overflow: hidden;
+ width: 100px;
+ height: 100px;
+ position: absolute;
+}
+.green-box {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+</style>
+<div class="container">
+ <div class="circle-mask">
+ <div class="green-box"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html
index eb403f16a00..eb403f16a00 100644
--- a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-ref.html
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html
new file mode 100644
index 00000000000..b241017d17b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+}
+
+.background_object {
+ left: 10px;
+ top: 10px;
+ background: orange;
+}
+
+.grayscale {
+ left: 60px;
+ top: 60px;
+ width: 50px;
+ height: 50px;
+ background: #ACACAC;
+}
+</style>
+</head>
+<body>
+ <div class="background_object"></div>
+ <div class="grayscale"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html
new file mode 100644
index 00000000000..9ce975c1ef6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+}
+
+.background_object {
+ left: 10px;
+ top: 10px;
+ background: orange;
+}
+
+.grayscale {
+ left: 60px;
+ top: 60px;
+ width: 50px;
+ height: 50px;
+ background: #ACACAC;
+}
+</style>
+</head>
+<body>
+ <div class="background_object"></div>
+ <div class="grayscale"></div>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html
new file mode 100644
index 00000000000..699d57c2a8c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<style>
+ .filter {
+ transform: translateZ(0);
+ filter: invert(100%);
+ }
+</style>
+
+<!-- There should be a bright pink box on this page -->
+<body>
+ <img class="filter" src="/images/green-256x256.png">
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html
new file mode 100644
index 00000000000..cbcff3fa444
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html
@@ -0,0 +1,12 @@
+<!doctype html>
+<html>
+ <body>
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="0px" height="0px">
+ <defs>
+ <filter id="MyFilter">
+ <feColorMatrix type="hueRotate" values="180"/>
+ </filter>
+ </defs>
+ </svg><img style="filter: url(#MyFilter);" src="../support/reference.png">
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html
new file mode 100644
index 00000000000..f718ea6abfb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<div style="width: 100px; height: 100px; background-color: green"></div>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html
new file mode 100644
index 00000000000..c1aeed8c441
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<marquee>
+ <li style="color: white"></li>
+</marquee>
+<p>PASS</p>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html
index 3776a006095..3776a006095 100644
--- a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-ref.html
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html
new file mode 100644
index 00000000000..4227e8cb140
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<style>
+.container {
+ filter: drop-shadow(5px 5px 5px black);
+}
+.circle-mask {
+ border-radius: 80px;
+ overflow: hidden;
+ width: 100px;
+ height: 100px;
+}
+.green-box {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+</style>
+<div class="container">
+ <div class="circle-mask">
+ <div class="green-box"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png b/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png
new file mode 100644
index 00000000000..68641b76771
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html b/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html
new file mode 100644
index 00000000000..41e012a62e9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div contenteditable>
+<p id="p1"><br></p>
+<p id="p2"></p>
+</div>
+<script>
+"use strict";
+let editor = document.querySelector("[contenteditable]");
+let p1 = document.getElementById("p1");
+let p2 = document.getElementById("p2");
+p1.addEventListener("DOMNodeInserted", event => {
+ if (event.target.localName === "i") {
+ p2.appendChild(event.target);
+ }
+});
+document.getSelection().collapse(p1, 0);
+document.execCommand("insertHTML", false,
+ "<b>bold1</b><i>italic1</i><b>bold2</b><i>italic2</i>");
+test(function () {
+ assert_in_array(p1.innerHTML, ["<b>bold1</b><b>bold2</b><br>", "<b>bold1</b><b>bold2</b>"]);
+}, "First <p> element should have only <b> elements");
+test(function () {
+ assert_equals(p2.innerHTML, "<i>italic1</i><i>italic2</i>");
+}, "Second <p> element should have only <i> elements");
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html
new file mode 100644
index 00000000000..f8201c4948b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Image load parses URL after microtask runs</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+
+<body>
+<img id="img">
+<script>
+const t = async_test("An image request's parsed URL should be affected by a " +
+ "dynamically-inserted <base>, if it was inserted before " +
+ "the image request microtask runs");
+
+t.step(() => {
+ const elm = document.getElementById('img');
+ elm.src = 'resources/image.png';
+ elm.onload = t.unreached_func("The image should have failed to load, as " +
+ "the request URL should be affected by the " +
+ "<base> element");
+ elm.onerror = t.step_func_done();
+
+ const base = document.createElement("base");
+ base.setAttribute("href", "bogus/");
+ document.head.appendChild(base);
+});
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html
index 8b8ce7dfe98..db9a7eecc11 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html
@@ -31,6 +31,7 @@
<img crossorigin=use-credentials data-desc="crossorigin use-credentials to absent, src absent">
<img crossorigin=use-credentials data-desc="crossorigin use-credentials to empty, src absent">
<img crossorigin=use-credentials data-desc="crossorigin use-credentials to anonymous, src absent">
+<img crossorigin=use-credentials data-desc="crossorigin use-credentials to invalid, src absent">
<img src="/images/green-2x2.png" data-desc="crossorigin absent to empty, src already set">
<img src="/images/green-2x2.png" data-desc="crossorigin absent to anonymous, src already set">
@@ -42,6 +43,7 @@
<img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to absent, src already set">
<img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to empty, src already set">
<img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to anonymous, src already set">
+<img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to invalid, src already set">
<img src="/images/green-2x2.png" data-desc="inserted into picture"><picture></picture>
@@ -220,6 +222,10 @@ onload = function() {
img.crossOrigin = 'anonymous';
}, 'timeout');
+ t('crossorigin use-credentials to invalid, src absent', function(img) {
+ img.crossOrigin = 'foobar';
+ }, 'timeout');
+
// When src is set, changing the crossorigin attribute state MUST generate
// events.
@@ -263,6 +269,10 @@ onload = function() {
img.crossOrigin = 'anonymous';
}, 'load');
+ t('crossorigin use-credentials to invalid, src already set', function(img) {
+ img.crossOrigin = 'foobar';
+ }, 'load');
+
t('inserted into picture', function(img) {
img.nextSibling.appendChild(img);
}, 'load');
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html
new file mode 100644
index 00000000000..5f0dbf4cc0e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>margin</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#layout-algorithms">
+<meta name="assert" content="Verify that margin is taken into account on children.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/mathml/support/feature-detection.js"></script>
+<script src="/mathml/support/mathml-fragments.js"></script>
+<script src="/mathml/support/layout-comparison.js"></script>
+<script>
+ var epsilon = 1;
+
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+
+ function runTests() {
+
+ for (tag in MathMLFragments) {
+ if (!FragmentHelper.isValidChildOfMrow(tag) ||
+ FragmentHelper.isEmpty(tag) ||
+ FragmentHelper.isTokenElement(tag) ||
+ tag == "semantics" ||
+ tag == "maction" ||
+ tag == "mtable")
+ continue;
+
+ test(function() {
+ assert_true(MathMLFeatureDetection[`has_${tag}`](), `${tag} is supported`);
+
+ document.body.insertAdjacentHTML("beforeend", `<hr/><div>\
+<div style="display: inline-block; border: 1px dashed blue;"><math>${MathMLFragments[tag]}</math></div><br/>\
+<div style="display: inline-block; border: 1px dashed green;"><math>${MathMLFragments[tag]}</math></div>\
+</div>`);
+
+ var div = document.body.lastElementChild;
+ var elementShrinkWrapContainer = div.firstElementChild;
+ var element = elementShrinkWrapContainer.firstElementChild.firstElementChild;
+ var elementContainer = div.firstElementChild;
+ var referenceShrinkWrapContainer = div.lastElementChild;
+ var reference = referenceShrinkWrapContainer.firstElementChild.firstElementChild;
+
+ FragmentHelper.forceNonEmptyElement(element);
+ FragmentHelper.forceNonEmptyElement(reference);
+
+ var mspaceWidth = 20, mspaceHeight = 40, mspaceDepth = 30;
+ var marginLeft = 10, marginRight = 15, marginTop = 20, marginBottom = 25;
+ Array.from(element.children).forEach(mrow => {
+ mrow.outerHTML = `<mspace width="${mspaceWidth}px" height="${mspaceHeight}px" depth='${mspaceDepth}px' style='background: blue; margin-left: ${marginLeft}px; margin-right: ${marginRight}px; margin-top: ${marginTop}px; margin-bottom: ${marginBottom}px;'></mspace>`;
+ });
+
+ Array.from(reference.children).forEach(mrow => {
+ mrow.outerHTML = `<mspace width="${marginLeft+mspaceWidth+marginRight}px" height="${mspaceHeight+marginTop}px" depth='${mspaceDepth+marginBottom}px' style='background: green;'></mspace>`;
+ });
+
+ // Compare sizes.
+ compareSize(element, reference, epsilon);
+
+ // Compare children positions.
+ var elementBox = element.getBoundingClientRect();
+ var referenceBox = reference.getBoundingClientRect();
+ for (var i = 0; i < element.children.length; i++) {
+ var childBox = element.children[i].getBoundingClientRect();
+ var referenceChildBox = reference.children[i].getBoundingClientRect();
+ assert_approx_equals(childBox.width + marginLeft + marginRight, referenceChildBox.width, epsilon, "inline size (child ${i})");
+ assert_approx_equals(childBox.height + marginTop + marginBottom, referenceChildBox.height, epsilon, "block size (child ${i})");
+
+ assert_approx_equals(childBox.left - marginLeft - elementBox.left,
+ referenceChildBox.left - referenceBox.left,
+ epsilon,
+ `inline position (child ${i})`);
+ assert_approx_equals(childBox.top - marginTop - elementBox.top,
+ referenceChildBox.top - referenceBox.top,
+ epsilon,
+ `block position (child ${i})`);
+ }
+
+ // Compare preferred widths.
+ assert_approx_equals(elementShrinkWrapContainer.offsetWidth, referenceShrinkWrapContainer.offsetWidth, epsilon, "preferred width");
+
+ }, `Margin properties on the children of ${tag}`);
+ }
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js
index 8376ccf375d..7e2113e95bf 100644
--- a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js
+++ b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js
@@ -132,6 +132,14 @@ var FragmentHelper = {
tag == "mtd");
},
+ isTokenElement: function(tag) {
+ return (tag == "mi" ||
+ tag == "mtext" ||
+ tag == "mo" ||
+ tag == "mn" ||
+ tag == "ms")
+ },
+
isEmpty: function(tag) {
return tag === "mspace" || tag == "mprescripts" || tag == "none";
},
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html
index 4a395296bf0..3dfd54b3480 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js
index e252bd4c202..41df11ce275 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html
index 0db1858dffb..9048f3c9110 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js
index c059df58e60..8566b5b9305 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html
index 9f8f8c46426..db7586cabdc 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js
index 89011c3691b..be8462689d4 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html
index a57aa95073c..ce394fb2293 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js
index 90964286fa3..f224b958a41 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html
index 087b379c519..aeb26b5e07e 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js
index 1af5da343f9..80cf656bd46 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html
index 72af4d3ab25..ee4f15178b6 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js
index eb98a053b5c..c1ac7de15a3 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html
index ab4179a5296..33408f3c910 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js
index 585ad732f31..c01e3c4c6b8 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html
index c64bf9d4997..fa93666c783 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js
index 3112e118d30..d234d3e4f5e 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html
index f5381e3a61c..ffdc84d54ec 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js
index e8e75fa11af..0dc46e7ccb0 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html
index 3dc426b792c..38d44158b76 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js
index de79c40997c..c1030c8a5aa 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html
index df3f17df2cd..fb1aad2b934 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js
index b4f2770a70f..f3ca4a1d5a8 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html
index cf1a28d9a26..0a7f356f8e9 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js
index 9b644c87ac0..800d6023d49 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html
index 19ebb86517b..b9c6d1e57c2 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js
index 5e886571aae..1079f146a32 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html
index 0dfb4269c92..ef942c013bf 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js
index 0b1fe8514a0..8300b221894 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html
index f14ca8c02c7..8a8d68fd2db 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#f00';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js
index 96a3979f5ba..dfcacffba12 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#f00';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html
index 285b6e387ec..f0273f66c2c 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '67px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html
index d9d9708de8d..55b1e71adbe 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '67px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js
index 33b99294421..d7132bb8bef 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '67px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html
index ee204a002ba..3448c241c8b 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html
@@ -20,13 +20,16 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.fillStyle = '#f00';
-ctx.fillRect(0, 0, 100, 50);
-ctx.font = '67px CanvasTest';
-ctx.fillStyle = '#0f0';
-ctx.fillText('AA', 0, 50);
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.fillStyle = '#f00';
+ ctx.fillRect(0, 0, 100, 50);
+ ctx.font = '67px CanvasTest';
+ ctx.fillStyle = '#0f0';
+ ctx.fillText('AA', 0, 50);
ctx.fillText('AA', 0, 50);
_assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);
_assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js
index f278469a6b8..d5774654161 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js
@@ -16,13 +16,16 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.fillStyle = '#f00';
-ctx.fillRect(0, 0, 100, 50);
-ctx.font = '67px CanvasTest';
-ctx.fillStyle = '#0f0';
-ctx.fillText('AA', 0, 50);
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.fillStyle = '#f00';
+ ctx.fillRect(0, 0, 100, 50);
+ ctx.font = '67px CanvasTest';
+ ctx.fillStyle = '#0f0';
+ ctx.fillText('AA', 0, 50);
ctx.fillText('AA', 0, 50);
_assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);
_assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js
index eeadc01c74b..2bef1267d87 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '67px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html
index a9daf1df14f..108e7a6b74f 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js
index b14c246e401..18d01b82fb2 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html
index cd11c29baf3..7489fe62341 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js
index 7b40c640543..10670f05688 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html
index 1924626c535..3241ac7557d 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js
index f13bcc931fc..04627cd2331 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html
index 586ae37025f..1afde6d0d4e 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js
index 0f88a4412bc..375b18421a0 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html
index ac0d0b4e598..621d052e55c 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js
index 2ff1ba55637..0e367af4e24 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html
index a9e1f5a47df..3b86a0a1b42 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html
@@ -20,9 +20,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js
index a9a8cc27783..81c6a571a0a 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js
@@ -16,9 +16,12 @@ t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
-ctx.font = '50px CanvasTest';
-new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+let fonts = (self.fonts ? self.fonts : document.fonts);
+f.load();
+fonts.add(f);
+fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml b/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml
index 846dc8b3eed..4ff765bdd79 100644
--- a/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml
+++ b/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml
@@ -10273,9 +10273,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#f00';
@@ -10294,9 +10297,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10314,9 +10320,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '67px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10336,13 +10345,16 @@
- CanvasTest
fonthack: 0
code: |
- ctx.fillStyle = '#f00';
- ctx.fillRect(0, 0, 100, 50);
- ctx.font = '67px CanvasTest';
- ctx.fillStyle = '#0f0';
- ctx.fillText('AA', 0, 50);
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.fillStyle = '#f00';
+ ctx.fillRect(0, 0, 100, 50);
+ ctx.font = '67px CanvasTest';
+ ctx.fillStyle = '#0f0';
+ ctx.fillText('AA', 0, 50);
ctx.fillText('AA', 0, 50);
@assert pixel 5,5 ==~ 0,255,0,255;
@assert pixel 95,5 ==~ 0,255,0,255;
@@ -10359,9 +10371,12 @@
- CanvasTest
fonthack: 0
code: |
- ctx.font = '67px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '67px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10380,9 +10395,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10404,9 +10422,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10428,9 +10449,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10451,9 +10475,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10474,9 +10501,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10497,9 +10527,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10521,9 +10554,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10545,9 +10581,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10570,9 +10609,12 @@
- CanvasTest
canvas: width="100" height="50" dir="ltr"
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10596,9 +10638,12 @@
- CanvasTest
canvas: width="100" height="50" dir="rtl"
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10621,9 +10666,12 @@
- CanvasTest
canvas: width="100" height="50" dir="ltr"
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10647,9 +10695,12 @@
- CanvasTest
canvas: width="100" height="50" dir="rtl"
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10671,9 +10722,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10696,9 +10750,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10715,9 +10772,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10734,9 +10794,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10753,9 +10816,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10772,9 +10838,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
@@ -10791,9 +10860,12 @@
fonts:
- CanvasTest
code: |
- ctx.font = '50px CanvasTest';
- new Promise(function(resolve) { step_timeout(resolve, 500); })
- .then(function() {
+ var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+ let fonts = (self.fonts ? self.fonts : document.fonts);
+ f.load();
+ fonts.add(f);
+ fonts.ready.then(function() {
+ ctx.font = '50px CanvasTest';
ctx.fillStyle = '#f00';
ctx.fillRect(0, 0, 100, 50);
ctx.fillStyle = '#0f0';
diff --git a/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html b/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html
index 630f0728079..da9ab2e9511 100644
--- a/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html
+++ b/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html
@@ -1,6 +1,7 @@
<!DOCTYPE HTML>
<meta charset="utf-8">
<title>Origin policy second "ids" member must take precedence</title>
+<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/origin-policy-test-runner.js"></script>
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html
index e8f143b309f..6f7c9058d67 100644
--- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html
@@ -48,59 +48,58 @@
<wc-wc id="wc-wc"></wc-wc>
<div id="log"></div>
<script>
- var logDiv = document.getElementById("log");
- function logMessage(message){
- var log = document.createElement("div");
- var messageNode = document.createTextNode(message);
- log.appendChild(messageNode);
- logDiv.appendChild(log);
- }
- var events = [];
-
- var content = document.getElementById("wc-wc")
- .shadowRoot.getElementById("content");
-
- content.addEventListener("pointerdown", function(e){
- content.setPointerCapture(e.pointerId);
- events.push("pointerdown@content");
- });
- content.addEventListener("gotpointercapture", function(e){
- logMessage("Pointer was captured by custom element's Shadow DOM!");
- events.push("gotpointercapture@content");
- });
- content.addEventListener("pointerup", function(e){
- content.releasePointerCapture(e.pointerId);
- events.push("pointerup@content");
- });
- content.addEventListener("lostpointercapture", function(e){
- logMessage("Pointer was released by custom element's Shadow DOM!");
- events.push("lostpointercapture@content");
- if(window.promise_test && wc_shadow_dom_test){
- wc_shadow_dom_test.step(function(){
- assert_array_equals(events, ["pointerdown@content",
- "gotpointercapture@content", "pointerup@content",
- "lostpointercapture@content"]);
- resolve_test();
- wc_shadow_dom_test.done();
- });
+ function onLoad(){
+ var logDiv = document.getElementById("log");
+ function logMessage(message){
+ var log = document.createElement("div");
+ var messageNode = document.createTextNode(message);
+ log.appendChild(messageNode);
+ logDiv.appendChild(log);
}
- });
+ var events = [];
- var wc_shadow_dom_test = null;
- var resolve_test = null;
- var reject_test = null;
+ var content = document.getElementById("wc-wc")
+ .shadowRoot.getElementById("content");
- function cleanup(){
- events = [];
- shadow_dom_test = null;
- resolve_test = null;
- reject_test = null;
- }
+ content.addEventListener("pointerdown", function(e){
+ content.setPointerCapture(e.pointerId);
+ events.push("pointerdown@content");
+ });
+ content.addEventListener("gotpointercapture", function(e){
+ logMessage("Pointer was captured by custom element's Shadow DOM!");
+ events.push("gotpointercapture@content");
+ });
+ content.addEventListener("pointerup", function(e){
+ content.releasePointerCapture(e.pointerId);
+ events.push("pointerup@content");
+ });
+ content.addEventListener("lostpointercapture", function(e){
+ logMessage("Pointer was released by custom element's Shadow DOM!");
+ events.push("lostpointercapture@content");
+ if(window.promise_test && wc_shadow_dom_test){
+ wc_shadow_dom_test.step(function(){
+ assert_array_equals(events, ["pointerdown@content",
+ "gotpointercapture@content", "pointerup@content",
+ "lostpointercapture@content"]);
+ resolve_test();
+ });
+ }
+ });
- function onLoad(){
+ var wc_shadow_dom_test = null;
+ var resolve_test = null;
+ var reject_test = null;
+
+ function cleanup(){
+ events = [];
+ shadow_dom_test = null;
+ resolve_test = null;
+ reject_test = null;
+ }
if(window.promise_test){
- promise_test(function(t){
- return new Promise(function(resolve, reject){
+ promise_test(async function(t){
+ var actions_promise;
+ return new Promise(async function(resolve, reject){
wc_shadow_dom_test = t;
resolve_test = resolve;
reject_test = reject;
@@ -109,11 +108,14 @@
});
var contentRect = content.getBoundingClientRect();
var actions = new test_driver.Actions();
- var actions_promise = actions
- .pointerMove(contentRect.x, contentRect.y)
- .pointerDown({button: actions.ButtonType.LEFT})
- .pointerUp({button: actions.ButtonType.LEFT})
- .send();
+ actions_promise = actions
+ .pointerMove(Math.ceil(contentRect.x), Math.ceil(contentRect.y))
+ .pointerDown({button: actions.ButtonType.LEFT})
+ .pointerUp({button: actions.ButtonType.LEFT})
+ .send();
+ }).then(async()=>{
+ await actions_promise;
+ t.done();
});
}, "PointerCapture works for custom element Shadow DOM.");
}
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html
index 8279665f97b..94636231a6f 100644
--- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html
@@ -34,64 +34,64 @@
<div id="shadowhost"></div>
<div id="log"></div>
<script>
- var logDiv = document.getElementById("log");
- function logMessage(message){
- var log = document.createElement("div");
- var messageNode = document.createTextNode(message);
- log.appendChild(messageNode);
- logDiv.appendChild(log);
- }
- var events = [];
+ function onLoad(){
+ var logDiv = document.getElementById("log");
+ function logMessage(message){
+ var log = document.createElement("div");
+ var messageNode = document.createTextNode(message);
+ log.appendChild(messageNode);
+ logDiv.appendChild(log);
+ }
+ var events = [];
- var host = document.getElementById("shadowhost");
- var shadowRoot = host.attachShadow({mode: "open"});
- var template = document.getElementById("template");
- var node = template.content.cloneNode(true);
- shadowRoot.appendChild(node);
+ var host = document.getElementById("shadowhost");
+ var shadowRoot = host.attachShadow({mode: "open"});
+ var template = document.getElementById("template");
+ var node = template.content.cloneNode(true);
+ shadowRoot.appendChild(node);
- var content = host.shadowRoot.getElementById("content");
+ var content = host.shadowRoot.getElementById("content");
- content.addEventListener("pointerdown", function(e){
- content.setPointerCapture(e.pointerId);
- events.push("pointerdown@content");
- });
- content.addEventListener("gotpointercapture", function(e){
- logMessage("Pointer was captured by Shadow DOM!");
- events.push("gotpointercapture@content");
- });
- content.addEventListener("pointerup", function(e){
- content.releasePointerCapture(e.pointerId);
- events.push("pointerup@content");
- });
- content.addEventListener("lostpointercapture", function(e){
- logMessage("Pointer was released by Shadow DOM!");
- events.push("lostpointercapture@content");
- if(window.promise_test && shadow_dom_test){
- shadow_dom_test.step(function(){
- assert_array_equals(events, ["pointerdown@content",
- "gotpointercapture@content", "pointerup@content",
- "lostpointercapture@content"]);
- resolve_test();
- shadow_dom_test.done();
- });
- }
- });
+ content.addEventListener("pointerdown", function(e){
+ content.setPointerCapture(e.pointerId);
+ events.push("pointerdown@content");
+ });
+ content.addEventListener("gotpointercapture", function(e){
+ logMessage("Pointer was captured by Shadow DOM!");
+ events.push("gotpointercapture@content");
+ });
+ content.addEventListener("pointerup", function(e){
+ content.releasePointerCapture(e.pointerId);
+ events.push("pointerup@content");
+ });
+ content.addEventListener("lostpointercapture", function(e){
+ logMessage("Pointer was released by Shadow DOM!");
+ events.push("lostpointercapture@content");
+ if(window.promise_test && shadow_dom_test){
+ shadow_dom_test.step(function(){
+ assert_array_equals(events, ["pointerdown@content",
+ "gotpointercapture@content", "pointerup@content",
+ "lostpointercapture@content"]);
+ resolve_test();
+ });
+ }
+ });
- var shadow_dom_test = null;
- var resolve_test = null;
- var reject_test = null;
+ var shadow_dom_test = null;
+ var resolve_test = null;
+ var reject_test = null;
- function cleanup(){
- events = [];
- shadow_dom_test = null;
- resolve_test = null;
- reject_test = null;
- }
+ function cleanup(){
+ events = [];
+ shadow_dom_test = null;
+ resolve_test = null;
+ reject_test = null;
+ }
- function onLoad(){
if(window.promise_test){
- promise_test(function(t){
- return new Promise(function(resolve, reject){
+ promise_test(async function(t){
+ var actions_promise;
+ return new Promise(async function(resolve, reject){
shadow_dom_test = t;
resolve_test = resolve;
reject_test = reject;
@@ -100,11 +100,14 @@
});
var contentRect = content.getBoundingClientRect();
var actions = new test_driver.Actions();
- var actions_promise = actions
- .pointerMove(contentRect.x, contentRect.y)
- .pointerDown({button: actions.ButtonType.LEFT})
- .pointerUp({button: actions.ButtonType.LEFT})
- .send();
+ actions_promise = actions
+ .pointerMove(Math.ceil(contentRect.x), Math.ceil(contentRect.y))
+ .pointerDown({button: actions.ButtonType.LEFT})
+ .pointerUp({button: actions.ButtonType.LEFT})
+ .send();
+ }).then(async ()=>{
+ await actions_promise;
+ t.done();
});
}, "PointerCapture works for Shadow DOM element.");
}
diff --git a/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html b/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html
index c61cb65ebd9..459fc7382a5 100644
--- a/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html
+++ b/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html
@@ -13,8 +13,8 @@
<!-- an1: Change width from 10 to 50 in 4s -->
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
<rect width="10" height="100" fill="green">
- <animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(4% + 8)" begin="0s" dur="4s"/>
- <animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(10% + 10)" begin="5s" dur="4s"/>
+ <animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(4% + 8px)" begin="0s" dur="4s"/>
+ <animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(10% + 10px)" begin="5s" dur="4s"/>
</rect>
</svg>
@@ -73,4 +73,4 @@ smil_async_test((t) => {
window.animationStartsImmediately = true;
-</script> \ No newline at end of file
+</script>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg
index 0c356b64339..53a9640c8ff 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg
@@ -17,6 +17,9 @@ test_invalid_value("stroke-dasharray", "auto");
test_invalid_value("stroke-dasharray", "none 10px");
test_invalid_value("stroke-dasharray", "20px / 30px");
test_invalid_value("stroke-dasharray", "-40px");
+test_invalid_value("stroke-dasharray", "calc(2px + 3)");
+test_invalid_value("stroke-dasharray", "calc(10% + 5)");
+test_invalid_value("stroke-dasharray", "calc(40 + calc(3px + 6%))");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg
index e47ebc62a12..9326118ceb8 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg
@@ -23,6 +23,9 @@ test_valid_value("stroke-dasharray", "calc(2em + 3ex)");
test_valid_value("stroke-dasharray", "10pt 20% 30pc 40in", "10pt, 20%, 30pc, 40in");
test_valid_value("stroke-dasharray", "10vmin, 20vmax, 30em, 40ex");
test_valid_value("stroke-dasharray", "0, 5", ["0, 5", "0px, 5px"]); // Edge/Safari serialize numbers as lengths.
+test_valid_value("stroke-dasharray", "calc(3)");
+test_valid_value("stroke-dasharray", "calc(2 + 1)", "calc(3)");
+test_valid_value("stroke-dasharray", "calc(2 + (7 - 5))", "calc(4)");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg
index 64e2eec764a..2040355e228 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg
@@ -17,6 +17,9 @@ test_invalid_value("stroke-dashoffset", "auto");
test_invalid_value("stroke-dashoffset", "-10.px");
test_invalid_value("stroke-dashoffset", "30deg");
test_invalid_value("stroke-dashoffset", "40px 50%");
+test_invalid_value("stroke-dashoffset", "calc(2px + 3)");
+test_invalid_value("stroke-dashoffset", "calc(10% + 5)");
+test_invalid_value("stroke-dashoffset", "calc(40 + calc(3px + 6%))");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg
index f34774e68d7..fe7ba12c887 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg
@@ -19,6 +19,9 @@ test_valid_value("stroke-dashoffset", "-20%");
test_valid_value("stroke-dashoffset", "30", "30px");
test_valid_value("stroke-dashoffset", "40Q", "40q");
test_valid_value("stroke-dashoffset", "calc(2em + 3ex)");
+test_valid_value("stroke-dashoffset", "calc(3)");
+test_valid_value("stroke-dashoffset", "calc(2 + 1)", "calc(3)");
+test_valid_value("stroke-dashoffset", "calc(2 + (7 - 5))", "calc(4)");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg
index 0d3f63d077f..2111e376ac4 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg
@@ -17,6 +17,9 @@ test_invalid_value("stroke-width", "auto");
test_invalid_value("stroke-width", "10px 20px");
test_invalid_value("stroke-width", "-1px");
test_invalid_value("stroke-width", "-10%");
+test_invalid_value("stroke-width", "calc(2px + 3)");
+test_invalid_value("stroke-width", "calc(10% + 5)");
+test_invalid_value("stroke-width", "calc(40 + calc(3px + 6%))");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg
index f90781284dc..1ee0449afae 100644
--- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg
+++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg
@@ -20,6 +20,9 @@ test_valid_value("stroke-width", "calc(2em + 3ex)");
test_valid_value("stroke-width", "4%");
test_valid_value("stroke-width", "5vmin");
test_valid_value("stroke-width", "calc(50% + 60px)");
+test_valid_value("stroke-width", "calc(3)");
+test_valid_value("stroke-width", "calc(2 + 1)", "calc(3)");
+test_valid_value("stroke-width", "calc(2 + (7 - 5))", "calc(4)");
]]></script>
</svg>
diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
index c5237d2cda2..1af35aa9cb1 100644
--- a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
@@ -34,10 +34,6 @@ standardSetup(function() {
.addCredential(credPromise)
.runTest("passing credentials.get() with rpId (hostname)");
- // allowCredentials
- new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: undefined})
- .runTest("no credential specified");
-
// authnr selection user verification
new GetCredentialsTest({path: "options.publicKey.userVerification", value: undefined})
.addCredential(credPromise)
diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html
new file mode 100644
index 00000000000..8c0254fee42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>WebAuthn credential.get() Resident Key Passing Tests</title>
+<meta name="timeout" content="long">
+<link rel="help" href="hhttps://w3c.github.io/webauthn/#resident-credential">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src=helpers.js></script>
+<body></body>
+<script>
+standardSetup(function() {
+ "use strict";
+
+ // create a resident key credential
+ var credPromise = createCredential({
+ options: {
+ publicKey: {
+ authenticatorSelection: {
+ requireResidentKey: true,
+ }
+ }
+ }
+ });
+
+ // empty allowCredential should find the requireResidentKey: true credential
+ new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: []})
+ .addCredential(credPromise)
+ .setIsResidentKeyTest(true)
+ .runTest("empty allowCredentials");
+
+ // undefined allowCredential should be equivalent to empty
+ new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: undefined})
+ .addCredential(credPromise)
+ .setIsResidentKeyTest(true)
+ .runTest("undefined allowCredentials");
+}, {
+ // browsers may not allow resident key credential creation without uv
+ protocol: "ctap2",
+ hasResidentKey: true,
+ hasUserVerification: true,
+ isUserVerified: true,
+});
+
+/* JSHINT */
+/* globals standardSetup, GetCredentialsTest, createCredential */
+</script>
diff --git a/tests/wpt/web-platform-tests/webauthn/helpers.js b/tests/wpt/web-platform-tests/webauthn/helpers.js
index 27abaaf4766..c355d058625 100644
--- a/tests/wpt/web-platform-tests/webauthn/helpers.js
+++ b/tests/wpt/web-platform-tests/webauthn/helpers.js
@@ -35,6 +35,10 @@ var createCredentialDefaultArgs = {
alg: cose_alg_ECDSA_w_SHA256,
}],
+ authenticatorSelection: {
+ requireResidentKey: false,
+ },
+
timeout: 60000, // 1 minute
excludeCredentials: [] // No excludeList
}
@@ -420,6 +424,9 @@ class GetCredentialsTest extends TestCase {
this.credentialPromiseList = [];
+ // set to true to pass an empty allowCredentials list to credentials.get
+ this.isResidentKeyTest = false;
+
// enable the constructor to modify the default testObject
// would prefer to do this in the super class, but have to call super() before using `this.*`
if (arguments.length) {
@@ -464,7 +471,9 @@ class GetCredentialsTest extends TestCase {
type: "public-key"
};
});
- this.testObject.options.publicKey.allowCredentials = idList;
+ if (!this.isResidentKeyTest) {
+ this.testObject.options.publicKey.allowCredentials = idList;
+ }
// return super.test(desc);
})
.catch((err) => {
@@ -476,6 +485,11 @@ class GetCredentialsTest extends TestCase {
validatePublicKeyCredential(ret);
validateAuthenticatorAssertionResponse(ret.response);
}
+
+ setIsResidentKeyTest(isResidentKeyTest) {
+ this.isResidentKeyTest = isResidentKeyTest;
+ return this;
+ }
}
/**
@@ -535,12 +549,17 @@ function validateAuthenticatorAssertionResponse(assert) {
// TODO: parseAuthenticatorData() and make sure flags are correct
}
-function standardSetup(cb) {
+function standardSetup(cb, options = {}) {
// Setup an automated testing environment if available.
- window.test_driver.add_virtual_authenticator({
+ let authenticatorArgs = {
protocol: "ctap1/u2f",
- transport: "usb"
- }).then(authenticator => {
+ transport: "usb",
+ hasResidentKey: false,
+ hasUserVerification: false,
+ isUserVerified: false,
+ };
+ extendObject(authenticatorArgs, options);
+ window.test_driver.add_virtual_authenticator(authenticatorArgs).then(authenticator => {
cb();
// XXX add a subtest to clean up the virtual authenticator since
// testharness does not support waiting for promises on cleanup.
diff --git a/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html b/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html
new file mode 100644
index 00000000000..ae2e7eec11b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection Simulcast Tests</title>
+<script src="../third_party/sdp/sdp.js"></script>
+<script src="simulcast.js"></script>
+<script src="../RTCPeerConnection-helper.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+promise_test(async t => {
+ const rids = [0, 1, 2];
+ const pc1 = new RTCPeerConnection();
+ t.add_cleanup(() => pc1.close());
+ const pc2 = new RTCPeerConnection();
+ t.add_cleanup(() => pc2.close());
+
+ exchangeIceCandidates(pc1, pc2);
+
+ const metadataToBeLoaded = [];
+ pc2.ontrack = (e) => {
+ const stream = e.streams[0];
+ const v = document.createElement('video');
+ v.autoplay = true;
+ v.srcObject = stream;
+ v.id = stream.id
+ metadataToBeLoaded.push(new Promise((resolve) => {
+ v.addEventListener('loadedmetadata', () => {
+ resolve();
+ });
+ }));
+ };
+
+ // use getUserMedia as getNoiseStream does not have enough entropy to ramp-up.
+ const stream = await navigator.mediaDevices.getUserMedia({video: {width: 1280, height: 720}});
+ t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
+ pc1.addTransceiver(stream.getVideoTracks()[0], {
+ streams: [stream],
+ sendEncodings: rids.map(rid => {rid}),
+ });
+
+ const offer = await pc1.createOffer();
+ await pc1.setLocalDescription(offer),
+ await pc2.setRemoteDescription({
+ type: 'offer',
+ sdp: swapRidAndMidExtensionsInSimulcastOffer(offer, rids),
+ });
+ const answer = await pc2.createAnswer();
+ await pc2.setLocalDescription(answer);
+ await pc1.setRemoteDescription({
+ type: 'answer',
+ sdp: swapRidAndMidExtensionsInSimulcastAnswer(answer, pc1.localDescription, rids),
+ });
+ assert_equals(metadataToBeLoaded.length, 3);
+ return Promise.all(metadataToBeLoaded);
+}, 'Basic simulcast setup with three spatial layers');
+</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js
new file mode 100644
index 00000000000..ed08ddca448
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js
@@ -0,0 +1,77 @@
+'use strict';
+/* Helper functions to munge SDP and split the sending track into
+ * separate tracks on the receiving end. This can be done in a number
+ * of ways, the one used here uses the fact that the MID and RID header
+ * extensions which are used for packet routing share the same wire
+ * format. The receiver interprets the rids from the sender as mids
+ * which allows receiving the different spatial resolutions on separate
+ * m-lines and tracks.
+ */
+const extensionsToFilter = [
+ 'urn:ietf:params:rtp-hdrext:sdes:mid',
+ 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id',
+ 'urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id',
+];
+
+function swapRidAndMidExtensionsInSimulcastOffer(offer, rids) {
+ const sections = SDPUtils.splitSections(offer.sdp);
+ const dtls = SDPUtils.getDtlsParameters(sections[1], sections[0]);
+ const ice = SDPUtils.getIceParameters(sections[1], sections[0]);
+ const rtpParameters = SDPUtils.parseRtpParameters(sections[1]);
+
+ // The gist of this hack is that rid and mid have the same wire format.
+ const rid = rtpParameters.headerExtensions.find(ext => ext.uri === 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id');
+ rtpParameters.headerExtensions = rtpParameters.headerExtensions.filter(ext => {
+ return !extensionsToFilter.includes(ext.uri);
+ });
+ // This tells the other side that the RID packets are actually mids.
+ rtpParameters.headerExtensions.push({id: rid.id, uri: 'urn:ietf:params:rtp-hdrext:sdes:mid', direction: 'sendrecv'});
+
+ // Filter rtx as we have no way to (re)interpret rrid.
+ // Not doing this makes probing use RTX, it's not understood and ramp-up is slower.
+ rtpParameters.codecs = rtpParameters.codecs.filter(c => c.name.toUpperCase() !== 'RTX');
+
+ let sdp = SDPUtils.writeSessionBoilerplate() +
+ SDPUtils.writeDtlsParameters(dtls, 'actpass') +
+ SDPUtils.writeIceParameters(ice) +
+ 'a=group:BUNDLE ' + rids.join(' ') + '\r\n';
+ const baseRtpDescription = SDPUtils.writeRtpDescription('video', rtpParameters);
+ rids.forEach(rid => {
+ sdp += baseRtpDescription +
+ 'a=mid:' + rid + '\r\n' +
+ 'a=msid:rid-' + rid + ' rid-' + rid + '\r\n';
+ });
+ return sdp;
+}
+
+function swapRidAndMidExtensionsInSimulcastAnswer(answer, localDescription, rids) {
+ const sections = SDPUtils.splitSections(answer.sdp);
+ const dtls = SDPUtils.getDtlsParameters(sections[1], sections[0]);
+ const ice = SDPUtils.getIceParameters(sections[1], sections[0]);
+ const rtpParameters = SDPUtils.parseRtpParameters(sections[1]);
+
+ rtpParameters.headerExtensions = rtpParameters.headerExtensions.filter(ext => {
+ return !extensionsToFilter.includes(ext.uri);
+ });
+ const localMid = SDPUtils.getMid(SDPUtils.splitSections(localDescription.sdp)[1]);
+ let sdp = SDPUtils.writeSessionBoilerplate() +
+ SDPUtils.writeDtlsParameters(dtls, 'active') +
+ SDPUtils.writeIceParameters(ice) +
+ 'a=group:BUNDLE ' + localMid + '\r\n';
+ sdp += SDPUtils.writeRtpDescription('video', rtpParameters);
+ sdp += 'a=mid:' + localMid + '\r\n';
+
+ rids.forEach(rid => {
+ sdp += 'a=rid:' + rid + ' recv\r\n';
+ });
+ sdp += 'a=simulcast:recv ' + rids.join(';') + '\r\n';
+
+ // Re-add headerextensions we filtered.
+ const headerExtensions = SDPUtils.parseRtpParameters(SDPUtils.splitSections(localDescription.sdp)[1]).headerExtensions;
+ headerExtensions.forEach(ext => {
+ if (extensionsToFilter.includes(ext.uri)) {
+ sdp += 'a=extmap:' + ext.id + ' ' + ext.uri + '\r\n';
+ }
+ });
+ return sdp;
+}