aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json340
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-underline-offset-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-filter.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini18
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini13
-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_4.html.ini (renamed from tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini)2
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini34
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini34
-rw-r--r--tests/wpt/metadata/webdriver/tests/set_window_rect/set.py.ini1
-rw-r--r--tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml38
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-overflow/overfow-outside-padding.html69
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-001-notref.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-002-ref.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-001.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-002.html43
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/getComputedStyle-width-scroll.tentative.html26
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html62
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html49
-rw-r--r--tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html45
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html2
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html8
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html24
-rw-r--r--tests/wpt/web-platform-tests/interfaces/geometry.idl1
-rw-r--r--tests/wpt/web-platform-tests/interfaces/web-nfc.idl2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webrtc.idl2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webxr.idl24
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/root-margin-root-element.html90
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall-ref.html51
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall.html61
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token-ref.html20
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token.html23
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction.html38
-rw-r--r--tests/wpt/web-platform-tests/media-source/mediasource-play.html1
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html7
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html255
-rw-r--r--tests/wpt/web-platform-tests/mediasession/setactionhandler.html1
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html6
-rw-r--r--tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use-ref.html16
-rw-r--r--tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use.html30
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/lint.py10
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/rules.py5
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/tests/test_path_lints.py14
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/setup.py1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html37
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html67
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NFCErrorEvent_constructor.https.html9
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html23
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html13
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/webrtc/idlharness.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html24
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html28
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html41
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html19
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html2
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt4
-rw-r--r--tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt5
91 files changed, 1834 insertions, 293 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
index 947e223fb28..3b874fc1748 100644
--- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
@@ -34,3 +34,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
+ [Revoke blob URL after calling fetch, fetch should succeed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index b61081ad02d..a8f266ecbb8 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -141767,6 +141767,30 @@
{}
]
],
+ "css/css-text-decor/text-underline-offset-001.html": [
+ [
+ "css/css-text-decor/text-underline-offset-001.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-underline-offset-001-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-underline-offset-002.html": [
+ [
+ "css/css-text-decor/text-underline-offset-002.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-underline-offset-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text/boundary-shaping/boundary-shaping-001.html": [
[
"css/css-text/boundary-shaping/boundary-shaping-001.html",
@@ -176977,6 +177001,18 @@
{}
]
],
+ "css/filter-effects/backdrop-filter-edge-clipping.html": [
+ [
+ "css/filter-effects/backdrop-filter-edge-clipping.html",
+ [
+ [
+ "/css/filter-effects/backdrop-filter-paint-order-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/filter-effects/backdrop-filter-edge-pixels.html": [
[
"css/filter-effects/backdrop-filter-edge-pixels.html",
@@ -177049,6 +177085,18 @@
{}
]
],
+ "css/filter-effects/backdrop-filter-plus-filter.html": [
+ [
+ "css/filter-effects/backdrop-filter-plus-filter.html",
+ [
+ [
+ "/css/filter-effects/backdrop-filter-plus-filter-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/filter-effects/backdrop-filter-reference-filter.html": [
[
"css/filter-effects/backdrop-filter-reference-filter.html",
@@ -201125,6 +201173,30 @@
{}
]
],
+ "mathml/presentation-markup/direction/direction-overall.html": [
+ [
+ "mathml/presentation-markup/direction/direction-overall.html",
+ [
+ [
+ "/mathml/presentation-markup/direction/direction-overall-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/direction/direction-token.html": [
+ [
+ "mathml/presentation-markup/direction/direction-token.html",
+ [
+ [
+ "/mathml/presentation-markup/direction/direction-token-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"mathml/presentation-markup/fractions/frac-bar-001.html": [
[
"mathml/presentation-markup/fractions/frac-bar-001.html",
@@ -202805,6 +202877,18 @@
{}
]
],
+ "svg/render/reftests/change-sync-for-nested-use.html": [
+ [
+ "svg/render/reftests/change-sync-for-nested-use.html",
+ [
+ [
+ "/svg/render/reftests/change-sync-for-nested-use-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg/render/reftests/filter-effects-on-pattern.html": [
[
"svg/render/reftests/filter-effects-on-pattern.html",
@@ -203705,6 +203789,18 @@
{}
]
],
+ "webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html": [
+ [
+ "webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html",
+ [
+ [
+ "/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html": [
[
"webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html",
@@ -250843,6 +250939,12 @@
"css/css-text-decor/reference/text-emphasis-style-string-001-ref.xht": [
[]
],
+ "css/css-text-decor/reference/text-underline-offset-001-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-underline-offset-002-ref.html": [
+ []
+ ],
"css/css-text/META.yml": [
[]
],
@@ -256672,6 +256774,9 @@
"css/filter-effects/backdrop-filter-paint-order-ref.html": [
[]
],
+ "css/filter-effects/backdrop-filter-plus-filter-ref.html": [
+ []
+ ],
"css/filter-effects/backdrop-filter-update-ref.html": [
[]
],
@@ -270598,6 +270703,12 @@
"mathml/README.md": [
[]
],
+ "mathml/presentation-markup/direction/direction-overall-ref.html": [
+ []
+ ],
+ "mathml/presentation-markup/direction/direction-token-ref.html": [
+ []
+ ],
"mathml/presentation-markup/fractions/frac-bar-001-ref.html": [
[]
],
@@ -277804,6 +277915,9 @@
"svg/render/reftests/blending-svg-root-ref.html": [
[]
],
+ "svg/render/reftests/change-sync-for-nested-use-ref.html": [
+ []
+ ],
"svg/render/reftests/filter-effects-on-pattern-ref.html": [
[]
],
@@ -284044,6 +284158,9 @@
"webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby-ref.html": [
[]
],
+ "webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html": [
+ []
+ ],
"webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0-ref.html": [
[]
],
@@ -284878,6 +284995,9 @@
"webvtt/rendering/cues-with-video/processing-model/support/size_50.vtt": [
[]
],
+ "webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt": [
+ []
+ ],
"webvtt/rendering/cues-with-video/processing-model/support/test.vtt": [
[]
],
@@ -312312,6 +312432,12 @@
{}
]
],
+ "css/css-overflow/overfow-outside-padding.html": [
+ [
+ "css/css-overflow/overfow-outside-padding.html",
+ {}
+ ]
+ ],
"css/css-overflow/parsing/block-ellipsis-invalid.html": [
[
"css/css-overflow/parsing/block-ellipsis-invalid.html",
@@ -321670,6 +321796,12 @@
{}
]
],
+ "css/cssom/getComputedStyle-width-scroll.tentative.html": [
+ [
+ "css/cssom/getComputedStyle-width-scroll.tentative.html",
+ {}
+ ]
+ ],
"css/cssom/historical.html": [
[
"css/cssom/historical.html",
@@ -355971,6 +356103,12 @@
{}
]
],
+ "intersection-observer/root-margin-root-element.html": [
+ [
+ "intersection-observer/root-margin-root-element.html",
+ {}
+ ]
+ ],
"intersection-observer/root-margin-rounding.html": [
[
"intersection-observer/root-margin-rounding.html",
@@ -356625,6 +356763,12 @@
}
]
],
+ "mathml/presentation-markup/direction/direction.html": [
+ [
+ "mathml/presentation-markup/direction/direction.html",
+ {}
+ ]
+ ],
"mathml/presentation-markup/fractions/frac-1.html": [
[
"mathml/presentation-markup/fractions/frac-1.html",
@@ -357198,7 +357342,9 @@
"media-source/mediasource-play.html": [
[
"media-source/mediasource-play.html",
- {}
+ {
+ "timeout": "long"
+ }
]
],
"media-source/mediasource-preload.html": [
@@ -393910,6 +394056,12 @@
{}
]
],
+ "trusted-types/Element-insertAdjacentText.tentative.html": [
+ [
+ "trusted-types/Element-insertAdjacentText.tentative.html",
+ {}
+ ]
+ ],
"trusted-types/Element-outerHTML.tentative.html": [
[
"trusted-types/Element-outerHTML.tentative.html",
@@ -394150,6 +394302,12 @@
{}
]
],
+ "trusted-types/block-text-node-insertion-into-script-element.tentative.html": [
+ [
+ "trusted-types/block-text-node-insertion-into-script-element.tentative.html",
+ {}
+ ]
+ ],
"trusted-types/idlharness.window.js": [
[
"trusted-types/idlharness.window.html",
@@ -432133,7 +432291,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "1a8950b870fbad7bb343889c9cf5f091bb56a3fa",
+ "80748691d6fd3c16a659c4c6c57115ca9341a38e",
"support"
],
".codecov.yml": [
@@ -547105,11 +547263,11 @@
"testharness"
],
"css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html": [
- "e456af8ce0a30b430ab2696c892c6fde8884007c",
+ "4be43ddba2dec27a1dd2d1af95402e5158c7c9e6",
"testharness"
],
"css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html": [
- "a7a38ad0a0ab8c8fa13b7fac0a75268e1a026cbb",
+ "7025ccf55e9d70e5fa3db5159cd975e061003837",
"testharness"
],
"css/css-grid/abspos/descendant-static-position-001-ref.html": [
@@ -547161,7 +547319,7 @@
"support"
],
"css/css-grid/abspos/grid-positioned-children-writing-modes-001.html": [
- "eb855279ca8b2be674180dd5240ed3860663ae45",
+ "d63b1894927bf12cec6b918b100d62ff8a7ed103",
"reftest"
],
"css/css-grid/abspos/grid-positioned-item-dynamic-change-001.html": [
@@ -547201,7 +547359,7 @@
"support"
],
"css/css-grid/abspos/grid-positioned-items-background-001.html": [
- "19ee662e04e12e77ac0eec52b8da951ef1f27b5c",
+ "54146bce2581db8749ea75622edfdcd148d266bb",
"reftest"
],
"css/css-grid/abspos/grid-positioned-items-background-rtl-001-ref.html": [
@@ -547209,7 +547367,7 @@
"support"
],
"css/css-grid/abspos/grid-positioned-items-background-rtl-001.html": [
- "9ed046b421533c12cf905dd175c682458279e10a",
+ "97ec1052f4be3ce0b26491c60d3c02184328dd12",
"reftest"
],
"css/css-grid/abspos/grid-positioned-items-content-alignment-001.html": [
@@ -547237,11 +547395,11 @@
"testharness"
],
"css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html": [
- "71f096aa74b9d9e012b115a21825843aa0d41e79",
+ "4b1a3d0f342f84b3a901513ce99bfcc96b635511",
"testharness"
],
"css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html": [
- "7b8fa4ef7bd632fcbcfae5084cb41e8424f4363f",
+ "8fc8918ee68b215da3e93fb73282ab8e0b2ef287",
"testharness"
],
"css/css-grid/abspos/grid-positioned-items-padding-001.html": [
@@ -547249,7 +547407,7 @@
"testharness"
],
"css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html": [
- "6e61f7c2de36a1d799aba0de6d10c52147d406d6",
+ "663dab45b3dbe76075c6a32a3e7b0b6a59213181",
"testharness"
],
"css/css-grid/abspos/grid-positioned-items-within-grid-implicit-track-001.html": [
@@ -547257,7 +547415,7 @@
"testharness"
],
"css/css-grid/abspos/grid-sizing-positioned-items-001.html": [
- "0e8cd3369f7f154725f746ce4725940bec746582",
+ "e74b2b96fe62e102f4313c00bcc730bec76a667a",
"testharness"
],
"css/css-grid/abspos/orthogonal-positioned-grid-descendants-001.html": [
@@ -547629,11 +547787,11 @@
"reftest"
],
"css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html": [
- "5ef006ae137c5604e9b53e322aeec60bf4841e55",
+ "adb4a7acf27514550682429e998feadb2af5676d",
"testharness"
],
"css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html": [
- "597e778019b6276cdfd01676f2abf6f521faff29",
+ "50f9984370baa88d2940b5457b54067a9497a812",
"testharness"
],
"css/css-grid/abspos/positioned-grid-items-sizing-001-ref.html": [
@@ -554172,6 +554330,10 @@
"f425636c3bb4297e4e6564d1c2629dc10dde5607",
"testharness"
],
+ "css/css-overflow/overfow-outside-padding.html": [
+ "792f7b87351bfcbda7baecc67ea6dedc2b05f3a5",
+ "testharness"
+ ],
"css/css-overflow/parsing/block-ellipsis-invalid.html": [
"2b9c059a45d0e315a350e0c09fd7cd86be72c61e",
"testharness"
@@ -562280,6 +562442,14 @@
"6bf79ba4527f99af740bdeca945449e8f9ed7a57",
"support"
],
+ "css/css-text-decor/reference/text-underline-offset-001-notref.html": [
+ "c56078a32ae26647c8aece448ce1d6b268f38abd",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-underline-offset-002-ref.html": [
+ "ed2e3cefff82a120c3d33f504fd8d6ee78d9fe8c",
+ "support"
+ ],
"css/css-text-decor/text-decoration-001-manual.html": [
"9b620132697dfbf68f0d10575afaf7d902e649da",
"manual"
@@ -562720,6 +562890,14 @@
"1c108faabd33fbbd4827bb1fca9a3d4834037deb",
"testharness"
],
+ "css/css-text-decor/text-underline-offset-001.html": [
+ "41a7d418a21db617dfc13ad501c72a209be35302",
+ "reftest"
+ ],
+ "css/css-text-decor/text-underline-offset-002.html": [
+ "56ba764a0fa035fcc41c993f4462acf4c2ccacfd",
+ "reftest"
+ ],
"css/css-text-decor/text-underline-offset-computed.html": [
"32dfd24fbaa5633c60d9307d78847f9cae3e9b97",
"testharness"
@@ -587900,6 +588078,10 @@
"12ad5e89653564f91006c78baeac353c12865c00",
"testharness"
],
+ "css/cssom/getComputedStyle-width-scroll.tentative.html": [
+ "8f629c70161b436758044eafc8fc42648f38f3dd",
+ "testharness"
+ ],
"css/cssom/historical.html": [
"44f3f6c8f15a13b2c32dad2672ea9383330e8082",
"testharness"
@@ -588336,6 +588518,10 @@
"bc25b25944f47d6f053580939752803f0b929c99",
"reftest"
],
+ "css/filter-effects/backdrop-filter-edge-clipping.html": [
+ "5d09c414497de3d1d34bf2a6032c94c87a9bdb82",
+ "reftest"
+ ],
"css/filter-effects/backdrop-filter-edge-pixels-ref.html": [
"bbd562856f7a0ee305874575935c66e8b4830c1d",
"support"
@@ -588380,6 +588566,14 @@
"88531532fc33296e8c8eca5452da04d5d612662d",
"reftest"
],
+ "css/filter-effects/backdrop-filter-plus-filter-ref.html": [
+ "bf476ea63f81a6caca33dd8d27b8208b3ae52c4e",
+ "support"
+ ],
+ "css/filter-effects/backdrop-filter-plus-filter.html": [
+ "3a2d8feaeefc82c20afd3de2c2cf9ce9bf6aed11",
+ "reftest"
+ ],
"css/filter-effects/backdrop-filter-reference-filter.html": [
"6c61a9620aa82d23375fd31900d87bcfd873a5e1",
"reftest"
@@ -622117,11 +622311,11 @@
"testharness"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html": [
- "92c1e9fedf9aead22f80dbe5575e46d427288e96",
+ "137a9334f286f418b8d0c3b35ed995e956f22c76",
"support"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html": [
- "0da8c6f83d54195c6ccea34bdd8d1af6cad6c2b6",
+ "ec350ff44d56c601f508485d0227ba9855394917",
"reftest"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-positioning.html": [
@@ -622149,11 +622343,11 @@
"testharness"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html": [
- "c0415367cc13be70aba2076bf6b445b553ee4b5d",
+ "1c8f751c2cebba1a89f2f1b06e0deb73236e7b5b",
"support"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html": [
- "c90313c887c07f05101f5ceaec698954be1510be",
+ "df816ffe2b9b0fd4cfd8021ea6d4c98f3872e128",
"reftest"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-unsupported-markup.html": [
@@ -631353,7 +631547,7 @@
"support"
],
"interfaces/geometry.idl": [
- "b5b56e780542ec0e623b47fc6a8b76dd0c3bb6f1",
+ "5d5fe4fc2c48305c0ea7e9ce0859af3700d9b14c",
"support"
],
"interfaces/gyroscope.idl": [
@@ -631621,7 +631815,7 @@
"support"
],
"interfaces/web-nfc.idl": [
- "26f32a04ac981db772d26f34cbe3a40cdc78a83f",
+ "a50d53b57cd1bfa0fb44b8921c215dbc8d51279f",
"support"
],
"interfaces/web-share.idl": [
@@ -631661,7 +631855,7 @@
"support"
],
"interfaces/webrtc.idl": [
- "4b5d1c1c581869cdfcefab4584c2b05b2dcb1f86",
+ "b18d4ac2b46e2b9924820ab227d21b78a86fa349",
"support"
],
"interfaces/webusb.idl": [
@@ -631673,7 +631867,7 @@
"support"
],
"interfaces/webxr.idl": [
- "9b48a0f904026752510d90e05b85652062d87088",
+ "f9bfdce58425350d1404c4beaac719e04c94a498",
"support"
],
"interfaces/worklets.idl": [
@@ -631808,6 +632002,10 @@
"295bbf047e6523313ce74f2e383ed769c0d5c81b",
"support"
],
+ "intersection-observer/root-margin-root-element.html": [
+ "6016d45bdf52ab8455ff20edc7da8fdcef3a24b9",
+ "testharness"
+ ],
"intersection-observer/root-margin-rounding.html": [
"f5e33230199eb77a16f8fe99eeb1c9c1618c3e19",
"testharness"
@@ -632360,6 +632558,26 @@
"9524d275e479ba2db2aaaab9fdbc1203c79009cb",
"support"
],
+ "mathml/presentation-markup/direction/direction-overall-ref.html": [
+ "1f823e5b0c359cb5347ee0d1165571ee8286753b",
+ "support"
+ ],
+ "mathml/presentation-markup/direction/direction-overall.html": [
+ "7f377e540f4388088a401fb6995947d488d3f76f",
+ "reftest"
+ ],
+ "mathml/presentation-markup/direction/direction-token-ref.html": [
+ "95f182bc8c716e84e1e76cfce7013a16cf4c5ada",
+ "support"
+ ],
+ "mathml/presentation-markup/direction/direction-token.html": [
+ "a02793cc84ac61c814b6f884869ae8a920a2b748",
+ "reftest"
+ ],
+ "mathml/presentation-markup/direction/direction.html": [
+ "05ea8b74fb5fcdeb994cfc6d80dc88d2cd8ccde4",
+ "testharness"
+ ],
"mathml/presentation-markup/fractions/frac-1.html": [
"6b9fb2844298cbc228f91a23c6439e0f67f4f20b",
"testharness"
@@ -633217,7 +633435,7 @@
"testharness"
],
"media-source/mediasource-play.html": [
- "62fb04681ae2feffcf568b14548811baf3ea3037",
+ "2129b8f4730fcba72d27958016355887e36c6ff9",
"testharness"
],
"media-source/mediasource-preload.html": [
@@ -633837,7 +634055,7 @@
"testharness"
],
"mediacapture-streams/MediaStream-MediaElement-firstframe.https.html": [
- "1c6292458865bdeb3cfb5a64a7d4e4c9c215c866",
+ "714ae01b19ccc23dad2d601a8843adc44bb7b842",
"testharness"
],
"mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https.html": [
@@ -633845,7 +634063,7 @@
"manual"
],
"mediacapture-streams/MediaStream-MediaElement-srcObject.https.html": [
- "4b9a3c8246d04aafff5877fc78001a5f9d00f82d",
+ "3b16006e0f52ca966c0298bef59a10a19e4038a3",
"testharness"
],
"mediacapture-streams/MediaStream-add-audio-track.https.html": [
@@ -633957,7 +634175,7 @@
"testharness"
],
"mediasession/setactionhandler.html": [
- "dc7c3359e122db46f93aad4ef91daed1495f36ec",
+ "06d145b37d1603680ef61de4b2953f5bfc4ed650",
"testharness"
],
"mimesniff/META.yml": [
@@ -658413,7 +658631,7 @@
"testharness"
],
"service-workers/service-worker/fetch-event-async-respond-with.https.html": [
- "ae64fcb9a5445843afb75679d0dafa45a3366677",
+ "d9147f85494c21e54d39a4fd7af16efa1a126384",
"testharness"
],
"service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html": [
@@ -665504,6 +665722,14 @@
"7cbf68d39a05d9b3e27f2613b65eaf64f63ed54b",
"reftest"
],
+ "svg/render/reftests/change-sync-for-nested-use-ref.html": [
+ "e52fa18d3f305a2933df180dac7f8f331d885b3c",
+ "support"
+ ],
+ "svg/render/reftests/change-sync-for-nested-use.html": [
+ "9a6e13435094eabc055d451e05de58c80c4fe679",
+ "reftest"
+ ],
"svg/render/reftests/filter-effects-on-pattern-ref.html": [
"a61f17bf199374af3b6d106d3f5a72bc532449b8",
"support"
@@ -666489,11 +666715,11 @@
"support"
],
"tools/lint/lint.py": [
- "6a71dc860feb47d7c57df48a0fbfb12791f7b9f7",
+ "062c6a42d0f91836aaba5b308854ea6b5896b9aa",
"support"
],
"tools/lint/rules.py": [
- "685bac3474ecf00a22e130dae78d3e6d384dc877",
+ "9b78f3495b2291044243170c54af5c3cd6b61046",
"support"
],
"tools/lint/tests/__init__.py": [
@@ -666641,7 +666867,7 @@
"support"
],
"tools/lint/tests/test_path_lints.py": [
- "9f6f49e14a12e65979b7fcccc70e405cda213afb",
+ "558b0ed4f648f41e7888d33b04c97bce720ca5da",
"support"
],
"tools/localpaths.py": [
@@ -671349,7 +671575,7 @@
"support"
],
"tools/wptrunner/setup.py": [
- "0a16aa537b33b211622ef7799c149a135c7c4660",
+ "ab96bd10357cd6b3022364d471e5cebf0cb652dd",
"support"
],
"tools/wptrunner/test/metadata/testharness/firefox/__dir__.ini": [
@@ -672292,6 +672518,10 @@
"6a9329b3fbf2fdfb4f00ce2acde7c38d6843d92f",
"testharness"
],
+ "trusted-types/Element-insertAdjacentText.tentative.html": [
+ "f6221362c17d6231e0921d866b1cdc642fea9d39",
+ "testharness"
+ ],
"trusted-types/Element-outerHTML.tentative.html": [
"c8daddfe9955196bf0b69410263cb7c01e473e5e",
"testharness"
@@ -672456,6 +672686,10 @@
"c66a16d5c00535c3def556afc5daff3a7614c62c",
"testharness"
],
+ "trusted-types/block-text-node-insertion-into-script-element.tentative.html": [
+ "a6aa061f7307330e027c3e8b26e6b931cee2bb7c",
+ "testharness"
+ ],
"trusted-types/idlharness.window.js": [
"de13697764ed487060de3dd425cd39cba73ff13b",
"testharness"
@@ -675189,7 +675423,7 @@
"support"
],
"web-nfc/NFCErrorEvent_constructor.https.html": [
- "8a08fe0a70edaebb542a4d2ec3f033476fc8b865",
+ "1cc9ce160be46955a9b15485ee4c040605722961",
"testharness"
],
"web-nfc/NFCReader-manual.https.html": [
@@ -675229,11 +675463,11 @@
"manual"
],
"web-nfc/NFCReadingEvent_constructor.https.html": [
- "6cfcc0d3bddae2430152504fce839d1b96b12ce0",
+ "460e92b2508ba438a058d5ce9ab34db0d24349cf",
"testharness"
],
"web-nfc/NFCWriter_push.https.html": [
- "5badeb4083855549c9d9f241391ac6e0948f01e2",
+ "b1559b30fec513aaa5b8fa46f104c98388fcf166",
"testharness"
],
"web-nfc/NFCWriter_push_signal-manual.https.html": [
@@ -675241,7 +675475,7 @@
"manual"
],
"web-nfc/idlharness.https.window.js": [
- "ab0d6cd191a5b576674c0c038087ef17ece4cdfd",
+ "c19458aed83f505472e35c8f3affa3247a814989",
"testharness"
],
"web-nfc/nfc_hw_disabled-manual.https.html": [
@@ -678449,7 +678683,7 @@
"testharness"
],
"webrtc/idlharness.https.window.js": [
- "66abc25b0840335f8de783c010796942793fb14f",
+ "85fc7a68b9dff83ce4470b6caa2986932af43b75",
"testharness"
],
"webrtc/legacy/README.txt": [
@@ -680689,7 +680923,7 @@
"support"
],
"webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html": [
- "4be9d6a5c1ca78bbad01a26ea76889654ff5aeba",
+ "17222bdc7b3cf03cbdc99959c718158860fcf8c6",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html": [
@@ -680705,7 +680939,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html": [
- "d6117b32571459c889503778771016e9347f2b1a",
+ "22a711af6878bdaf8f9e7ee6d574a6de84c3a788",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html": [
@@ -680745,7 +680979,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html": [
- "9f79bf8e3bf65e1b17ce5acde44217f08196001c",
+ "c37ae7a7dfadd9481102eb542c7d9b10e5baa323",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50.html": [
@@ -680753,7 +680987,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html": [
- "cc52e2db73324327c199558ea3ddd963fb01bdc3",
+ "108495e4b00e52a78a83975f064e6d86ad9a08ba",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50.html": [
@@ -680761,7 +680995,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html": [
- "02a7ae458494cbd6aed63cc55b928d3085dd62f7",
+ "296369332cf8f542e14548a9b7d884ea810b2634",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size.html": [
@@ -680769,7 +681003,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html": [
- "d67f0a8c04ae82ba6aaee98e0c0ff3aaaa8002a2",
+ "55aed284b7a5560b70f5634cf7e7b0ab79852087",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_center_wrapped.html": [
@@ -680785,7 +681019,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html": [
- "70b32cfc9bad2f67d17081aa76d67164bad5f41c",
+ "eee75f138fdef2d3745f6ce99313c056d45073a7",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_end_wrapped.html": [
@@ -680801,7 +681035,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html": [
- "d3c28fc36194293611c614cbb9525a6c943c31f0",
+ "45cb287e2f6c8b38731f91bc635d040e5709931f",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/align_start_wrapped.html": [
@@ -680832,6 +681066,14 @@
"ed2b2e019d6ffb57134e93c18bc1a533e2c386a0",
"reftest"
],
+ "webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html": [
+ "78ca8979c95a31196d67a16c52ddc49a781cacef",
+ "support"
+ ],
+ "webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html": [
+ "2b6cd76c20109c39c2a5ed06540a92c782f639b1",
+ "reftest"
+ ],
"webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0-ref.html": [
"3c968da7c2920fe2efb4d2eb8edd23f417548d82",
"support"
@@ -681149,11 +681391,11 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html": [
- "0139f0c8339554bc53274c50bebd43500a71c757",
+ "87f3834e3d788ac998993c996876e761cc0b3b4f",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html": [
- "fb954a42302781824e320b3ad77f89a38c730895",
+ "5ee98043ec2da7042943de2b2ac3e5be79dad5a8",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref.html": [
@@ -682637,7 +682879,7 @@
"reftest"
],
"webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt": [
- "d4a9679248215d2a23c3e2937e63d2e59c162a84",
+ "1ca56e56f6a8be9c485cb11081c30108573a1b54",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_down.vtt": [
@@ -682645,7 +682887,7 @@
"support"
],
"webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt": [
- "6c99ce3b1fe1ab60d41e1afdfb79bd689cba62f7",
+ "7160f3791ee0cdffd143e29afa8fe869a738b40c",
"support"
],
"webvtt/rendering/cues-with-video/processing-model/support/align_center.vtt": [
@@ -682808,6 +683050,10 @@
"b165af1533b0cf1688ce3835eeeaccfe348979df",
"support"
],
+ "webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt": [
+ "9a92729381b3d974ef10dabd720d25f05c984717",
+ "support"
+ ],
"webvtt/rendering/cues-with-video/processing-model/support/test.vtt": [
"ab71ec59840363d72574ca4d3a44e0892a466de3",
"support"
diff --git a/tests/wpt/metadata/css/css-text-decor/text-underline-offset-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-underline-offset-001.html.ini
new file mode 100644
index 00000000000..d6c9b16bea3
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-underline-offset-001.html.ini
@@ -0,0 +1,2 @@
+[text-underline-offset-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
deleted file mode 100644
index e6e1f29e274..00000000000
--- a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[matchMedia-display-none-iframe.html]
- expected: ERROR
diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-filter.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-filter.html.ini
new file mode 100644
index 00000000000..80144ff5784
--- /dev/null
+++ b/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-filter.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-plus-filter.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 e9c54d5e353..76d0244413c 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -249,9 +249,6 @@
[Request: combined response Content-Type: text/html;" " text/plain]
expected: NOTRUN
- [<iframe>: separate response Content-Type: text/plain ]
- expected: FAIL
-
[fetch(): combined response Content-Type: text/plain */*]
expected: NOTRUN
@@ -312,27 +309,24 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
+ [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
- [<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>: separate response Content-Type: text/plain;charset=gbk text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: separate response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<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 1cac78a466b..13cc589c98a 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -17,9 +17,6 @@
[combined x/x;" x/y;\\" text/javascript;charset=windows-1252;" text/javascript]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
[combined x/x text/javascript]
expected: FAIL
@@ -38,12 +35,6 @@
[separate x/x;charset=windows-1252 text/javascript]
expected: FAIL
- [separate text/javascript error]
- expected: FAIL
-
- [separate text/javascript; charset=windows-1252 text/javascript]
- expected: FAIL
-
[combined text/javascript;charset=windows-1252 x/x text/javascript]
expected: FAIL
@@ -62,9 +53,9 @@
[separate text/javascript;" x/x]
expected: FAIL
- [separate text/javascript ]
+ [combined text/javascript ]
expected: FAIL
- [combined text/javascript ]
+ [separate text/javascript x/x]
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 87c807a49ff..2557db2b806 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%0C]
expected: FAIL
+ [X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
+ expected: FAIL
+
+ [Content-Type-Options%3A%20nosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
index dc2e45516de..385376c7321 100644
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_5.html]
+[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini
index bf50d59df41..e02f179ec25 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini
@@ -1,5 +1,24 @@
[open-features-negative-innerwidth-innerheight.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
expected: FAIL
+ [features "innerheight=-404.5" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "innerwidth=-404.5" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "innerwidth=-404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "innerheight=-404e1" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "innerheight=-404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "innerwidth=-404e1" should NOT set "width=404"]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini
index e150c9d848f..23eefb8eaf9 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini
@@ -1,5 +1,24 @@
[open-features-negative-screenx-screeny.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
expected: FAIL
+ [features "screenx=-204" should NOT set "left=204"]
+ expected: TIMEOUT
+
+ [features "screeny=-204" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "screeny=-204.5" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "screeny=-0" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "screenx=-0" should NOT set "left=204"]
+ expected: TIMEOUT
+
+ [features "screenx=-204.5" should NOT set "left=204"]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini
index ad8840fbb68..940516ddd33 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini
@@ -1,5 +1,24 @@
[open-features-negative-top-left.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: negative values for `top`, `left`]
expected: FAIL
+ [features "top=-204" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "top=-204.5" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "left=-204" should NOT set "left=204"]
+ expected: TIMEOUT
+
+ [features "top=-0" should NOT set "top=204"]
+ expected: TIMEOUT
+
+ [features "left=-204.5" should NOT set "left=204"]
+ expected: TIMEOUT
+
+ [features "left=-0" should NOT set "left=204"]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini
index d1ed9088b2b..9027336b453 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini
@@ -1,5 +1,24 @@
[open-features-negative-width-height.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: negative values for `width`, `height`]
expected: FAIL
+ [features "height=-404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "height=-404e1" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "height=-404.5" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "width=-404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "width=-404e1" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "width=-404.5" should NOT set "width=404"]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini
index a70e9dbad4d..4e44584b123 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini
@@ -1,32 +1,48 @@
[open-features-non-integer-height.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL
[features "height=405*3" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405.32" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405e1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405/5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405^4" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405.5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405e-1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405 " should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "height=405LLl" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "height=/404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
+ expected: TIMEOUT
+
+ [top=0,left=0: absence of feature "height" should be treated same as "height=0"]
+ expected: TIMEOUT
+
+ [features "height=_404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "height=L404" should NOT set "height=404"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini
index 779531b4a98..fcaeae5336d 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini
@@ -1,32 +1,42 @@
[open-features-non-integer-innerheight.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL
[features "innerheight=405e-1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405LLl" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405^4" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405e1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405 " should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405/5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405.32" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405.5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerheight=405*3" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "innerheight=_404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "innerheight=L404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "innerheight=/404" should NOT set "height=404"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini
index 7a1b258d52e..42327fedd27 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini
@@ -1,32 +1,42 @@
[open-features-non-integer-innerwidth.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL
[features "innerwidth=405e-1" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405*3" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405.5" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405e1" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405.32" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405 " should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405LLl" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405/5" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "innerwidth=405^4" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "innerwidth=/404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "innerwidth=_404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "innerwidth=L404" should NOT set "width=404"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini
index caba4124f0b..a8e4fe06618 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini
@@ -1,32 +1,42 @@
[open-features-non-integer-left.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL
[features "left=105e1" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105 " should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105/5" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105e-1" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105^4" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105LLl" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105.32" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105*3" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "left=105.5" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "left=L104" should NOT set "left=104"]
+ expected: TIMEOUT
+
+ [features "left=/104" should NOT set "left=104"]
+ expected: TIMEOUT
+
+ [features "left=_104" should NOT set "left=104"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini
index 9ace8a4cbdb..64a08faf0e6 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini
@@ -1,32 +1,42 @@
[open-features-non-integer-screenx.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL
[features "screenx=105.5" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105e1" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105 " should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105*3" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105e-1" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105^4" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105LLl" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105/5" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
[features "screenx=105.32" should set "left=105"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "screenx=_104" should NOT set "left=104"]
+ expected: TIMEOUT
+
+ [features "screenx=L104" should NOT set "left=104"]
+ expected: TIMEOUT
+
+ [features "screenx=/104" should NOT set "left=104"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini
index a82bd0f981a..4f22ef4ef29 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini
@@ -1,32 +1,42 @@
[open-features-non-integer-screeny.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL
[features "screeny=405^4" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405e-1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405LLl" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405e1" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405 " should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405/5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405*3" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405.32" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "screeny=405.5" should set "height=405"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [features "screeny=_404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "screeny=L404" should NOT set "height=404"]
+ expected: TIMEOUT
+
+ [features "screeny=/404" should NOT set "height=404"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini
index 28f93ee71b5..9d841e61bc0 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini
@@ -1,32 +1,48 @@
[open-features-non-integer-width.html]
type: testharness
+ expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL
[features "width=405^4" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405.5" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405e1" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405 " should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405.32" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405LLl" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405*3" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405e-1" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
[features "width=405/5" should set "width=405"]
- expected: FAIL
+ expected: TIMEOUT
+
+ [top=0,left=0: absence of feature "width" should be treated same as "width=0"]
+ expected: TIMEOUT
+
+ [features "width=_404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
+ expected: TIMEOUT
+
+ [features "width=/404" should NOT set "width=404"]
+ expected: TIMEOUT
+
+ [features "width=L404" should NOT set "width=404"]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/webdriver/tests/set_window_rect/set.py.ini b/tests/wpt/metadata/webdriver/tests/set_window_rect/set.py.ini
index 3d9deb34a25..80695318c2b 100644
--- a/tests/wpt/metadata/webdriver/tests/set_window_rect/set.py.ini
+++ b/tests/wpt/metadata/webdriver/tests/set_window_rect/set.py.ini
@@ -40,4 +40,3 @@
[test_height_width_larger_than_max]
expected: FAIL
-
diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
deleted file mode 100644
index 80f9a4f15b8..00000000000
--- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[Worker-constructor.html]
- expected: ERROR
diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
deleted file mode 100644
index dbea4f293ad..00000000000
--- a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[transition_calc_implicit.html]
- expected: TIMEOUT
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 1a8950b870f..80748691d6f 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -21,7 +21,7 @@ jobs:
# The affected tests jobs are unconditional for speed, as most PRs have one or
# more affected tests: https://github.com/web-platform-tests/wpt/issues/13936.
- job: affected_safari_preview
- displayName: 'affected tests (Safari Technology Preview)'
+ displayName: 'affected tests: Safari Technology Preview'
condition: eq(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: 'macOS-10.13'
@@ -35,7 +35,7 @@ jobs:
artifactName: safari-preview-affected-tests
- job: affected_without_changes_safari_preview
- displayName: 'affected tests without changes (Safari Technology Preview)'
+ displayName: 'affected tests without changes: Safari Technology Preview'
condition: eq(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: 'macOS-10.13'
@@ -68,7 +68,7 @@ jobs:
displayName: 'Run ./wpt test-jobs'
- job: infrastructure_macOS
- displayName: 'infrastructure/ tests (macOS)'
+ displayName: 'infrastructure/ tests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_infrastructure']
pool:
@@ -86,11 +86,11 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl $(Build.ArtifactStagingDirectory)/chrome.tbpl.log --log-tbpl-level info --channel dev chrome infrastructure/
- displayName: 'Run tests (Chrome Dev)'
+ displayName: 'Run tests: Chrome Dev'
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl $(Build.ArtifactStagingDirectory)/firefox.tbpl.log --log-tbpl-level info --channel nightly firefox infrastructure/
- displayName: 'Run tests (Firefox Nightly)'
+ displayName: 'Run tests: Firefox Nightly'
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl $(Build.ArtifactStagingDirectory)/safari.tbpl.log --log-tbpl-level info --channel preview safari infrastructure/
- displayName: 'Run tests (Safari Technology Preview)'
+ displayName: 'Run tests: Safari Technology Preview'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
@@ -98,7 +98,7 @@ jobs:
condition: always()
- job: tools_unittest_macOS
- displayName: 'tools/ unittests (macOS)'
+ displayName: 'tools/ unittests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -111,7 +111,7 @@ jobs:
toxenv: py27
- job: wptrunner_unittest_macOS
- displayName: 'tools/wptrunner/ unittests (macOS)'
+ displayName: 'tools/wptrunner/ unittests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -123,7 +123,7 @@ jobs:
directory: tools/wptrunner/
- job: wpt_integration_macOS
- displayName: 'tools/wpt/ tests (macOS)'
+ displayName: 'tools/wpt/ tests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -139,7 +139,7 @@ jobs:
directory: tools/wpt/
- job: tools_unittest_win
- displayName: 'tools/ unittests (Windows)'
+ displayName: 'tools/ unittests: Windows'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -155,7 +155,7 @@ jobs:
toxenv: py27
- job: tools_unittest_win_py3
- displayName: 'tools/ unittests (Windows Python 3)'
+ displayName: 'tools/ unittests: Windows Python 3'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -171,7 +171,7 @@ jobs:
toxenv: py36
- job: wptrunner_unittest_win
- displayName: 'tools/wptrunner/ unittests (Windows)'
+ displayName: 'tools/wptrunner/ unittests: Windows'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -186,7 +186,7 @@ jobs:
directory: tools/wptrunner/
- job: wpt_integration_win
- displayName: 'tools/wpt/ tests (Windows)'
+ displayName: 'tools/wpt/ tests: Windows'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -207,7 +207,7 @@ jobs:
directory: tools/wpt/
- job: infrastructure_win10
- displayName: 'infrastructure/ tests (Windows 10)'
+ displayName: 'infrastructure/ tests: Windows 10'
# This job is only triggered manually until it has been shown to be robust.
condition: and(eq(variables['Build.Reason'], 'Manual'), variables['run_infrastructure_win10'])
pool:
@@ -224,7 +224,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl $(Build.ArtifactStagingDirectory)/edge.tbpl.log --log-tbpl-level info --channel dev edgechromium infrastructure/
- displayName: 'Run tests (Edge Dev)'
+ displayName: 'Run tests: Edge Dev'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
@@ -235,7 +235,7 @@ jobs:
# All `./wpt run` tests are run from epochs/* branches on a schedule. See
# documentation at the top of this file for required setup.
- job: results_edge
- displayName: 'all tests (Edge)'
+ displayName: 'all tests: Edge'
condition: |
or(eq(variables['Build.Reason'], 'Schedule'),
and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge']))
@@ -257,7 +257,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-tbpl - --log-tbpl-level info --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --channel dev edgechromium
- displayName: 'Run tests (Edge Dev)'
+ displayName: 'Run tests: Edge Dev'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
@@ -269,7 +269,7 @@ jobs:
artifactName: edge-results
- job: results_safari
- displayName: 'all tests (Safari)'
+ displayName: 'all tests: Safari'
condition: |
or(eq(variables['Build.Reason'], 'Schedule'),
and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_safari']))
@@ -305,7 +305,7 @@ jobs:
artifactName: safari-results
- job: results_safari_preview
- displayName: 'all tests (Safari Technology Preview)'
+ displayName: 'all tests: Safari Technology Preview'
condition: |
or(eq(variables['Build.Reason'], 'Schedule'),
and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_safari_preview']))
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html
index e456af8ce0a..4be43ddba2d 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as containing block.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html
index a7a38ad0a0a..7025ccf55e9 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as parent.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html
index eb855279ca8..d63b1894927 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-children-writing-modes-001-ref.html">
<meta name="assert" content="This test checks the behavior of the positioned grid children in combination with the writing modes and text direction properties.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html
index 19ee662e04e..54146bce258 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-items-background-001-ref.html">
<meta name="assert" content="This test checks that the background of positioned items is painted in the right position">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html
index 9ed046b4215..97ec1052f4b 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-items-background-rtl-001-ref.html">
<meta name="assert" content="This test checks that the background of positioned items is painted in the right position using RTL direction.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html
index 71f096aa74b..4b1a3d0f342 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid">
<meta name="assert" content="This test checks the behavior of the absolutely positioned grid items placed on the implicit grid.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html
index 7b8fa4ef7bd..8fc8918ee68 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid">
<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using implicit grid lines are treated as 'auto'.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html
index 6e61f7c2de3..663dab45b3d 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items can reference implicit grid lines.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link rel="stylesheet" href="support/grid.css">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html
index 0e8cd3369f7..e74b2b96fe6 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the different size options for absolutely positioned grid items.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link href="support/grid.css" rel="stylesheet">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html
index 5ef006ae137..adb4a7acf27 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that positioned items shouldn't create implicit tracks on the grid.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link href="support/grid.css" rel="stylesheet">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html b/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html
index 597e778019b..50f9984370b 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html
@@ -4,6 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that positioned items shouldn't take up space or otherwise participate in the layout of the grid.">
+<link rel="stylesheet" href="/fonts/ahem.css">
<link href="support/grid.css" rel="stylesheet">
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-overflow/overfow-outside-padding.html b/tests/wpt/web-platform-tests/css/css-overflow/overfow-outside-padding.html
new file mode 100644
index 00000000000..792f7b87351
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-overflow/overfow-outside-padding.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<title>CSS Overflow and Transforms: css-overflow-3</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#scrollable">
+<meta name="assert" content="blocks wholly outside padding edges should not contribute to overflow">
+<style>
+.container {
+ position: relative;
+ display: inline-block;
+ border: 5px solid rgba(0,0,0,0.5);
+ border-width: 0px 0px 50px 80px;
+ overflow: auto;
+ width: 200px;
+ height: 200px;
+ background: gray;
+}
+.target {
+ position: absolute;
+ width: 1000px;
+ height: 1000px;
+ background: red;
+}
+.htb {
+ writing-mode: horizontal-tb;
+}
+.vrl {
+ writing-mode: vertical-rl;
+}
+.vlr {
+ writing-mode: vertical-lr;
+}
+.rtl {
+ direction: rtl;
+}
+</style>
+<!-- -->
+<div class="container htb">
+ <div class="target" style="top: -1000px"></div>
+ htb
+</div>
+<div class="container htb rtl">
+ <div class="target" style="right: -1000px" ></div>
+ htb rtl
+</div>
+<div class="container vrl">
+ <div class="target" style="top: -1000px"></div>
+ vrl
+</div>
+<div class="container vrl rtl">
+ <div class="target" style="bottom: -1000px"></div>
+ vrl rtl
+</div>
+<div class="container vlr">
+ <div class="target" style="top: -1000px"></div>
+ vlr
+</div>
+<div class="container vlr rtl">
+ <div class="target" style="left: -1000px"></div>
+ vlr rtl
+</div>
+<script>
+test(() => {
+ Array.from(document.querySelectorAll(".container")).forEach( el => {
+ assert_equals(el.scrollWidth, 200);
+ });
+}, '#target did not trigger scroll overflow');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-001-notref.html
new file mode 100644
index 00000000000..c56078a32ae
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-001-notref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-underline-offset</title>
+ <style>
+ #main {
+ margin: 2em;
+ display:flex
+ }
+ div span {
+ text-decoration: green underline;
+ font: 20px/1 Ahem;
+ color: transparent;
+ padding-bottom: 20px;
+ border: 1px dotted transparent;
+ border-bottom-color: cyan;
+ }
+ </style>
+</head>
+<body>
+ <p class="instructions">Test passes if the box on the right has a lower underline than the box on the left</p>
+ <div id="main">
+ <div>
+ <p>left<span>XXXX</span></p>
+ </div>
+ <div>
+ <p><span id="rightbox">XXXX</span>right</p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-002-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-002-ref.html
new file mode 100644
index 00000000000..ed2e3cefff8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-underline-offset-002-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Reference case for text-underline-offset</title>
+ <style>
+ #main{
+ border-bottom: 1px solid cyan;
+ display: flex;
+ }
+ #text, #norm{
+ text-decoration: green underline;
+ text-underline-offset: 0px;
+ font: 20px/1 Ahem;
+ color: transparent;
+ position: relative;
+ top: 21px;
+ margin-right: 10px;
+ }
+ </style>
+</head>
+<body >
+ <p class="instructions">Test passes if the lines are at the same level</p>
+ <div id="main">
+ <div>
+ <p>left<span id="text">XXXX</span></p>
+ </div>
+ <div>
+ <p><span id="norm">XXXX</span>right</p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-001.html
new file mode 100644
index 00000000000..41a7d418a21
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-001.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>text-underline-offset test case</title>
+ <meta name="assert" content="text-decoration:underline; there is a line at or under the alphabetic baseline">
+ <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
+ <link rel="mismatch" href="reference/text-underline-offset-001-notref.html">
+ <style>
+ #main {
+ margin: 2em;
+ display:flex
+ }
+ div span {
+ text-decoration: green underline;
+ font: 20px/1 Ahem;
+ color: transparent;
+ padding-bottom: 20px;
+ border: 1px dotted transparent;
+ border-bottom-color: cyan;
+ }
+ #rightbox {
+ text-underline-offset: -24px;
+ }
+ </style>
+</head>
+<body>
+ <p class="instructions">Test passes if the box on the right has a lower underline than the box on the left</p>
+ <div id="main">
+ <div>
+ <p>left<span>XXXX</span></p>
+ </div>
+ <div>
+ <p><span id="rightbox">XXXX</span>right</p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-002.html
new file mode 100644
index 00000000000..56ba764a0fa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-underline-offset-002.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test case for text-underline-offset</title>
+ <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
+ <link rel="match" href="reference/text-underline-offset-002-ref.html">
+ <style>
+ #main{
+ border-bottom: 1px solid cyan;
+ display: flex;
+ }
+ #text, #norm{
+ text-decoration: green underline;
+ font: 20px/1 Ahem;
+ color: transparent;
+ position: relative;
+ margin-right: 10px;
+ }
+ #text{
+ top: 10px;
+ text-underline-offset: -11px;
+ }
+ #norm{
+ top: 21px;
+ text-underline-offset: 0px;
+ }
+ </style>
+</head>
+<body >
+ <p class="instructions">Test passes if the lines are at the same level</p>
+ <div id="main">
+ <div>
+ <p>left<span id="text">XXXX</span></p>
+ </div>
+ <div>
+ <p><span id="norm">XXXX</span>right</p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/cssom/getComputedStyle-width-scroll.tentative.html b/tests/wpt/web-platform-tests/css/cssom/getComputedStyle-width-scroll.tentative.html
new file mode 100644
index 00000000000..8f629c70161
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom/getComputedStyle-width-scroll.tentative.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<title>getComputedStyle() round-trips in presence of scrollbars.</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-value">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div style="width: 100px; height: 100px; overflow: scroll"></div>
+<script>
+// NOTE(emilio): This is a .tentative.html because the spec is not clear on
+// what the used value of `width` or `height` is, but I think this behavior
+// should be uncontroversial.
+test(function() {
+ let e = document.querySelector("div");
+ let cs = getComputedStyle(e);
+
+ let originalWidth = cs.width;
+ let originalHeight = cs.height;
+
+ e.style.width = originalWidth;
+ e.style.height = originalHeight;
+
+ assert_equals(cs.width, originalWidth, "width round-trips");
+ assert_equals(cs.height, originalHeight, "height round-trips");
+}, "getComputedStyle() round-trips in presence of scrollbars")
+</script>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html
new file mode 100644
index 00000000000..5d09c414497
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Filter input is at element bounds</title>
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="backdrop-filter-paint-order-ref.html">
+
+<div>
+ <p>Expected: A pure white box with a blue border, surrounded by green.<br>
+ No green should be observed within the white box.<br>
+ No dark/black should be observed within the white box either.</p>
+</div>
+
+<div class="greenbox top"></div>
+<div class="greenbox right"></div>
+<div class="greenbox bottom"></div>
+<div class="filterbox">
+ <div class="children" style="top:-31px;left:35px;"></div>
+ <div class="children" style="top:101px;left:35px;"></div>
+ <div class="children" style="top:35px;left:101px;"></div>
+ <div class="children" style="top:35px;left:-31px;"></div>
+</div>
+<style>
+.filterbox {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ top: 150px;
+ left: 0px;
+ border: 1px solid blue;
+ backdrop-filter: blur(20px);
+}
+.greenbox {
+ position:absolute;
+ width: 150px;
+ height: 50px;
+ background: green;
+}
+.top {
+ top:100px;
+ left: 10px;
+}
+.right {
+ top:130px;
+ left: 102px;
+ width: 58px;
+ height: 150px;
+}
+.bottom {
+ top:252px;
+ left: 10px;
+}
+.children {
+ position: absolute;
+ width: 30px;
+ height: 30px;
+ top: 0px;
+ left: 0px;
+ background: green;
+}
+</style>
+
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html
new file mode 100644
index 00000000000..bf476ea63f8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Only filter objects painted before</title>
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+
+
+
+<p>Expected: A green box with an overlapping purple box.<br>
+The overlapping portion of the boxes should be bright magenta.<br>
+
+<div class="container">
+ <div class="orangebox"></div>
+ <div class="bluebox blur-bd"></div>
+ <div class="invert"></div>
+</div>
+
+
+<style>
+div {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+}
+.container {
+ width:200px;
+ height:200px;
+ top: 50px;
+ position:absolute;
+}
+.blur-bd {
+ backdrop-filter: blur(10px);
+}
+.orangebox {
+ left: 10px;
+ top: 50px;
+ background: green;
+}
+.bluebox {
+ left: 60px;
+ top: 110px;
+ background: #00ff0055;
+}
+.invert {
+ left: 60px;
+ top: 110px;
+ background: transparent;
+ backdrop-filter: invert(1);
+}
+</style>
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html
new file mode 100644
index 00000000000..3a2d8feaeef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Correctly apply filters to backdrop-filter content</title>
+<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="backdrop-filter-plus-filter-ref.html">
+
+<p>Expected: A green box with an overlapping purple box.<br>
+The overlapping portion of the boxes should be bright magenta.<br>
+
+<div class="container">
+ <div class="orangebox"></div>
+ <div class="bluebox blur blur-bd"></div>
+</div>
+
+
+<style>
+div {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+}
+.container {
+ width:200px;
+ height:200px;
+ top: 50px;
+ position:absolute;
+}
+.blur {
+ filter: invert(1);
+}
+.blur-bd {
+ backdrop-filter: blur(10px);
+}
+.orangebox {
+ left: 10px;
+ top: 50px;
+ background: green;
+}
+.bluebox {
+ left: 60px;
+ top: 110px;
+ background: #00ff0055;
+}
+</style>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html
index 92c1e9fedf9..137a9334f28 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines-ref.html
@@ -10,12 +10,12 @@
}
.cue {
position: absolute;
- top: 48px;
+ top: 30px;
+ left: 0px;
font-family: sans-serif;
background: green;
color: rgba(255, 255, 255, 1);
- font-size: 12px;
- padding: 0px 2px;
+ font-size: 7.5px;
}
</style>
<div class="container">
@@ -26,4 +26,4 @@
</video>
<span class="cue">Bear is Coming!!!!!</span>
</div>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html
index 0da8c6f83d5..ec350ff44d5 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html
@@ -21,4 +21,4 @@ track.addCue(cue);
track.mode = "showing";
video.src = getVideoURI("/media/test");
</script>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html
index c0415367cc1..1c8f751c2ce 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end-ref.html
@@ -15,9 +15,11 @@ var cue = new VTTCue(0, 3, "cue 2");
cue.line = -2;
track.addCue(cue);
track.mode = "showing";
-
-video.onloadeddata = function() {
+video.play();
+video.onplaying = function() {
+ video.onplaying=null;
+ video.pause();
takeScreenshot();
};
</script>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html
index c90313c887c..df816ffe2b9 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-two-cue-layout-after-first-end.html
@@ -11,20 +11,16 @@
// Add two cues, where the first cue ends before the second.
var video = document.querySelector("video");
var track = video.addTextTrack("captions");
-track.addCue(new VTTCue(0, 1, "cue 1"));
-track.addCue(new VTTCue(0, 3, "cue 2"));
+let cue1 = new VTTCue(-1, 1, "cue 1");
+track.addCue(cue1);
+// As video's duration is 10s, it ensures that this cue would always be displayed.
+track.addCue(new VTTCue(0, 10, "cue 2"));
track.mode = "showing";
-
-video.onloadeddata = function() {
- // Double nesting of requestAnimationFrame to
- // make sure cue layout and paint happens.
- window.requestAnimationFrame(function() {
- window.requestAnimationFrame(function() {
- // Seek past the end of the first cue. The second cue should not move.
- video.currentTime = 2;
- video.onseeked = function() { takeScreenshot(); };
- });
- });
+video.play();
+cue1.onexit = () => {
+ cue1.onexit = null;
+ video.pause();
+ takeScreenshot();
};
</script>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/interfaces/geometry.idl b/tests/wpt/web-platform-tests/interfaces/geometry.idl
index b5b56e78054..5d5fe4fc2c4 100644
--- a/tests/wpt/web-platform-tests/interfaces/geometry.idl
+++ b/tests/wpt/web-platform-tests/interfaces/geometry.idl
@@ -81,6 +81,7 @@ dictionary DOMRectInit {
unrestricted double height = 0;
};
+[Exposed=Window]
interface DOMRectList {
readonly attribute unsigned long length;
getter DOMRect? item(unsigned long index);
diff --git a/tests/wpt/web-platform-tests/interfaces/web-nfc.idl b/tests/wpt/web-platform-tests/interfaces/web-nfc.idl
index 26f32a04ac9..a50d53b57cd 100644
--- a/tests/wpt/web-platform-tests/interfaces/web-nfc.idl
+++ b/tests/wpt/web-platform-tests/interfaces/web-nfc.idl
@@ -43,7 +43,7 @@ interface NFCReader : EventTarget {
[Constructor(DOMString type, NFCReadingEventInit readingEventInitDict), SecureContext, Exposed=Window]
interface NFCReadingEvent : Event {
readonly attribute DOMString serialNumber;
- readonly attribute NDEFMessage message;
+ readonly attribute object message; // NDEFMessage
};
dictionary NFCReadingEventInit : EventInit {
diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc.idl
index 4b5d1c1c581..b18d4ac2b46 100644
--- a/tests/wpt/web-platform-tests/interfaces/webrtc.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webrtc.idl
@@ -612,7 +612,7 @@ dictionary RTCStatsEventInit : EventInit {
[
Exposed=Window,
- Constructor(RTCErrorInit init, optional DOMString message = "")] interface RTCError {
+ Constructor(RTCErrorInit init, optional DOMString message = "")] interface RTCError : DOMException {
readonly attribute RTCErrorDetailType errorDetail;
readonly attribute long? sdpLineNumber;
readonly attribute long? httpRequestStatusCode;
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
index 9b48a0f9040..f9bfdce5842 100644
--- a/tests/wpt/web-platform-tests/interfaces/webxr.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -28,9 +28,16 @@ enum XREnvironmentBlendMode {
"alpha-blend",
};
+enum XRVisibilityState {
+ "visible",
+ "visible-blurred",
+ "hidden",
+};
+
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
// Attributes
readonly attribute XREnvironmentBlendMode environmentBlendMode;
+ readonly attribute XRVisibilityState visibilityState;
[SameObject] readonly attribute XRRenderState renderState;
[SameObject] readonly attribute XRInputSourceArray inputSources;
@@ -44,29 +51,26 @@ enum XREnvironmentBlendMode {
Promise<void> end();
// Events
- attribute EventHandler onblur;
- attribute EventHandler onfocus;
attribute EventHandler onend;
attribute EventHandler onselect;
attribute EventHandler oninputsourceschange;
attribute EventHandler onselectstart;
attribute EventHandler onselectend;
+ attribute EventHandler onvisibilitychange;
};
dictionary XRRenderStateInit {
double depthNear;
double depthFar;
double inlineVerticalFieldOfView;
- XRLayer? baseLayer;
- XRPresentationContext? outputContext;
+ XRWebGLLayer? baseLayer;
};
[SecureContext, Exposed=Window] interface XRRenderState {
readonly attribute double depthNear;
readonly attribute double depthFar;
readonly attribute double? inlineVerticalFieldOfView;
- readonly attribute XRLayer? baseLayer;
- readonly attribute XRPresentationContext? outputContext;
+ readonly attribute XRWebGLLayer? baseLayer;
};
callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame);
@@ -182,8 +186,6 @@ enum GamepadMappingType {
"xr-standard",
};
-[SecureContext, Exposed=Window] interface XRLayer {};
-
typedef (WebGLRenderingContext or
WebGL2RenderingContext) XRWebGLRenderingContext;
@@ -199,7 +201,7 @@ dictionary XRWebGLLayerInit {
[SecureContext, Exposed=Window, Constructor(XRSession session,
XRWebGLRenderingContext context,
optional XRWebGLLayerInit layerInit)]
-interface XRWebGLLayer : XRLayer {
+interface XRWebGLLayer {
// Attributes
[SameObject] readonly attribute XRWebGLRenderingContext context;
@@ -225,10 +227,6 @@ partial interface mixin WebGLRenderingContextBase {
Promise<void> makeXRCompatible();
};
-[SecureContext, Exposed=Window] interface XRPresentationContext {
- [SameObject] readonly attribute HTMLCanvasElement canvas;
-};
-
[SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)]
interface XRSessionEvent : Event {
[SameObject] readonly attribute XRSession session;
diff --git a/tests/wpt/web-platform-tests/intersection-observer/root-margin-root-element.html b/tests/wpt/web-platform-tests/intersection-observer/root-margin-root-element.html
new file mode 100644
index 00000000000..6016d45bdf5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/intersection-observer/root-margin-root-element.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="./resources/intersection-observer-test-utils.js"></script>
+
+<style>
+pre, #log {
+ position: absolute;
+ top: 0;
+ left: 200px;
+}
+.spacer {
+ height: calc(100vh + 100px);
+}
+#root {
+ display: inline-block;
+ overflow-y: scroll;
+ height: 200px;
+ border: 3px solid black;
+}
+#target {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+}
+</style>
+
+<div class="spacer"></div>
+<div id="root">
+ <div style="height: 300px;"></div>
+ <div id="target"></div>
+</div>
+<div class="spacer"></div>
+
+<script>
+var vw = document.documentElement.clientWidth;
+var vh = document.documentElement.clientHeight;
+
+var entries = [];
+var root, target;
+
+runTestCycle(function() {
+ target = document.getElementById("target");
+ assert_true(!!target, "target exists");
+ root = document.getElementById("root");
+ assert_true(!!root, "root exists");
+ var observer = new IntersectionObserver(function(changes) {
+ entries = entries.concat(changes)
+ }, { root: root, rootMargin: "10px 20% 40% 30px" });
+ observer.observe(target);
+ entries = entries.concat(observer.takeRecords());
+ assert_equals(entries.length, 0, "No initial notifications.");
+ runTestCycle(step0, "First rAF");
+}, "Root margin with explicit root.");
+
+function step0() {
+ document.scrollingElement.scrollTop = vh;
+ runTestCycle(step1, "document.scrollingElement.scrollTop = window.innerHeight.");
+ checkLastEntry(entries, 0, [ 11, 111, vh + 411, vh + 511, 0, 0, 0, 0, -19, 131, vh + 101, vh + 391, false]);
+}
+
+function step1() {
+ root.scrollTop = 50;
+ runTestCycle(step2, "root.scrollTop = 50, putting target into root margin");
+ assert_equals(entries.length, 1, "No notifications after scrolling frame.");
+}
+
+function step2() {
+ document.scrollingElement.scrollTop = 0;
+ runTestCycle(step3, "document.scrollingElement.scrollTop = 0.");
+ checkLastEntry(entries, 1, [11, 111, 361, 461, 11, 111, 361, 391, -19, 131, 101, 391, true]);
+}
+
+function step3() {
+ root.scrollTop = 0;
+ runTestCycle(step4, "root.scrollTop = 0");
+ checkLastEntry(entries, 1);
+}
+
+function step4() {
+ root.scrollTop = 50;
+ runTestCycle(step5, "root.scrollTop = 50 with root scrolled out of view.");
+ checkLastEntry(entries, 2, [ 11, 111, vh + 411, vh + 511, 0, 0, 0, 0, -19, 131, vh + 101, vh + 391, false]);
+}
+
+// This tests that notifications are generated even when the root element is off screen.
+function step5() {
+ checkLastEntry(entries, 3, [11, 111, vh + 361, vh + 461, 11, 111, vh + 361, vh + 391, -19, 131, vh + 101, vh + 391, true]);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall-ref.html
new file mode 100644
index 00000000000..1f823e5b0c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall-ref.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Verify dir attribute on various containers</title>
+ </head>
+ <body>
+ <p>
+ math:
+ <math>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </math>
+ </p>
+
+ <p>
+ mrow:
+ <math>
+ <mrow>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </mrow>
+ </math>
+ </p>
+
+ <p>
+ mstyle:
+ <math>
+ <mstyle>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </mstyle>
+ </math>
+ </p>
+
+ <p>
+ msqrt:
+ <math>
+ <msqrt>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </msqrt>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall.html
new file mode 100644
index 00000000000..7f377e540f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-overall.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Verify dir attribute on various containers</title>
+ <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#attributes-common-to-html-and-mathml-elements">
+ <meta name="assert" content="Verify dir attribute on various containers.">
+ <link rel="match" href="direction-overall-ref.html">
+ </head>
+ <body>
+
+ <!-- Test dir="rtl" on <math>, <mrow> and <mstyle> elements. The rectangle
+ inside these elements should be displayed right-to-left. -->
+
+ <p>
+ math:
+ <math dir="rtl">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </math>
+ </p>
+
+ <p>
+ mrow:
+ <math>
+ <mrow dir="rtl">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </mrow>
+ </math>
+ </p>
+
+ <p>
+ mstyle:
+ <math>
+ <mstyle dir="rtl">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </mstyle>
+ </math>
+ </p>
+
+ <!-- dir="rtl" on <msqrt> should be ignored. The rectangle
+ inside this element should be displayed left-to-right. -->
+
+ <p>
+ msqrt:
+ <math>
+ <msqrt dir="rtl">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </msqrt>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token-ref.html
new file mode 100644
index 00000000000..95f182bc8c7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html dir="rtl">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Verify dir attribute on token elements</title>
+ </head>
+ <body>
+
+ <!-- Test dir="rtl" on MathML token elements. The text contains RTL and
+ LTR characters, so the attribute is needed to specify the actual
+ direction. -->
+
+ <p><math><mtext dir="rtl">חוק \left חסר או חוק \right מיותר</mtext></math></p>
+ <p><math><ms dir="rtl">חוק \left חסר או חוק \right מיותר</ms></math></p>
+ <p><math><mo dir="rtl">חוק \left חסר או חוק \right מיותר</mo></math></p>
+ <p><math><mi dir="rtl">חוק \left חסר או חוק \right מיותר</mi></math></p>
+ <p><math><mn dir="rtl">חוק \left חסר או חוק \right מיותר</mn></math></p>
+
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token.html
new file mode 100644
index 00000000000..a02793cc84a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction-token.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html dir="rtl">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Verify dir attribute on token elements</title>
+ <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#attributes-common-to-html-and-mathml-elements">
+ <meta name="assert" content="Verify dir attribute on various token elements.">
+ <link rel="match" href="direction-token-ref.html">
+ </head>
+ <body>
+
+ <!-- Test dir="rtl" on MathML token elements. The text contains RTL and
+ LTR characters, so the attribute is needed to specify the actual
+ direction. -->
+
+ <p><math><mtext dir="rtl">חוק \left חסר או חוק \right מיותר</mtext></math></p>
+ <p><math><ms dir="rtl">חוק \left חסר או חוק \right מיותר</ms></math></p>
+ <p><math><mo dir="rtl">חוק \left חסר או חוק \right מיותר</mo></math></p>
+ <p><math><mi dir="rtl">חוק \left חסר או חוק \right מיותר</mi></math></p>
+ <p><math><mn dir="rtl">חוק \left חסר או חוק \right מיותר</mn></math></p>
+
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction.html
new file mode 100644
index 00000000000..05ea8b74fb5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/direction/direction.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html dir="rtl">
+<head>
+<meta charset="utf-8"/>
+<title>Verify computed direction</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#attributes-common-to-html-and-mathml-elements">
+<meta name="assert" content="Verify computed direction value.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+ function runTests() {
+ test(function() {
+ assert_equals(window.getComputedStyle(document.getElementById('x1')).direction, "ltr");
+ assert_equals(window.getComputedStyle(document.getElementById('x2')).direction, "ltr");
+ assert_equals(window.getComputedStyle(document.getElementById('x3')).direction, "ltr");
+ assert_equals(window.getComputedStyle(document.getElementById('x4')).direction, "rtl");
+ }, "Check direction");
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <!-- Test the CSS direction and dir attribute on the <math> element. It
+ should be "ltr", except if an explicit dir="rtl" is used. -->
+
+ <p>שורשי משוואה מודגשת זו <math id="x1"> <mstyle mathvariant="bold"> <msup> <mi>y</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>p</mi> <mi>y</mi> <mo>+</mo> <mi>q</mi> <mo>=</mo> <mn>0</mn> </mstyle> </math> מודגשים גם הם</p>
+
+ <p>שורשי משוואה מודגשת זו <math id="x2" dir="ltr"> <mstyle mathvariant="bold"> <msup> <mi>y</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>p</mi> <mi>y</mi> <mo>+</mo> <mi>q</mi> <mo>=</mo> <mn>0</mn> </mstyle> </math> מודגשים גם הם</p>
+
+ <p>שורשי משוואה מודגשת זו <math id="x3" dir="invalid"> <mstyle mathvariant="bold"> <msup> <mi>y</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>p</mi> <mi>y</mi> <mo>+</mo> <mi>q</mi> <mo>=</mo> <mn>0</mn> </mstyle> </math> מודגשים גם הם</p>
+
+ <p>שורשי משוואה מודגשת זו <math id="x4" dir="rtl"> <mstyle mathvariant="bold"> <msup> <mi>y</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>p</mi> <mi>y</mi> <mo>+</mo> <mi>q</mi> <mo>=</mo> <mn>0</mn> </mstyle> </math> מודגשים גם הם</p>
+
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/media-source/mediasource-play.html b/tests/wpt/web-platform-tests/media-source/mediasource-play.html
index 62fb04681ae..2129b8f4730 100644
--- a/tests/wpt/web-platform-tests/media-source/mediasource-play.html
+++ b/tests/wpt/web-platform-tests/media-source/mediasource-play.html
@@ -3,6 +3,7 @@
<html>
<head>
<title>Simple MediaSource playback test case.</title>
+ <meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="mediasource-util.js"></script>
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html b/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
index 1c629245886..714ae01b19c 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
@@ -38,9 +38,12 @@ promise_test(async t => {
promise,
wait(time).then(() => Promise.reject(new Error(msg)))
]);
- const unexpected = e => { throw new Error(`Got unexpected event ${e.name}`); };
+ const unexpected = e => assert_unreached(`Got unexpected event ${e.type}`);
const stream = await navigator.mediaDevices.getUserMedia({video: true});
- t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
+ t.add_cleanup(() => {
+ vid.ondurationchange = null;
+ stream.getTracks().forEach(track => track.stop())
+ });
vid.srcObject = stream;
vid.onloadstart = unexpected;
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html b/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
index 4b9a3c8246d..3b16006e0f5 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
@@ -22,52 +22,247 @@ via the <code>srcObject</code> attribute.</p>
const vid = document.getElementById("vid");
promise_test(async t => {
- const wait = ms => new Promise(r => t.step_timeout(r, ms));
- const timeout = (promise, time, msg) =>
- Promise.race([promise, wait(time).then(() => Promise.reject(new Error(msg)))]);
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ vid.srcObject = stream;
+}, "Tests that a MediaStream can be assigned to a video element with srcObject");
- const stream = await timeout(navigator.mediaDevices.getUserMedia({video: true}), 10000, "getUserMedia timeout");
- t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
- vid.defaultPlaybackRate = 0.4;
- vid.playbackRate = 0.4;
- vid.preload = "metadata";
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
vid.srcObject = stream;
- vid.onratechange = t.unreached_func('ratechange event must not be fired');
- vid.play();
+
assert_true(!vid.seeking, "A MediaStream is not seekable");
assert_equals(vid.seekable.length, 0, "A MediaStream is not seekable");
+}, "Tests that a MediaStream assigned to a video element is not seekable");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ vid.srcObject = stream;
+
+ assert_equals(vid.readyState, vid.HAVE_NOTHING,
+ "readyState is HAVE_NOTHING initially");
+ await new Promise(r => vid.onloadeddata = r);
+ assert_equals(vid.readyState, vid.HAVE_ENOUGH_DATA,
+ "Upon having loaded a media stream, the UA sets readyState to HAVE_ENOUGH_DATA");
+}, "Tests that a MediaStream assigned to a video element is in readyState HAVE_NOTHING initially");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ vid.srcObject = stream;
+
+ assert_equals(vid.duration, NaN,
+ "A MediaStream does not have any duration initially.");
+ await new Promise(r => vid.ondurationchange = r);
+ assert_equals(vid.duration, Infinity,
+ "A loaded MediaStream does not have a pre-defined duration.");
+
+ vid.play();
+ await new Promise(r => vid.ontimeupdate = r);
+ for (const t of stream.getTracks()) {
+ t.stop();
+ }
+
+ await new Promise(r => vid.ondurationchange = r);
+ assert_equals(vid.duration, vid.currentTime,
+ "After ending playback, duration gets set to currentTime");
+}, "Tests that a MediaStream assigned to a video element has expected duration");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+
+ vid.preload = "metadata";
+ vid.srcObject = stream;
+
+ assert_equals(vid.buffered.length, 0,
+ "A MediaStream cannot be preloaded. Therefore, there are no buffered timeranges");
+ assert_equals(vid.preload, "none", "preload must always be none");
+ vid.preload = "auto";
+ assert_equals(vid.preload, "none", "Setting preload must be ignored");
+
+ await new Promise(r => vid.onloadeddata = r);
+ assert_equals(vid.buffered.length, 0,
+ "A MediaStream cannot be preloaded. Therefore, there are no buffered timeranges");
+
+ vid.srcObject = null;
+
+ assert_equals(vid.preload, "metadata",
+ "The preload attribute returns the value it had before using a MediaStream");
+}, "Tests that a video element with a MediaStream assigned is not preloaded");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+
+ vid.defaultPlaybackRate = 0.3;
+ vid.playbackRate = 0.3;
+ vid.onratechange = t.unreached_func("ratechange event must not be fired");
+ vid.srcObject = stream;
+
assert_equals(vid.defaultPlaybackRate, 1, "playback rate is always 1");
vid.defaultPlaybackRate = 0.5;
- assert_equals(vid.defaultPlaybackRate, 1, "Setting defaultPlaybackRate must be ignored");
+ assert_equals(vid.defaultPlaybackRate, 1,
+ "Setting defaultPlaybackRate must be ignored");
+
assert_equals(vid.playbackRate, 1, "playback rate is always 1");
vid.playbackRate = 0.5;
assert_equals(vid.playbackRate, 1, "Setting playbackRate must be ignored");
- assert_equals(vid.buffered.length, 0, "A MediaStream cannot be preloaded. Therefore, there is no buffered timeranges");
- assert_equals(vid.readyState, vid.HAVE_NOTHING, "readyState is HAVE_NOTHING initially");
- assert_equals(vid.duration, NaN, "A MediaStream does not have any duration initially.");
- assert_equals(vid.preload, "none", "preload must always be none");
- vid.preload = "metadata";
- assert_equals(vid.preload, "none", "Setting preload must be ignored");
- const haveLoadedData = new Promise(r => vid.addEventListener("loadeddata", r, {once: true}));
+ vid.srcObject = null;
+ assert_equals(vid.defaultPlaybackRate, 0.3,
+ "The defaultPlaybackRate attribute returns the value it had before using a MediaStream");
+ assert_equals(vid.playbackRate, 0.3,
+ "The playbackRate attribute is set to the value of the defaultPlaybackRate attribute when unsetting srcObject");
+
+ // Check that there's no ratechange event
+ await new Promise(r => t.step_timeout(r, 100));
+}, "Tests that a video element with a MediaStream assigned ignores playbackRate attributes (defaultPlaybackRate is identical)");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+
+ vid.defaultPlaybackRate = 0.3;
+ vid.playbackRate = 0.4;
+ vid.onratechange = t.unreached_func("ratechange event must not be fired");
+ vid.srcObject = stream;
+
+ assert_equals(vid.defaultPlaybackRate, 1, "playback rate is always 1");
+ vid.defaultPlaybackRate = 0.5;
+ assert_equals(vid.defaultPlaybackRate, 1,
+ "Setting defaultPlaybackRate must be ignored");
+
+ assert_equals(vid.playbackRate, 1, "playback rate is always 1");
+ vid.playbackRate = 0.5;
+ assert_equals(vid.playbackRate, 1, "Setting playbackRate must be ignored");
+
+ vid.srcObject = null;
+ assert_equals(vid.defaultPlaybackRate, 0.3,
+ "The defaultPlaybackRate attribute returns the value it had before using a MediaStream");
+ assert_equals(vid.playbackRate, 0.3,
+ "The playbackRate attribute is set to the value of the defaultPlaybackRate attribute when unsetting srcObject (and fires ratechange)");
+ await new Promise(r => vid.onratechange = r);
+}, "Tests that a video element with a MediaStream assigned ignores playbackRate attributes (defaultPlaybackRate is different)");
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ vid.srcObject = stream;
+ await new Promise(r => vid.oncanplay = r);
+ vid.play();
+ await new Promise(r => vid.ontimeupdate = r);
+ assert_greater_than(vid.currentTime, 0,
+ "currentTime is greater than 0 after first timeupdate");
- await new Promise(r => vid.addEventListener("timeupdate", r, {once: true}));
- assert_equals(vid.played.length, 1, "A MediaStream's timeline always consists of a single range");
- assert_equals(vid.played.start(0), 0, "A MediaStream's timeline always starts at zero");
- assert_equals(vid.played.end(0), vid.currentTime, "A MediaStream's end MUST return the last known currentTime, says mediacapture-main");
- assert_equals(vid.duration, Infinity, "A MediaStream does not have a pre-defined duration. ");
+ assert_equals(vid.played.length, 1,
+ "A MediaStream's timeline always consists of a single range");
+ assert_equals(vid.played.start(0), 0,
+ "A MediaStream's timeline always starts at zero");
+ assert_equals(vid.played.end(0), vid.currentTime,
+ "A MediaStream's end MUST return the last known currentTime");
const time = vid.currentTime;
vid.currentTime = 0;
- assert_equals(vid.currentTime, time, "The UA MUST ignore attempts to set the currentTime attribute");
+ assert_equals(vid.currentTime, time,
+ "The UA MUST ignore attempts to set the currentTime attribute");
+}, "Tests that a media element with an assigned MediaStream reports the played attribute as expected");
- await haveLoadedData;
- assert_equals(vid.readyState, vid.HAVE_ENOUGH_DATA, "Upon having loaded a media stream, the UA sets readyState to HAVE_ENOUGH_DATA");
- assert_equals(vid.duration, Infinity, "A MediaStream does not have a pre-defined duration.");
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ vid.srcObject = stream;
- // TODO add test that duration must be set to currentTime
- // when mediastream is destroyed
-}, "Tests that a MediaStream can be assigned to a video element with srcObject");
+ assert_equals(vid.currentTime, 0, "The initial value is 0");
+ vid.currentTime = 42;
+ assert_equals(vid.currentTime, 0,
+ "The UA MUST ignore attempts to set the currentTime attribute (default playback start position)");
+
+ await new Promise(r => vid.onloadeddata = r);
+ assert_equals(vid.currentTime, 0, "The initial value is 0");
+ vid.currentTime = 42;
+ assert_equals(vid.currentTime, 0,
+ "The UA MUST ignore attempts to set the currentTime attribute (official playback position)");
+
+ vid.play();
+ await new Promise(r => vid.ontimeupdate = r);
+ assert_greater_than(vid.currentTime, 0,
+ "currentTime is greater than 0 after first timeupdate");
+
+ const lastTime = vid.currentTime;
+ vid.currentTime = 0;
+ assert_equals(vid.currentTime, lastTime,
+ "The UA MUST ignore attempts to set the currentTime attribute (restart)");
+
+ for(const t of stream.getTracks()) {
+ t.stop();
+ }
+ await new Promise(r => vid.onended = r);
+ assert_greater_than_equal(vid.currentTime, lastTime,
+ "currentTime advanced after stopping");
+}, "Tests that a media element with an assigned MediaStream reports the currentTime attribute as expected");
+
+
+promise_test(async t => {
+ const stream = await navigator.mediaDevices.getUserMedia({video: true});
+ t.add_cleanup(() => {
+ vid.srcObject = null;
+ stream.getTracks().forEach(track => track.stop());
+ });
+ assert_equals(vid.loop, false, "loop is false by default");
+ vid.srcObject = stream;
+
+ vid.loop = true;
+ assert_equals(vid.loop, true,
+ "loop can be changed when assigned a MediaStream");
+
+ await new Promise(r => vid.onloadeddata = r);
+ vid.loop = false;
+ assert_equals(vid.loop, false,
+ "loop can be changed when having loaded a MediaStream");
+
+ vid.play();
+ await new Promise(r => vid.ontimeupdate = r);
+ vid.loop = true;
+ assert_equals(vid.loop, true,
+ "loop can be changed when playing a MediaStream");
+
+ for(const t of stream.getTracks()) {
+ t.stop();
+ }
+ // If loop is ignored, we get "ended",
+ // otherwise the media element sets currentTime to 0 without ending.
+ await new Promise(r => vid.onended = r);
+}, "Tests that the loop attribute has no effect on a media element with an assigned MediaStream");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
index dc7c3359e12..06d145b37d1 100644
--- a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
+++ b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
@@ -11,6 +11,7 @@ test(function(t) {
window.navigator.mediaSession.setActionHandler("nexttrack", null);
window.navigator.mediaSession.setActionHandler("seekbackward", null);
window.navigator.mediaSession.setActionHandler("seekforward", null);
+ window.navigator.mediaSession.setActionHandler("stop", null);
}, "Test that setActionHandler() can be executed for supported actions");
test(function(t) {
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html
index ae64fcb9a54..d9147f85494 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html
@@ -44,10 +44,12 @@ async function do_test(url) {
assert_equals(response, 'messageHandlerInitialized');
// Start a fetch.
- frame.contentWindow.fetch(url);
+ const fetchPromise = frame.contentWindow.fetch(url);
// Receive the test result from the service worker.
- return wait_for_message();
+ const result = wait_for_message();
+ await fetchPromise.then(()=> {}, () => {});
+ return result;
};
promise_test(async (t) => {
diff --git a/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use-ref.html b/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use-ref.html
new file mode 100644
index 00000000000..e52fa18d3f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use-ref.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html>
+<title>Change sync for nested use</title>
+<svg width="400" height="500">
+ <rect id="r1" width="40" height="40" style="fill:navy" />
+ <rect id="r2" x="50" y="50" width="40" height="40" style="fill:purple" />
+ <g id="g1">
+ <use id="u1" x="120" href="#r1" />
+ <use id="u2" x="120" href="#r2" />
+ <rect x="120" y="120" width="50" height="50" style="fill:skyblue" />
+ </g>
+ <use id="u3" x="120" href="#g1" />
+ <use id="u4" y="170" href="#u2" />
+ <use id="u5" x="-30" y="220" href="#u2" />
+</svg>
+</html>
diff --git a/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use.html b/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use.html
new file mode 100644
index 00000000000..9a6e1343509
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/render/reftests/change-sync-for-nested-use.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html class="reftest-wait">
+<title>Change sync for nested use</title>
+<link rel="match" href="change-sync-for-nested-use-ref.html">
+<svg width="400" height="500" onload="main()">
+ <rect id="r1" width="40" height="40" style="fill:red" />
+ <rect id="r2" x="50" y="50" width="40" height="40" style="fill:gray" />
+ <g id="g1">
+ <use id="u1" x="120" href="#r1" />
+ <use id="u2" x="120" href="#r2" />
+ <rect x="120" y="120" width="50" height="50" style="fill:skyblue" />
+ </g>
+ <use id="u3" x="120" href="#g1" />
+ <use id="u4" y="170" href="#u2" />
+ <use id="u5" x="-30" y="220" href="#u2" />
+</svg>
+
+<script>
+ function main() {
+ let r1 = document.getElementById("r1"),
+ r2 = document.getElementById("r2");
+
+ requestAnimationFrame(() => requestAnimationFrame(() => {
+ r1.style.fill = "navy";
+ r2.style.fill = "purple";
+ document.documentElement.removeAttribute("class");
+ }));
+ };
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/tools/lint/lint.py b/tests/wpt/web-platform-tests/tools/lint/lint.py
index 6a71dc860fe..062c6a42d0f 100644
--- a/tests/wpt/web-platform-tests/tools/lint/lint.py
+++ b/tests/wpt/web-platform-tests/tools/lint/lint.py
@@ -146,6 +146,13 @@ def check_path_length(repo_root, path):
return []
+def check_file_type(repo_root, path):
+ # type: (str, str) -> List[rules.Error]
+ if os.path.islink(path):
+ return [rules.FileType.error(path, (path, "symlink"))]
+ return []
+
+
def check_worker_collision(repo_root, path):
# type: (str, str) -> List[rules.Error]
endings = [(".any.html", ".any.js"),
@@ -907,7 +914,8 @@ def lint(repo_root, paths, output_format):
logger.info(line)
return sum(itervalues(error_count))
-path_lints = [check_path_length, check_worker_collision, check_ahem_copy, check_gitignore_file]
+path_lints = [check_file_type, check_path_length, check_worker_collision, check_ahem_copy,
+ check_gitignore_file]
all_paths_lints = [check_css_globally_unique]
file_lints = [check_regexp_line, check_parsed, check_python_ast, check_script_metadata]
diff --git a/tests/wpt/web-platform-tests/tools/lint/rules.py b/tests/wpt/web-platform-tests/tools/lint/rules.py
index 685bac3474e..9b78f3495b2 100644
--- a/tests/wpt/web-platform-tests/tools/lint/rules.py
+++ b/tests/wpt/web-platform-tests/tools/lint/rules.py
@@ -57,6 +57,11 @@ class PathLength(Rule):
description = "/%s longer than maximum path length (%d > 150)"
+class FileType(Rule):
+ name = "FILE TYPE"
+ description = "/%s is an unsupported file type (%s)"
+
+
class WorkerCollision(Rule):
name = "WORKER COLLISION"
description = ("path ends with %s which collides with generated tests "
diff --git a/tests/wpt/web-platform-tests/tools/lint/tests/test_path_lints.py b/tests/wpt/web-platform-tests/tools/lint/tests/test_path_lints.py
index 9f6f49e14a1..558b0ed4f64 100644
--- a/tests/wpt/web-platform-tests/tools/lint/tests/test_path_lints.py
+++ b/tests/wpt/web-platform-tests/tools/lint/tests/test_path_lints.py
@@ -1,5 +1,6 @@
from __future__ import unicode_literals
+import mock
import os
from ..lint import check_path
@@ -32,7 +33,7 @@ def test_forbidden_path_length():
(".any.worker.html", ".any.js"),
(".any.html", ".any.js")])
def test_forbidden_path_endings(path_ending, generated):
- path = "/test/test" + path_ending
+ path = "test/test" + path_ending
message = ("path ends with %s which collides with generated tests from %s files" %
(path_ending, generated))
@@ -42,6 +43,17 @@ def test_forbidden_path_endings(path_ending, generated):
assert errors == [("WORKER COLLISION", message, path, None)]
+def test_file_type():
+ path = "test/test"
+
+ message = "/%s is an unsupported file type (symlink)" % (path,)
+
+ with mock.patch("os.path.islink", returnvalue=True):
+ errors = check_path("/foo/", path)
+
+ assert errors == [("FILE TYPE", message, path, None)]
+
+
@pytest.mark.parametrize("path", ["ahem.ttf",
"Ahem.ttf",
"ahem.tTf",
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
index 0a16aa537b3..ab96bd10357 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/setup.py
@@ -57,7 +57,6 @@ setup(name=PACKAGE_NAME,
"prefs/*"]},
include_package_data=True,
data_files=[("requirements", requirements_files)],
- install_requires=deps
)
if "install" in sys.argv:
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html
new file mode 100644
index 00000000000..f6221362c17
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+<body>
+<div id="container"></div>
+<script>
+ var container = document.querySelector('#container');
+
+ test(t => {
+ let p = createHTML_policy(window, 1);
+ let html = p.createHTML(INPUTS.HTML);
+ let before = 'before';
+ let after = 'after';
+ let htmlBefore = p.createHTML(before);
+ let htmlAfter = p.createHTML(after);
+
+ var d = document.createElement('div');
+ container.appendChild(d);
+
+ d.insertAdjacentHTML('beforebegin', html);
+ assert_equals(d.previousSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.previousSibling.data, RESULTS.HTML);
+
+ d.insertAdjacentHTML('afterbegin', htmlBefore);
+ d.insertAdjacentHTML('beforeend', htmlAfter);
+ assert_equals(d.innerHTML, before + after);
+
+ d.insertAdjacentHTML('afterend', html);
+ assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE);
+ assert_equals(d.nextSibling.data, RESULTS.HTML);
+
+ while (container.firstChild)
+ container.firstChild.remove();
+ }, "insertAdjacentHTML with html assigned via policy (successful HTML transformation).");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
new file mode 100644
index 00000000000..a6aa061f730
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/helper.sub.js"></script>
+ <meta http-equiv="Content-Security-Policy" content="trusted-types *">
+</head>
+<body>
+<div id="container"></div>
+<script>
+ var container = document.querySelector("#container");
+
+ // Regression tests for 'Bypass via insertAdjacentText', reported at
+ // https://github.com/WICG/trusted-types/issues/133
+
+ // Original report:
+ test(t => {
+ // Setup: Create a <script> element with a <p> child.
+ let s = document.createElement("script");
+ let p = document.createElement("p");
+ p.textContent = "hello('world');";
+ s.appendChild(p);
+ container.appendChild(s);
+
+ // Sanity check: The <p> content doesn't count as source text.
+ assert_equals(s.text, "");
+
+ // Try to insertAdjacentText into the <script>, starting from the <p>
+ try {
+ p.insertAdjacentText("beforebegin", "hello('before');");
+ } catch (err) { }
+ assert_equals(s.text, "");
+ try {
+ p.insertAdjacentText("afterend", "hello('after');");
+ } catch (err) { }
+ assert_equals(s.text, "");
+ }, "Regression test: Bypass via insertAdjacentText, initial comment");
+
+ // Variant: Create a <script> element and create & insert a text node. Then
+ // insert it into the document container to make it live.
+ test(t => {
+ // Setup: Create a <script> element, and insert text via a text node.
+ let s = document.createElement("script");
+ let text = document.createTextNode("alert('hello');");
+ assert_throws(new TypeError(),
+ _ => { s.appendChild(text); },
+ "We should not be able to modify <script>.");
+ container.appendChild(s);
+ }, "Regression test: Bypass via appendChild into off-document script element");
+
+ // Variant: Create a <script> element and insert it into the document. Then
+ // create a text node and insert it into the live <script> element.
+ test(t => {
+ // Setup: Create a <script> element, insert it into the doc, and then create
+ // and insert text via a text node.
+ let s = document.createElement("script");
+ container.appendChild(s);
+ let text = document.createTextNode("alert('hello');");
+ assert_throws(new TypeError(),
+ _ => { s.appendChild(text); },
+ "We should not be able to modify <script>.");
+ }, "Regression test: Bypass via appendChild into live script element");
+</script>
+</body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCErrorEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCErrorEvent_constructor.https.html
index 8a08fe0a70e..1cc9ce160be 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NFCErrorEvent_constructor.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NFCErrorEvent_constructor.https.html
@@ -8,4 +8,13 @@
assert_equals(NFCErrorEvent.length, 2);
assert_throws(new TypeError, () => new NFCErrorEvent('error'));
}, 'NFCErrorEvent constructor without init dict');
+
+ test(() => {
+ assert_throws(new TypeError, () => new NFCErrorEvent('error', { error : null }));
+ }, 'NFCErrorEvent constructor with a null that is not of type DOMException');
+
+ test(() => {
+ const event = new NFCErrorEvent('error', { error : new DOMException() });
+ assert_true(event.error instanceof DOMException);
+ }, 'NFCErrorEvent constructor with a valid DOMException');
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
index 6cfcc0d3bdd..460e92b2508 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
@@ -3,9 +3,32 @@
<link rel="help" href="https://w3c.github.io/web-nfc/#dom-nfcreadingevent">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="resources/nfc_help.js"></script>
<script>
+
+ const non_strings = [
+ 123,
+ {},
+ true,
+ Symbol(),
+ () => {},
+ self
+ ]
+
test(() => {
assert_equals(NFCReadingEvent.length, 2);
assert_throws(new TypeError, () => new NFCReadingEvent('message'));
}, 'NFCReadingEvent constructor without init dict');
+
+ test(() => {
+ assert_equals(NFCReadingEvent.length, 2);
+ const message = createMessage([createJsonRecord(test_json_data)]);
+ non_strings.forEach(invalid_serialNumber => {
+ assert_throws(new TypeError, () => new NFCReadingEvent(
+ 'message',
+ {invalid_serialNumber, message}
+ ));
+ });
+ }, 'NFCReadingEvent constructor with non-string serialNumber');
+
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html
index 5badeb40838..b1559b30fec 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html
@@ -233,17 +233,4 @@ promise_test(t => {
return Promise.all(promises);
}, "Test that promise is rejected with TypeError if NDEFMessageSource contains non-string url.");
-promise_test(t => {
- const writer = new NFCWriter();
- const promises = [];
- non_strings.forEach(invalid_serialNumber => {
- promises.push(
- promise_rejects(t, new TypeError(), writer.push({
- serialNumber: invalid_serialNumber,
- records: [{ recordType: "text", data: 'Hello World' }]
- })));
- });
- return Promise.all(promises);
-}, "Test that promise is rejected with TypeError if NDEFMessageSource contains non-string serialNumber.");
-
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js b/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js
index ab0d6cd191a..c19458aed83 100644
--- a/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js
+++ b/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js
@@ -14,7 +14,7 @@ const message = {
idl_test(
['web-nfc'],
- ['html', 'dom'],
+ ['html', 'dom', 'WebIDL'],
idl_array => {
idl_array.add_objects({
NFCWriter: ['new NFCWriter();'],
diff --git a/tests/wpt/web-platform-tests/webrtc/idlharness.https.window.js b/tests/wpt/web-platform-tests/webrtc/idlharness.https.window.js
index 66abc25b084..85fc7a68b9d 100644
--- a/tests/wpt/web-platform-tests/webrtc/idlharness.https.window.js
+++ b/tests/wpt/web-platform-tests/webrtc/idlharness.https.window.js
@@ -102,7 +102,7 @@ function asyncInit() {
idl_test(
['webrtc'],
- ['mediacapture-streams', 'dom', 'html'],
+ ['WebIDL', 'mediacapture-streams', 'dom', 'html'],
async idlArray => {
idlArray.add_objects({
RTCPeerConnection: [`new RTCPeerConnection()`],
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html
index 4be9d6a5c1c..17222bdc7b3 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html
@@ -11,26 +11,22 @@ body { margin:0 }
position: relative;
font-size: 9px;
}
-#cue1 {
+.cue {
position: absolute;
- top: 50%;
+ bottom: 0;
left: 0;
right: 0;
- margin-top: -4.5px;
- text-align: center
+ text-align: center;
}
-#cue2 {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- margin-top: -13.5px;
- text-align: center
-}
-.cue > span {
+.cueText {
font-family: Ahem, sans-serif;
background: rgba(0,0,0,0.8);
color: green;
}
</style>
-<div class="video"><span class="cue" id="cue1"><span>This is a test subtitle</span></span><span class="cue" id="cue2"><span>This is another test subtitle</span></span></div>
+<div class="video">
+ <span class="cue">
+ <div><span class="cueText">This is another test subtitle</span></div>
+ <div><span class="cueText">This is a test subtitle</span></div>
+ </span>
+</div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html
index d6117b32571..22a711af687 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html
@@ -11,26 +11,26 @@ body { margin:0 }
position: relative;
font-size: 9px;
}
-#cue1 {
+.cue {
position: absolute;
- top: 50%;
+ bottom: 0;
left: 0;
right: 0;
- margin-top: -4.5px;
- text-align: center
+ text-align: center;
}
-#cue2 {
- position: absolute;
- top: 50%;
- left: 0;
- right: 0;
- margin-top: -13.5px;
- text-align: center
-}
-.cue > span {
+.cueText {
font-family: Ahem, sans-serif;
background: rgba(0,0,0,0.8);
color: green;
}
+.cueTextGoingUp {
+ position: relative;
+ top: -1.8px; /* 1% height of video's height */
+}
</style>
-<div class="video"><span class="cue" id="cue1"><span>This is a test subtitle</span></span><span class="cue" id="cue2"><span>This is another test subtitle</span></span></div>
+<div class="video">
+ <span class="cue">
+ <div><span class="cueText cueTextGoingUp">This is another test subtitle</span></div>
+ <div><span class="cueText">This is a test subtitle</span></div>
+ </span>
+</div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html
index 9f79bf8e3bf..c37ae7a7dfa 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_gt_50-ref.html
@@ -14,7 +14,7 @@ body { margin:0 }
.cue {
position: absolute;
bottom: 0;
- right: 23px;
+ right: 0px;
width: 64px;
text-align: center;
}
@@ -24,4 +24,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>Aweso<br>me!!!</span></span></div>
+<div class=video><span class=cue><span>Awesome!!!</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html
index cc52e2db733..108495e4b00 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50-ref.html
@@ -14,7 +14,7 @@ body { margin:0 }
.cue {
position: absolute;
bottom: 0;
- left: 23px;
+ left: 0px;
right: 0;
width: 64px;
text-align: center
@@ -25,4 +25,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>Awesome<br>!!!</span></span></div>
+<div class=video><span class=cue><span>Awesome!!!</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html
index 02a7ae45849..296369332cf 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_position_lt_50_size_gt_maximum_size-ref.html
@@ -14,7 +14,7 @@ body { margin:0 }
.cue {
position: absolute;
bottom: 0;
- left: 23px;
+ left: 0px;
right: 0;
width: 64px;
text-align: center;
@@ -25,4 +25,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>Aweso<br>me!!!</span></span></div>
+<div class=video><span class=cue><span>Awesome!!!</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html
index d67f0a8c04a..55aed284b7a 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_center_wrapped-ref.html
@@ -24,4 +24,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>This is a test subtitle that <br>most likely will span over <br>several rows since it is a pretty <br>long cue with a lot of text.</span></span></div>
+<div class=video><span class=cue><span>This is a test subtitle that most likely will span over several rows since it is a pretty long cue with a lot of text.</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html
index 70b32cfc9ba..eee75f138fd 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html
@@ -24,4 +24,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>This is a test <br>subtitle that <br>most likely <br>will span over <br>several rows <br>since it is a <br>pretty long <br>cue with a <br>lot of text.</span></span></div>
+<div class=video><span class=cue><span>This is a test subtitle that most likely will span over several rows since it is a pretty long cue with a lot of text.</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html
index d3c28fc3619..45cb287e2f6 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html
@@ -24,4 +24,4 @@ body { margin:0 }
color: green;
}
</style>
-<div class=video><span class=cue><span>This is a test <br>subtitle that <br>most likely <br>will span over <br>several rows <br>since it is a <br>pretty long <br>cue with a <br>lot of text.</span></span></div>
+<div class=video><span class=cue><span>This is a test subtitle that most likely will span over several rows since it is a pretty long cue with a lot of text.</span></span></div>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html
new file mode 100644
index 00000000000..78ca8979c95
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<html class="reftest-wait">
+<title>WebVTT rendering, set align start and the cue contains two lines with different writing directions</title>
+<script src="/common/reftest-wait.js"></script>
+<style>
+html { overflow:hidden }
+body { margin:0 }
+.video {
+ display: inline-block;
+ width: 320px;
+ height: 180px;
+ position: relative;
+ font-size: 9px;
+}
+.cue {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ text-align: start;
+ unicode-bidi: plaintext;
+}
+.cueText {
+ font-family: sans-serif;
+ background: rgba(0,0,0,0.8);
+ color: green;
+}
+</style>
+<div class="video">
+ <video width="320" height="180" autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ </video>
+ <span class="cue">
+ <span class="cueText">Hello!</span><br>
+ <span class="cueText">שלום!</span>
+ </span>
+</div>
+</html>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html
new file mode 100644
index 00000000000..2b6cd76c201
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>WebVTT rendering, set align start and the cue contains two lines with different writing directions</title>
+<link rel="match" href="start_alignment-ref.html">
+<style>
+html { overflow:hidden }
+body { margin:0 }
+::cue {
+ font-family: sans-serif;
+ color: green;
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<video width="320" height="180" autoplay onplaying="this.onplaying = null; this.pause(); takeScreenshot();">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ <track src="../support/start_alignment.vtt" default>
+</video>
+</html>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html
index 0139f0c8339..87f3834e3d7 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-1.html
@@ -14,7 +14,7 @@ video {
color: green;
}
</style>
-<video autoplay controls onplaying="this.onplaying = null;
+<video autoplay onplaying="this.onplaying = null;
this.pause();
this.currentTime = 0;
">
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html
index fb954a42302..5ee98043ec2 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref-1.html
@@ -17,7 +17,7 @@ video {
}
.cue {
position: absolute;
- bottom: 50px;
+ bottom: 0;
left: 0;
right: 0;
text-align: center
@@ -28,7 +28,7 @@ video {
color: green;
}
</style>
-<video controls>
+<video>
<source src="/media/white.webm" type="video/webm">
<source src="/media/white.mp4" type="video/mp4">
</video>
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt
index d4a96792482..1ca56e56f6a 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_completely_move_up.vtt
@@ -1,7 +1,7 @@
WEBVTT
-00:00:00.000 --> 00:00:05.000 line:50%
+00:00:00.000 --> 00:00:05.000 line:100%
This is a test subtitle
-00:00:01.000 --> 00:00:05.000 line:50%
+00:00:01.000 --> 00:00:05.000 line:100%
This is another test subtitle
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt
index 6c99ce3b1fe..7160f3791ee 100644
--- a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/2_cues_overlapping_partially_move_up.vtt
@@ -1,7 +1,7 @@
WEBVTT
-00:00:00.000 --> 00:00:05.000 line:50%
+00:00:00.000 --> 00:00:05.000 line:100%
This is a test subtitle
-00:00:01.000 --> 00:00:05.000 line:49%
+00:00:01.000 --> 00:00:05.000 line:99%
This is another test subtitle
diff --git a/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt
new file mode 100644
index 00000000000..9a92729381b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webvtt/rendering/cues-with-video/processing-model/support/start_alignment.vtt
@@ -0,0 +1,5 @@
+WEBVTT FILE
+
+00:00:00.000 --> 00:00:10.000 align:start line:0
+Hello!
+שלום!