aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-add-hw-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini14
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini6
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/tabindex-focus-flag.html.ini52
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini12
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini3
-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/018.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json238
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/css/filter-effects/effect-reference-add-hw-001.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini14
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini6
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini2
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini4
-rw-r--r--tests/wpt/metadata/html/interaction/focus/tabindex-focus-flag.html.ini39
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini12
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini3
-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/018.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml2
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/nested-orthogonal-flexbox-relayout.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/reference/nested-orthogonal-flexbox-relayout-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords.html60
-rw-r--r--tests/wpt/web-platform-tests/css/css-shadow-parts/host-part-001.html43
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html105
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/background-image-blur-repaint.html56
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html19
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/background-image-blur-repaint-expected.html28
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-add-hw-001-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/support/color-palette.png (renamed from tests/wpt/web-platform-tests/css/filter-effects/support/reference.png)bin3452 -> 3452 bytes
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html (renamed from tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html (renamed from tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html)11
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html (renamed from tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html)9
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-enabled-tentative.html (renamed from tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-enabled-tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/resources/animation-property-height.js (renamed from tests/wpt/web-platform-tests/feature-policy/experimental-features/resources/animation-property-height.js)0
-rw-r--r--tests/wpt/web-platform-tests/document-policy/experimental-features/resources/common.js90
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-screen-wakelock.html2
-rw-r--r--tests/wpt/web-platform-tests/html/interaction/focus/tabindex-focus-flag.html61
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html4
-rw-r--r--tests/wpt/web-platform-tests/media-capabilities/decodingInfo.any.js67
-rw-r--r--tests/wpt/web-platform-tests/mst-content-hint/RTCRtpSendParameters-degradationPreference.html129
-rw-r--r--tests/wpt/web-platform-tests/tools/serve/serve.py137
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py21
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py9
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js4
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html2
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html2
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html4
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html2
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-supported-by-feature-policy.html2
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html20
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-codecs.html1
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-degradationPreference.html87
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-encodings.html1
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-headerExtensions.html1
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js14
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-rtcp.html1
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-transactionId.html1
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getParameters.html4
94 files changed, 1167 insertions, 439 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini
new file mode 100644
index 00000000000..a1dee88680c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini
@@ -0,0 +1,2 @@
+[nested-orthogonal-flexbox-relayout.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index 628b1fab770..c884dc82eab 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized]
expected: FAIL
+ [listeners are called correct number of times]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
deleted file mode 100644
index e38782d8c85..00000000000
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementFromPoint-001.html]
- [CSSOM View - 5 - extensions to the Document interface]
- 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 c131078eace..23c61ede1a1 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,3 +17,6 @@
[test the top of layer]
expected: FAIL
+ [test some point of the element: top left corner]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
new file mode 100644
index 00000000000..e181af5397f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
@@ -0,0 +1,4 @@
+[elementsFromPoint-invalid-cases.html]
+ [The root element is the last element returned for otherwise empty queries within the viewport]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-add-hw-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-add-hw-001.html.ini
new file mode 100644
index 00000000000..feabed0d89d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-add-hw-001.html.ini
@@ -0,0 +1,2 @@
+[effect-reference-add-hw-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 4576b32cc97..6448d502269 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,24 +312,24 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
- [<iframe>: combined response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
+ [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
index 646a46c0cbb..c7413d589dc 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
@@ -59,6 +59,6 @@
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
- [separate text/javascript error]
+ [separate text/javascript;charset=windows-1252 text/javascript]
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 87c807a49ff..f9392e03143 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,3 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
+ [X-Content-Type-Options%3A%20%22nosniFF%22]
+ expected: FAIL
+
+ [X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
deleted file mode 100644
index 87b07c3e670..00000000000
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_1.html]
- [Multiple history traversals from the same task]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
deleted file mode 100644
index dc2e45516de..00000000000
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_5.html]
- [Multiple history traversals, last would be aborted]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index a16aaaad8b3..8040ed18a5b 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -11,6 +11,6 @@
[Set HTTP URL frame location.protocol to ftp]
expected: FAIL
- [Set data URL frame location.protocol to file]
+ [Set data URL frame location.protocol to data]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
new file mode 100644
index 00000000000..16fa2c5cfc1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
@@ -0,0 +1,4 @@
+[creating_browsing_context_test_01.html]
+ [first argument: absolute url]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/tabindex-focus-flag.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/tabindex-focus-flag.html.ini
new file mode 100644
index 00000000000..d23f60c1a9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/tabindex-focus-flag.html.ini
@@ -0,0 +1,52 @@
+[tabindex-focus-flag.html]
+ [text with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [A with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [#svg-a should not be focusable by default.]
+ expected: FAIL
+
+ [input[type="hidden"\] should not be focusable by default.]
+ expected: FAIL
+
+ [text with tabindex=0 should be focusable.]
+ expected: FAIL
+
+ [IMG with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [a with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [#summary-first should be focusable by default.]
+ expected: FAIL
+
+ [a with tabindex=0 should be focusable.]
+ expected: FAIL
+
+ [a with tabindex=-1 should be focusable.]
+ expected: FAIL
+
+ [#svg-text should not be focusable by default.]
+ expected: FAIL
+
+ [a should not be focusable by default.]
+ expected: FAIL
+
+ [[contenteditable\] should be focusable by default.]
+ expected: FAIL
+
+ [DIV with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [SUMMARY#summary-out-tabindex-invalid with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [a#with-href with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [text with tabindex=-1 should be focusable.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
index c12c0f8ae48..6852d7663de 100644
--- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
@@ -1,4 +1,8 @@
[skip-document-with-fragment.html]
+ expected: TIMEOUT
[Autofocus elements in iframed documents with URL fragments should be skipped.]
expected: FAIL
+ [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index af14e19a466..f45aaafe1c5 100644
--- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,20 +1,16 @@
[supported-elements.html]
- expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: NOTRUN
+ expected: FAIL
[Element with tabindex should support autofocus]
- expected: TIMEOUT
+ expected: FAIL
[Area element should support autofocus]
- expected: NOTRUN
+ expected: FAIL
[Host element with delegatesFocus should support autofocus]
- expected: NOTRUN
-
- [Non-HTMLElement should not support autofocus]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index 295031c1812..338d283eb0e 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-3.html]
- expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-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 46801a858b3..90360fde975 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
@@ -53,3 +53,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 44061 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 28452.\n\t[28452\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+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
+ [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 44052 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 39026.\n\t[39026\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+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
+
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 b76a51e16c5..b0712c65363 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
@@ -86,3 +86,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-3.3433449219311302e-17\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5672520847738763e-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
+ [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-4.6400068104817376e-34\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5571627358307376e-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/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/018.html.ini
new file mode 100644
index 00000000000..663a1f8fa30
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/018.html.ini
@@ -0,0 +1,5 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
new file mode 100644
index 00000000000..663a1f8fa30
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
@@ -0,0 +1,5 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 5578e7dd2ac..e07d754e936 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -136815,6 +136815,19 @@
{}
]
],
+ "nested-orthogonal-flexbox-relayout.html": [
+ "ef158c6a4884b8ee2840bafe27e605e618aa8be5",
+ [
+ null,
+ [
+ [
+ "/css/css-flexbox/reference/nested-orthogonal-flexbox-relayout-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"order": {
"order-with-column-reverse.html": [
"5083d6843649bbbb2bf9d417ae4022042c87e0aa",
@@ -202804,6 +202817,19 @@
{}
]
],
+ "background-image-blur-repaint.html": [
+ "7b3df263081ecceb6517e056e60cfaa35b9981a0",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/background-image-blur-repaint-expected.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"blur-clip-stacking-context-001.html": [
"a96994a8afe126e474f9ee015338749f0015dc1f",
[
@@ -203129,8 +203155,21 @@
{}
]
],
+ "effect-reference-add-hw-001.html": [
+ "78f30c35f47926b63d417c29fc063c96b9171c96",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/effect-reference-add-hw-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"effect-reference-after-001.html": [
- "e8bbc787df5ddd047df3e393d8e07b17c2f95fc9",
+ "a6de2465027e99ff6239dd45524862465dde847f",
[
null,
[
@@ -238363,7 +238402,7 @@
},
"support": {
".azure-pipelines.yml": [
- "fb78944998e33edde5ea614af1a0cf1adc4f02ca",
+ "0bf63f7a374f69063654169e0b74169fce8dc5fd",
[]
],
".codecov.yml": [
@@ -285751,6 +285790,10 @@
"186c5d130c5ea7facc55ff2ac88b1f1f9edf63af",
[]
],
+ "nested-orthogonal-flexbox-relayout-ref.html": [
+ "124ecf843c848a71918559c0b853032184a5e5b1",
+ []
+ ],
"order-painting-ref.html": [
"bf7bc30d017dd4066193b7ed18bdd94dbfeb8de3",
[]
@@ -307227,12 +307270,20 @@
"9ce975c1ef631dc4e8e59c35fcacf6d9c7483b58",
[]
],
+ "background-image-blur-repaint-expected.html": [
+ "bf16d1fa2890af8d1bdb7b95b44af5bfff4dccaa",
+ []
+ ],
"dynamic-filter-changes-001-ref.html": [
"699d57c2a8c087c25079232a443a6e2b72c1e79e",
[]
],
+ "effect-reference-add-hw-001-ref.html": [
+ "79a15223610df684732b9d6d6f5b59810f79403e",
+ []
+ ],
"effect-reference-after-001-ref.html": [
- "cbcff3fa444c580acc67640ce330edcf898aeeb2",
+ "45192b13451fdfe2f00c17dbc84d30a770426e86",
[]
],
"effect-reference-convolve-error-001-ref.html": [
@@ -307345,6 +307396,10 @@
"85dd7324815b8f8ef1a1d0496224c1a0661db9d8",
[]
],
+ "color-palette.png": [
+ "68641b76771abf086dc213b353ac2088fffb931a",
+ []
+ ],
"div-with-filter.html": [
"9a4d4105a8d50b55297783871e144a5858d7a33e",
[]
@@ -307385,10 +307440,6 @@
"8b4b25364e0ffbe09e563e13b567fa57330e48d5",
[]
],
- "reference.png": [
- "68641b76771abf086dc213b353ac2088fffb931a",
- []
- ],
"ruler-h-50%.png": [
"cf2eea6b438a11503a89414cbb2f9f1fde55df0c",
[]
@@ -312420,7 +312471,27 @@
[]
],
"experimental-features": {
+ "layout-animations-disabled-tentative.html.headers": [
+ "bebb5d054826ce19d4a0d4f1381deeb5e72f7270",
+ []
+ ],
+ "layout-animations-disabled-violation-report-js-tentative.html.headers": [
+ "bebb5d054826ce19d4a0d4f1381deeb5e72f7270",
+ []
+ ],
+ "layout-animations-disabled-violation-report-keyframes-tentative.html.headers": [
+ "bebb5d054826ce19d4a0d4f1381deeb5e72f7270",
+ []
+ ],
"resources": {
+ "animation-property-height.js": [
+ "79316cb488fade6e877c690f90c74961ff944f52",
+ []
+ ],
+ "common.js": [
+ "639847abf36d636e537c081a6afd06a3a8fb7f9f",
+ []
+ ],
"document-policy-image.html": [
"4e5b919bd112f044cc3ec9e57afe05ae20f22ece",
[]
@@ -314690,18 +314761,6 @@
[]
],
"experimental-features": {
- "layout-animations-disabled-tentative.html.headers": [
- "7c441bbba555d9da8c2cfc34de2ddaf2a52074f4",
- []
- ],
- "layout-animations-disabled-violation-report-js-tentative.html.headers": [
- "7c441bbba555d9da8c2cfc34de2ddaf2a52074f4",
- []
- ],
- "layout-animations-disabled-violation-report-keyframes-tentative.html.headers": [
- "7c441bbba555d9da8c2cfc34de2ddaf2a52074f4",
- []
- ],
"lazyload": {
"lazyload-disabled-image-tentative.sub.html.headers": [
"7974815fc9cc069a3890cec9d09d1c6b3e3f9908",
@@ -314721,10 +314780,6 @@
]
},
"resources": {
- "animation-property-height.js": [
- "79316cb488fade6e877c690f90c74961ff944f52",
- []
- ],
"async-script.js": [
"3c0ee6d02343891b0234f31c0fb229929ae1b24b",
[]
@@ -315071,7 +315126,7 @@
[]
],
"feature-policy-screen-wakelock.html": [
- "7d3dab45af1d57c805f14cfdbed142ddb2415eba",
+ "6feed51d498651c6565517df3afb49076bcb7c57",
[]
],
"feature-policy-serial-worker.html": [
@@ -338401,7 +338456,7 @@
[]
],
"serve.py": [
- "e4f0d5efaee37170a9c03a208924e483b2a4608a",
+ "45bfd4766ebcd278ab068f9632471c5c23a3c3f1",
[]
],
"test_functional.py": [
@@ -343424,7 +343479,7 @@
[]
],
"environment.py": [
- "2ed4a0f5f93e17c1aad2c6fb9d5de5b48a07aebe",
+ "cbbee8213266bf2f914a4066437dbfa63c774701",
[]
],
"executors": {
@@ -344122,7 +344177,7 @@
[]
],
"server.py": [
- "9e842802fc0f1b273cd78313275e0bf78dbcaf64",
+ "c2498c4ee1e8f45de604f71394c3d6feef82aef1",
[]
],
"sslutils": {
@@ -346412,7 +346467,7 @@
[]
],
"RTCRtpParameters-helper.js": [
- "d61d8e14932963e9f17c47b99f2998d7ef0e9ff4",
+ "17ecfbaf99e8ff133373f1487a282dbaab7562f6",
[]
],
"RTCStats-helper.js": [
@@ -381968,13 +382023,6 @@
{}
]
],
- "flex-flow-percentage-margins-no-available-space-assert.html": [
- "086c4f5dd711fb45b2739dbf74794f81d8e88d95",
- [
- null,
- {}
- ]
- ],
"flex-item-contains-strict.html": [
"25849cc64b2f10cf2d319e1a2f750f32d64359b5",
[
@@ -383080,6 +383128,13 @@
{}
]
],
+ "fontfaceset-load-css-wide-keywords.html": [
+ "b85b92bd15e387db3dacd93b325f7f7b4d8d80db",
+ [
+ null,
+ {}
+ ]
+ ],
"fontfacesetloadevent-constructor.html": [
"d5038ce690c6df5f8eb6f2d0266df052f7200fc5",
[
@@ -390196,6 +390251,13 @@
{}
]
],
+ "host-part-001.html": [
+ "9004141534f134d85590df3372f83838668a72e7",
+ [
+ null,
+ {}
+ ]
+ ],
"host-stylesheet.html": [
"2e65c4b1b57bd9959c68e85e11b442c67f2c5a42",
[
@@ -399859,7 +399921,7 @@
]
],
"CSSStyleSheet-constructable.html": [
- "fbee4298c1411937f8c45a2f6001ee78dccadbb5",
+ "e6293909c2178966a942abb7e544ff437e6d51d3",
[
null,
{}
@@ -403539,6 +403601,34 @@
},
"document-policy": {
"experimental-features": {
+ "layout-animations-disabled-tentative.html": [
+ "0190eaa84f75e3097b95f70adde89296d47cc1f3",
+ [
+ null,
+ {}
+ ]
+ ],
+ "layout-animations-disabled-violation-report-js-tentative.html": [
+ "ee7c295156f26733358d62a4046a097450a6b8e2",
+ [
+ null,
+ {}
+ ]
+ ],
+ "layout-animations-disabled-violation-report-keyframes-tentative.html": [
+ "cd9210cc1382ee1f6dc892783bd275c1de7ab669",
+ [
+ null,
+ {}
+ ]
+ ],
+ "layout-animations-enabled-tentative.html": [
+ "19e405496eef72d176d007c93f7262e6a12b3806",
+ [
+ null,
+ {}
+ ]
+ ],
"unsized-media.tentative.https.sub.html": [
"d7bb72524902cbd519d892b8206569d7607a120b",
[
@@ -419901,34 +419991,6 @@
{}
]
],
- "layout-animations-disabled-tentative.html": [
- "0190eaa84f75e3097b95f70adde89296d47cc1f3",
- [
- null,
- {}
- ]
- ],
- "layout-animations-disabled-violation-report-js-tentative.html": [
- "e7150a91e8749473962884727fb59bb3b978bf68",
- [
- null,
- {}
- ]
- ],
- "layout-animations-disabled-violation-report-keyframes-tentative.html": [
- "163ccae812f129e6cc338eb548e7ace92dd65b17",
- [
- null,
- {}
- ]
- ],
- "layout-animations-enabled-tentative.html": [
- "19e405496eef72d176d007c93f7262e6a12b3806",
- [
- null,
- {}
- ]
- ],
"lazyload": {
"lazyload-disabled-image-tentative.sub.html": [
"5bd9fca2a868197bdcc81486e0a33ce4e3a0659b",
@@ -430350,7 +430412,7 @@
]
},
"tabindex-focus-flag.html": [
- "341162f09e79e9aad17769b709f94aeadb8771cc",
+ "93fdb19a592ff632405c338256082043ae608002",
[
null,
{}
@@ -438061,7 +438123,7 @@
]
],
"import-css-module-basic.html": [
- "902430d0779e3b9e34f95db1da4d4b96c2b24bbb",
+ "1cb290de3feb584bf9dc63e8090f6b31dd10eeb9",
[
null,
{}
@@ -447531,7 +447593,7 @@
},
"media-capabilities": {
"decodingInfo.any.js": [
- "2d74d30eeb623992f629b6932304c3ee2b89e84f",
+ "772d47e87295775f207fedd6f3f68681ca32ad79",
[
"media-capabilities/decodingInfo.any.html",
{
@@ -450435,6 +450497,13 @@
{}
]
],
+ "RTCRtpSendParameters-degradationPreference.html": [
+ "3573bb58760210611cd13f0d7d0fbd2aa6682bd7",
+ [
+ null,
+ {}
+ ]
+ ],
"idlharness.window.js": [
"0d9137dc6fb91b1499d922e01d6ad96049f5757b",
[
@@ -494861,7 +494930,7 @@
},
"wake-lock": {
"idlharness-worker.https.window.js": [
- "c747ad6872a91a5ca81fb1e7ca73f72e4e987097",
+ "76f5352721dfdadca5093b6f08bb648d8b17f93e",
[
"wake-lock/idlharness-worker.https.window.html",
{
@@ -494879,7 +494948,7 @@
]
],
"idlharness.https.window.js": [
- "f9e3c02175d519f454c15109b30fa567709cee2d",
+ "60c25f3386ea8bd2ce8a5955745f9d1ede580f46",
[
"wake-lock/idlharness.https.window.html",
{
@@ -494933,7 +495002,7 @@
]
],
"wakelock-enabled-by-feature-policy.https.sub.html": [
- "376359e888d6191b9eb1241373b3d411bb5bd2d0",
+ "f908717ff410d736ccb42e89c3e95c4852e82696",
[
null,
{
@@ -494942,7 +495011,7 @@
]
],
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
- "a2d3725857be76f33b33257c0c3373edb68396be",
+ "b15289beff4853765fdc30dfd0a3b35d48fd8619",
[
null,
{
@@ -494976,7 +495045,7 @@
]
],
"wakelock-onrelease.https.html": [
- "3506c8ae82b91178468a7158b9fca6d099a498f6",
+ "88c0cdb654c8e700195c430aa74fb2238ce9db10",
[
null,
{
@@ -494985,7 +495054,7 @@
]
],
"wakelock-request-denied.https.html": [
- "8dbe523ed2c5653932a3f6f246d34ada1e4b113f",
+ "b222ef342a6566a9d424044713b1acf2666679eb",
[
null,
{
@@ -495008,7 +495077,7 @@
]
],
"wakelock-supported-by-feature-policy.html": [
- "e7f9c8cb283c20d72c6d936398b9c352a2a0b88a",
+ "a55eb54ba1c48ae7d5330ed1281029d71f0a23e9",
[
null,
{}
@@ -495040,7 +495109,7 @@
]
],
"wakelockpermissiondescriptor.https.html": [
- "fd7a08a34ba7dfe203c42f4d4f78ae626fbea235",
+ "88c95987f1ead6d0e194e3d1dcff6d4b5e852778",
[
null,
{
@@ -502662,42 +502731,35 @@
]
],
"RTCRtpParameters-codecs.html": [
- "fdb584460f862825f2c695ec3cff678c14503fb4",
- [
- null,
- {}
- ]
- ],
- "RTCRtpParameters-degradationPreference.html": [
- "e2c92bc1c0814f294e1b9153febc76886cf2fdb9",
+ "f5fa65e2ac9be706a72feb49c09b37def65986e8",
[
null,
{}
]
],
"RTCRtpParameters-encodings.html": [
- "2f94186fe1e76980f77f5da7fdb516ba411b036f",
+ "00e80885cff30c7bae8c94ebf8fd3ac37e26603a",
[
null,
{}
]
],
"RTCRtpParameters-headerExtensions.html": [
- "85c3338dd62b0a8a4aad1e217673f01dd80d50fa",
+ "7de2b75f4ee85b338d6b36ff7c12c5b17bb61779",
[
null,
{}
]
],
"RTCRtpParameters-rtcp.html": [
- "82fb49be7dea91b0be43ddbbf1d259d3d80b7d99",
+ "79653045200e667f405a749ae6f51a083dc1f99d",
[
null,
{}
]
],
"RTCRtpParameters-transactionId.html": [
- "ae56fb401f44bad254edfbfd670776c5ffe96211",
+ "a7b7865532b877e17bf17edab0ab44ec3ca288d4",
[
null,
{}
@@ -502718,7 +502780,7 @@
]
],
"RTCRtpReceiver-getParameters.html": [
- "7f8ac673a60c73681122df5243f6054b82f31fff",
+ "4be0e3b95ec45bd9693a4da38b146c58b37810f8",
[
null,
{}
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini
deleted file mode 100644
index 5c7a587b84e..00000000000
--- a/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[flex-flow-percentage-margins-no-available-space-assert.html]
- expected: CRASH
diff --git a/tests/wpt/metadata/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini b/tests/wpt/metadata/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini
new file mode 100644
index 00000000000..a1dee88680c
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/nested-orthogonal-flexbox-relayout.html.ini
@@ -0,0 +1,2 @@
+[nested-orthogonal-flexbox-relayout.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index 628b1fab770..c884dc82eab 100644
--- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized]
expected: FAIL
+ [listeners are called correct number of times]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
deleted file mode 100644
index e38782d8c85..00000000000
--- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementFromPoint-001.html]
- [CSSOM View - 5 - extensions to the Document interface]
- 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 85e94926cb3..5733d536fd3 100644
--- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
@@ -21,3 +21,6 @@
[test the top of layer]
expected: FAIL
+ [test some point of the element: top left corner]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
new file mode 100644
index 00000000000..e181af5397f
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
@@ -0,0 +1,4 @@
+[elementsFromPoint-invalid-cases.html]
+ [The root element is the last element returned for otherwise empty queries within the viewport]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/effect-reference-add-hw-001.html.ini b/tests/wpt/metadata/css/filter-effects/effect-reference-add-hw-001.html.ini
new file mode 100644
index 00000000000..feabed0d89d
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/effect-reference-add-hw-001.html.ini
@@ -0,0 +1,2 @@
+[effect-reference-add-hw-001.html]
+ 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 6ca28f093c5..ddd9d62b9bf 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,24 +312,24 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
- [<iframe>: combined response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
+ [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index 646a46c0cbb..c7413d589dc 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -59,6 +59,6 @@
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
- [separate text/javascript error]
+ [separate text/javascript;charset=windows-1252 text/javascript]
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 30e1b851fd4..9383f8004c1 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,3 +11,9 @@
[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%22nosniFF%22]
+ expected: FAIL
+
+ [X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
deleted file mode 100644
index 87b07c3e670..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_1.html]
- [Multiple history traversals from the same task]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
deleted file mode 100644
index dc2e45516de..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_5.html]
- [Multiple history traversals, last would be aborted]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index bc08ec856bc..ee369c247a4 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -18,6 +18,6 @@
[Set HTTP URL frame location.protocol to ftp]
expected: FAIL
- [Set data URL frame location.protocol to file]
+ [Set data URL frame location.protocol to data]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
new file mode 100644
index 00000000000..16fa2c5cfc1
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
@@ -0,0 +1,4 @@
+[creating_browsing_context_test_01.html]
+ [first argument: absolute url]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/interaction/focus/tabindex-focus-flag.html.ini b/tests/wpt/metadata/html/interaction/focus/tabindex-focus-flag.html.ini
index 5af0d13df14..5877dca48b6 100644
--- a/tests/wpt/metadata/html/interaction/focus/tabindex-focus-flag.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/tabindex-focus-flag.html.ini
@@ -11,3 +11,42 @@
[[contenteditable\] should be focusable by default.]
expected: FAIL
+ [text with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [A with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [#svg-a should not be focusable by default.]
+ expected: FAIL
+
+ [text with tabindex=0 should be focusable.]
+ expected: FAIL
+
+ [IMG with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [a with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [a with tabindex=0 should be focusable.]
+ expected: FAIL
+
+ [a with tabindex=-1 should be focusable.]
+ expected: FAIL
+
+ [#svg-text should not be focusable by default.]
+ expected: FAIL
+
+ [DIV with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [SUMMARY#summary-out-tabindex-invalid with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [a#with-href with tabindex=invalid should not be focusable.]
+ expected: FAIL
+
+ [text with tabindex=-1 should be focusable.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
index c12c0f8ae48..6852d7663de 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
@@ -1,4 +1,8 @@
[skip-document-with-fragment.html]
+ expected: TIMEOUT
[Autofocus elements in iframed documents with URL fragments should be skipped.]
expected: FAIL
+ [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index 8b743f36e1d..6b68e9094e4 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,20 +1,16 @@
[supported-elements.html]
- expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Element with tabindex should support autofocus]
- expected: TIMEOUT
+ expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: NOTRUN
+ expected: FAIL
[Area element should support autofocus]
- expected: NOTRUN
+ expected: FAIL
[Host element with delegatesFocus should support autofocus]
- expected: NOTRUN
-
- [Non-HTMLElement should not support autofocus]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index 5f60c78e73c..f6a7aca3306 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
- expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/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 62e14af7f80..b921bb187fb 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
@@ -122,3 +122,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 44061 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 28452.\n\t[28452\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+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
+ [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 44052 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 39026.\n\t[39026\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+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
+
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 c698a27f639..a5f3201be52 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
@@ -317,3 +317,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-3.3433449219311302e-17\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5672520847738763e-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
+ [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-4.6400068104817376e-34\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5571627358307376e-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/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini
new file mode 100644
index 00000000000..663a1f8fa30
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini
@@ -0,0 +1,5 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
new file mode 100644
index 00000000000..663a1f8fa30
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
@@ -0,0 +1,5 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index fb78944998e..0bf63f7a374 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -630,7 +630,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
# --exclude is a workaround for https://github.com/web-platform-tests/wpt/issues/18634 + https://github.com/web-platform-tests/wpt/issues/22175
- - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html --exclude /pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html
+ - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html --exclude /pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html --exclude /pointerevents/pointerevent_pointercapture_in_frame.html --exclude /web-share/share-sharePromise-internal-slot.https.html
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html
deleted file mode 100644
index 086c4f5dd71..00000000000
--- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<title>CSS Flexbox: flex-flow percentage margin with no available space</title>
-<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-shrink-property">
-<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=380201">
-<meta name="assert" content="This test checks that a flexbox doesn't shrink below border/padding
-when stretching children with no available space.">
-<style>
-* {
- display: flex;
- padding-bottom: 20pt;
- min-height: 0.7%;
- margin-top: 6000%;
- flex-shrink: 0;
- flex-basis: 7000%;
-}
-</style>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/check-layout-th.js"></script>
-<abbr data-expected-height=30210272>
- <input></input>
-</abbr>
-<script>
- window.checkLayout('abbr');
-</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/nested-orthogonal-flexbox-relayout.html b/tests/wpt/web-platform-tests/css/css-flexbox/nested-orthogonal-flexbox-relayout.html
new file mode 100644
index 00000000000..ef158c6a488
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/nested-orthogonal-flexbox-relayout.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Flexbox: nested orthogonal children on relayout.</title>
+<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
+<link rel="match" href="reference/nested-orthogonal-flexbox-relayout-ref.html">
+<meta name="assert" content="This test ensures nested orthogonal flex items get properly relaid out when flexbox changes dimensions."/>
+<style>
+#column {
+ display: flex;
+ flex-direction: column;
+ border: 5px solid yellow;
+}
+
+#row {
+ display: flex;
+ flex-direction: row;
+ border: 5px solid blue;
+}
+
+.item {
+ border: 5px solid green;
+}
+</style>
+<body>
+<div id="column">
+ <div id="row">
+ <div class="item">This text should not overflow its box</div>
+ </div>
+</div>
+<script>
+var columnBox = document.getElementById("column");
+columnBox.offsetHeight;
+columnBox.style.width = "200px";
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/nested-orthogonal-flexbox-relayout-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/nested-orthogonal-flexbox-relayout-ref.html
new file mode 100644
index 00000000000..124ecf843c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/nested-orthogonal-flexbox-relayout-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<style>
+#column {
+ display: flex;
+ flex-direction: column;
+ border: 5px solid yellow;
+ width: 200px;
+}
+
+#row {
+ display: flex;
+ flex-direction: row;
+ border: 5px solid blue;
+}
+
+.item {
+ border: 5px solid green;
+}
+</style>
+<body>
+<div id="column">
+ <div id="row">
+ <div class="item">This text should not overflow its box</div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords.html b/tests/wpt/web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords.html
new file mode 100644
index 00000000000..b85b92bd15e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<title>SyntaxError thrown when matching CSS-wide keyword</title>
+<link rel="help" href="https://drafts.csswg.org/css-font-loading/#font-face-set-load">
+<link rel="help" href="https://drafts.csswg.org/css-font-loading/#find-the-matching-font-faces">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+ function load_on_worker(keyword) {
+ return new Promise((resolve, reject) =>{
+ var blob = new Blob([`
+ self.fonts.load('${keyword}').then(
+ ()=>{ self.postMessage('success') },
+ (e)=>{ self.postMessage(e) }
+ );
+ `]);
+ var blob_url = window.URL.createObjectURL(blob);
+ let worker = new Worker(blob_url);
+ worker.onmessage = msg => {
+ if (msg === 'success')
+ resolve(msg.data)
+ else
+ reject(msg.data)
+ }
+ });
+ }
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('initial'));
+ }, 'Loading CSS-wide keyword "initial" causes SyntaxError (document)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('inherit'));
+ }, 'Loading CSS-wide keyword "inherit" causes SyntaxError (document)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('unset'));
+ }, 'Loading CSS-wide keyword "unset" causes SyntaxError (document)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('revert'));
+ }, 'Loading CSS-wide keyword "revert" causes SyntaxError (document)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', load_on_worker('initial'));
+ }, 'Loading CSS-wide keyword "initial" causes SyntaxError (worker)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', load_on_worker('inherit'));
+ }, 'Loading CSS-wide keyword "inherit" causes SyntaxError (worker)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', load_on_worker('unset'));
+ }, 'Loading CSS-wide keyword "unset" causes SyntaxError (worker)')
+
+ promise_test(test => {
+ return promise_rejects_dom(test, 'SyntaxError', load_on_worker('revert'));
+ }, 'Loading CSS-wide keyword "revert" causes SyntaxError (worker)')
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-shadow-parts/host-part-001.html b/tests/wpt/web-platform-tests/css/css-shadow-parts/host-part-001.html
new file mode 100644
index 00000000000..9004141534f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-shadow-parts/host-part-001.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<title>CSS Shadow Parts - :host::part()</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-shadow-parts/#part">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#host-selector">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1624968">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=980506">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="host"></div>
+<script>
+test(function() {
+ let host = document.getElementById("host");
+ host.attachShadow({ mode: "open" }).innerHTML = `
+ <style>
+ :host::part(mypart) {
+ color: lime;
+ }
+ :host(.tweak)::part(mypart) {
+ color: blue;
+ }
+ </style>
+ <div part="mypart"></div>
+ `;
+
+ let part = host.shadowRoot.querySelector("[part]");
+
+ assert_equals(
+ window.getComputedStyle(part).color,
+ "rgb(0, 255, 0)",
+ ":host::part() works",
+ );
+
+ host.classList.add("tweak");
+
+ assert_equals(
+ window.getComputedStyle(part).color,
+ "rgb(0, 0, 255)",
+ ":host::part() invalidation works properly",
+ );
+}, ":host::part works");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
index fbee4298c14..e6293909c21 100644
--- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
+++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
@@ -48,7 +48,7 @@ test(() => {
test(() => {
const sheet = new CSSStyleSheet({disabled: true, media: "screen, print"});
- assert_equals(sheet.title, null);
+ assert_equals(sheet.title, null, "The title attribute must return the title or null if title is the empty string");
assert_equals(sheet.ownerNode, null);
assert_equals(sheet.ownerRule, null);
assert_equals(sheet.media.length, 2);
@@ -66,7 +66,7 @@ test(() => {
assert_equals(sheet.cssRules[0].cssText, redStyleTexts[1]);
const sheet2 = new CSSStyleSheet({});
- assert_equals(sheet2.title, null);
+ assert_equals(sheet2.title, null, "The title attribute must return the title or null if title is the empty string");
assert_equals(sheet2.ownerNode, null);
assert_equals(sheet2.ownerRule, null);
assert_equals(sheet2.media.length, 0);
@@ -81,7 +81,7 @@ test(() => {
assert_equals(sheet2.cssRules.length, 0);
const sheet3 = new CSSStyleSheet();
- assert_equals(sheet3.title, null);
+ assert_equals(sheet3.title, null, "The title attribute must return the title or null if title is the empty string");
assert_equals(sheet3.ownerNode, null);
assert_equals(sheet3.ownerRule, null);
assert_equals(sheet3.media.length, 0);
@@ -98,14 +98,14 @@ test(() => {
test(() => {
const sheet = new CSSStyleSheet({title: "something"});
- assert_equals(sheet.title, null);
-}, "title cannot be set in the CSSStyleSheet constructor");
+ assert_equals(sheet.title, null, "title and alternate are not supported by the constructor. https://github.com/WICG/construct-stylesheets/issues/105");
+}, "title can be set in the CSSStyleSheet constructor");
promise_test(() => {
const sheet = new CSSStyleSheet({disabled: true, media: "screen, print"});
const promise_sheet = sheet.replace(redStyleTexts[0]);
return promise_sheet.then(function(sheet) {
- assert_equals(sheet.title, null);
+ assert_equals(sheet.title, null, "The title attribute must return the title or null if title is the empty string");
assert_equals(sheet.ownerNode, null);
assert_equals(sheet.ownerRule, null);
assert_equals(sheet.media.length, 2);
@@ -535,24 +535,19 @@ test(() => {
const style = document.createElement("style");
style.textContent = ".target { color: white; }";
span.shadowRoot.appendChild(style)
- // non-adopted styles should be ordered before adopted styles
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)");
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)", "non-adopted styles should be ordered before adopted styles");
span.shadowRoot.adoptedStyleSheets = [];
- // with no adopted styles in conflict, the non-adopted style should take effect
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 255, 255)");
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 255, 255)", "with no adopted styles in conflict, the non-adopted style should take effect");
span.shadowRoot.adoptedStyleSheets = [sheet];
- // the adopted style should be ordered after the non-adopted style
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)");
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)", "the adopted style should be ordered after the non-adopted style");
sheet.disabled = true;
- // with the adopted sheet disabled, the non-adopted style should take effect
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 255, 255)");
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 255, 255)", "with the adopted sheet disabled, the non-adopted style should take effect");
sheet.disabled = false;
- // the adopted sheet re-enabled, it should take effect again.
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)");
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)", "the adopted sheet re-enabled, it should take effect again");
}, 'Adopted sheets are ordered after non-adopted sheets in the shadow root')
test(() => {
@@ -574,41 +569,32 @@ test(() => {
const style = document.createElement("style");
style.textContent = ".target { color: white; }";
span.appendChild(style)
- // non-adopted styles should be ordered before adopted styles
- assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)");
+ assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)", "non-adopted styles should be ordered before adopted styles");
document.adoptedStyleSheets = [];
- // with no adopted styles in conflict, the non-adopted style should take effect
- assert_equals(getComputedStyle(span).color, "rgb(255, 255, 255)");
+ assert_equals(getComputedStyle(span).color, "rgb(255, 255, 255)", "with no adopted styles in conflict, the non-adopted style should take effect");
document.adoptedStyleSheets = [sheet];
- // the adopted style should be ordered after the non-adopted style
- assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)");
+ assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)", "the adopted style should be ordered after the non-adopted style");
sheet.disabled = true;
- // with the adopted sheet disabled, the non-adopted style should take effect
- assert_equals(getComputedStyle(span).color, "rgb(255, 255, 255)");
+ assert_equals(getComputedStyle(span).color, "rgb(255, 255, 255)", "with the adopted sheet disabled, the non-adopted style should take effect");
sheet.disabled = false;
- // the adopted sheet re-enabled, it should take effect again.
- assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)")
+ assert_equals(getComputedStyle(span).color, "rgb(255, 0, 0)", "the adopted sheet re-enabled, it should take effect again")
}, 'Adopted sheets are ordered after non-adopted sheets in the document')
const import_text = '@import url("support/constructable-import.css");';
test(() => {
- assert_throws_dom("NotAllowedError", () => { (new CSSStyleSheet).replaceSync(import_text) });
-}, 'CSSStyleSheet.replaceSync throws exception when there is import rule inside');
-
-test(() => {
- assert_throws_dom("NotAllowedError", () => { (new CSSStyleSheet).insertRule(import_text) });
+ assert_throws_dom("SyntaxError", () => { (new CSSStyleSheet).insertRule(import_text) });
}, 'Inserting an @import rule through insertRule on a constructed stylesheet throws an exception');
async_test(t => {
const importUrl = "support/constructable-import.css";
const sheet = new CSSStyleSheet();
- assert_throws_dom("NotAllowedError", () => { sheet.replaceSync(`@import url("${importUrl}");`) });
+ sheet.replaceSync(`@import url("${importUrl}");`);
const timeAfterReplaceSync = performance.now();
let link = document.createElement("link");
@@ -632,27 +618,68 @@ promise_test(() => {
const sheet = new CSSStyleSheet();
span.shadowRoot.adoptedStyleSheets = [sheet];
assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
- // Replace and assert that the imported rule is applied.
+ // Replace and assert that the imported rule is NOT applied.
const sheet_promise = sheet.replace(import_text);
return sheet_promise.then((sheet) => {
+ // replace() ignores @import rules:
+ assert_equals(sheet.cssRules.length, 0);
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
+ }).catch((reason) => {
+ assert_unreached(`Promise was rejected (${reason}) when it should have been resolved`);
+ });
+}, 'CSSStyleSheet.replace allows, but ignores, import rule inside');
+
+promise_test(() => {
+ const span = document.createElement("span");
+ thirdSection.appendChild(span);
+ const shadowDiv = attachShadowDiv(span);
+ const targetSpan = document.createElement("span");
+ targetSpan.classList.add("target");
+ shadowDiv.appendChild(targetSpan);
+ const sheet = new CSSStyleSheet();
+ span.shadowRoot.adoptedStyleSheets = [sheet];
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
+ // Replace and assert that the imported rule is NOT applied, but regular rule does apply.
+ const sheet_promise = sheet.replace(import_text + ".target { color: blue; }");
+ return sheet_promise.then((sheet) => {
assert_equals(sheet.cssRules.length, 1);
- assert_equals(sheet.cssRules[0].cssText, import_text);
- assert_equals(getComputedStyle(shadowDiv).color, "rgb(255, 0, 0)");
+ // @import not applied:
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
+ // regular rule applied:
+ assert_equals(getComputedStyle(targetSpan).color, "rgb(0, 0, 255)");
}).catch((reason) => {
assert_unreached(`Promise was rejected (${reason}) when it should have been resolved`);
});
-}, 'CSSStyleSheet.replace allows import rule inside');
+}, 'CSSStyleSheet.replace ignores @import rule but still loads other rules');
+
+test(() => {
+ const span = document.createElement("span");
+ thirdSection.appendChild(span);
+ const shadowDiv = attachShadowDiv(span);
+ const sheet = new CSSStyleSheet();
+ span.shadowRoot.adoptedStyleSheets = [sheet];
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
+ // Replace and assert that the imported rule is NOT applied.
+ try {
+ sheet.replaceSync(import_text);
+ // replaceSync() ignores @import rules:
+ assert_equals(sheet.cssRules.length, 0);
+ assert_equals(getComputedStyle(shadowDiv).color, "rgb(0, 0, 0)");
+ } catch(reason) {
+ assert_unreached(`replaceSync threw an exception (${reason}) when it shouldn't have`);
+ }
+}, 'CSSStyleSheet.replaceSync allows, but ignores, import rule inside');
promise_test(() => {
const sheet = new CSSStyleSheet();
const sheet_promise = sheet.replace("@import url('not-there.css');");
return sheet_promise.then((sheet) => {
- assert_unreached("Promise was resolved when it should have been rejected");
+ // No exception here
}).catch((reason) => {
- assert_equals(reason.name, "NetworkError");
+ assert_unreached("Promise was rejected");
});
-}, 'CSSStyleSheet.replace returns rejected promise on failed imports');
+}, 'CSSStyleSheet.replace does not reject on failed imports');
test(() => {
const span = document.createElement("span");
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/background-image-blur-repaint.html b/tests/wpt/web-platform-tests/css/filter-effects/background-image-blur-repaint.html
new file mode 100644
index 00000000000..7b3df263081
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/background-image-blur-repaint.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<title>CSS Filters: Repaint of element with background-image and blur filter</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://drafts.csswg.org/css-backgrounds-3/#background-image">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=415106">
+<link rel="match" href="reference/background-image-blur-repaint-expected.html">
+<meta name="assert" content="An element with background-image and a filter should be rendered correctly after other elements on the page change size. You should see a 50x50 green box over a blurred background."/>
+
+<script src="/common/reftest-wait.js"></script>
+<script>
+function runTest() {
+ function shrinkBox() {
+ var box = document.getElementsByClassName("box")[0];
+ box.style.width = "50px";
+ box.style.height = "50px";
+ }
+
+ // Wait for two requestAnimationFrame() calls to make sure that at least one
+ // frame has been rendered before shrinking the box and taking the screenshot.
+ requestAnimationFrame(function() {
+ requestAnimationFrame(function() {
+ shrinkBox();
+ takeScreenshot();
+ });
+ });
+}
+</script>
+<style>
+.bg {
+ position: absolute;
+ left: 200px;
+ top: 0px;
+ width: 400px;
+ height: 300px;
+ background-image: url(support/color-palette.png);
+ filter: blur(8px);
+}
+.box {
+ position: absolute;
+ left: 300px;
+ top: 50px;
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+</style>
+</head>
+
+<body onload="runTest()">
+<div class="bg"></div>
+<div class="box"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html
new file mode 100644
index 00000000000..78f30c35f47
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html
@@ -0,0 +1,19 @@
+<!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.chromium.org/p/chromium/issues/detail?id=227025">
+<link rel="match" href="reference/effect-reference-add-hw-001-ref.html">
+<meta name="assert" content="Check that a reference filter can be dynamically set on elements with will-change: transform."/>
+<div style="width: 100px; height: 100px; background-color: rgb(255, 0, 0); will-change: transform" id="div1"></div>
+<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" version="1.1">
+ <defs>
+ <filter id="colormatrix">
+ <feColorMatrix type="matrix" values="0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
+ </filter>
+ </defs>
+</svg>
+<script>
+ var div = document.getElementById("div1");
+ div.style.filter = "url(#colormatrix)";
+</script> \ No newline at end of file
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
index e8bbc787df5..a6de2465027 100644
--- 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
@@ -6,7 +6,7 @@
<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">
+<img style="filter: url(#MyFilter);" src="support/color-palette.png">
<svg width="0px" height="0px">
<defs>
<filter id="MyFilter">
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/background-image-blur-repaint-expected.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/background-image-blur-repaint-expected.html
new file mode 100644
index 00000000000..bf16d1fa289
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/background-image-blur-repaint-expected.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+.bg {
+ position: absolute;
+ left: 200px;
+ top: 0px;
+ width: 400px;
+ height: 300px;
+ background-image: url(../support/color-palette.png);
+ filter: blur(8px);
+}
+.box {
+ position: absolute;
+ left: 300px;
+ top: 50px;
+ width: 50px;
+ height: 50px;
+ background-color: green;
+}
+</style>
+</head>
+<body>
+<div class="bg"></div>
+<div class="box"></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-add-hw-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-add-hw-001-ref.html
new file mode 100644
index 00000000000..79a15223610
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-add-hw-001-ref.html
@@ -0,0 +1,2 @@
+<!doctype html>
+<div style="width: 100px; height: 100px; background-color: rgb(0, 255, 0); will-change: transform"></div>
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
index cbcff3fa444..45192b13451 100644
--- 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
@@ -7,6 +7,6 @@
<feColorMatrix type="hueRotate" values="180"/>
</filter>
</defs>
- </svg><img style="filter: url(#MyFilter);" src="../support/reference.png">
+ </svg><img style="filter: url(#MyFilter);" src="../support/color-palette.png">
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png b/tests/wpt/web-platform-tests/css/filter-effects/support/color-palette.png
index 68641b76771..68641b76771 100644
--- a/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png
+++ b/tests/wpt/web-platform-tests/css/filter-effects/support/color-palette.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html
index 0190eaa84f7..0190eaa84f7 100644
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html
diff --git a/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html.headers b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html.headers
new file mode 100644
index 00000000000..bebb5d05482
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-tentative.html.headers
@@ -0,0 +1 @@
+Document-Policy: no-layout-animations
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html
index e7150a91e87..ee7c295156f 100644
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html
@@ -1,24 +1,17 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="/feature-policy/experimental-features/resources/common.js"></script>
+<script src="/document-policy/experimental-features/resources/common.js"></script>
<title> 'layout-animations' Policy : violation reports from javascript
</title>
<body>
<script>
- test(() => {
- document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
- assert_not_equals(enabled_feature, "layout-animations");
- });
- },
- "Verify 'layout-animations' is not in document's feature list.");
-
promise_test(async () => {
let promise = wait_for_violation_in_file(
"layout-animations",
"animation-property-height.js");
let script = document.createElement("script");
- script.src = "/feature-policy/experimental-features/resources/" +
+ script.src = "/document-policy/experimental-features/resources/" +
"animation-property-height.js";
document.body.appendChild(script);
await promise;
diff --git a/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers
new file mode 100644
index 00000000000..bebb5d05482
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers
@@ -0,0 +1 @@
+Document-Policy: no-layout-animations
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html
index 163ccae812f..cd9210cc138 100644
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html
@@ -1,18 +1,11 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="/feature-policy/experimental-features/resources/common.js"></script>
+<script src="/document-policy/experimental-features/resources/common.js"></script>
<title> 'layout-animations' Policy : violation reports from CSS keyframes
</title>
<body>
<script>
- test(() => {
- document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
- assert_not_equals(enabled_feature, "layout-animations");
- });
- },
- "Sanity-check: 'layout-animations' is not in document's feature list.");
-
promise_test(async () => {
let promise = wait_for_violation_in_file(
"layout-animations", null /* source not specified */);
diff --git a/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers
new file mode 100644
index 00000000000..bebb5d05482
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers
@@ -0,0 +1 @@
+Document-Policy: no-layout-animations
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-enabled-tentative.html b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-enabled-tentative.html
index 19e405496ee..19e405496ee 100644
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-enabled-tentative.html
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/layout-animations-enabled-tentative.html
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/resources/animation-property-height.js b/tests/wpt/web-platform-tests/document-policy/experimental-features/resources/animation-property-height.js
index 79316cb488f..79316cb488f 100644
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/resources/animation-property-height.js
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/resources/animation-property-height.js
diff --git a/tests/wpt/web-platform-tests/document-policy/experimental-features/resources/common.js b/tests/wpt/web-platform-tests/document-policy/experimental-features/resources/common.js
new file mode 100644
index 00000000000..639847abf36
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/experimental-features/resources/common.js
@@ -0,0 +1,90 @@
+const url_base = "/document-policy/experimental-features/resources/";
+window.messageResponseCallback = null;
+
+// Returns a promise which is resolved when the <iframe> is navigated to |url|
+// and "load" handler has been called.
+function loadUrlInIframe(iframe, url) {
+ return new Promise((resolve) => {
+ iframe.addEventListener("load", resolve);
+ iframe.src = url;
+ });
+}
+
+// Posts |message| to |target| and resolves the promise with the response coming
+// back from |target|.
+function sendMessageAndGetResponse(target, message) {
+ return new Promise((resolve) => {
+ window.messageResponseCallback = resolve;
+ target.postMessage(message, "*");
+ });
+}
+
+
+function onMessage(e) {
+ if (window.messageResponseCallback) {
+ window.messageResponseCallback(e.data);
+ window.messageResponseCallback = null;
+ }
+}
+
+window.addEventListener("message", onMessage);
+
+// Waits for |load_timeout| before resolving the promise. It will resolve the
+// promise sooner if a message event with |e.data.id| of |id| is received.
+// In such a case the response is the contents of the message |e.data.contents|.
+// Otherwise, returns false (when timeout occurs).
+function waitForMessageOrTimeout(t, id, load_timeout) {
+ return new Promise((resolve) => {
+ window.addEventListener(
+ "message",
+ (e) => {
+ if (!e.data || e.data.id !== id)
+ return;
+ resolve(e.data.contents);
+ }
+ );
+ t.step_timeout(() => { resolve(false); }, load_timeout);
+ });
+}
+
+function createIframe(container, attributes) {
+ var new_iframe = document.createElement("iframe");
+ for (attr_name in attributes)
+ new_iframe.setAttribute(attr_name, attributes[attr_name]);
+ container.appendChild(new_iframe);
+ return new_iframe;
+}
+
+// Returns a promise which is resolved when |load| event is dispatched for |e|.
+function wait_for_load(e) {
+ return new Promise((resolve) => {
+ e.addEventListener("load", resolve);
+ });
+}
+
+setup(() => {
+ window.reporting_observer_instance = new ReportingObserver((reports, observer) => {
+ if (window.reporting_observer_callback) {
+ reports.forEach(window.reporting_observer_callback);
+ }
+ }, {types: ["document-policy-violation"]});
+ window.reporting_observer_instance.observe();
+ window.reporting_observer_callback = null;
+});
+
+// Waits for a violation in |feature| and source file containing |file_name|.
+function wait_for_violation_in_file(feature, file_name) {
+ return new Promise( (resolve) => {
+ assert_equals(null, window.reporting_observer_callback);
+ window.reporting_observer_callback = (report) => {
+ var feature_match = (feature === report.body.featureId);
+ var file_name_match =
+ !file_name ||
+ (report.body.sourceFile.indexOf(file_name) !== -1);
+ if (feature_match && file_name_match) {
+ window.reporting_observer_callback = null;
+ resolve(report);
+ }
+ };
+ });
+}
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html.headers b/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html.headers
deleted file mode 100644
index 7c441bbba55..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: layout-animations 'none'
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers b/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers
deleted file mode 100644
index 7c441bbba55..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: layout-animations 'none'
diff --git a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers b/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers
deleted file mode 100644
index 7c441bbba55..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: layout-animations 'none'
diff --git a/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-screen-wakelock.html b/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-screen-wakelock.html
index 7d3dab45af1..6feed51d498 100644
--- a/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-screen-wakelock.html
+++ b/tests/wpt/web-platform-tests/feature-policy/resources/feature-policy-screen-wakelock.html
@@ -6,7 +6,7 @@
Promise.resolve().then(async () => {
try {
await test_driver.set_permission(
- { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ { name: 'screen-wake-lock' }, 'granted', false);
const wakeLock = await navigator.wakeLock.request("screen");
await wakeLock.release();
diff --git a/tests/wpt/web-platform-tests/html/interaction/focus/tabindex-focus-flag.html b/tests/wpt/web-platform-tests/html/interaction/focus/tabindex-focus-flag.html
index 341162f09e7..93fdb19a592 100644
--- a/tests/wpt/web-platform-tests/html/interaction/focus/tabindex-focus-flag.html
+++ b/tests/wpt/web-platform-tests/html/interaction/focus/tabindex-focus-flag.html
@@ -15,6 +15,9 @@
<details open><summary id="summary-first"></summary><summary id="summary-second"></summary></details>
<div contenteditable="true"></div>
<iframe></iframe>
+<svg><a id="svg-a"></a></svg>
+<svg><text id="svg-text"></text></svg>
+<img>
</div>
<script>
setup({ explicit_done: true });
@@ -34,6 +37,9 @@ function runTests() {
['#summary-second', false],
['[contenteditable]', true],
['iframe', true],
+ ['#svg-a', false],
+ ['#svg-text', false],
+ ['img', false],
];
for (entry of defaultList) {
test(() => {
@@ -52,8 +58,11 @@ function runTests() {
<div id="tabindex-0">
<a tabindex="0"></a>
+<svg><a tabindex="0"></a></svg>
+<svg><text tabindex="0"></text></svg>
<summary tabindex="0" id="summary-out-tabindex0"></summary>
<details open><summary id="summary-first"></summary><summary tabindex="0" id="summary-second-tabindex0"></summary></details>
+<img tabindex="0">
</div>
<script>
function runTests_tabindex0() {
@@ -67,6 +76,58 @@ function runTests_tabindex0() {
}, elementDesc + ' with tabindex=0 should be focusable.');
}
+ runTests_tabindex_negative();
+}
+</script>
+
+<div id="tabindex-negative">
+<a tabindex="-1"></a>
+<svg><a tabindex="-1"></a></svg>
+<svg><text tabindex="-1"></text></svg>
+<summary tabindex="-1" id="summary-out-tabindex-negative"></summary>
+<details open><summary id="summary-first"></summary><summary tabindex="0" id="summary-second-tabindex-negative"></summary></details>
+<img tabindex="-1">
+</div>
+<script>
+function runTests_tabindex_negative() {
+ for (element of document.querySelectorAll('#tabindex-negative [tabindex]')) {
+ var elementDesc = element.tagName;
+ if (element.id)
+ elementDesc += '#' + element.id;
+ test(() => {
+ element.focus();
+ assert_equals(document.activeElement, element);
+ }, elementDesc + ' with tabindex=-1 should be focusable.');
+ }
+
+ runTests_tabindex_invalid();
+}
+</script>
+
+<div id="tabindex-invalid">
+<a tabindex="invalid"></a>
+<a href="#" tabindex="invalid" id="with-href" data-focusable=true></a>
+<svg><a tabindex="invalid"></a></svg>
+<svg><a href="#" tabindex="invalid" id="with-href" data-focusable=true></a></svg>
+<svg><text tabindex="invalid"></text></svg>
+<div tabindex="invalid"></div>
+<summary tabindex="invalid" id="summary-out-tabindex-invalid"></summary>
+<img tabindex="invalid">
+</div>
+<script>
+function runTests_tabindex_invalid() {
+ for (element of document.querySelectorAll('#tabindex-invalid [tabindex]')) {
+ var focusable = element.dataset && element.dataset.focusable;
+ var elementDesc = element.tagName;
+ if (element.id)
+ elementDesc += '#' + element.id;
+ test(() => {
+ element.focus();
+ focusable ? assert_equals(document.activeElement, element)
+ : assert_not_equals(document.activeElement, element);
+ }, `${elementDesc} with tabindex=invalid should ${focusable ? "be" : "not be"} focusable.`);
+ }
+
done();
}
</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html
index 902430d0779..1cb290de3fe 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html
@@ -22,13 +22,13 @@
const iframe = document.createElement("iframe");
iframe.src = "resources/css-module-at-import-iframe.html";
iframe.onload = test.step_func_done(function () {
- assert_equals(iframe.contentDocument.load_error, "NotAllowedError");
+ assert_equals(iframe.contentDocument.load_error, undefined);
assert_not_equals(getComputedStyle(iframe.contentDocument.querySelector('#test'))
.backgroundColor, "rgb(255, 0, 0)",
"CSS module @import should not succeed");
});
document.body.appendChild(iframe);
- }, "An @import CSS Module should not load");
+ }, "An @import CSS Module should not load, but should not throw an exception");
async_test(function (test) {
const iframe = document.createElement("iframe");
diff --git a/tests/wpt/web-platform-tests/media-capabilities/decodingInfo.any.js b/tests/wpt/web-platform-tests/media-capabilities/decodingInfo.any.js
index 2d74d30eeb6..772d47e8729 100644
--- a/tests/wpt/web-platform-tests/media-capabilities/decodingInfo.any.js
+++ b/tests/wpt/web-platform-tests/media-capabilities/decodingInfo.any.js
@@ -23,6 +23,19 @@ var audioConfigurationWithSpatialRendering = {
spatialRendering: true,
};
+// VideoConfiguration with optional hdrMetadataType, colorGamut, and
+// transferFunction properties.
+var videoConfigurationWithDynamicRange = {
+ contentType: 'video/webm; codecs="vp09.00.10.08"',
+ width: 800,
+ height: 600,
+ bitrate: 3000,
+ framerate: 24,
+ hdrMetadataType: "smpteSt2086",
+ colorGamut: "srgb",
+ transferFunction: "srgb",
+}
+
promise_test(t => {
return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo());
}, "Test that decodingInfo rejects if it doesn't get a configuration");
@@ -314,3 +327,57 @@ promise_test(t => {
assert_equals(typeof ability.keySystemAccess, "object");
});
}, "Test that decodingInfo with spatialRendering set returns a valid MediaCapabilitiesInfo objects");
+
+promise_test(t => {
+ return navigator.mediaCapabilities.decodingInfo({
+ type: 'file',
+ video: videoConfigurationWithDynamicRange,
+ }).then(ability => {
+ assert_equals(typeof ability.supported, "boolean");
+ assert_equals(typeof ability.smooth, "boolean");
+ assert_equals(typeof ability.powerEfficient, "boolean");
+ assert_equals(typeof ability.keySystemAccess, "object");
+ });
+}, "Test that decodingInfo with hdrMetadataType, colorGamut, and transferFunction set returns a valid MediaCapabilitiesInfo objects");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({
+ type: 'file',
+ video: {
+ contentType: 'video/webm; codecs="vp09.00.10.08"',
+ width: 800,
+ height: 600,
+ bitrate: 3000,
+ framerate: 24,
+ hdrMetadataType: ""
+ },
+ }));
+}, "Test that decodingInfo rejects if the video configuration has an empty hdrMetadataType");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({
+ type: 'file',
+ video: {
+ contentType: 'video/webm; codecs="vp09.00.10.08"',
+ width: 800,
+ height: 600,
+ bitrate: 3000,
+ framerate: 24,
+ colorGamut: true
+ },
+ }));
+}, "Test that decodingInfo rejects if the video configuration has a colorGamut set to true");
+
+promise_test(t => {
+ return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({
+ type: 'file',
+ video: {
+ contentType: 'video/webm; codecs="vp09.00.10.08"',
+ width: 800,
+ height: 600,
+ bitrate: 3000,
+ framerate: 24,
+ transferFunction: 3
+ },
+ }));
+}, "Test that decodingInfo rejects if the video configuration has a transferFunction set to 3");
diff --git a/tests/wpt/web-platform-tests/mst-content-hint/RTCRtpSendParameters-degradationPreference.html b/tests/wpt/web-platform-tests/mst-content-hint/RTCRtpSendParameters-degradationPreference.html
new file mode 100644
index 00000000000..3573bb58760
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mst-content-hint/RTCRtpSendParameters-degradationPreference.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCRtpSendParameters degradationPreference</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ 'use strict';
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('video');
+
+ let param = sender.getParameters();
+
+ assert_equals(param.degradationPreference, undefined,
+ 'Expect initial param.degradationPreference to be undefined');
+
+ param.degradationPreference = 'maintain-framerate';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'maintain-framerate');
+
+ param.degradationPreference = 'maintain-resolution';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'maintain-resolution');
+
+ param.degradationPreference = 'balanced';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'balanced');
+
+ param.degradationPreference = undefined;
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, undefined);
+}, 'setParameters with degradationPreference set should succeed on video transceiver');
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('video');
+
+ let param = sender.getParameters();
+
+ assert_equals(param.degradationPreference, undefined,
+ 'Expect initial param.degradationPreference to be undefined');
+
+ param.degradationPreference = undefined;
+
+ await sender.setParameters(param);
+
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, undefined);
+}, 'setParameters with degradationPreference unset should succeed on video transceiver');
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('video');
+
+ let param = sender.getParameters();
+ param.degradationPreference = 'invalid';
+
+ return promise_rejects_js(t, TypeError, sender.setParameters(param));
+}, 'setParameters with invalid degradationPreference should throw TypeError on video transceiver');
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('audio');
+
+ let param = sender.getParameters();
+
+ assert_equals(param.degradationPreference, undefined,
+ 'Expect initial param.degradationPreference to be undefined');
+
+ param.degradationPreference = 'maintain-framerate';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'maintain-framerate');
+
+ param.degradationPreference = 'maintain-resolution';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'maintain-resolution');
+
+ param.degradationPreference = 'balanced';
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, 'balanced');
+
+ param.degradationPreference = undefined;
+ await sender.setParameters(param);
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, undefined);
+}, 'setParameters with degradationPreference set should succeed on audio transceiver');
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('audio');
+
+ let param = sender.getParameters();
+
+ assert_equals(param.degradationPreference, undefined,
+ 'Expect initial param.degradationPreference to be undefined');
+
+ param.degradationPreference = undefined;
+
+ await sender.setParameters(param);
+
+ param = sender.getParameters();
+ assert_equals(param.degradationPreference, undefined);
+}, 'setParameters with degradationPreference unset should succeed on audio transceiver');
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const { sender } = pc.addTransceiver('audio');
+
+ let param = sender.getParameters();
+ param.degradationPreference = 'invalid';
+
+ return promise_rejects_js(t, TypeError, sender.setParameters(param));
+}, 'setParameters with invalid degradationPreference should throw TypeError on audio transceiver');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/tools/serve/serve.py b/tests/wpt/web-platform-tests/tools/serve/serve.py
index e4f0d5efaee..45bfd4766eb 100644
--- a/tests/wpt/web-platform-tests/tools/serve/serve.py
+++ b/tests/wpt/web-platform-tests/tools/serve/serve.py
@@ -34,7 +34,7 @@ from mod_pywebsocket import standalone as pywebsocket
EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
- "are mapped to a loopback device in /etc/hosts. "
+ "are mapped to a loopback device in /etc/hosts.\n"
"See https://web-platform-tests.org/running-tests/from-local-system.html#system-setup "
"for instructions.")
@@ -419,10 +419,10 @@ class ServerProc(object):
try:
self.daemon = init_func(host, port, paths, routes, bind_address, config, **kwargs)
except socket.error:
- print("Socket error on port %s" % port, file=sys.stderr)
+ logger.critical("Socket error on port %s" % port, file=sys.stderr)
raise
except Exception:
- print(traceback.format_exc(), file=sys.stderr)
+ logger.critical(traceback.format_exc())
raise
if self.daemon:
@@ -538,50 +538,68 @@ def start_servers(host, ports, paths, routes, bind_address, config, **kwargs):
return servers
+def startup_failed(log=True):
+ # Log=False is a workaround for https://github.com/web-platform-tests/wpt/issues/22719
+ if log:
+ logger.critical(EDIT_HOSTS_HELP)
+ else:
+ print("CRITICAL %s" % EDIT_HOSTS_HELP, file=sys.stderr)
+ sys.exit(1)
+
+
def start_http_server(host, port, paths, routes, bind_address, config, **kwargs):
- return wptserve.WebTestHttpd(host=host,
- port=port,
- doc_root=paths["doc_root"],
- routes=routes,
- rewrites=rewrites,
- bind_address=bind_address,
- config=config,
- use_ssl=False,
- key_file=None,
- certificate=None,
- latency=kwargs.get("latency"))
+ try:
+ return wptserve.WebTestHttpd(host=host,
+ port=port,
+ doc_root=paths["doc_root"],
+ routes=routes,
+ rewrites=rewrites,
+ bind_address=bind_address,
+ config=config,
+ use_ssl=False,
+ key_file=None,
+ certificate=None,
+ latency=kwargs.get("latency"))
+ except Exception:
+ startup_failed()
def start_https_server(host, port, paths, routes, bind_address, config, **kwargs):
- return wptserve.WebTestHttpd(host=host,
- port=port,
- doc_root=paths["doc_root"],
- routes=routes,
- rewrites=rewrites,
- bind_address=bind_address,
- config=config,
- use_ssl=True,
- key_file=config.ssl_config["key_path"],
- certificate=config.ssl_config["cert_path"],
- encrypt_after_connect=config.ssl_config["encrypt_after_connect"],
- latency=kwargs.get("latency"))
+ try:
+ return wptserve.WebTestHttpd(host=host,
+ port=port,
+ doc_root=paths["doc_root"],
+ routes=routes,
+ rewrites=rewrites,
+ bind_address=bind_address,
+ config=config,
+ use_ssl=True,
+ key_file=config.ssl_config["key_path"],
+ certificate=config.ssl_config["cert_path"],
+ encrypt_after_connect=config.ssl_config["encrypt_after_connect"],
+ latency=kwargs.get("latency"))
+ except Exception:
+ startup_failed()
def start_http2_server(host, port, paths, routes, bind_address, config, **kwargs):
- return wptserve.WebTestHttpd(host=host,
- port=port,
- handler_cls=wptserve.Http2WebTestRequestHandler,
- doc_root=paths["doc_root"],
- routes=routes,
- rewrites=rewrites,
- bind_address=bind_address,
- config=config,
- use_ssl=True,
- key_file=config.ssl_config["key_path"],
- certificate=config.ssl_config["cert_path"],
- encrypt_after_connect=config.ssl_config["encrypt_after_connect"],
- latency=kwargs.get("latency"),
- http2=True)
+ try:
+ return wptserve.WebTestHttpd(host=host,
+ port=port,
+ handler_cls=wptserve.Http2WebTestRequestHandler,
+ doc_root=paths["doc_root"],
+ routes=routes,
+ rewrites=rewrites,
+ bind_address=bind_address,
+ config=config,
+ use_ssl=True,
+ key_file=config.ssl_config["key_path"],
+ certificate=config.ssl_config["cert_path"],
+ encrypt_after_connect=config.ssl_config["encrypt_after_connect"],
+ latency=kwargs.get("latency"),
+ http2=True)
+ except Exception:
+ startup_failed()
class WebSocketDaemon(object):
@@ -603,6 +621,12 @@ class WebSocketDaemon(object):
opts.is_executable_method = None
self.server = pywebsocket.WebSocketServer(opts)
ports = [item[0].getsockname()[1] for item in self.server._sockets]
+ if not ports:
+ # TODO: Fix the logging configuration in WebSockets processes
+ # see https://github.com/web-platform-tests/wpt/issues/22719
+ print("Failed to start websocket server on port %s, "
+ "is something already using that port?" % port, file=sys.stderr)
+ raise OSError()
assert all(item == ports[0] for item in ports)
self.port = ports[0]
self.started = False
@@ -651,12 +675,15 @@ def start_ws_server(host, port, paths, routes, bind_address, config, **kwargs):
# in the logging module unlocked
reload_module(logging)
release_mozlog_lock()
- return WebSocketDaemon(host,
- str(port),
- repo_root,
- config.paths["ws_doc_root"],
- bind_address,
- ssl_config=None)
+ try:
+ return WebSocketDaemon(host,
+ str(port),
+ repo_root,
+ config.paths["ws_doc_root"],
+ bind_address,
+ ssl_config=None)
+ except Exception:
+ startup_failed(log=False)
def start_wss_server(host, port, paths, routes, bind_address, config, **kwargs):
@@ -664,12 +691,15 @@ def start_wss_server(host, port, paths, routes, bind_address, config, **kwargs):
# in the logging module unlocked
reload_module(logging)
release_mozlog_lock()
- return WebSocketDaemon(host,
- str(port),
- repo_root,
- config.paths["ws_doc_root"],
- bind_address,
- config.ssl_config)
+ try:
+ return WebSocketDaemon(host,
+ str(port),
+ repo_root,
+ config.paths["ws_doc_root"],
+ bind_address,
+ config.ssl_config)
+ except Exception:
+ startup_failed(log=False)
def start(config, routes, **kwargs):
@@ -892,7 +922,8 @@ def run(**kwargs):
signal.signal(signal.SIGTERM, handle_signal)
signal.signal(signal.SIGINT, handle_signal)
- while all(item.is_alive() for item in iter_procs(servers)) and not received_signal.is_set():
+ while (all(item.is_alive() for item in iter_procs(servers)) and
+ not received_signal.is_set()):
for item in iter_procs(servers):
item.join(1)
exited = [item for item in iter_procs(servers) if not item.is_alive()]
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
index 2ed4a0f5f93..cbbee821326 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
@@ -92,6 +92,7 @@ class TestEnvironment(object):
self.servers = serve.start(self.config,
self.get_routes())
+
if self.options.get("supports_debugger") and self.debug_info and self.debug_info.interactive:
self.ignore_interrupts()
return self
@@ -212,8 +213,10 @@ class TestEnvironment(object):
each_sleep_secs = 0.5
end_time = time.time() + total_sleep_secs
while time.time() < end_time:
- failed = self.test_servers()
- if not failed:
+ failed, pending = self.test_servers()
+ if failed:
+ break
+ if not pending:
return
time.sleep(each_sleep_secs)
raise EnvironmentError("Servers failed to start: %s" %
@@ -221,19 +224,23 @@ class TestEnvironment(object):
def test_servers(self):
failed = []
+ pending = []
host = self.config["server_host"]
for scheme, servers in iteritems(self.servers):
for port, server in servers:
- if self.test_server_port:
+ if not server.is_alive():
+ failed.append((scheme, port))
+
+ if not failed and self.test_server_port:
+ for scheme, servers in iteritems(self.servers):
+ for port, server in servers:
s = socket.socket()
s.settimeout(0.1)
try:
s.connect((host, port))
except socket.error:
- failed.append((host, port))
+ pending.append((host, port))
finally:
s.close()
- if not server.is_alive():
- failed.append((scheme, port))
- return failed
+ return failed, pending
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
index 9e842802fc0..c2498c4ee1e 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/server.py
@@ -64,12 +64,6 @@ handler returns, or for directly writing to the output stream.
"""
-EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
- "are mapped to a loopback device in /etc/hosts. "
- "See https://web-platform-tests.org/running-tests/from-local-system.html#system-setup "
- "for instructions.")
-
-
class RequestRewriter(object):
def __init__(self, rules):
"""Object for rewriting the request path.
@@ -676,7 +670,8 @@ class WebTestHttpd(object):
_host, self.port = self.httpd.socket.getsockname()
except Exception:
- self.logger.critical("Failed to start HTTP server. {}".format(EDIT_HOSTS_HELP))
+ self.logger.critical("Failed to start HTTP server on port %s; "
+ "is something already using that port?" % port)
raise
def start(self, block=False):
diff --git a/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js b/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js
index c747ad6872a..76f5352721d 100644
--- a/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js
+++ b/tests/wpt/web-platform-tests/wake-lock/idlharness-worker.https.window.js
@@ -7,7 +7,7 @@
promise_test(async t => {
await test_driver.set_permission(
- { name: 'wake-lock', type: 'system' }, 'granted', false);
+ { name: 'system-wake-lock' }, 'granted', false);
await fetch_tests_from_worker(new Worker('resources/idlharness-worker.js'));
}, 'Run idlharness tests in a worker.');
diff --git a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js
index f9e3c02175d..60c25f3386e 100644
--- a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js
+++ b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.window.js
@@ -3,7 +3,7 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
-// https://w3c.github.io/wake-lock/
+// https://w3c.github.io/screen-wake-lock/
'use strict';
@@ -19,7 +19,7 @@ idl_test(
});
await test_driver.set_permission(
- { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ { name: 'screen-wake-lock' }, 'granted', false);
self.sentinel = await navigator.wakeLock.request('screen');
self.sentinel.release();
}
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
index 376359e888d..f908717ff41 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-by-feature-policy.https.sub.html
@@ -15,7 +15,7 @@
promise_test(async t => {
await test_driver.set_permission(
- { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ { name: 'screen-wake-lock' }, 'granted', false);
await navigator.wakeLock.request('screen').then(lock => lock.release());
}, 'Feature-Policy header {"screen-wake-lock" : ["*"]} allows the top-level document.');
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
index a2d3725857b..b15289beff4 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html
@@ -16,7 +16,7 @@
promise_test(async t => {
await test_driver.set_permission(
- { name: 'wake-lock', type: 'screen' }, 'granted', false);
+ { name: 'screen-wake-lock' }, 'granted', false);
await navigator.wakeLock.request('screen').then(lock => lock.release());
}, 'Feature-Policy header screen-wake-lock "self" allows the top-level document.');
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html
index 3506c8ae82b..88c0cdb654c 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html
@@ -1,12 +1,12 @@
<!DOCTYPE html>
-<link rel="help" href="https://w3c.github.io/wake-lock/#the-onrelease-attribute">
+<link rel="help" href="https://w3c.github.io/screen-wake-lock/#the-onrelease-attribute">
<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>
async_test(async t => {
- await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'granted', false);
+ await test_driver.set_permission({name: 'screen-wake-lock'}, 'granted', false);
const lock = await navigator.wakeLock.request("screen");
lock.onrelease = t.step_func_done((ev) => {
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html
index 8dbe523ed2c..b222ef342a6 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html
@@ -9,7 +9,7 @@
'use strict';
promise_test(async t => {
- await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'denied', false);
+ await test_driver.set_permission({name: 'screen-wake-lock'}, 'denied', false);
return promise_rejects_dom(t, "NotAllowedError", navigator.wakeLock.request('screen'));
}, 'Denied requests should abort with NotAllowedError');
</script>
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-supported-by-feature-policy.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-supported-by-feature-policy.html
index e7f9c8cb283..a55eb54ba1c 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelock-supported-by-feature-policy.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-supported-by-feature-policy.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>Test that wake-lock is advertised in the feature list</title>
<link rel="help" href="https://w3c.github.io/webappsec-feature-policy/#dom-featurepolicy-features">
-<link rel="help" href="https://w3c.github.io/wake-lock/#dfn-wake-lock-feature">
+<link rel="help" href="https://w3c.github.io/screen-wake-lock/#dfn-wake-lock-feature">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
index fd7a08a34ba..88c95987f1e 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
@@ -5,29 +5,21 @@
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script>
-promise_test(t => {
- return promise_rejects_js(t, TypeError, navigator.permissions.query({ name:'wake-lock' }));
-}, "WakeLockPermissionDescriptor's type attribute is required");
-
-promise_test(t => {
- return promise_rejects_js(t, TypeError, navigator.permissions.query({ name: 'wake-lock', type: 'foo' }));
-}, "WakeLockPermissionDescriptor's type attribute must be a WakeLockType");
-
promise_test(async t => {
- await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'denied', false);
+ await test_driver.set_permission({name: 'screen-wake-lock'}, 'denied', false);
- return navigator.permissions.query({name:'wake-lock', type: 'screen'}).then(status => {
+ return navigator.permissions.query({name:'screen-wake-lock'}).then(status => {
assert_class_string(status, "PermissionStatus");
assert_equals(status.state, "denied");
});
-}, "WakeLockPermissionDescriptor with type=screen works");
+}, "PermissionDescriptor with name='screen-wake-lock' works");
promise_test(async t => {
- await test_driver.set_permission({name: 'wake-lock', type: 'system'}, 'denied', false);
+ await test_driver.set_permission({name: 'system-wake-lock'}, 'denied', false);
- return navigator.permissions.query({ name: 'wake-lock', type: 'system' }).then(status => {
+ return navigator.permissions.query({ name: 'system-wake-lock' }).then(status => {
assert_class_string(status, "PermissionStatus");
assert_equals(status.state, "denied");
});
-}, "WakeLockPermissionDescriptor with type=system works");
+}, "PermissionDescriptor with name='system-wake-lock' works");
</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-codecs.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-codecs.html
index fdb584460f8..f5fa65e2ac9 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-codecs.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-codecs.html
@@ -28,7 +28,6 @@
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
dictionary RTCRtpCodecParameters {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-degradationPreference.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-degradationPreference.html
deleted file mode 100644
index e2c92bc1c08..00000000000
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-degradationPreference.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<title>RTCRtpParameters degradationPreference</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="dictionary-helper.js"></script>
-<script src="RTCRtpParameters-helper.js"></script>
-<script>
- 'use strict';
-
- // Test is based on the following editor draft:
- // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
-
- // The following helper functions are called from RTCRtpParameters-helper.js:
- // validateSenderRtpParameters
-
- /*
- 5.2. RTCRtpSender Interface
- interface RTCRtpSender {
- Promise<void> setParameters(optional RTCRtpParameters parameters);
- RTCRtpParameters getParameters();
- };
-
- dictionary RTCRtpParameters {
- DOMString transactionId;
- sequence<RTCRtpEncodingParameters> encodings;
- sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
- RTCRtcpParameters rtcp;
- sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
- };
-
- enum RTCDegradationPreference {
- "maintain-framerate",
- "maintain-resolution",
- "balanced"
- };
-
- - degradationPreference is set to the last value passed into setParameters,
- or the default value of "balanced" if setParameters hasn't been called.
- */
-
- promise_test(t => {
- const pc = new RTCPeerConnection();
- t.add_cleanup(() => pc.close());
- const { sender } = pc.addTransceiver('audio');
-
- const param = sender.getParameters();
- validateSenderRtpParameters(param);
-
- assert_equals(param.degradationPreference, 'balanced',
- 'Expect initial param.degradationPreference to be balanced');
-
- param.degradationPreference = 'maintain-framerate';
-
- return pc.setParameters(param)
- .then(() => {
- const param = sender.getParameters();
- validateSenderRtpParameters(param);
-
- assert_equals(param.degradationPreference, 'maintain-framerate');
- });
- }, 'setParameters with degradationPreference set should succeed');
-
- promise_test(t => {
- const pc = new RTCPeerConnection();
- t.add_cleanup(() => pc.close());
- const { sender } = pc.addTransceiver('audio');
-
- const param = sender.getParameters();
- validateSenderRtpParameters(param);
-
- assert_equals(param.degradationPreference, 'balanced',
- 'Expect initial param.degradationPreference to be balanced');
-
- param.degradationPreference = undefined;
-
- return pc.setParameters(param)
- .then(() => {
- const param = sender.getParameters();
- validateSenderRtpParameters(param);
-
- assert_equals(param.degradationPreference, undefined);
- });
- }, 'setParameters with degradationPreference unset should succeed');
-
-</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-encodings.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-encodings.html
index 2f94186fe1e..00e80885cff 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-encodings.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-encodings.html
@@ -41,7 +41,6 @@
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
dictionary RTCRtpEncodingParameters {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-headerExtensions.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-headerExtensions.html
index 85c3338dd62..7de2b75f4ee 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-headerExtensions.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-headerExtensions.html
@@ -27,7 +27,6 @@
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
dictionary RTCRtpHeaderExtensionParameters {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js
index d61d8e14932..17ecfbaf99e 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-helper.js
@@ -46,9 +46,6 @@ async function doOfferAnswerExchange(t, caller) {
- rtcp.cname is set to the CNAME of the associated RTCPeerConnection. rtcp.reducedSize
is set to true if reduced-size RTCP has been negotiated for sending, and false otherwise.
-
- - degradationPreference is set to the last value passed into setParameters, or the
- default value of "balanced" if setParameters hasn't been called.
*/
function validateSenderRtpParameters(param) {
validateRtpParameters(param);
@@ -80,7 +77,7 @@ function validateSenderRtpParameters(param) {
- rtcp.reducedSize is set to true if the receiver is currently prepared to receive
reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined.
- - transactionId and degradationPreference are left undefined.
+ - transactionId is left undefined.
*/
function validateReceiverRtpParameters(param) {
validateRtpParameters(param);
@@ -93,9 +90,6 @@ function validateReceiverRtpParameters(param) {
assert_equals(param.rtcp.cname, undefined,
'Expect receiver param.rtcp.cname to be unset');
-
- assert_equals(param.degradationPreference, undefined,
- 'Expect receiver param.degradationPreference to be unset');
}
/*
@@ -105,7 +99,6 @@ function validateReceiverRtpParameters(param) {
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
enum RTCDegradationPreference {
@@ -134,9 +127,6 @@ function validateRtpParameters(param) {
for(const codec of param.codecs) {
validateCodecParameters(codec);
}
-
- assert_optional_enum_field(param, 'degradationPreference',
- ['maintain-framerate', 'maintain-resolution', 'balanced']);
}
/*
@@ -307,4 +297,4 @@ function test_modified_encoding(kind, field, value1, value2, desc) {
const encoding2 = getFirstEncoding(param2);
assert_equals(encoding2[field], value2);
}, desc + ' without RTCRtpTransceiverInit');
-} \ No newline at end of file
+}
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-rtcp.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-rtcp.html
index 82fb49be7de..79653045200 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-rtcp.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-rtcp.html
@@ -27,7 +27,6 @@
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
dictionary RTCRtcpParameters {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-transactionId.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-transactionId.html
index ae56fb401f4..a7b7865532b 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-transactionId.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpParameters-transactionId.html
@@ -48,7 +48,6 @@
sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
RTCRtcpParameters rtcp;
sequence<RTCRtpCodecParameters> codecs;
- RTCDegradationPreference degradationPreference;
};
getParameters
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getParameters.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getParameters.html
index 7f8ac673a60..4be0e3b95ec 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getParameters.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getParameters.html
@@ -30,9 +30,7 @@
- rtcp.reducedSize is set to true if the receiver is currently prepared to receive
reduced-size RTCP packets, and false otherwise. rtcp.cname is left undefined.
-
- - transactionId and degradationPreference are left undefined.
- */
+ */
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());