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 3b874fc1748..6a3af4e2ece 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 @@ -14,6 +14,9 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.html] [Untitled] @@ -34,6 +37,3 @@ [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 8268ec48c71..c6fc3b65f77 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -142007,6 +142007,18 @@ {} ] ], + "css/css-tables/percent-width-cell-dynamic.html": [ + [ + "css/css-tables/percent-width-cell-dynamic.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/css-tables/percentages-grandchildren-quirks-mode-001.html": [ [ "css/css-tables/percentages-grandchildren-quirks-mode-001.html", @@ -148087,6 +148099,30 @@ {} ] ], + "css/css-text/text-transform/text-transform-fullwidth-006.html": [ + [ + "css/css-text/text-transform/text-transform-fullwidth-006.html", + [ + [ + "/css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/text-transform/text-transform-fullwidth-007.html": [ + [ + "css/css-text/text-transform/text-transform-fullwidth-007.html", + [ + [ + "/css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/text-transform/text-transform-lowercase-001.xht": [ [ "css/css-text/text-transform/text-transform-lowercase-001.xht", @@ -149071,6 +149107,78 @@ {} ] ], + "css/css-text/white-space/break-spaces-tab-001.html": [ + [ + "css/css-text/white-space/break-spaces-tab-001.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/break-spaces-tab-002.html": [ + [ + "css/css-text/white-space/break-spaces-tab-002.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/break-spaces-tab-003.html": [ + [ + "css/css-text/white-space/break-spaces-tab-003.html", + [ + [ + "/css/css-text/white-space/reference/break-spaces-tab-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/break-spaces-tab-004.html": [ + [ + "css/css-text/white-space/break-spaces-tab-004.html", + [ + [ + "/css/css-text/white-space/reference/break-spaces-tab-003-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/break-spaces-tab-005.html": [ + [ + "css/css-text/white-space/break-spaces-tab-005.html", + [ + [ + "/css/css-text/white-space/reference/break-spaces-tab-005-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/break-spaces-tab-006.html": [ + [ + "css/css-text/white-space/break-spaces-tab-006.html", + [ + [ + "/css/css-text/white-space/reference/break-spaces-tab-005-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/white-space/control-chars-000.html": [ [ "css/css-text/white-space/control-chars-000.html", @@ -150211,6 +150319,78 @@ {} ] ], + "css/css-text/white-space/pre-wrap-tab-001.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-001.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/pre-wrap-tab-002.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-002.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/pre-wrap-tab-003.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-003.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/pre-wrap-tab-004.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-004.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/pre-wrap-tab-005.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-005.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/white-space/pre-wrap-tab-006.html": [ + [ + "css/css-text/white-space/pre-wrap-tab-006.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/white-space/tab-stop-threshold-001.html": [ [ "css/css-text/white-space/tab-stop-threshold-001.html", @@ -150663,18 +150843,6 @@ {} ] ], - "css/css-text/white-space/white-space-pre-wrap-trailing-spaces-006.html": [ - [ - "css/css-text/white-space/white-space-pre-wrap-trailing-spaces-006.html", - [ - [ - "/css/css-text/white-space/reference/white-space-pre-wrap-trailing-spaces-004-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-text/white-space/white-space-wrap-after-nowrap-001.html": [ [ "css/css-text/white-space/white-space-wrap-after-nowrap-001.html", @@ -178601,6 +178769,18 @@ {} ] ], + "css/filter-effects/backdrop-filter-plus-opacity.html": [ + [ + "css/filter-effects/backdrop-filter-plus-opacity.html", + [ + [ + "/css/filter-effects/backdrop-filter-plus-opacity-ref.html", + "==" + ] + ], + {} + ] + ], "css/filter-effects/backdrop-filter-reference-filter.html": [ [ "css/filter-effects/backdrop-filter-reference-filter.html", @@ -254411,6 +254591,12 @@ "css/css-text/text-transform/reference/text-transform-fullwidth-001-ref.xht": [ [] ], + "css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html": [ + [] + ], + "css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html": [ + [] + ], "css/css-text/text-transform/reference/text-transform-lowercase-001-ref.xht": [ [] ], @@ -254594,6 +254780,12 @@ "css/css-text/text-transform/text-transform-lowercase-002-ref.xht": [ [] ], + "css/css-text/white-space/reference/break-spaces-tab-003-ref.html": [ + [] + ], + "css/css-text/white-space/reference/break-spaces-tab-005-ref.html": [ + [] + ], "css/css-text/white-space/reference/control-chars-000-ref.html": [ [] ], @@ -258977,6 +259169,9 @@ "css/filter-effects/backdrop-filter-plus-filter-ref.html": [ [] ], + "css/filter-effects/backdrop-filter-plus-opacity-ref.html": [ + [] + ], "css/filter-effects/backdrop-filter-update-ref.html": [ [] ], @@ -272825,6 +273020,9 @@ "lint.whitelist": [ [] ], + "loading/lazyload/common.js": [ + [] + ], "loading/lazyload/resources/image.png": [ [] ], @@ -278723,6 +278921,15 @@ "service-workers/service-worker/resources/update-registration-with-type.py": [ [] ], + "service-workers/service-worker/resources/update-smaller-body-after-update-worker.js": [ + [] + ], + "service-workers/service-worker/resources/update-smaller-body-before-update-worker.js": [ + [] + ], + "service-workers/service-worker/resources/update-worker-from-file.py": [ + [] + ], "service-workers/service-worker/resources/update-worker.py": [ [] ], @@ -283640,10 +283847,10 @@ "tools/wptrunner/wptrunner/browsers/epiphany.py": [ [] ], - "tools/wptrunner/wptrunner/browsers/fennec.py": [ + "tools/wptrunner/wptrunner/browsers/firefox.py": [ [] ], - "tools/wptrunner/wptrunner/browsers/firefox.py": [ + "tools/wptrunner/wptrunner/browsers/firefox_android.py": [ [] ], "tools/wptrunner/wptrunner/browsers/ie.py": [ @@ -302543,6 +302750,12 @@ {} ] ], + "animation-worklet/worklet-animation-get-computed-timing-progress-on-worklet-thread.https.html": [ + [ + "animation-worklet/worklet-animation-get-computed-timing-progress-on-worklet-thread.https.html", + {} + ] + ], "animation-worklet/worklet-animation-pause.https.html": [ [ "animation-worklet/worklet-animation-pause.https.html", @@ -310255,6 +310468,12 @@ {} ] ], + "css/css-box/parsing/margin-computed.html": [ + [ + "css/css-box/parsing/margin-computed.html", + {} + ] + ], "css/css-box/parsing/margin-invalid.html": [ [ "css/css-box/parsing/margin-invalid.html", @@ -314491,6 +314710,12 @@ {} ] ], + "css/css-logical/parsing/block-size-computed.html": [ + [ + "css/css-logical/parsing/block-size-computed.html", + {} + ] + ], "css/css-logical/parsing/block-size-invalid.html": [ [ "css/css-logical/parsing/block-size-invalid.html", @@ -314623,6 +314848,12 @@ {} ] ], + "css/css-logical/parsing/inline-size-computed.html": [ + [ + "css/css-logical/parsing/inline-size-computed.html", + {} + ] + ], "css/css-logical/parsing/inline-size-invalid.html": [ [ "css/css-logical/parsing/inline-size-invalid.html", @@ -319213,6 +319444,294 @@ {} ] ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-loose.html": [ + [ + "css/css-text/i18n/ja/css-text-line-break-ja-pr-loose.html", + {} + ] + ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-normal.html": [ + [ + "css/css-text/i18n/ja/css-text-line-break-ja-pr-normal.html", + {} + ] + ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-strict.html": [ + [ + "css/css-text/i18n/ja/css-text-line-break-ja-pr-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-in-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-in-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-in-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-po-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-po-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-po-strict.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-loose.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-loose.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-normal.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-normal.html", + {} + ] + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-strict.html": [ + [ + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-in-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-in-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-in-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-po-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-po-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-po-strict.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-loose.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-loose.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-normal.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-normal.html", + {} + ] + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-strict.html": [ + [ + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-strict.html", + {} + ] + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-loose.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-cj-loose.html", + {} + ] + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-normal.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-cj-normal.html", + {} + ] + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-strict.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-cj-strict.html", + {} + ] + ], "css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html": [ [ "css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html", @@ -319303,6 +319822,24 @@ {} ] ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-loose.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-pr-loose.html", + {} + ] + ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-normal.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-pr-normal.html", + {} + ] + ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-strict.html": [ + [ + "css/css-text/i18n/zh/css-text-line-break-zh-pr-strict.html", + {} + ] + ], "css/css-text/inheritance.html": [ [ "css/css-text/inheritance.html", @@ -319843,15 +320380,21 @@ {} ] ], - "css/css-transforms/parsing/perspective-origin-parsing-invalid.html": [ + "css/css-transforms/parsing/perspective-origin-computed.html": [ [ - "css/css-transforms/parsing/perspective-origin-parsing-invalid.html", + "css/css-transforms/parsing/perspective-origin-computed.html", {} ] ], - "css/css-transforms/parsing/perspective-origin-parsing-valid.html": [ + "css/css-transforms/parsing/perspective-origin-invalid.html": [ [ - "css/css-transforms/parsing/perspective-origin-parsing-valid.html", + "css/css-transforms/parsing/perspective-origin-invalid.html", + {} + ] + ], + "css/css-transforms/parsing/perspective-origin-valid.html": [ + [ + "css/css-transforms/parsing/perspective-origin-valid.html", {} ] ], @@ -319903,6 +320446,12 @@ {} ] ], + "css/css-transforms/parsing/transform-origin-computed.html": [ + [ + "css/css-transforms/parsing/transform-origin-computed.html", + {} + ] + ], "css/css-transforms/parsing/transform-origin-invalid.html": [ [ "css/css-transforms/parsing/transform-origin-invalid.html", @@ -324221,6 +324770,12 @@ {} ] ], + "css/cssom-view/scrollLeftTop.html": [ + [ + "css/cssom-view/scrollLeftTop.html", + {} + ] + ], "css/cssom-view/scrollWidthHeight.xht": [ [ "css/cssom-view/scrollWidthHeight.xht", @@ -325309,6 +325864,12 @@ {} ] ], + "css/mediaqueries/width-equals-window-inner-width.html": [ + [ + "css/mediaqueries/width-equals-window-inner-width.html", + {} + ] + ], "css/motion/animation/offset-anchor-interpolation.html": [ [ "css/motion/animation/offset-anchor-interpolation.html", @@ -359814,6 +360375,12 @@ {} ] ], + "largest-contentful-paint/loadTime-after-appendChild.html": [ + [ + "largest-contentful-paint/loadTime-after-appendChild.html", + {} + ] + ], "largest-contentful-paint/observe-image.html": [ [ "largest-contentful-paint/observe-image.html", @@ -359826,6 +360393,18 @@ {} ] ], + "largest-contentful-paint/repeated-image.html": [ + [ + "largest-contentful-paint/repeated-image.html", + {} + ] + ], + "largest-contentful-paint/supported-lcp-type.html": [ + [ + "largest-contentful-paint/supported-lcp-type.html", + {} + ] + ], "layout-instability/buffer-layout-shift.html": [ [ "layout-instability/buffer-layout-shift.html", @@ -359900,6 +360479,24 @@ {} ] ], + "loading/lazyload/original-base-url-applied-tentative.html": [ + [ + "loading/lazyload/original-base-url-applied-tentative.html", + {} + ] + ], + "loading/lazyload/original-referrer-policy-applied-tentative.sub.html": [ + [ + "loading/lazyload/original-referrer-policy-applied-tentative.sub.html", + {} + ] + ], + "loading/lazyload/picture-loading-lazy.tentative.html": [ + [ + "loading/lazyload/picture-loading-lazy.tentative.html", + {} + ] + ], "loading/preloader-css-import-no-quote.tentative.html": [ [ "loading/preloader-css-import-no-quote.tentative.html", @@ -390884,6 +391481,14 @@ } ] ], + "std-toast/reflection.html": [ + [ + "std-toast/reflection.html", + { + "timeout": "long" + } + ] + ], "std-toast/show-toast.html": [ [ "std-toast/show-toast.html", @@ -402791,6 +403396,18 @@ {} ] ], + "web-nfc/NDEFMessage_constructor.https.html": [ + [ + "web-nfc/NDEFMessage_constructor.https.html", + {} + ] + ], + "web-nfc/NDEFRecord_constructor.https.html": [ + [ + "web-nfc/NDEFRecord_constructor.https.html", + {} + ] + ], "web-nfc/NFCErrorEvent_constructor.https.html": [ [ "web-nfc/NFCErrorEvent_constructor.https.html", @@ -444207,7 +444824,7 @@ "testharness" ], "animation-worklet/common.js": [ - "3e542e02efceb5073a08a243855b3ac309b2e3b6", + "ceb430b718b8438c933071b1dd24240ab13bf562", "support" ], "animation-worklet/current-time.https.html": [ @@ -444270,6 +444887,10 @@ "1a8afc1e89278d06572e337965a6d1ff1572d0d9", "testharness" ], + "animation-worklet/worklet-animation-get-computed-timing-progress-on-worklet-thread.https.html": [ + "a66a4b9156cd9ee0283928feaf89a782a058998e", + "testharness" + ], "animation-worklet/worklet-animation-get-timing-on-worklet-thread-ref.html": [ "aad07d5f6f26692dc47ce0219a78d3c1a50c608a", "support" @@ -467847,19 +468468,19 @@ "testharness" ], "content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html": [ - "65311c32ad6e27a744764800e43d5ddb47160e97", + "4c86845f4dbb1a4d56474b6aa2884dcc4a20c3f3", "testharness" ], "content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html": [ - "03829fe8a3686f9ce9c484b1e3fb2bdd328cc12f", + "dcf52aa187c7fea6d94dd11ed002e3b924d26e56", "testharness" ], "content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html": [ - "0a7c2b43bff372ee4c1b9935306554068f07829f", + "978096f14f641907029d0198cac45ad6a7a9d4ef", "testharness" ], "content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html": [ - "5dd82e6ddca482bdf6be75f53753465fad166c5b", + "6e0e6ddbede1aff3b1521cfad1aa789d9b80858f", "testharness" ], "content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html": [ @@ -468515,11 +469136,11 @@ "support" ], "cookie-store/cookieListItem_attributes.tentative.https.window.js": [ - "3e7b02b1085ba3c7fe301a410129ba227bce7f8b", + "bf8f845f2b183202efc6405c510eb348db189894", "testharness" ], "cookie-store/cookieStore_delete_arguments.tentative.https.window.js": [ - "8cfa03dd0540cdd46d144292279e557d257dd9c2", + "dc073d8eb60321bdf5b15d67af6989dc672f21b1", "testharness" ], "cookie-store/cookieStore_delete_basic.tentative.https.window.js": [ @@ -468531,47 +469152,47 @@ "testharness" ], "cookie-store/cookieStore_event_basic.tentative.https.window.js": [ - "7f6d2d919d496be7135bae0536841611d208afea", + "5f20947dbf1051bd14ce23f45e632290da2ed7c9", "testharness" ], "cookie-store/cookieStore_event_delete.tenative.https.window.js": [ - "f84b2e067451d883b5819ae4d4b8648a38aba3b1", + "e8c6fc036a76863acf2d8b2b3660550715f1dc0d", "testharness" ], "cookie-store/cookieStore_event_overwrite.tentative.https.window.js": [ - "2a5cb5d064f912eb8d6583427360afd280bb7a23", + "3acffea41c1d6a08e5aaf1ca944567347d174de0", "testharness" ], "cookie-store/cookieStore_getAll_arguments.tentative.https.window.js": [ - "5106a6270cd9239cd34cd9f6a96c29a24dccab5b", + "a04aa8cd7ad65a56a56d3de53fa4d92192c7f05a", "testharness" ], "cookie-store/cookieStore_getAll_multiple.tentative.https.window.js": [ - "78b3c56fdd38925d9c2da17454b5f1b8b969d999", + "c09f4fc5f5794d44b61159f6a18de85cd0c57da7", "testharness" ], "cookie-store/cookieStore_getAll_set_basic.tentative.https.window.js": [ - "aa0a4ea9a03eaa96144ed62a6458ffbb183a97c6", + "dd2adabd22835d135198d7b5c3cdb5d18b7e27a5", "testharness" ], "cookie-store/cookieStore_get_arguments.tentative.https.window.js": [ - "bb126864ff7623a4c51988834e24a3894dc8a5ee", + "e338dd1bdbd098373765dcc048425899c5cbe490", "testharness" ], "cookie-store/cookieStore_get_delete_basic.tentative.https.window.js": [ - "fc9645d3e2e98063da8cf03ef50823af363c6b9c", + "5ebf09d34463250d2eeec80606b89a6ce46298e0", "testharness" ], "cookie-store/cookieStore_get_set_across_frames.tentative.https.html": [ - "c2ef184940390348020aa7e8cdfd24b4a8b9d335", + "f7c737b422e559107bb210d0cea9267829e10ba7", "testharness" ], "cookie-store/cookieStore_get_set_across_origins.tentative.sub.https.html": [ - "e8792612c4352dc1697a2d4efc8dbe6ab7092a7e", + "c67ef98bcc944dbfb815993734dcfae7dbd3eb9d", "testharness" ], "cookie-store/cookieStore_get_set_basic.tentative.https.window.js": [ - "2a082de9d30927ec5ee152acdd76cde04ed730d5", + "deb7405f2ff0ddc29214a51b80878f7b17ce66fa", "testharness" ], "cookie-store/cookieStore_in_detached_frame.tentative.https.html": [ @@ -468579,7 +469200,7 @@ "testharness" ], "cookie-store/cookieStore_set_arguments.tentative.https.window.js": [ - "18f60ad974e1570365cc0d92c36cd55330d5b721", + "ddc9981c92ddf5d3b149249db1accd16dc476ec1", "testharness" ], "cookie-store/cookieStore_special_names.tentative.https.window.js": [ @@ -468691,11 +469312,11 @@ "support" ], "cookie-store/serviceworker_cookieStore_cross_origin.tentative.https.sub.html": [ - "abc431a4d628e28adc40d7c9636766c53c16cf4e", + "6879c5da926384b2be6969b5585c8e2a75539f75", "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions.js": [ - "225e58266e2e0210299f9defef1d28eaeeb9403c", + "441573d20e9100943a33efa0e3bb8143e76491fa", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html": [ @@ -468703,7 +469324,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_basic.js": [ - "4a5ee5eed962f65c21ad794d02e7452ff56046a0", + "c48ad8bb98b02d572edf5080af877302527454a1", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_basic.tentative.https.html": [ @@ -468711,7 +469332,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_empty.js": [ - "de521caddd8763b1d30e1c0bfcf2feea98e7bc06", + "b62318699740938134fc51ab4c42670ce8878aca", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_empty.tentative.https.html": [ @@ -468719,7 +469340,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_eventhandler_attribute.js": [ - "8784af7e6e80824711a9e20e39af33617b0a87b7", + "228b528985615f8b73d2f5e11452e591873fecbe", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_eventhandler_attribute.tentative.https.html": [ @@ -468727,7 +469348,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_mismatch.js": [ - "12759a2e3ae9c40cb301482f093fb5b30b63cfbc", + "43edadd7bb86946400fcb707b2e76eada088b8a1", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_mismatch.tentative.https.html": [ @@ -535758,6 +536379,10 @@ "7cc09a594ed17648ec29b9bdc2615fa6dbcbd3a7", "testharness" ], + "css/css-box/parsing/margin-computed.html": [ + "f22f6cdc0f503488418b7741f12ec5554f213477", + "testharness" + ], "css/css-box/parsing/margin-invalid.html": [ "77009170938d9634497f73bc21501ced502c7008", "testharness" @@ -556070,6 +556695,10 @@ "3e133db880cd32d963d701bb184d28faae959aa5", "testharness" ], + "css/css-logical/parsing/block-size-computed.html": [ + "de3a3c2a0c5c80b5f0f4225a5904b81797afb34e", + "testharness" + ], "css/css-logical/parsing/block-size-invalid.html": [ "37d88907735ff58ab4bebb9073f626e14d864955", "testharness" @@ -556158,6 +556787,10 @@ "81c7049c5e94c891b72f953356fadac0aeb3ae5c", "testharness" ], + "css/css-logical/parsing/inline-size-computed.html": [ + "0f60165a347e1ad8e67715d03d1b46c9a27b146c", + "testharness" + ], "css/css-logical/parsing/inline-size-invalid.html": [ "d3d5d3f84d9d01392533e787b9e6755d592ec96e", "testharness" @@ -559787,7 +560420,7 @@ "support" ], "css/css-paint-api/background-image-alpha.https.html": [ - "53d869d06079717637cc432cdcf46e35170c2216", + "7f1e31bf39bbc98bd6f37a99f7e660cda3590de0", "reftest" ], "css/css-paint-api/background-image-multiple-ref.html": [ @@ -559795,7 +560428,7 @@ "support" ], "css/css-paint-api/background-image-multiple.https.html": [ - "79ff8836c15c372155badcc4013d3d33dc039d18", + "51c928d2a67c74e173a9f815b3c97a8ec8a21059", "reftest" ], "css/css-paint-api/background-image-tiled-ref.html": [ @@ -559803,7 +560436,7 @@ "support" ], "css/css-paint-api/background-image-tiled.https.html": [ - "8498c82a355e41513c1b2521dfb489dcd4f6cd75", + "11647c9228c8fb2f10bf5e3aeb25967b40478c45", "reftest" ], "css/css-paint-api/geometry-background-image-001-ref.html": [ @@ -559811,7 +560444,7 @@ "support" ], "css/css-paint-api/geometry-background-image-001.https.html": [ - "601d4187b091aa08be5e133a56ffe24bcbb1f8df", + "eb7f6716ada1bdea3761b4d164e9b2ca7ea35f98", "reftest" ], "css/css-paint-api/geometry-background-image-002-ref.html": [ @@ -559819,7 +560452,7 @@ "support" ], "css/css-paint-api/geometry-background-image-002.https.html": [ - "1d57073bf20660f2cc7faab9184ace78967e097e", + "e636aa73b3b2e519c2a6c12457a6434b38036ea0", "reftest" ], "css/css-paint-api/geometry-background-image-tiled-001-ref.html": [ @@ -559827,7 +560460,7 @@ "support" ], "css/css-paint-api/geometry-background-image-tiled-001.https.html": [ - "8e28b54b36df37845bb4a6dc95b27872ddbe2ee3", + "51373a528e4ca46b0adcf665e28cc3dc1aa793bc", "reftest" ], "css/css-paint-api/geometry-background-image-tiled-002-ref.html": [ @@ -559835,7 +560468,7 @@ "support" ], "css/css-paint-api/geometry-background-image-tiled-002.https.html": [ - "9248e38641eb80efb5566b5750616fda8527aa34", + "d55761b47cd362827bf828e03d6a8f94dd309431", "reftest" ], "css/css-paint-api/geometry-background-image-tiled-003-ref.html": [ @@ -559843,7 +560476,7 @@ "support" ], "css/css-paint-api/geometry-background-image-tiled-003.https.html": [ - "5b6b6c7c65a1bcea71ae8bc69f171d0e22b1e1d6", + "6d5bdd2fa539979f4069e42cd9582c2d13fba445", "reftest" ], "css/css-paint-api/geometry-border-image-001-ref.html": [ @@ -559851,7 +560484,7 @@ "support" ], "css/css-paint-api/geometry-border-image-001.https.html": [ - "3fb4643cd472dd7e1beaee5cf32c75499a1d02bb", + "ff7f56e299ddd2a0206d7a25d0d930afb616c0f0", "reftest" ], "css/css-paint-api/geometry-border-image-002-ref.html": [ @@ -559859,7 +560492,7 @@ "support" ], "css/css-paint-api/geometry-border-image-002.https.html": [ - "26e24bb0146b015a84dae57db5d4a2398ce00a8e", + "d6e47f049071416302a250c019b110d7dcaa8071", "reftest" ], "css/css-paint-api/geometry-border-image-003-ref.html": [ @@ -559867,7 +560500,7 @@ "support" ], "css/css-paint-api/geometry-border-image-003.https.html": [ - "a26f2b7d10980b5f6d7d709c131b37cbc61add0d", + "36af043cc5fe9e2ebe0dc94855b3b1def55f28aa", "reftest" ], "css/css-paint-api/geometry-border-image-004-ref.html": [ @@ -559875,7 +560508,7 @@ "support" ], "css/css-paint-api/geometry-border-image-004.https.html": [ - "60db7ff4bc59abd8133a38a1f92f8cc2e9054b7d", + "0f483cd5d19acf4923e60a9f59f55b2bd1e2d0d0", "reftest" ], "css/css-paint-api/geometry-with-float-size-ref.html": [ @@ -559883,7 +560516,7 @@ "support" ], "css/css-paint-api/geometry-with-float-size.https.html": [ - "65477e4b3bf369d511113cbe81d04531281edc4c", + "8cd90c84318dff22e3099af7ef042f92f5b96506", "reftest" ], "css/css-paint-api/hidpi/canvas-transform-ref.html": [ @@ -559891,7 +560524,7 @@ "support" ], "css/css-paint-api/hidpi/canvas-transform.https.html": [ - "d160a8673c21d17e58ca20eb437c22cd76c97104", + "6dc57abaf777c15ca3a868c03eee9e3c0559677c", "reftest" ], "css/css-paint-api/hidpi/device-pixel-ratio-ref.html": [ @@ -559899,11 +560532,11 @@ "support" ], "css/css-paint-api/hidpi/device-pixel-ratio.https.html": [ - "46a9aa28f2f8876a06751fcdd26399c915dd1c1c", + "f9516e5ccf95dd96f32e770bd132cdc9ebe1e6f4", "reftest" ], "css/css-paint-api/idlharness.html": [ - "c9675ab0412bb955d7a8653e7d28884a6953800b", + "aad04a17cc4c660084fa196cb85da5d88b8560d4", "testharness" ], "css/css-paint-api/invalid-image-constructor-error-ref.html": [ @@ -559911,7 +560544,7 @@ "support" ], "css/css-paint-api/invalid-image-constructor-error.https.html": [ - "439ff8b4e5a3c050a350349b37aad5c350dd2bbd", + "8facde43f57cec2bcd75efe25fee58d4c70ead62", "reftest" ], "css/css-paint-api/invalid-image-paint-error-ref.html": [ @@ -559919,7 +560552,7 @@ "support" ], "css/css-paint-api/invalid-image-paint-error.https.html": [ - "2806ad9204853ab67cf90bd664382bb2cf2a8e67", + "17c283e35caae2a69e9c748fe19a8dd53b894e35", "reftest" ], "css/css-paint-api/invalid-image-pending-script-ref.html": [ @@ -559927,7 +560560,7 @@ "support" ], "css/css-paint-api/invalid-image-pending-script.https.html": [ - "4347a00a499ff49d96051bb3fcfdcc42ba41999f", + "20a61eff41b68e8f756de2f3fe81bd20e736c92c", "reftest" ], "css/css-paint-api/overdraw-ref.html": [ @@ -559935,7 +560568,7 @@ "support" ], "css/css-paint-api/overdraw.https.html": [ - "5be26f7e0a877e9835cd11563c28392281c84cc1", + "8d3dc72f9315884c342013d50f3936804a0747fe", "reftest" ], "css/css-paint-api/paint-arguments-ref.html": [ @@ -559943,7 +560576,7 @@ "support" ], "css/css-paint-api/paint-arguments.https.html": [ - "abfb2a68e4be069055336585b4573dcfee1dd121", + "615027c8fe393c2109bb99bc6bb1c2f36d104f9e", "reftest" ], "css/css-paint-api/paint-function-arguments-ref.html": [ @@ -559951,7 +560584,7 @@ "support" ], "css/css-paint-api/paint-function-arguments.https.html": [ - "d87b0b80a61d2f5edcd5e5d7227dfecd9f580ae3", + "3a1e579f5ecbe324d48a6e0cb4d94a77cb4361d3", "reftest" ], "css/css-paint-api/paint2d-composite-ref.html": [ @@ -559959,7 +560592,7 @@ "support" ], "css/css-paint-api/paint2d-composite.https.html": [ - "80e94e45a8cddafe8b81a9a48ef16b4e0a03f586", + "edf8a766fabedaac61f2de9607ebde01e0d86c5b", "reftest" ], "css/css-paint-api/paint2d-filter-ref.html": [ @@ -559967,7 +560600,7 @@ "support" ], "css/css-paint-api/paint2d-filter.https.html": [ - "d0c45395757c971c9a6c1c0895b7599191596c95", + "9d598c7a9689fccd3fcf140f912f58233f734b14", "reftest" ], "css/css-paint-api/paint2d-gradient-ref.html": [ @@ -559975,7 +560608,7 @@ "support" ], "css/css-paint-api/paint2d-gradient.https.html": [ - "892a7919f1f73b65992e1ffbd5a0654de715075d", + "1887f52b06b1033d183ef6506f92cf9fe0d69773", "reftest" ], "css/css-paint-api/paint2d-image-ref.html": [ @@ -559983,7 +560616,7 @@ "support" ], "css/css-paint-api/paint2d-image.https.html": [ - "6fce4b6898b86d4b4eeddf9c3d3660941ebc5512", + "71074df796d36a1d97a4598b62cdcc04fff390a3", "reftest" ], "css/css-paint-api/paint2d-paths-ref.html": [ @@ -559991,7 +560624,7 @@ "support" ], "css/css-paint-api/paint2d-paths.https.html": [ - "091f548cb30fd84e5af3dc22c310a4d165e6bccc", + "0e04168fcb1aae5bc555873b795dc448d476551b", "reftest" ], "css/css-paint-api/paint2d-rects-ref.html": [ @@ -559999,7 +560632,7 @@ "support" ], "css/css-paint-api/paint2d-rects.https.html": [ - "24942727d5ab14da8895587c9e0120ec9d0a6a14", + "9279aa2a870b81052360a9feadab4e406070bd3d", "reftest" ], "css/css-paint-api/paint2d-shadows-ref.html": [ @@ -560007,7 +560640,7 @@ "support" ], "css/css-paint-api/paint2d-shadows.https.html": [ - "98dcfbce2997598d371481c422d412ad403f794f", + "b641dab8860f87264cd7b23f170ba693d894af62", "reftest" ], "css/css-paint-api/paint2d-transform-ref.html": [ @@ -560015,75 +560648,75 @@ "support" ], "css/css-paint-api/paint2d-transform.https.html": [ - "c91b500a46f1d30e7a717ec9542462180e3de20f", + "d052b8c5543344ba3629c4723e5d05912cfc86dd", "reftest" ], "css/css-paint-api/parse-input-arguments-001.https.html": [ - "4356ce61f4aa5b277c6caf228e44dcbf3e6245c8", + "486f379dd7b27e70fd734d62e7de45fd8ca9ab5e", "reftest" ], "css/css-paint-api/parse-input-arguments-002.https.html": [ - "b1b50e04045fb05ad7f967a7db26f86dcf5d36b7", + "5c7b3aca048d05f8535e6d182b9c5350595464ea", "reftest" ], "css/css-paint-api/parse-input-arguments-003.https.html": [ - "3b1b0014f78a3ed0908273f0dc72b714f32c9aab", + "81904ee6f7b132fe6a58cd12d84e43b95cee625b", "reftest" ], "css/css-paint-api/parse-input-arguments-004.https.html": [ - "138a7908682a348b3a76f1244a68cae42cf3f2f2", + "9bf264b0d5fc21225c9f7ae8c887b61237b3f882", "reftest" ], "css/css-paint-api/parse-input-arguments-005.https.html": [ - "0c5e539381bd8bc9295bfa54db070c2e6b9e2ac2", + "24769f472c5b88b3b311a8d5e46e13ca3aaf6609", "reftest" ], "css/css-paint-api/parse-input-arguments-006.https.html": [ - "e99ab05a88d9fb6d8dff1a8a7dff880bc6bf0728", + "a6fcc16c5da9e135eebe3b4f53194f7fbe867fd2", "reftest" ], "css/css-paint-api/parse-input-arguments-007.https.html": [ - "53f245bce483e2074266793cec6d17c4f26ebadb", + "462cfb601069597977dabe25c806ee1af095a554", "reftest" ], "css/css-paint-api/parse-input-arguments-008.https.html": [ - "e6b863c641c0a201851c1910da158db377292217", + "d5c18b0905d76948428a3e874eccf7bda6ac944e", "reftest" ], "css/css-paint-api/parse-input-arguments-009.https.html": [ - "b23191ae34015c9a4fb7b3a4f711228b57b98b34", + "7cfdf91eb02a2d2f293f52cc3a8256243757557f", "reftest" ], "css/css-paint-api/parse-input-arguments-010.https.html": [ - "e98b431648932559400e721a0414a3955403b50a", + "142ca0c5d5d6b291f126d83554aa9ccec6aaa194", "reftest" ], "css/css-paint-api/parse-input-arguments-011.https.html": [ - "b9d54bf413d79a13b89decb578d17834a7649799", + "23eb9d3c9f98f4e2a67728be32897bf59b87a1aa", "reftest" ], "css/css-paint-api/parse-input-arguments-012.https.html": [ - "14eebeb635a73feb7303c178818f1e02df3d854d", + "fa2c6b5f56053373e3be5d48e8ca0840b090ee8f", "reftest" ], "css/css-paint-api/parse-input-arguments-013.https.html": [ - "37e3eb435ec38d8204b1c194a5da23f447aced5c", + "adc1c03cfe66f4ce6fe75c4a59ca4708f7115059", "reftest" ], "css/css-paint-api/parse-input-arguments-014.https.html": [ - "690e488b9177a2a482becc4ce38b48a264a1d6c8", + "d041ae316f7a3ea2c853828d6845716c36c13c85", "reftest" ], "css/css-paint-api/parse-input-arguments-015.https.html": [ - "fba76712466694e70e1a14c6ccd8e7f273ab981f", + "8ebe3e7c4d15fb653d890127eece81e1049df38f", "reftest" ], "css/css-paint-api/parse-input-arguments-016.https.html": [ - "31cca45facab4fb2c312f57f0c42b3e361d4baef", + "ccd0595faa514a877eb2ff0f7d9a8980b9a5b971", "reftest" ], "css/css-paint-api/parse-input-arguments-017.https.html": [ - "0d14fe74c21f4223e183f70cc95704945a0c8828", + "476e29ff12f0d75940ee5dfb5ac4079e43a7ae04", "reftest" ], "css/css-paint-api/parse-input-arguments-018-ref.html": [ @@ -560091,23 +560724,23 @@ "support" ], "css/css-paint-api/parse-input-arguments-018.https.html": [ - "541332ae777c330431f6712570fd99d9707230b6", + "e6a31cbdd41899f2d4a548a7af39e97c44140380", "reftest" ], "css/css-paint-api/parse-input-arguments-019.https.html": [ - "707a0c6ebe05ea32a9ced7bf24b62dc7fb5e9dfe", + "309ec800eacfde6302add112ecd94275f394dc1a", "reftest" ], "css/css-paint-api/parse-input-arguments-020.https.html": [ - "fe8dbad27bdf56eeb10a51f259e00d44062945e1", + "7e00b64123d5621c226b104ccec133b83f10fa6e", "reftest" ], "css/css-paint-api/parse-input-arguments-021.https.html": [ - "0c3a596236fc3c7a8dd1bb72d0bd62efa2f80f14", + "8fa043a8cdead2ebbbb83f69fe708acac05127b1", "reftest" ], "css/css-paint-api/parse-input-arguments-022.https.html": [ - "50aaa6b3c9420f1220d38c407aec84be46afaafe", + "2ff27d7a4af5d4905a76ca53228b3cc619c05ecf", "reftest" ], "css/css-paint-api/parse-input-arguments-ref.html": [ @@ -560115,127 +560748,127 @@ "support" ], "css/css-paint-api/registered-property-interpolation-001.https.html": [ - "c6e93029f101625de917394b314aecc3138ce1ec", + "5aaed62542f1231ab866b8c245424f8b676b0aeb", "reftest" ], "css/css-paint-api/registered-property-interpolation-002.https.html": [ - "cfa9a618a1f10146fd61f357d6be3367e07b2cb6", + "80b2c9339d70772bbf0468e2ff1e14c3ec088279", "reftest" ], "css/css-paint-api/registered-property-interpolation-003.https.html": [ - "314d0c082efca3073dc2d69e37f010e01f6d83b2", + "683ed403fb8b7a519b06c0b2c6d8564cb5830053", "reftest" ], "css/css-paint-api/registered-property-interpolation-004.https.html": [ - "430326a0663281678dc6133a9d0b7cf6889352e3", + "9602e902eca44eb704a8f3977c9f4416ad7aab7e", "reftest" ], "css/css-paint-api/registered-property-interpolation-005.https.html": [ - "807a0509289f3bea13ad8021f6e06c33c1552736", + "35d6ccbf3d4bc3d9278a733f7e21ab44734b2d08", "reftest" ], "css/css-paint-api/registered-property-interpolation-006.https.html": [ - "45859a514a339231bf515546e494f1de5ce127bb", + "a8cfdead0f7b6d4d358c56f4126780452e827e4e", "reftest" ], "css/css-paint-api/registered-property-interpolation-007.https.html": [ - "b3f4f1f1bba24ccdc265fb6e6c8f1a375ee8803e", + "77b80b51e67ac275aeff76baf93d0c0e8fca6ef8", "reftest" ], "css/css-paint-api/registered-property-interpolation-008.https.html": [ - "45eb90960812cb1adb2537beb3068b90e5dbfd8e", + "1ec166614e13ccda26fd066cd1ed3c5134792e48", "reftest" ], "css/css-paint-api/registered-property-interpolation-009.https.html": [ - "e45881244b2a211d2f5e5d9dfe867c13b55fac3d", + "e7a5e37c641f060458b128a4bb53e00f2ca63532", "reftest" ], "css/css-paint-api/registered-property-interpolation-010.https.html": [ - "d4d1b038e24d45e5f6941e3f7a7eb1facefe58f0", + "ee3a0f1b3217677a5a6d7049d0b85939ed271174", "reftest" ], "css/css-paint-api/registered-property-invalidation-001.https.html": [ - "26da7e2eeffac331266d8c5c8fc1754884b06d72", + "133b9238e6ceef161f99b99711839cf791c908b8", "reftest" ], "css/css-paint-api/registered-property-invalidation-002.https.html": [ - "0aab051a4c492cd25b4b96fbee78029c2f12921a", + "aadbfec42c8c89a9fa9b9a77d86f36fd36b0cbe3", "reftest" ], "css/css-paint-api/registered-property-stylemap.https.html": [ - "2305afb37df44abf4b9807bbe08c1ce0f7a1631c", + "4a6b4db521af8ddff57dd4ecaf9f9c35c5a4cc6b", "reftest" ], "css/css-paint-api/registered-property-value-001.https.html": [ - "f915dacb168a6252ace394cbe64426614b4fae16", + "970e1f3e5ed9ec422d50a9f71d935d5970b3eb12", "reftest" ], "css/css-paint-api/registered-property-value-002.https.html": [ - "7d62b0b2f65d3c7169ac0ccd338eb16ca9566e1a", + "6019151b10575afda778fc27117877d879c8839a", "reftest" ], "css/css-paint-api/registered-property-value-003.https.html": [ - "b22f18dde7c1281dea657bd89321a305e955b89d", + "b9c3bf3fd90422d3293dd30e4074c5b1dd66ee52", "reftest" ], "css/css-paint-api/registered-property-value-004.https.html": [ - "d67603f9fe8e0cd0969836d5c0748c304fdc6375", + "e04be69f80c27ee8ad83acdb5b4c0c4f23efaa0d", "reftest" ], "css/css-paint-api/registered-property-value-005.https.html": [ - "71cda9a3766f50aee0995f9bd37cb410c1919b95", + "bfecd0c56b8d538671540b9c229c7df585df1d31", "reftest" ], "css/css-paint-api/registered-property-value-006.https.html": [ - "aa03edf25f77907ef38b2320b51b535cf40985dd", + "7176b67d4bb8bf99a8bc3bfc559912424b449826", "reftest" ], "css/css-paint-api/registered-property-value-007.https.html": [ - "61256cd11cff21c31b95aeb31e8807d84b804b88", + "309fe969b6bd31a9f1c3212d92dedca8203b0942", "reftest" ], "css/css-paint-api/registered-property-value-008.https.html": [ - "06a18bd022cb7fc0dd47163ba5fdfeec6aab0b6d", + "db72408d77b9c7fe10142b1f83c9e98f38b219f3", "reftest" ], "css/css-paint-api/registered-property-value-009.https.html": [ - "2ce2a0d56bd6a8bf230c5bae4790c633c34643c6", + "a2c2e9a8cd561ef588f98a08031ad50961f59c07", "reftest" ], "css/css-paint-api/registered-property-value-010.https.html": [ - "53aef81e8e85c5aba8d88dbbee69689807735ffd", + "332a22a1b9d9d1c3c0f117c4804e19ff73b2c670", "reftest" ], "css/css-paint-api/registered-property-value-011.https.html": [ - "d5dc351f7fafcfe7636b426fb3cc262128826ed5", + "a596a5d55fd936921edc4661cdd9680950e2eebb", "reftest" ], "css/css-paint-api/registered-property-value-012.https.html": [ - "827877a51c4dd60c69056acfc0235a53a01fd91d", + "80c1e6ed37c5b8d4c611d534dbe4e4c6cbaf286c", "reftest" ], "css/css-paint-api/registered-property-value-013.https.html": [ - "e37cd556f80c4c02bdbcf5dc7905189b9e7265c3", + "7af03929d843cf5a201ff33bd3f57b1f790bd2e0", "reftest" ], "css/css-paint-api/registered-property-value-014.https.html": [ - "f42160fabe108b1d2238f5514d535be14c943d92", + "0ca1eca13ed3d4b1e2da165e827799f6ef968925", "reftest" ], "css/css-paint-api/registered-property-value-015.https.html": [ - "5b00b53c2a09a98dd762deb5f550ff26882c939b", + "d7ba26b852c15a2e4df11a071e042b7f1c523aa0", "reftest" ], "css/css-paint-api/registered-property-value-016.https.html": [ - "1ec2e1b5ab031a4c5842c190a081a7c4de14091f", + "609f00f6d0067efb6fdc44a9b54b104375303924", "reftest" ], "css/css-paint-api/registered-property-value-017.https.html": [ - "1ec2e1b5ab031a4c5842c190a081a7c4de14091f", + "609f00f6d0067efb6fdc44a9b54b104375303924", "reftest" ], "css/css-paint-api/registered-property-value-018.https.html": [ - "6be2cb8a228e34c0771c9e59b69409edf402feee", + "1f9876b6b502484c1821e559fc038d1050718d0b", "reftest" ], "css/css-paint-api/resources/html5.png": [ @@ -560251,7 +560884,7 @@ "support" ], "css/css-paint-api/style-background-image.https.html": [ - "13204cf709f284920428bbc73f55b746597e0dc2", + "8e5f2f81547f0305ff230198f1b0300c838adfde", "reftest" ], "css/css-paint-api/style-before-pseudo-ref.html": [ @@ -560259,7 +560892,7 @@ "support" ], "css/css-paint-api/style-before-pseudo.https.html": [ - "f7e2a164f177afb60baf72ef14e74b4c331c1f39", + "017b23a6caf66219a2b5912ce6eb9316cd0adfe5", "reftest" ], "css/css-paint-api/style-first-letter-pseudo-ref.html": [ @@ -560267,7 +560900,7 @@ "support" ], "css/css-paint-api/style-first-letter-pseudo.https.html": [ - "02b114560fd894eaacb9387d517de1bad7665423", + "d3c31a0508dc86aa0da95815ff2448bc2e074caf", "reftest" ], "css/css-paint-api/valid-image-after-load-ref.html": [ @@ -560275,7 +560908,7 @@ "support" ], "css/css-paint-api/valid-image-after-load.https.html": [ - "44612f98ffd50d0c2431662e6a325297dfc387a7", + "c1bf8e85548656b60145c4d54437b10a2f07880e", "reftest" ], "css/css-paint-api/valid-image-before-load-ref.html": [ @@ -560283,7 +560916,7 @@ "support" ], "css/css-paint-api/valid-image-before-load.https.html": [ - "7738d9dd115d1a3bdcd922c797d5aee65e06bf84", + "b58dfa114ea8327dbce264b44c87a4c92d2b3eb9", "reftest" ], "css/css-parser-api/META.yml": [ @@ -561051,7 +561684,7 @@ "support" ], "css/css-properties-values-api/conditional-rules.html": [ - "b4de63045f339d163830921e4e201e698edae47c", + "0bff879856c91047bb84575faf31917fd73ba049", "testharness" ], "css/css-properties-values-api/idlharness.html": [ @@ -561119,7 +561752,7 @@ "testharness" ], "css/css-properties-values-api/unit-cycles.html": [ - "c26e1cda1f6842655e7e0158d6a934e470f486ae", + "5301b6fcc77b1b7885ef7602410e4f4586391b4f", "testharness" ], "css/css-properties-values-api/url-resolution.html": [ @@ -566950,6 +567583,10 @@ "ffbb796b6afe0fe9fa93e15de3586bef96174d8b", "reftest" ], + "css/css-tables/percent-width-cell-dynamic.html": [ + "5c7ef3bf8a2b7eac7371c7d86594f52cfb42815d", + "reftest" + ], "css/css-tables/percent-width-ignored-001.tentative.html": [ "214eee7152b66a4198a2e81d7d62da9a295b5d98", "testharness" @@ -567375,7 +568012,7 @@ "support" ], "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [ - "f876afa68c655535017fe5a6e6feff0ce1df4045", + "4e7db88ce5b41e28aa43fc339c35438855abb928", "support" ], "css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html": [ @@ -567495,11 +568132,11 @@ "support" ], "css/css-text-decor/reference/text-underline-offset-001-notref.html": [ - "c56078a32ae26647c8aece448ce1d6b268f38abd", + "8b1dacfbf48a68b88e4ae47a852c810b3bc4becf", "support" ], "css/css-text-decor/reference/text-underline-offset-002-ref.html": [ - "ed2e3cefff82a120c3d33f504fd8d6ee78d9fe8c", + "6e7d5a65f0373ae49452daaa0ad401bed3f1af3e", "support" ], "css/css-text-decor/reference/text-underline-offset-scroll-001-notref.html": [ @@ -567803,7 +568440,7 @@ "testharness" ], "css/css-text-decor/text-decoration-thickness-linethrough-001.html": [ - "37e954b2b8769e882420a49ef0adf42a8b4b096e", + "6fd8383d062960e5056a1e755eafdd95e23e0f88", "reftest" ], "css/css-text-decor/text-decoration-thickness-overline-001.html": [ @@ -567987,11 +568624,11 @@ "testharness" ], "css/css-text-decor/text-underline-offset-001.html": [ - "bd9a29c7fdeeee9eeb30f226c1a3e8abfa0eac30", + "f7aeb543df3a77d277b1a8e99d1e50c3bd9a87ea", "reftest" ], "css/css-text-decor/text-underline-offset-002.html": [ - "7441ff9d9325a689f79991511b02c601f9a91701", + "dc65db7723fb31cfaa6c00b4af7e37f5b23affb2", "reftest" ], "css/css-text-decor/text-underline-offset-computed.html": [ @@ -569422,6 +570059,102 @@ "08e16f26321bab7ca03f2cfe6eddd0c324d765dc", "testharness" ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-loose.html": [ + "fde2a3d086b16ee1817e5928015d19c5016340c6", + "testharness" + ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-normal.html": [ + "d6f58cb88c1d0b81351eedb3830568fa7a7713b2", + "testharness" + ], + "css/css-text/i18n/ja/css-text-line-break-ja-pr-strict.html": [ + "8265f917225e247538c9fa2f3b28cf7e0382b2ed", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-loose.html": [ + "c902bf7bddb23db69a23ad70cc4ef5f3c85e4aa0", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-normal.html": [ + "e98d4a20cb1f80111b22fc7cb30d079ac3f12009", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cj-strict.html": [ + "29810f2a3502c9b24364c626af22d591c0f0406a", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-loose.html": [ + "9dffd854891a195c8d590ade08ea29e0ff2a585a", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-normal.html": [ + "9c0af13806ca8b612700856f8007152449e3a5a8", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-cpm-strict.html": [ + "d573bac7d6b69b2fbf702aabfc656a151b15171a", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-loose.html": [ + "80b5bb0c72c7a36649678e421ea26795aeb0228d", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-normal.html": [ + "6d6043031e008e3cf01be5cb367edfa1edf8bab6", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-hyphens-strict.html": [ + "e0f60cd36fe0e2c87325feac0aaf0fb96e1ff205", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-loose.html": [ + "fff23f36df8f22161c841ae93b637426315c9552", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-normal.html": [ + "d000d8eb16d55e53eab708eabec21d6d95a22fe7", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-in-strict.html": [ + "79d6e12cc8eb3d2dfcd0544f2a4cc89a80f4223b", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-loose.html": [ + "ff8ef05b14c8abac40ea2ac6c8c667a7062b97fe", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-normal.html": [ + "c5913821e5bd37d706f98818524df6c74b7519b0", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-iteration-strict.html": [ + "46c0fe3caacc6a7dec51fe75d9186385937ec901", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-loose.html": [ + "0eec96857fd6bb8f2b812dc91c42cebf422ec2f7", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-normal.html": [ + "6043912cded98d4a37087f2bca85f7dfa4c8c7f4", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-po-strict.html": [ + "8c9387fa044ae0cb5c95be33737395cf020a4cde", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-loose.html": [ + "8b2fd1c038cb909665d957b29a0a1953db02f1b0", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-normal.html": [ + "2da6d3b0af66f37640dda46d5dbc3cf639fa0a06", + "testharness" + ], + "css/css-text/i18n/other-lang/css-text-line-break-de-pr-strict.html": [ + "99cf5c5fbef0c51848a631ac76cfec5497fc0faa", + "testharness" + ], "css/css-text/i18n/reference/css3-text-line-break-opclns-001-ref.html": [ "d3827a52989d4d5f0f7f5f8bb625be19c5ace3a0", "support" @@ -570138,6 +570871,102 @@ "577500e2426523a3cd29ba26ae7f5686cadfdb84", "support" ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-loose.html": [ + "d6d0a1b3493af9a5f06b296cc0545e29cf1bf29f", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-normal.html": [ + "548fa17398287e4e3c8c210f1bb0e72a43d87af1", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cj-strict.html": [ + "a4e871789a30ff001b6bf278a87edb54b4ebe733", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-loose.html": [ + "3d4cb261289599df2141a534620654cd995eccaf", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-normal.html": [ + "417973b0bbf1ce2730765d5ad5087b2f894c4db9", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-cpm-strict.html": [ + "c6685dfe79d875034b8bdc4d4a8de70a09e33948", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-loose.html": [ + "f15f2632ebeb8fef879a4e7a455e813beb964384", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-normal.html": [ + "4e9dc5607b4c7887244d032dcfe89133718dacb9", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-hyphens-strict.html": [ + "595cd5df2b632c471cf3003f66545c10e2fe2aa0", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-loose.html": [ + "c507f78e6e403b7d1f386299a34f12fcf613e3e8", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-normal.html": [ + "4e8d9617baf1a66ff15fb7dc8d6d4767aa62da97", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-in-strict.html": [ + "a1c3a855041d589ea47d90c636e69f215bc27b1c", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-loose.html": [ + "420a7b6f07c2a4dbd06f7361d37d1f2cb1a26a88", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-normal.html": [ + "9d7b2c032d54b693b3fd343a44089e27d70d3963", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-iteration-strict.html": [ + "54c7559d109b5591e722fe8290e2c11f1da97d08", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-loose.html": [ + "e635075a4151604e7a9b59900cde690e90c84e87", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-normal.html": [ + "46e7472208e295d53bdd7c114bbd6f10dd354d2c", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-po-strict.html": [ + "61fd7b7ec5ca51d0ce6eddc8392c58a6281e2e74", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-loose.html": [ + "b21853f386e4c7759f465ff3f3caafb00942c2a6", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-normal.html": [ + "337cf8f85dba5c08b7649da26c1d2a91369721fe", + "testharness" + ], + "css/css-text/i18n/unknown-lang/css-text-line-break-pr-strict.html": [ + "d25fa6857d8bb1bb4f0b366dae17a1ac783ddcab", + "testharness" + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-loose.html": [ + "a131395e1daff855eaf3f787fddeb60f73318dc1", + "testharness" + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-normal.html": [ + "ff7456b82148c8c780e700185e11d8cda97bb51c", + "testharness" + ], + "css/css-text/i18n/zh/css-text-line-break-zh-cj-strict.html": [ + "dc752f1086c1346404766372d268f6c2be3c5979", + "testharness" + ], "css/css-text/i18n/zh/css-text-line-break-zh-cpm-loose.html": [ "4044e10666d15573fa4d7b3d455b956895eae19e", "testharness" @@ -570198,6 +571027,18 @@ "d85b74a54056166cedbf04f694d681ef95fff9b4", "testharness" ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-loose.html": [ + "b56cd28c84037387634ab0b91311fedf11522136", + "testharness" + ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-normal.html": [ + "198bf28cd7e5d49e57912db6637048a1f506d887", + "testharness" + ], + "css/css-text/i18n/zh/css-text-line-break-zh-pr-strict.html": [ + "c71014b42f90e1ca21b0df9f7184b94bfc282bbb", + "testharness" + ], "css/css-text/inheritance.html": [ "ef3270651c3df4ae6112fdfeec0e7fea4b9d6ccf", "testharness" @@ -570263,55 +571104,55 @@ "reftest" ], "css/css-text/line-break/line-break-anywhere-004.html": [ - "daf8420b3930efaecd6f579794105def64dcc75c", + "19b98417b0ffc1e0d9c18873408376cd534084f4", "reftest" ], "css/css-text/line-break/line-break-anywhere-005.html": [ - "47f675eda6ecc6fdaba17cbc06f6df960db87b75", + "5e286a0d769b25816390297851d9ff85a9e60db0", "reftest" ], "css/css-text/line-break/line-break-anywhere-006.html": [ - "de5a43eab444bf440ce44402972e575d2c70f967", + "207cf84f756d608a9e494fa0386dc64468ad8bb7", "reftest" ], "css/css-text/line-break/line-break-anywhere-007.html": [ - "300d9bd92981eca6e87d19caf973d59df847638d", + "b8e4627e7bc93abc79be473b7bdaadebf2d8fd8a", "reftest" ], "css/css-text/line-break/line-break-anywhere-008.html": [ - "a7590a2ee278b218c5e93f90fdf2e3837f4db2c2", + "6b7fb14f5cf2300981b2123a130467eccc4634eb", "reftest" ], "css/css-text/line-break/line-break-anywhere-009.html": [ - "4cc3f4ee392bde3b0cfd4a52fb6af06d3696bcb2", + "6a0ab913330877453233a3aa14aac2aed5a70c6d", "reftest" ], "css/css-text/line-break/line-break-anywhere-010.html": [ - "6554bf68ce13d0f3a3f3d020c01a749aca4228dd", + "19cc7966028841b6b7aa0a8e890f83623e2429a4", "reftest" ], "css/css-text/line-break/line-break-anywhere-011.html": [ - "6cbec13008edd1fadb022f0e8f50f63c6f0a1642", + "70d9628a6f01b3e792ab27b0b2e1cd9740a67080", "reftest" ], "css/css-text/line-break/line-break-anywhere-012.html": [ - "2dfe6071fdfe2a2993812a28c7e1408d59da763c", + "0c01a0c28ba634db6fb1143beb554e62c2d882cb", "reftest" ], "css/css-text/line-break/line-break-anywhere-013.html": [ - "2b60ff5c622e0d7e8e96e1207e7113f14043f9bf", + "9aef864c9219caadc3cda6d67ee01f8d42b099a1", "reftest" ], "css/css-text/line-break/line-break-anywhere-014.html": [ - "04969bb65a9b84c033e40e38f2ccc0165a0cc36d", + "ddbeddf12fe21a462c4d32a49b621fa623097e01", "reftest" ], "css/css-text/line-break/line-break-anywhere-015.html": [ - "34c261e437241516b7d5060a037d8ea10493b0e5", + "b0edd4e298208661acc66b952c2e823f2c65c799", "reftest" ], "css/css-text/line-break/line-break-anywhere-016.html": [ - "81b565209c6317113d5a138375b0249b4a22342a", + "5f80f52c6ea0c5c9c7577896b9bc5d309093c90e", "reftest" ], "css/css-text/line-break/line-break-loose-011.xht": [ @@ -572458,6 +573299,14 @@ "9525b994a8f0c296bc703b19baf91bef4f84c686", "support" ], + "css/css-text/text-transform/reference/text-transform-fullwidth-006-ref.html": [ + "3d2f9c7be2236666bd680a09c834668616fde44d", + "support" + ], + "css/css-text/text-transform/reference/text-transform-fullwidth-007-ref.html": [ + "b8fc5662bd83d9f29aabadbd4eb973e91621f1ed", + "support" + ], "css/css-text/text-transform/reference/text-transform-lowercase-001-ref.xht": [ "3d6eb4af8ac5aeb7fd54e1b2e2aec325886ddca0", "support" @@ -572822,6 +573671,14 @@ "13c0c42a5e7dcbdbbc6df216f3815eb73cb085a4", "reftest" ], + "css/css-text/text-transform/text-transform-fullwidth-006.html": [ + "b0a509758ed56ca4051e1df079c4d758352764c3", + "reftest" + ], + "css/css-text/text-transform/text-transform-fullwidth-007.html": [ + "6e081544a193949b217530b49f71eadfe2800be4", + "reftest" + ], "css/css-text/text-transform/text-transform-lowercase-001.xht": [ "dc3fadf64caf5786123250da2cc50187ec693d2b", "reftest" @@ -573158,6 +574015,30 @@ "828058f53dd811d4dbea0b7e0d56ab5a940725c6", "reftest" ], + "css/css-text/white-space/break-spaces-tab-001.html": [ + "4b01a60395a6c1133c7af8af957dd70859db4823", + "reftest" + ], + "css/css-text/white-space/break-spaces-tab-002.html": [ + "d86918b75fbef27e6cee5d11c844fd971bee595f", + "reftest" + ], + "css/css-text/white-space/break-spaces-tab-003.html": [ + "0d762a426aa323547c5e18daa36b1f55a715e7fc", + "reftest" + ], + "css/css-text/white-space/break-spaces-tab-004.html": [ + "4ccbdd0f21ae4232effc200784dcbe4f3373ea21", + "reftest" + ], + "css/css-text/white-space/break-spaces-tab-005.html": [ + "b5cf3f33ec2bb582bb3f322eeed7c45b426f0936", + "reftest" + ], + "css/css-text/white-space/break-spaces-tab-006.html": [ + "85d821a3e4d476e6fdfe74a7a2f9134ffb2629a3", + "reftest" + ], "css/css-text/white-space/control-chars-000.html": [ "b038fe9a90d3b8b9cb3bde7fd46396c7121688c9", "reftest" @@ -573507,19 +574388,19 @@ "reftest" ], "css/css-text/white-space/pre-wrap-leading-spaces-006.html": [ - "cff928c2fd537b4f2db6ed282882c9a14f795452", + "de1c0de11c67871c5ce8df1dd7e1ee268182c8c6", "reftest" ], "css/css-text/white-space/pre-wrap-leading-spaces-007.html": [ - "ca27b98c2f68940287fc61d4f24709af196ced10", + "9089466338f9dba6c60b8e786ff905d4856488fc", "reftest" ], "css/css-text/white-space/pre-wrap-leading-spaces-008.html": [ - "7331142c2ea0cf56441bd98504610b6ae3150f79", + "f112a0c20b9586f365345227e926ac03cc2edf8a", "reftest" ], "css/css-text/white-space/pre-wrap-leading-spaces-009.html": [ - "e2786419c1a56466fc3850fd371bdac45203fdf3", + "2fe58aa5ceb5abc19d00db01d01452c7cf3ec1d5", "reftest" ], "css/css-text/white-space/pre-wrap-leading-spaces-010.html": [ @@ -573542,6 +574423,38 @@ "ab2759fdc7b094fa9f4012b557abc27fb6bf8ffd", "reftest" ], + "css/css-text/white-space/pre-wrap-tab-001.html": [ + "e57da83e9fb7e28e7ddba5a091be1331eb804c7a", + "reftest" + ], + "css/css-text/white-space/pre-wrap-tab-002.html": [ + "11ec850940856258d6b5f96b5d6bed05181910b3", + "reftest" + ], + "css/css-text/white-space/pre-wrap-tab-003.html": [ + "a54debe80a24b6a1ac660a1c131494a7f4c6b2bd", + "reftest" + ], + "css/css-text/white-space/pre-wrap-tab-004.html": [ + "22c3ec45c68d5cf508fe326b1395cef22a4f1e23", + "reftest" + ], + "css/css-text/white-space/pre-wrap-tab-005.html": [ + "993aa92e370b708855aa883591e13251f9015364", + "reftest" + ], + "css/css-text/white-space/pre-wrap-tab-006.html": [ + "a4c7f3d3ebd9ae73a494769b18f046185672030c", + "reftest" + ], + "css/css-text/white-space/reference/break-spaces-tab-003-ref.html": [ + "52a8c491cca2da9426e318d2e36786d05fe74e06", + "support" + ], + "css/css-text/white-space/reference/break-spaces-tab-005-ref.html": [ + "798e35fd660b9d1e9681c7de01cb0efc923e6aa6", + "support" + ], "css/css-text/white-space/reference/control-chars-000-ref.html": [ "9d5fcb27147a8c53e410d08511cb5035b612f80c", "support" @@ -573894,10 +574807,6 @@ "f62e2e5c005d4043c02894eed87422fa6c59b824", "reftest" ], - "css/css-text/white-space/white-space-pre-wrap-trailing-spaces-006.html": [ - "820012e6ca10dec9065f7c5869c47b065b426033", - "reftest" - ], "css/css-text/white-space/white-space-wrap-after-nowrap-001.html": [ "a484f1cf9167e468063cf2205493b8e71a254470", "reftest" @@ -575522,11 +576431,15 @@ "eb7431078c42e08dbfe07e6de2e154ba9ecb2297", "testharness" ], - "css/css-transforms/parsing/perspective-origin-parsing-invalid.html": [ + "css/css-transforms/parsing/perspective-origin-computed.html": [ + "effeb2974e136831a646318e7fabf30cf27183a6", + "testharness" + ], + "css/css-transforms/parsing/perspective-origin-invalid.html": [ "2ed6721e091702a436217086eebd81172f359339", "testharness" ], - "css/css-transforms/parsing/perspective-origin-parsing-valid.html": [ + "css/css-transforms/parsing/perspective-origin-valid.html": [ "79f4e0df12e84e880e8c501856a977e1a2c468b8", "testharness" ], @@ -575562,8 +576475,12 @@ "7fb8367ecb2f6e2f151a1ee6afaab9896f07f8c8", "testharness" ], + "css/css-transforms/parsing/transform-origin-computed.html": [ + "696d89db67fc9dd611fa0c09fccbe0408134e744", + "testharness" + ], "css/css-transforms/parsing/transform-origin-invalid.html": [ - "19a7c963a708912d347a4c708dc848a7e580966b", + "0dd1eeaf592b94fe65d0ccfb731c826b5dfcb3dc", "testharness" ], "css/css-transforms/parsing/transform-origin-valid.html": [ @@ -592962,6 +593879,10 @@ "cec27f412c926ab087f2cd736e4c6a7d4efb4c99", "testharness" ], + "css/cssom-view/scrollLeftTop.html": [ + "55b4013600727a3dcae0ab2c286a38801cdd8426", + "testharness" + ], "css/cssom-view/scrollTop-display-change-ref.html": [ "9f1259787bbb33e8f8be6d8fc415738bffee6590", "support" @@ -594034,6 +594955,14 @@ "3a2d8feaeefc82c20afd3de2c2cf9ce9bf6aed11", "reftest" ], + "css/filter-effects/backdrop-filter-plus-opacity-ref.html": [ + "347b7a684cac002562314b8e8af57fb919667bec", + "support" + ], + "css/filter-effects/backdrop-filter-plus-opacity.html": [ + "cb189f9f3e9375c1f5ae1c2abf8433f4d13f39fc", + "reftest" + ], "css/filter-effects/backdrop-filter-reference-filter.html": [ "6c61a9620aa82d23375fd31900d87bcfd873a5e1", "reftest" @@ -595258,6 +596187,10 @@ "7433877972b09b3a03cd9f8a11dcd3efd1aa01d6", "reftest" ], + "css/mediaqueries/width-equals-window-inner-width.html": [ + "775c1112de75e7703c28c2241b533e29e13ba5c5", + "testharness" + ], "css/motion/META.yml": [ "20835b48397f136a30b82a62654d389cad326315", "support" @@ -610195,7 +611128,7 @@ "testharness" ], "element-timing/images-repeated-resource.html": [ - "9bc8b5f45e4add4c384160d43649e13eebc1a563", + "a6ad7acefcbef2891d50b6993457a2026b12f604", "testharness" ], "element-timing/invisible-images.html": [ @@ -610259,7 +611192,7 @@ "support" ], "element-timing/resources/element-timing-helpers.js": [ - "f98f9b21134e334e46510bb419a12291d23817bc", + "8933732616c116f1617c64f07182c9cbeb9f59fe", "support" ], "element-timing/resources/iframe-with-square-sends-entry.html": [ @@ -614403,7 +615336,7 @@ "testharness" ], "fetch/api/response/response-consume-empty.html": [ - "6e51ff8b59a6f2d80f407d0cca0e99d8642f71b1", + "4bfcfbc8f44617190e9469f7ce85ce6dc91d2df9", "testharness" ], "fetch/api/response/response-consume-stream.html": [ @@ -620455,7 +621388,7 @@ "testharness" ], "html/dom/interfaces.https.html": [ - "47254a4361c46ad5fdc46efd2165da1bbab4c9b5", + "6ca7721253200d4511758f5ba15a61f756509370", "testharness" ], "html/dom/interfaces.worker.js": [ @@ -627331,7 +628264,7 @@ "support" ], "html/semantics/embedded-content/media-elements/track/track-element/resources/captions-fast.vtt": [ - "cd138fd32af8056e968e7571cd0ab2fe6f02c68d", + "7fe5b1241a2261a001b3b903528eb275ae5cb0c3", "support" ], "html/semantics/embedded-content/media-elements/track/track-element/resources/captions-gaps.vtt": [ @@ -635967,7 +636900,7 @@ "testharness" ], "imagebitmap-renderingcontext/tranferFromImageBitmap-ToBlob-offscreen.html": [ - "6a555fe25aad6b823a87282472345acb7d9dbf78", + "81d0c900650ea3b489549b7977cd9922a35bcca6", "testharness" ], "imagebitmap-renderingcontext/tranferFromImageBitmap-TransferToImageBitmap-offscreen.html": [ @@ -636583,7 +637516,7 @@ "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/actionsWithKeyPressed.html.ini": [ - "c83e8ff9261b78084f75fb584a8b5236cc28c3fd", + "e34c73f1ba984ed27b5ced8ad99a3f673cd109cf", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/elementPosition.html.ini": [ @@ -637031,7 +637964,7 @@ "support" ], "interfaces/css-properties-values-api.idl": [ - "4ba38970e30ac2610e35c266e07f381e3a6b4ec5", + "ee444ebb29d8b5b15c96d259bb8a1f2bdd280d5f", "support" ], "interfaces/css-pseudo.idl": [ @@ -637119,7 +638052,7 @@ "support" ], "interfaces/geometry.idl": [ - "5d5fe4fc2c48305c0ea7e9ce0859af3700d9b14c", + "1b83959465cf5f76bf52d2f8db51426281c07470", "support" ], "interfaces/gyroscope.idl": [ @@ -637159,7 +638092,7 @@ "support" ], "interfaces/longtasks.idl": [ - "21bb1dd117ba7b35965c8cd42fdefded94e101b1", + "333b842f86e5d41f6f1aab8827cf086356c5a782", "support" ], "interfaces/magnetometer.idl": [ @@ -637927,7 +638860,7 @@ "testharness" ], "largest-contentful-paint/cross-origin-image.sub.html": [ - "6e86f13b9ccccf5cecd1ca4bd02b6d0cd2007845", + "88775b861a6b98b1af0fb5163222a1025a6df02e", "testharness" ], "largest-contentful-paint/expanded-image.html": [ @@ -637938,12 +638871,24 @@ "3e083625bdc1812a2c344b8eefaaa10d3b31e623", "testharness" ], + "largest-contentful-paint/loadTime-after-appendChild.html": [ + "fb0eddb220ec660d529a43b112c576bf146a87e8", + "testharness" + ], "largest-contentful-paint/observe-image.html": [ - "4d56cc2d8386e41e220097836755d1936185b41c", + "16b3502eb340cbce179bf440c245cafafe4beea4", "testharness" ], "largest-contentful-paint/observe-text.html": [ - "7dbfbe52f3dadf01524025a80fdcce4b64a60e19", + "2cf1344f2557d5bddd22eaf4ae4fed99d89267a1", + "testharness" + ], + "largest-contentful-paint/repeated-image.html": [ + "94406b20d62b417a690ce6a96d909bb29c791081", + "testharness" + ], + "largest-contentful-paint/supported-lcp-type.html": [ + "25d4eaa0367f45440d286c6c1c14de4458465d7b", "testharness" ], "layout-instability/buffer-layout-shift.html": [ @@ -637963,7 +638908,7 @@ "support" ], "layout-instability/supported-layout-type.html": [ - "9bc537016581274e03b09e677f3fe8c36f3c613e", + "8679a2de7388c5e43a8d784cb3a986d4e23ca568", "testharness" ], "lifecycle/META.yml": [ @@ -638019,7 +638964,11 @@ "testharness" ], "lint.whitelist": [ - "02b1bb0c78f9765257a35aed076701e2f0aa757e", + "c344c3a834444db4be24db1d0132c85a4b14395c", + "support" + ], + "loading/lazyload/common.js": [ + "f5013fc288f58b71a14d01269db14385dd80c8a5", "support" ], "loading/lazyload/iframe-loading-eager.tentative.html": [ @@ -638038,6 +638987,18 @@ "5920eb1882df0a69e0d23c26433bf1b28b9275e9", "testharness" ], + "loading/lazyload/original-base-url-applied-tentative.html": [ + "06f9c257ee9e1b10c626e4a36c826a41506dea89", + "testharness" + ], + "loading/lazyload/original-referrer-policy-applied-tentative.sub.html": [ + "2ffbc821c66a256765f00773afcef5ed94ac5a44", + "testharness" + ], + "loading/lazyload/picture-loading-lazy.tentative.html": [ + "58f8c3a4d5a1e21ce2afd9def3ab9b5870cc272f", + "testharness" + ], "loading/lazyload/resources/image.png": [ "b712825093805d1052b01047b1dbb102f0af8f0f", "support" @@ -638079,7 +639040,7 @@ "testharness" ], "longtask-timing/idlharness.window.js": [ - "0ef7e85440ee1fc99c05ef5be0fc1fe61f818118", + "fd9a3f042f6c9fc3ac605fc0dd4e23edfa5d683b", "testharness" ], "longtask-timing/longtask-attributes.html": [ @@ -650847,7 +651808,7 @@ "support" ], "pointerevents/pointerevent_support.js": [ - "3b37f48889f27ca00ddc1229e6f67ba292722736", + "29d48e03b0a9154ea2fb1fac3467e80b0f74bcc6", "support" ], "pointerevents/pointerevent_suppress_compat_events_on_click.html": [ @@ -650895,7 +651856,7 @@ "testharness" ], "pointerevents/pointerevent_touch-action-keyboard.html": [ - "fdddd3313f498abb89a0958fd302b3949abab355", + "aeff71331dd61ec5e7da5c0e67e241e9e4bdd941", "testharness" ], "pointerevents/pointerevent_touch-action-mouse-manual.html": [ @@ -661575,7 +662536,7 @@ "support" ], "resources/idlharness.js": [ - "cb294c072de2af61b2a4c7c8e4588d05a8186109", + "9be554d96b6e29cb43576f5ac8c1f8209e89fd62", "support" ], "resources/idlharness.js.headers": [ @@ -663859,7 +664820,7 @@ "testharness" ], "service-workers/service-worker/interfaces-window.https.html": [ - "f70cf40931db88350c5fb0f5ebb1fbd10f917dba", + "cc3bdaf11fc7bc174eef555a60263e192efdc539", "testharness" ], "service-workers/service-worker/invalid-blobtype.https.html": [ @@ -665310,6 +666271,18 @@ "4f6d5ae28200e09cba0e25c2769168bc1622a360", "support" ], + "service-workers/service-worker/resources/update-smaller-body-after-update-worker.js": [ + "d43f6b2f5c3d64156ae68970eab3a65511c5c960", + "support" + ], + "service-workers/service-worker/resources/update-smaller-body-before-update-worker.js": [ + "30c8783a70255012e5763403d15467d148b249b0", + "support" + ], + "service-workers/service-worker/resources/update-worker-from-file.py": [ + "7604719c8e0c5dacd216bf96921d825dd0211aea", + "support" + ], "service-workers/service-worker/resources/update-worker.py": [ "446d547ca78277c69795233f0d7c0f64125059d8", "support" @@ -665523,7 +666496,7 @@ "testharness" ], "service-workers/service-worker/update.https.html": [ - "7232419cd0acc33515113363540b332e397025d7", + "f7fae35ed28d7c82c261752c22cd091e473801b0", "testharness" ], "service-workers/service-worker/waiting.https.html": [ @@ -666847,7 +667820,7 @@ "testharness" ], "sms/interceptor.https.html": [ - "b7e8fd53bff98c6c64554149e0cd71c5f1f45686", + "86b21922284f946a16bcd295a87851bee7569f9a", "testharness" ], "sms/resources/iframe.html": [ @@ -666859,7 +667832,7 @@ "testharness" ], "sms/sms_provider.js": [ - "6a54e47b24111f075cb88262a5ffd3dea75a994d", + "4506135551c771d056dc202f06a4c00a7c31089f", "support" ], "sms/sms_receiver.idl": [ @@ -666947,7 +667920,7 @@ "testharness" ], "std-toast/attributes.html": [ - "97bab585c7045350b873db9683ce680452ba4451", + "9b87280b6688b3847401ea7b97ed63f6164bf70a", "testharness" ], "std-toast/closebutton.html": [ @@ -666978,6 +667951,10 @@ "4d6f5038f2d6ffa80ebdfa12798c8c4202b39670", "reftest" ], + "std-toast/reflection.html": [ + "36cbaf652287dbbde5a871b398d313cf70d1b275", + "testharness" + ], "std-toast/resources/helpers.js": [ "256f0c880408c3343d36392f8b4cf64d9bbbfbe6", "support" @@ -666987,7 +667964,7 @@ "testharness" ], "std-toast/styles.html": [ - "98e6723c3c8b16fd71d388ad3947627194c76436", + "1db8620485dc459577649e0c2689194d106dcc51", "testharness" ], "storage/META.yml": [ @@ -667083,11 +668060,11 @@ "support" ], "streams/byte-length-queuing-strategy.any.js": [ - "d47e7cd4faa787933920c48d99a75eea98eaefe7", + "6a61adcdc96cf1f002e70642a87e8e1218e52c06", "testharness" ], "streams/count-queuing-strategy.any.js": [ - "20bb4c1842d258f2de7ff3261c4a93c9d427707e", + "5aae61eda3394e3017d51d241159112f5ef9883f", "testharness" ], "streams/piping/abort.any.js": [ @@ -676479,7 +677456,7 @@ "support" ], "tools/wpt/browser.py": [ - "fe794a59a887a224ad52eb64cac9bd3ca8ea3e83", + "1f0134153169703b897f70849193d4076c64673b", "support" ], "tools/wpt/commands.json": [ @@ -676507,7 +677484,7 @@ "support" ], "tools/wpt/run.py": [ - "4693bb7f11f94cd1747133bc1935fd38f206489d", + "6acc5b8e7400f5726538657239de5710ecea396d", "support" ], "tools/wpt/testfiles.py": [ @@ -676783,7 +677760,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/__init__.py": [ - "8698e816305a694e31447fdd09d6caff5aaa42d3", + "18434e499dc2276d6b23157b854dcc116c664901", "support" ], "tools/wptrunner/wptrunner/browsers/base.py": [ @@ -676818,14 +677795,14 @@ "599ec9f3110f89f5d64effe98130ede930f1fb7c", "support" ], - "tools/wptrunner/wptrunner/browsers/fennec.py": [ - "b1f535a85401a39b6ff58cd631bafcc42ce32e9a", - "support" - ], "tools/wptrunner/wptrunner/browsers/firefox.py": [ "2f58022d238742ac97e4d898830cfe48801718fe", "support" ], + "tools/wptrunner/wptrunner/browsers/firefox_android.py": [ + "d8d5c7f728451a97b4f93fb80bfb6c56a3c2a595", + "support" + ], "tools/wptrunner/wptrunner/browsers/ie.py": [ "78c22b909acf410038ff06769366662ab0c589a0", "support" @@ -680538,6 +681515,14 @@ "32c24570db165422a60a18b767c828dab10c5b9c", "support" ], + "web-nfc/NDEFMessage_constructor.https.html": [ + "73bbb4f8ab5182995fd66459148e3399be1361a4", + "testharness" + ], + "web-nfc/NDEFRecord_constructor.https.html": [ + "81148856473c4823422f59511a5e9de8bbfc4771", + "testharness" + ], "web-nfc/NFCErrorEvent_constructor.https.html": [ "1cc9ce160be46955a9b15485ee4c040605722961", "testharness" @@ -680579,7 +681564,7 @@ "manual" ], "web-nfc/NFCReadingEvent_constructor.https.html": [ - "3c4242943d6c44540676c6e12acb83a51e2d11f0", + "172b0a619c2b27b9c8d0f04101094f7969aa11e9", "testharness" ], "web-nfc/NFCWriter_push.https.html": [ @@ -680611,7 +681596,7 @@ "manual" ], "web-nfc/resources/nfc_help.js": [ - "812d0f071183f53cef973c58fdbbc260e3154296", + "67fd5af381c9fa96c921b9fd6a2d6559562f4066", "support" ], "web-share/META.yml": [ @@ -682555,7 +683540,7 @@ "wdspec" ], "webdriver/tests/perform_actions/pointer_contextmenu.py": [ - "c64c51252a5a4a5be3464fe92e0ced0a81a486a1", + "fda3f18bbc1c9cdcede30abe74f6d4e2f297d48f", "wdspec" ], "webdriver/tests/perform_actions/pointer_dblclick.py": [ @@ -683555,7 +684540,7 @@ "testharness" ], "webrtc/RTCPeerConnection-getStats.https.html": [ - "c2c4e8e37176ce13447c1c8238aa6243f9aea130", + "a42086a3733c2f46d85d8659059d9b18cef9845f", "testharness" ], "webrtc/RTCPeerConnection-getTransceivers.html": [ @@ -683647,7 +684632,7 @@ "testharness" ], "webrtc/RTCPeerConnection-setRemoteDescription-offer.html": [ - "cae62b24b6c180c06be87dd48ffac364427624db", + "2315c12f6c846dccadb0edf0cd9e5220564aa1d6", "testharness" ], "webrtc/RTCPeerConnection-setRemoteDescription-pranswer.html": [ @@ -688399,7 +689384,7 @@ "support" ], "webxr/resources/webxr_test_asserts.js": [ - "36524211d01980283124c0e2c7fcefd67a7b8b04", + "24b5274bc23d4e601e94eebd93968d9c30942b08", "support" ], "webxr/resources/webxr_test_constants.js": [ @@ -688407,7 +689392,7 @@ "support" ], "webxr/resources/webxr_util.js": [ - "baf1d66b00daa98c07b9bfc91436018d12eef097", + "d75e5c7bd2e26cf79794a01b8bed637c165926e6", "support" ], "webxr/webGLCanvasContext_create_xrcompatible.https.html": [ @@ -688575,11 +689560,11 @@ "testharness" ], "webxr/xrWebGLLayer_framebuffer.https.html": [ - "7c4ff17c2547995afbf561850faaf92b6aa5e56f", + "ba6b7dc0b922ae45aa714de8d3ca6f4ffbaf414c", "testharness" ], "webxr/xrWebGLLayer_viewports.https.html": [ - "8cfccff3c01dedb41db4f26563824ce0cdb65ad3", + "94a23dcdb427298722a989987a02f35a8d98d055", "testharness" ], "workers/META.yml": [ @@ -690791,7 +691776,7 @@ "testharness" ], "xhr/getallresponseheaders.htm": [ - "72e27a5947c1e00ce1edeedf21a9db83c42832fa", + "759d6b68a1f337cac59aed0e9a800e433b68d1b6", "testharness" ], "xhr/getresponseheader-case-insensitive.htm": [ @@ -691283,7 +692268,7 @@ "support" ], "xhr/resources/headers.asis": [ - "d25fe52efeb5427b126c3b375b4bb00090836382", + "69273ac87fea6974688d610910899e077a377b0f", "support" ], "xhr/resources/headers.py": [ diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-001.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-001.html.ini new file mode 100644 index 00000000000..60df723fea1 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-001.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-002.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-002.html.ini new file mode 100644 index 00000000000..abd0c320782 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-002.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-003.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-003.html.ini new file mode 100644 index 00000000000..89e35aacba2 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-003.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-003.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-004.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-004.html.ini new file mode 100644 index 00000000000..ee3821915a7 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-004.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-005.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-005.html.ini new file mode 100644 index 00000000000..565ab24b816 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-005.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-005.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-006.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-006.html.ini new file mode 100644 index 00000000000..4318f34445a --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-tab-006.html.ini @@ -0,0 +1,2 @@ +[break-spaces-tab-006.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-003.html.ini b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-003.html.ini new file mode 100644 index 00000000000..1e1ad3d26d9 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-003.html.ini @@ -0,0 +1,2 @@ +[pre-wrap-tab-003.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-004.html.ini b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-004.html.ini new file mode 100644 index 00000000000..be41d949134 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-004.html.ini @@ -0,0 +1,2 @@ +[pre-wrap-tab-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-005.html.ini b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-005.html.ini new file mode 100644 index 00000000000..94cb1f1692c --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-005.html.ini @@ -0,0 +1,2 @@ +[pre-wrap-tab-005.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-006.html.ini b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-006.html.ini new file mode 100644 index 00000000000..c19ca42771b --- /dev/null +++ b/tests/wpt/metadata/css/css-text/white-space/pre-wrap-tab-006.html.ini @@ -0,0 +1,2 @@ +[pre-wrap-tab-006.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini new file mode 100644 index 00000000000..60c6c1751e9 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini @@ -0,0 +1,64 @@ +[perspective-origin-computed.html] + [Property perspective-origin value '40px top' computes to '40px 0px'] + expected: FAIL + + [Property perspective-origin value 'right 30% top -60px' computes to '140px -60px'] + expected: FAIL + + [Property perspective-origin value '10%' computes to '20px 150px'] + expected: FAIL + + [Property perspective-origin value '30px center' computes to '30px 150px'] + expected: FAIL + + [Property perspective-origin value 'center bottom' computes to '100px 300px'] + expected: FAIL + + [Property perspective-origin value 'left 10px' computes to '0px 10px'] + expected: FAIL + + [Property perspective-origin value '20% 30px' computes to '40px 30px'] + expected: FAIL + + [Property perspective-origin value 'top' computes to '100px 0px'] + expected: FAIL + + [Property perspective-origin value 'center' computes to '100px 150px'] + expected: FAIL + + [Property perspective-origin value 'center 50px' computes to '100px 50px'] + expected: FAIL + + [Property perspective-origin value '10% center' computes to '20px 150px'] + expected: FAIL + + [Property perspective-origin value 'left' computes to '0px 150px'] + expected: FAIL + + [Property perspective-origin value 'bottom 10% right 20%' computes to '160px 270px'] + expected: FAIL + + [Property perspective-origin value 'center left' computes to '0px 150px'] + expected: FAIL + + [Property perspective-origin value 'right 20px bottom 30px' computes to '180px 270px'] + expected: FAIL + + [Property perspective-origin value 'right calc(10px - 0.5em) top calc(10px - 0.5em)' computes to '210px -10px'] + expected: FAIL + + [Property perspective-origin value 'left bottom' computes to '0px 300px'] + expected: FAIL + + [Property perspective-origin value 'bottom right' computes to '200px 300px'] + expected: FAIL + + [Property perspective-origin value 'right 40%' computes to '200px 120px'] + expected: FAIL + + [Property perspective-origin value 'left center' computes to '0px 150px'] + expected: FAIL + + [Property perspective-origin value 'center center' computes to '100px 150px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini new file mode 100644 index 00000000000..04aff3c9216 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini @@ -0,0 +1,67 @@ +[transform-origin-computed.html] + [Property transform-origin value 'center bottom' computes to '100px 300px'] + expected: FAIL + + [Property transform-origin value 'center top' computes to '100px 0px'] + expected: FAIL + + [Property transform-origin value 'left 10px' computes to '0px 10px'] + expected: FAIL + + [Property transform-origin value 'right 40%' computes to '200px 120px'] + expected: FAIL + + [Property transform-origin value '10% center' computes to '20px 150px'] + expected: FAIL + + [Property transform-origin value '40px top' computes to '40px 0px'] + expected: FAIL + + [Property transform-origin value 'left bottom' computes to '0px 300px'] + expected: FAIL + + [Property transform-origin value '-1px bottom 5px' computes to '-1px 300px 5px'] + expected: FAIL + + [Property transform-origin value '10%' computes to '20px 150px'] + expected: FAIL + + [Property transform-origin value 'top' computes to '100px 0px'] + expected: FAIL + + [Property transform-origin value 'bottom right' computes to '200px 300px'] + expected: FAIL + + [Property transform-origin value 'right bottom 7px' computes to '200px 300px 7px'] + expected: FAIL + + [Property transform-origin value '20% 30px' computes to '40px 30px'] + expected: FAIL + + [Property transform-origin value 'calc(-100% + 10px - 0.5em) calc(10px - 0.5em) calc(10px - 0.5em)' computes to '-210px -10px -10px'] + expected: FAIL + + [Property transform-origin value 'center center' computes to '100px 150px'] + expected: FAIL + + [Property transform-origin value 'center 50px' computes to '100px 50px'] + expected: FAIL + + [Property transform-origin value 'left center' computes to '0px 150px'] + expected: FAIL + + [Property transform-origin value 'center left' computes to '0px 150px'] + expected: FAIL + + [Property transform-origin value 'center' computes to '100px 150px'] + expected: FAIL + + [Property transform-origin value '30px center' computes to '30px 150px'] + expected: FAIL + + [Property transform-origin value 'left center 6px' computes to '0px 150px 6px'] + expected: FAIL + + [Property transform-origin value 'left' computes to '0px 150px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini index 24c66214652..130c0181e43 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini @@ -1079,6 +1079,3 @@ [text-indent percentage(%) / values] expected: FAIL - [padding-bottom length(ex) / values] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/scrollLeftTop.html.ini b/tests/wpt/metadata/css/cssom-view/scrollLeftTop.html.ini new file mode 100644 index 00000000000..384599d83f8 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/scrollLeftTop.html.ini @@ -0,0 +1,19 @@ +[scrollLeftTop.html] + [writing-mode:vertical-lr; direction:ltr] + expected: FAIL + + [writing-mode:vertical-rl; direction:rtl] + expected: FAIL + + [writing-mode:vertical-lr; direction:rtl] + expected: FAIL + + [writing-mode:vertical-rl; direction:ltr] + expected: FAIL + + [writing-mode:horizontal-tb; direction:ltr] + expected: FAIL + + [writing-mode:horizontal-tb; direction:rtl] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom/interfaces.html.ini b/tests/wpt/metadata/css/cssom/interfaces.html.ini index fd3f3735070..e51b8c75e85 100644 --- a/tests/wpt/metadata/css/cssom/interfaces.html.ini +++ b/tests/wpt/metadata/css/cssom/interfaces.html.ini @@ -1296,3 +1296,6 @@ [CSSStyleSheet interface: calling addRule(DOMString, DOMString, unsigned long) on sheet with too few arguments must throw TypeError] expected: FAIL + [SVGStyleElement interface: attribute sheet] + 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 228cc1d76a4..66a90b0d890 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -315,12 +315,18 @@ [ + diff --git a/tests/wpt/web-platform-tests/loading/lazyload/original-referrer-policy-applied-tentative.sub.html b/tests/wpt/web-platform-tests/loading/lazyload/original-referrer-policy-applied-tentative.sub.html new file mode 100644 index 00000000000..2ffbc821c66 --- /dev/null +++ b/tests/wpt/web-platform-tests/loading/lazyload/original-referrer-policy-applied-tentative.sub.html @@ -0,0 +1,41 @@ + + + Deferred iframes and images with loading='lazy' use the original referrer-policy specified at the parse time + + + + + + + + + + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/loading/lazyload/picture-loading-lazy.tentative.html b/tests/wpt/web-platform-tests/loading/lazyload/picture-loading-lazy.tentative.html new file mode 100644 index 00000000000..58f8c3a4d5a --- /dev/null +++ b/tests/wpt/web-platform-tests/loading/lazyload/picture-loading-lazy.tentative.html @@ -0,0 +1,68 @@ + + + Images with loading='lazy' in picture elements load when near the viewport + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/longtask-timing/idlharness.window.js b/tests/wpt/web-platform-tests/longtask-timing/idlharness.window.js index 0ef7e85440e..fd9a3f042f6 100644 --- a/tests/wpt/web-platform-tests/longtask-timing/idlharness.window.js +++ b/tests/wpt/web-platform-tests/longtask-timing/idlharness.window.js @@ -7,8 +7,10 @@ idl_test( ['longtasks'], - ['performance-timeline'], + ['performance-timeline', 'hr-time'], (idl_array, t) => new Promise((resolve, reject) => { + + const longTask = () => { const begin = self.performance.now(); while (self.performance.now() < begin + 100); diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js b/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js index 3b37f48889f..29d48e03b0a 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js @@ -272,7 +272,7 @@ function touchScrollInTarget(target, direction) { throw("scroll direction '" + direction + "' is not expected, direction should be 'down', 'up', 'left' or 'right'"); } return new test_driver.Actions() - .addPointer("pointer1", "touch") + .addPointer("touchPointer1", "touch") .pointerMove(0, 0, {origin: target}) .pointerDown() .pointerMove(x_delta, y_delta, {origin: target}) diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-keyboard.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-keyboard.html index fdddd3313f4..aeff71331dd 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-keyboard.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-keyboard.html @@ -121,6 +121,7 @@ // Inject keyboard scroll inputs. actions_promise = new test_driver.Actions() + .addPointer("mousePointer1", "mouse") .pointerMove(0, 0, {origin: target0}) .pointerDown() .pointerUp() diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js index cb294c072de..9be554d96b6 100644 --- a/tests/wpt/web-platform-tests/resources/idlharness.js +++ b/tests/wpt/web-platform-tests/resources/idlharness.js @@ -193,6 +193,12 @@ self.IdlArray = function() this["implements"] = {}; this["includes"] = {}; this["inheritance"] = {}; + + /** + * Record of skipped IDL items, in case we later realize that they are a + * dependency (to retroactively process them). + */ + this.skipped = new Map(); }; IdlArray.prototype.add_idls = function(raw_idls, options) @@ -244,22 +250,41 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options) all_deps.add(k); this.includes[k].forEach(v => all_deps.add(v)); }); - this.partials.map(p => p.name).forEach(v => all_deps.add(v)); - // Add the attribute idlTypes of all the nested members of all tested idls. - for (const obj of [this.members, this.partials]) { - const tested = Object.values(obj).filter(m => !m.untested && m.members); - for (const parsed of tested) { - for (const attr of Object.values(parsed.members).filter(m => !m.untested && m.type === 'attribute')) { - all_deps.add(attr.idlType.idlType); + this.partials.forEach(p => all_deps.add(p.name)); + + // Add the attribute idlTypes of all the nested members of idls. + const attrDeps = parsedIdls => { + return parsedIdls.reduce((deps, parsed) => { + if (parsed.members) { + for (const attr of Object.values(parsed.members).filter(m => m.type === 'attribute')) { + let attrType = attr.idlType; + // Check for generic members (e.g. FrozenArray) + if (attrType.generic) { + deps.add(attrType.generic); + attrType = attrType.idlType; + } + deps.add(attrType.idlType); + } } - } - } + if (parsed.base in this.members) { + attrDeps([this.members[parsed.base]]).forEach(dep => deps.add(dep)); + } + return deps; + }, new Set()); + }; + + const testedMembers = Object.values(this.members).filter(m => !m.untested && m.members); + attrDeps(testedMembers).forEach(dep => all_deps.add(dep)); + + const testedPartials = this.partials.filter(m => !m.untested && m.members); + attrDeps(testedPartials).forEach(dep => all_deps.add(dep)); + if (options && options.except && options.only) { throw new IdlHarnessError("The only and except options can't be used together."); } - const should_skip = name => { + const defined_or_untested = name => { // NOTE: Deps are untested, so we're lenient, and skip re-encountered definitions. // e.g. for 'idl' containing A:B, B:C, C:D // array.add_idls(idl, {only: ['A','B']}). @@ -268,9 +293,7 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options) return name in this.members || this.is_excluded_by_options(name, options); } - // Record of skipped items, in case we later determine they are a dependency. // Maps name -> [parsed_idl, ...] - const skipped = new Map(); const process = function(parsed) { var deps = []; if (parsed.name) { @@ -284,13 +307,15 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options) } deps = deps.filter(function(name) { - if (!name || should_skip(name) || !all_deps.has(name)) { + if (!name + || name === parsed.name && defined_or_untested(name) + || !all_deps.has(name)) { // Flag as skipped, if it's not already processed, so we can // come back to it later if we retrospectively call it a dep. if (name && !(name in this.members)) { - skipped.has(name) - ? skipped.get(name).push(parsed) - : skipped.set(name, [parsed]); + this.skipped.has(name) + ? this.skipped.get(name).push(parsed) + : this.skipped.set(name, [parsed]); } return false; } @@ -328,9 +353,9 @@ IdlArray.prototype.add_dependency_idls = function(raw_idls, options) } for (const deferred of follow_up) { - if (skipped.has(deferred)) { - const next = skipped.get(deferred); - skipped.delete(deferred); + if (this.skipped.has(deferred)) { + const next = this.skipped.get(deferred); + this.skipped.delete(deferred); next.forEach(process); } } diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/interfaces-window.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/interfaces-window.https.html index f70cf40931d..cc3bdaf11fc 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/interfaces-window.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/interfaces-window.https.html @@ -10,8 +10,8 @@ 'use strict'; promise_test(async (t) => { - const srcs = ['dom', 'html', 'service-workers', 'dedicated-workers']; - const [dom, html, serviceWorkerIdl, dedicated] = await Promise.all( + const srcs = ['dom', 'html', 'service-workers']; + const [dom, html, serviceWorkerIdl] = await Promise.all( srcs.map(i => fetch(`/interfaces/${i}.idl`).then(r => r.text()))); var idlArray = new IdlArray(); @@ -29,7 +29,6 @@ promise_test(async (t) => { 'Cache', 'CacheStorage', ]}); - idlArray.add_dependency_idls(dedicated); idlArray.add_dependency_idls(dom); idlArray.add_dependency_idls(html); idlArray.add_objects({ diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-after-update-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-after-update-worker.js new file mode 100644 index 00000000000..d43f6b2f5c3 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-after-update-worker.js @@ -0,0 +1 @@ +// Hello world! diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-before-update-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-before-update-worker.js new file mode 100644 index 00000000000..30c8783a702 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-smaller-body-before-update-worker.js @@ -0,0 +1,2 @@ +// Hello world! +// **with extra body** diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker-from-file.py b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker-from-file.py new file mode 100644 index 00000000000..7604719c8e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker-from-file.py @@ -0,0 +1,31 @@ +import os + +def serve_js_from_file(request, response, filename): + body = '' + path = os.path.join(os.path.dirname(__file__), filename) + with open(path, 'rb') as f: + body = f.read() + return ( + [ + ('Cache-Control', 'no-cache, must-revalidate'), + ('Pragma', 'no-cache'), + ('Content-Type', 'application/javascript') + ], body) + +def main(request, response): + key = request.GET["Key"] + + visited_count = request.server.stash.take(key) + if visited_count is None: + visited_count = 0 + + # Keep how many times the test requested this resource. + visited_count += 1 + request.server.stash.put(key, visited_count) + + # Serve a file based on how many times it's requested. + if visited_count == 1: + return serve_js_from_file(request, response, request.GET["First"]) + if visited_count == 2: + return serve_js_from_file(request, response, request.GET["Second"]) + raise "Unknown state" diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html index 7232419cd0a..f7fae35ed28 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html @@ -10,11 +10,12 @@ 'use strict'; const SCOPE = 'resources/simple.txt'; -const WORKER_URL_BASE = 'resources/update-worker.py'; -async function prepare_ready_registration(t, mode) { +// Create a service worker (update-worker.py). The response to update() will be +// different based on the mode. +async function prepare_ready_registration_with_mode(t, mode) { const key = token(); - const worker_url = `${WORKER_URL_BASE}?Key=${key}&Mode=${mode}`; + const worker_url = `resources/update-worker.py?Key=${key}&Mode=${mode}`; const expected_url = normalizeURL(worker_url); const registration = await service_worker_unregister_and_register( t, worker_url, SCOPE); @@ -28,6 +29,27 @@ async function prepare_ready_registration(t, mode) { return [registration, expected_url]; } +// Create a service worker (update-worker-from-file.py), which is initially +// |initial_worker| and |updated_worker| later. +async function prepare_ready_registration_with_file( + t, initial_worker, updated_worker) { + const key = token(); + const worker_url = `resources/update-worker-from-file.py?` + + `First=${initial_worker}&Second=${updated_worker}&Key=${key}`; + const expected_url = normalizeURL(worker_url); + + const registration = await service_worker_unregister_and_register( + t, worker_url, SCOPE); + await wait_for_state(t, registration.installing, 'activated'); + assert_equals(registration.installing, null, + 'prepare_ready: installing'); + assert_equals(registration.waiting, null, + 'prepare_ready: waiting'); + assert_equals(registration.active.scriptURL, expected_url, + 'prepare_ready: active'); + return [registration, expected_url]; +} + function assert_installing_and_active(registration, expected_url) { assert_equals(registration.installing.scriptURL, expected_url, 'assert_installing_and_active: installing'); @@ -57,7 +79,7 @@ function assert_active_only(registration, expected_url) { promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'normal'); + await prepare_ready_registration_with_mode(t, 'normal'); t.add_cleanup(() => registration.unregister()); await Promise.all([registration.update(), wait_for_update(t, registration)]); @@ -72,34 +94,34 @@ promise_test(async t => { promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'bad_mime_type'); + await prepare_ready_registration_with_mode(t, 'bad_mime_type'); t.add_cleanup(() => registration.unregister()); - promise_rejects(t, 'SecurityError', registration.update()); + await promise_rejects(t, 'SecurityError', registration.update()); assert_active_only(registration, expected_url); }, 'update() should fail when mime type is invalid.'); promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'redirect'); + await prepare_ready_registration_with_mode(t, 'redirect'); t.add_cleanup(() => registration.unregister()); - promise_rejects(t, new TypeError(), registration.update()) + await promise_rejects(t, new TypeError(), registration.update()); assert_active_only(registration, expected_url); }, 'update() should fail when a response for the main script is redirect.'); promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'syntax_error'); + await prepare_ready_registration_with_mode(t, 'syntax_error'); t.add_cleanup(() => registration.unregister()); - promise_rejects(t, new TypeError(), registration.update()); + await promise_rejects(t, new TypeError(), registration.update()); assert_active_only(registration, expected_url); }, 'update() should fail when a new script contains a syntax error.'); promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'throw_install'); + await prepare_ready_registration_with_mode(t, 'throw_install'); t.add_cleanup(() => registration.unregister()); await Promise.all([registration.update(), wait_for_update(t, registration)]); @@ -108,7 +130,7 @@ promise_test(async t => { promise_test(async t => { const [registration, expected_url] = - await prepare_ready_registration(t, 'normal'); + await prepare_ready_registration_with_mode(t, 'normal'); t.add_cleanup(() => registration.unregister()); // We need to hold a client alive so that unregister() below doesn't remove @@ -117,8 +139,26 @@ promise_test(async t => { const frame = await with_iframe(SCOPE); t.add_cleanup(() => frame.remove()); - promise_rejects( + await promise_rejects( t, new TypeError(), Promise.all([registration.unregister(), registration.update()])); -}, 'update() should fail when the pending uninstall flag is set.') +}, 'update() should fail when the pending uninstall flag is set.'); + +promise_test(async t => { + const [registration, expected_url] = + await prepare_ready_registration_with_file( + t, + 'update-smaller-body-before-update-worker.js', + 'update-smaller-body-after-update-worker.js'); + t.add_cleanup(() => registration.unregister()); + + await Promise.all([registration.update(), wait_for_update(t, registration)]); + assert_installing_and_active(registration, expected_url); + + await wait_for_state(t, registration.installing, 'installed'); + assert_waiting_and_active(registration, expected_url); + + await wait_for_state(t, registration.waiting, 'activated'); + assert_active_only(registration, expected_url); +}, 'update() should succeed when the script shrinks.'); diff --git a/tests/wpt/web-platform-tests/sms/interceptor.https.html b/tests/wpt/web-platform-tests/sms/interceptor.https.html index b7e8fd53bff..86b21922284 100644 --- a/tests/wpt/web-platform-tests/sms/interceptor.https.html +++ b/tests/wpt/web-platform-tests/sms/interceptor.https.html @@ -165,4 +165,21 @@ promise_test(async t => { let sms = await navigator.sms.receive({timeout: undefined}); assert_equals(sms.content, "hello"); }, 'Should use default value for timeout (undefined)'); + +promise_test(async t => { + await expect(receive).andReturn((timeout) => { + return Promise.resolve({ + status: Status.kCancelled, + }); + }); + + try { + await navigator.sms.receive(); + assert_unreached('Expected CancelledError to be thrown.'); + } catch (error) { + assert_equals(error.name, "AbortError"); + assert_equals(error.message, "SMSReceiver was aborted."); + } +}, 'Deal with cancelled requests'); + diff --git a/tests/wpt/web-platform-tests/sms/sms_provider.js b/tests/wpt/web-platform-tests/sms/sms_provider.js index 6a54e47b241..4506135551c 100644 --- a/tests/wpt/web-platform-tests/sms/sms_provider.js +++ b/tests/wpt/web-platform-tests/sms/sms_provider.js @@ -73,6 +73,7 @@ function intercept() { Status.kSuccess = blink.mojom.SmsStatus.kSuccess; Status.kTimeout = blink.mojom.SmsStatus.kTimeout; + Status.kCancelled = blink.mojom.SmsStatus.kCancelled; return smsReceiverImpl; } diff --git a/tests/wpt/web-platform-tests/std-toast/attributes.html b/tests/wpt/web-platform-tests/std-toast/attributes.html index 97bab585c70..9b87280b668 100644 --- a/tests/wpt/web-platform-tests/std-toast/attributes.html +++ b/tests/wpt/web-platform-tests/std-toast/attributes.html @@ -100,11 +100,6 @@ testToastElement((toast) => { assertToastNotShown(toast); }, 'setting `toast.open` to some falsy value on a shown toast will hide the toast'); -testToastElement((toast) => { - toast.toggleAttribute('open'); - assert_true(toast.open); -}, 'toggling `open` on a hidden toast sets `toast.open` to true'); - testToastElementAsync((t, toast) => { toast.toggleAttribute('open', true); @@ -115,7 +110,18 @@ testToastElementAsync((t, toast) => { }, 'toggling open attribute does not start timeout'); testToastElement((toast) => { - const permitted_properties = ['constructor', 'show', 'hide', 'toggle', 'open', 'action', 'closeButton']; + const permitted_properties = ['constructor', 'show', 'hide', 'toggle', 'open', 'action', 'closeButton', 'type']; assert_array_equals(permitted_properties.sort(), Object.getOwnPropertyNames(toast.__proto__).sort()); }, 'toast only exposes certain properties'); + +testToastElement((toast) => { + assert_false(toast.hasAttribute('type')); + assert_equals(toast.type, ''); +}, 'default type is empty string without attribute present'); + +testToastElement((toast) => { + toast.type = 'info'; + assert_equals(toast.type, ''); + assert_equals(toast.getAttribute('type'), 'info'); +}, 'info was briefly a valid type, but no longer is, so it will return empty string'); diff --git a/tests/wpt/web-platform-tests/std-toast/reflection.html b/tests/wpt/web-platform-tests/std-toast/reflection.html new file mode 100644 index 00000000000..36cbaf65228 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/reflection.html @@ -0,0 +1,24 @@ + +HTML5 reflection tests: std-toast + + +
+ + + + + + + + diff --git a/tests/wpt/web-platform-tests/std-toast/styles.html b/tests/wpt/web-platform-tests/std-toast/styles.html index 98e6723c3c8..1db8620485d 100644 --- a/tests/wpt/web-platform-tests/std-toast/styles.html +++ b/tests/wpt/web-platform-tests/std-toast/styles.html @@ -61,4 +61,40 @@ testToastElement((toast) => { assertComputedStyleMapsEqual(toast, mockToast); }, 'the computed style map of a closed unstyled toast is the same as a span given toast defaults'); - \ No newline at end of file + +testToastElement((toast) => { + toast.type = 'error'; + + const styles = window.getComputedStyle(toast); + assert_equals(styles.borderColor, 'rgb(255, 0, 0)'); +}, 'changing type to error changes the border color to red'); + +testToastElement((toast) => { + toast.type = 'warning'; + + const styles = window.getComputedStyle(toast); + assert_equals(styles.borderColor, 'rgb(255, 165, 0)'); +}, 'changing type to warning changes the border color to orange'); + +testToastElement((toast) => { + toast.type = 'success'; + + const styles = window.getComputedStyle(toast); + assert_equals(styles.borderColor, 'rgb(0, 128, 0)'); +}, 'changing type to success changes the border color to green'); + +testToastElement((toast) => { + const styler = document.createElement('style'); + styler.append(` + [type=error i] { + border-color: pink; + } + `); + document.querySelector('main').appendChild(styler); + + toast.type = 'error'; + + const styles = window.getComputedStyle(toast); + assert_equals(styles.borderColor, 'rgb(255, 192, 203)'); +}, 'outside styles can set type styles'); + diff --git a/tests/wpt/web-platform-tests/streams/byte-length-queuing-strategy.any.js b/tests/wpt/web-platform-tests/streams/byte-length-queuing-strategy.any.js index d47e7cd4faa..6a61adcdc96 100644 --- a/tests/wpt/web-platform-tests/streams/byte-length-queuing-strategy.any.js +++ b/tests/wpt/web-platform-tests/streams/byte-length-queuing-strategy.any.js @@ -107,3 +107,26 @@ test(() => { 'ByteLengthQueuingStrategy.name must be "ByteLengthQueuingStrategy"'); }, 'ByteLengthQueuingStrategy.name is correct'); + +class SubClass extends ByteLengthQueuingStrategy { + size() { + return 2; + } + + subClassMethod() { + return true; + } +} + +test(() => { + + const sc = new SubClass({highWaterMark: 77}); + assert_equals(sc.constructor.name, 'SubClass', + 'constructor.name should be correct'); + assert_equals(sc.highWaterMark, 77, + 'highWaterMark should come from the parent class'); + assert_equals(sc.size(), 2, + 'size() on the subclass should override the parent'); + assert_true(sc.subClassMethod(), 'subClassMethod() should work'); + +}, 'subclassing ByteLengthQueuingStrategy should work correctly'); diff --git a/tests/wpt/web-platform-tests/streams/count-queuing-strategy.any.js b/tests/wpt/web-platform-tests/streams/count-queuing-strategy.any.js index 20bb4c1842d..5aae61eda33 100644 --- a/tests/wpt/web-platform-tests/streams/count-queuing-strategy.any.js +++ b/tests/wpt/web-platform-tests/streams/count-queuing-strategy.any.js @@ -106,3 +106,26 @@ test(() => { 'CountQueuingStrategy.name must be "CountQueuingStrategy"'); }, 'CountQueuingStrategy.name is correct'); + +class SubClass extends CountQueuingStrategy { + size() { + return 2; + } + + subClassMethod() { + return true; + } +} + +test(() => { + + const sc = new SubClass({highWaterMark: 77}); + assert_equals(sc.constructor.name, 'SubClass', + 'constructor.name should be correct'); + assert_equals(sc.highWaterMark, 77, + 'highWaterMark should come from the parent class'); + assert_equals(sc.size(), 2, + 'size() on the subclass should override the parent'); + assert_true(sc.subClassMethod(), 'subClassMethod() should work'); + +}, 'subclassing CountQueuingStrategy should work correctly'); diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index fe794a59a88..1f013415316 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -408,10 +408,10 @@ class Firefox(Browser): return m.group(1) -class Fennec(Browser): - """Fennec-specific interface.""" +class FirefoxAndroid(Browser): + """Android-specific Firefox interface.""" - product = "fennec" + product = "firefox_android" requirements = "requirements_firefox.txt" def install(self, dest=None, channel=None): diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index 4693bb7f11f..6acc5b8e740 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -251,9 +251,9 @@ Consider installing certutil via your OS package manager or directly.""") kwargs["extra_prefs"].append("media.navigator.streams.fake=true") -class Fennec(BrowserSetup): - name = "fennec" - browser_cls = browser.Fennec +class FirefoxAndroid(BrowserSetup): + name = "firefox_android" + browser_cls = browser.FirefoxAndroid def setup_kwargs(self, kwargs): pass @@ -510,8 +510,8 @@ class Epiphany(BrowserSetup): product_setup = { - "fennec": Fennec, "firefox": Firefox, + "firefox_android": FirefoxAndroid, "chrome": Chrome, "chrome_android": ChromeAndroid, "chrome_ios": ChromeiOS, diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py index 8698e816305..18434e499dc 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py @@ -28,8 +28,8 @@ product_list = ["chrome", "edgechromium", "edge", "edge_webdriver", - "fennec", "firefox", + "firefox_android", "ie", "safari", "sauce", diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/fennec.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox_android.py similarity index 94% rename from tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/fennec.py rename to tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox_android.py index b1f535a8540..d8d5c7f7284 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/fennec.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox_android.py @@ -20,9 +20,9 @@ from .firefox import (get_timeout_multiplier, # noqa: F401 FirefoxBrowser) # noqa: F401 -__wptrunner__ = {"product": "fennec", +__wptrunner__ = {"product": "firefox_android", "check_args": "check_args", - "browser": "FennecBrowser", + "browser": "FirefoxAndroidBrowser", "executor": {"testharness": "MarionetteTestharnessExecutor", "reftest": "MarionetteRefTestExecutor"}, "browser_kwargs": "browser_kwargs", @@ -100,31 +100,19 @@ def write_hosts_file(config, device): os.remove(hosts_path) -class FennecBrowser(FirefoxBrowser): +class FirefoxAndroidBrowser(FirefoxBrowser): init_timeout = 300 shutdown_timeout = 60 - def __init__(self, logger, prefs_root, test_type, package_name=None, + def __init__(self, logger, prefs_root, test_type, package_name="org.mozilla.geckoview.test", device_serial="emulator-5444", **kwargs): FirefoxBrowser.__init__(self, logger, None, prefs_root, test_type, **kwargs) - self._package_name = package_name + self.package_name = package_name self.device_serial = device_serial self.tests_root = kwargs["tests_root"] self.install_fonts = kwargs["install_fonts"] self.stackwalk_binary = kwargs["stackwalk_binary"] - @property - def package_name(self): - """ - Name of app to run on emulator. - """ - if self._package_name is None: - self._package_name = "org.mozilla.fennec" - user = os.getenv("USER") - if user: - self._package_name += "_" + user - return self._package_name - def start(self, **kwargs): if self.marionette_port is None: self.marionette_port = get_free_port() diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html new file mode 100644 index 00000000000..73bbb4f8ab5 --- /dev/null +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html @@ -0,0 +1,31 @@ + +NDEFMessage constructor + + + + + diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html new file mode 100644 index 00000000000..81148856473 --- /dev/null +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -0,0 +1,71 @@ + +NDEFRecord constructor + + + + + 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 3c4242943d6..172b0a619c2 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 @@ -11,12 +11,30 @@ assert_throws(new TypeError, () => new NFCReadingEvent('message')); }, 'NFCReadingEvent constructor without init dict'); + test(() => { + const message = createMessage([createJsonRecord(test_json_data)]); + const event = new NFCReadingEvent('type', {serialNumber: null, message: message}); + assert_equals(event.serialNumber, '', 'serialNumber'); + }, 'NFCReadingEvent constructor with null serialNumber'); + + test(() => { + const message = createMessage([createJsonRecord(test_json_data)]); + const event = new NFCReadingEvent('type', {message: message}); + assert_equals(event.serialNumber, '', 'serialNumber'); + }, 'NFCReadingEvent constructor with serialNumber not present'); + + test(() => { + const event = new NFCReadingEvent('type', {serialNumber: '', message: null}); + assert_equals(0, event.message.records.length, 'no records'); + assert_equals(0, event.message.url.length, 'empty url'); + }, 'NFCReadingEvent constructor with null message'); + test(() => { const message = createMessage([createJsonRecord(test_json_data)]); const event = new NFCReadingEvent('type', {serialNumber: '', message: message}); assert_equals(event.type, 'type', 'type'); assert_equals(event.serialNumber, '', 'serialNumber'); - assertWebNDEFMessagesEqual(event.message, message, 'message'); + assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message), 'message'); }, 'NFCReadingEvent constructor with valid parameters'); diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc_help.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc_help.js index 812d0f07118..67fd5af381c 100644 --- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc_help.js +++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc_help.js @@ -6,6 +6,7 @@ const test_number_data = 42; const test_json_data = {level: 1, score: 100, label: 'Game'}; const test_url_data = "https://w3c.github.io/web-nfc"; const test_buffer_data = new ArrayBuffer(test_text_byte_array.length); +const test_buffer_view = new Uint8Array(test_buffer_data).set(test_text_byte_array); function noop() {}; @@ -55,14 +56,14 @@ function assertWebNDEFMessagesEqual(a, b) { let recordB = b.records[i]; assert_equals(recordA.recordType, recordB.recordType); assert_equals(recordA.mediaType, recordB.mediaType); - if (recordA.data instanceof ArrayBuffer) { - assert_array_equals(new Uint8Array(recordA.data), - new Uint8Array(recordB.data)); - } else if (typeof recordA.data === 'object') { - assert_object_equals(recordA.data, recordB.data); - } else if (typeof recordA.data === 'number' - || typeof recordA.data === 'string') { - assert_true(recordA.data == recordB.data); + if (recordA.data() instanceof ArrayBuffer) { + assert_array_equals(new Uint8Array(recordA.data()), + new Uint8Array(recordB.data())); + } else if (typeof recordA.data() === 'object') { + assert_object_equals(recordA.data(), recordB.data()); + } else if (typeof recordA.data() === 'number' + || typeof recordA.data() === 'string') { + assert_true(recordA.data() == recordB.data()); } } } diff --git a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/pointer_contextmenu.py b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/pointer_contextmenu.py index c64c51252a5..fda3f18bbc1 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/pointer_contextmenu.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/pointer_contextmenu.py @@ -18,7 +18,7 @@ def test_control_click(session, test_actions_page, key_chain, mouse_chain, modif outer = session.find.css("#outer", all=False) mouse_chain.click(element=outer) session.actions.perform([key_chain.dict, mouse_chain.dict]) - if os == "windows": + if os != "mac": expected = [ {"type": "mousemove"}, {"type": "mousedown"}, diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html index c2c4e8e3717..a42086a3733 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-getStats.https.html @@ -172,14 +172,14 @@ - All RTCOutboundRTPStreamStats objects corresponding to selector. - All stats objects referenced directly or indirectly by the RTCOutboundRTPStreamStats objects added. - */ + */ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); let [track, mediaStream] = await getTrackFromUserMedia('audio'); pc.addTrack(track, mediaStream); - exchangeIceCandidates(pc, pc2); + coupleIceCandidates(pc, pc2); await doSignalingHandshake(pc, pc2); await listenToIceConnected(pc); const stats = await pc.getStats(track); @@ -202,11 +202,16 @@ let [track, mediaStream] = await getTrackFromUserMedia('audio'); pc.addTrack(track, mediaStream); - exchangeIceCandidates(pc, pc2); + coupleIceCandidates(pc, pc2); await doSignalingHandshake(pc, pc2); - await new Promise(resolve => { - pc2.getReceivers()[0].track.addEventListener('unmute', resolve); - }); + // Wait for unmute if the track is not already unmuted. + // According to spec, it should be muted when being created, but this + // is not what this test is testing, so allow it to be unmuted. + if (pc2.getReceivers()[0].track.muted) { + await new Promise(resolve => { + pc2.getReceivers()[0].track.addEventListener('unmute', resolve); + }); + } const stats = await pc2.getStats(track); validateStatsReport(stats); assert_stats_report_has_stats(stats, ['inbound-rtp']); @@ -335,7 +340,7 @@ })); - exchangeIceCandidates(pc1, pc2); + coupleIceCandidates(pc1, pc2); doSignalingHandshake(pc1, pc2); })) .catch(t.step_func(err => { diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer.html index cae62b24b6c..2315c12f6c8 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer.html @@ -7,9 +7,6 @@ diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js index 36524211d01..24b5274bc23 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js @@ -6,19 +6,107 @@ // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging let assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") { - assert_approx_equals(p1.x, p2.x, epsilon, prefix + "xs must match"); - assert_approx_equals(p1.y, p2.y, epsilon, prefix + "ys must match"); - assert_approx_equals(p1.z, p2.z, epsilon, prefix + "zs must match"); - assert_approx_equals(p1.w, p2.w, epsilon, prefix + "ws must match"); + if (p1 == null && p2 == null) { + return; + } + + assert_not_equals(p1, null, prefix + "p1 must be non-null"); + assert_not_equals(p2, null, prefix + "p2 must be non-null"); + + let mismatched_component = null; + for (const v of ['x', 'y', 'z', 'w']) { + if (Math.abs(p1[v] - p2[v]) > epsilon) { + mismatched_component = v; + break; + } + } + + if (mismatched_component !== null) { + let error_message = prefix + ' Point comparison failed.\n'; + error_message += ` p1: {x: ${p1.x}, y: ${p1.y}, z: ${p1.z}, w: ${p1.w}}\n`; + error_message += ` p2: {x: ${p2.x}, y: ${p2.y}, z: ${p2.z}, w: ${p2.w}}\n`; + error_message += ` Difference in component ${mismatched_component} exceeded the given epsilon.\n`; + assert_approx_equals(p2[mismatched_component], p1[mismatched_component], epsilon, error_message); + } }; // |m1|, |m2| - arrays of floating point numbers // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging let assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { - assert_equals(m1.length, m2.length, prefix + "Matrix lengths should match"); - for(var i = 0; i < m1.length; ++i) { - assert_approx_equals(m1[i], m2[i], epsilon, prefix + "Component number " + i + " should match"); + if (m1 == null && m2 == null) { + return; + } + + assert_not_equals(m1, null, prefix + "m1 must be non-null"); + assert_not_equals(m2, null, prefix + "m2 must be non-null"); + + assert_equals(m1.length, 16, prefix + "m1 must have length of 16"); + assert_equals(m2.length, 16, prefix + "m2 must have length of 16"); + + let mismatched_element = -1; + for (let i = 0; i < 16; ++i) { + if (Math.abs(m1[i] - m2[i]) > epsilon) { + mismatched_element = i; + break; + } + } + + if (mismatched_element > -1) { + let error_message = prefix + 'Matrix comparison failed.\n'; + error_message += ' Difference in element ' + mismatched_element + + ' exceeded the given epsilon.\n'; + + error_message += ' Matrix 1: [' + m1.join(',') + ']\n'; + error_message += ' Matrix 2: [' + m2.join(',') + ']\n'; + + assert_approx_equals( + m1[mismatched_element], m2[mismatched_element], epsilon, + error_message); + } +} + + +// |m1|, |m2| - arrays of floating point numbers +// |epsilon| - float specifying precision +// |prefix| - string used as a prefix for logging +let assert_matrix_significantly_not_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { + if (m1 == null && m2 == null) { + return; + } + + assert_not_equals(m1, null, prefix + "m1 must be non-null"); + assert_not_equals(m2, null, prefix + "m2 must be non-null"); + + assert_equals(m1.length, 16, prefix + "m1 must have length of 16"); + assert_equals(m2.length, 16, prefix + "m2 must have length of 16"); + + let mismatch = false; + for (let i = 0; i < 16; ++i) { + if (Math.abs(m1[i] - m2[i]) > epsilon) { + mismatch = true; + break; + } + } + + if (!mismatch) { + let m1_str = '['; + let m2_str = '['; + for (let i = 0; i < 16; ++i) { + m1_str += m1[i] + (i < 15 ? ', ' : ''); + m2_str += m2[i] + (i < 15 ? ', ' : ''); + } + m1_str += ']'; + m2_str += ']'; + + let error_message = prefix + 'Matrix comparison failed.\n'; + error_message += + ' No element exceeded the given epsilon ' + epsilon + '.\n'; + + error_message += ' Matrix A: ' + m1_str + '\n'; + error_message += ' Matrix B: ' + m2_str + '\n'; + + assert_unreached(error_message); } } diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js index baf1d66b00d..d75e5c7bd2e 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js @@ -28,14 +28,18 @@ function xr_session_promise_test( name, func, fakeDeviceInit, sessionMode, sessionInit, properties) { let testDeviceController; let testSession; + let sessionObjects = {}; const webglCanvas = document.getElementsByTagName('canvas')[0]; + // We can't use assert_true here because it causes the wpt testharness to treat + // this as a test page and not as a test. if (!webglCanvas) { promise_test(async (t) => { Promise.reject('xr_session_promise_test requires a canvas on the page!'); }, name, properties); } let gl = webglCanvas.getContext('webgl', {alpha: false, antialias: false}); + sessionObjects.gl = gl; xr_promise_test( name, @@ -75,7 +79,8 @@ function xr_session_promise_test( session.updateRenderState({ baseLayer: glLayer }); - resolve(func(session, testDeviceController, t)); + sessionObjects.glLayer = glLayer; + resolve(func(session, testDeviceController, t, sessionObjects)); }) .catch((err) => { reject( diff --git a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer.https.html b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer.https.html index 7c4ff17c254..ba6b7dc0b92 100644 --- a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer.https.html @@ -20,26 +20,37 @@ let testFunction = function(session, fakeDeviceController, t) { let gl = layer.context; // The layer's framebuffer is a WebGL framebuffer - assert_not_equals(layer.framebuffer, null); - assert_true(layer.framebuffer instanceof WebGLFramebuffer); + t.step(() => { + assert_not_equals(layer.framebuffer, null); + assert_true(layer.framebuffer instanceof WebGLFramebuffer); - // The XR framebuffer is not bound to the GL context by default. - assert_not_equals(layer.framebuffer, gl.getParameter(gl.FRAMEBUFFER_BINDING)); + // The XR framebuffer is not bound to the GL context by default. + assert_not_equals(layer.framebuffer, gl.getParameter(gl.FRAMEBUFFER_BINDING)); + }); // The XR framebuffer can be bound to the GL context. gl.bindFramebuffer(gl.FRAMEBUFFER, layer.framebuffer); - assert_equals(layer.framebuffer, gl.getParameter(gl.FRAMEBUFFER_BINDING)); + + t.step(() => { + assert_equals(layer.framebuffer, gl.getParameter(gl.FRAMEBUFFER_BINDING)); + }); // The XR framebuffer has a 2D texture let attachment = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE); - assert_equals(attachment, gl.TEXTURE); + + t.step(() => { + assert_equals(attachment, gl.TEXTURE); + }); // Check that each viewport fits inside the framebuffer dimensions let viewer_pose = xrFrame.getViewerPose(space); for (view of viewer_pose.views) { let viewport = layer.getViewport(view); - assert_less_than_equal(viewport.x + viewport.width, layer.framebufferWidth); - assert_less_than_equal(viewport.y + viewport.height, layer.framebufferHeight); + + t.step(() => { + assert_less_than_equal(viewport.x + viewport.width, layer.framebufferWidth); + assert_less_than_equal(viewport.y + viewport.height, layer.framebufferHeight); + }); } // Finished test. diff --git a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_viewports.https.html b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_viewports.https.html index 8cfccff3c01..94a23dcdb42 100644 --- a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_viewports.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_viewports.https.html @@ -22,18 +22,18 @@ let testFunction = function(session, fakeDeviceController, t) { let layer = xrFrame.session.renderState.baseLayer; for (view of viewer_pose.views) { let viewport = layer.getViewport(view); - let index = (view.eye === "right"? 1: 0); - let params = fakeDeviceInitParams.views[index]; - // Ensure the returned object is an XRViewport object - assert_not_equals(viewport, null); - assert_true(viewport instanceof XRViewport); + t.step(() => { + // Ensure the returned object is an XRViewport object + assert_not_equals(viewport, null); + assert_true(viewport instanceof XRViewport); - // Ensure the viewport dimensions are valid - assert_greater_than_equal(viewport.x, 0); - assert_greater_than_equal(viewport.y, 0); - assert_equals(viewport.width, params.resolution.width); - assert_equals(viewport.height, params.resolution.height); + // Ensure the viewport dimensions are valid + assert_greater_than_equal(viewport.x, 0); + assert_greater_than_equal(viewport.y, 0); + assert_greater_than_equal(viewport.width, 1); + assert_greater_than_equal(viewport.height, 1); + }); // Ensure none of the viewports overlap for (other of viewer_pose.views) { @@ -43,7 +43,10 @@ let testFunction = function(session, fakeDeviceController, t) { (otherport.x + otherport.width <= viewport.x) || (viewport.y + viewport.height <= otherport.y) || (otherport.y + otherport.height <= viewport.y); - assert_true(no_overlap, "Overlap between viewport " + view.eye + " and " + other.eye); + + t.step(() => { + assert_true(no_overlap, "Overlap between viewport " + view.eye + " and " + other.eye); + }); } } } diff --git a/tests/wpt/web-platform-tests/xhr/getallresponseheaders.htm b/tests/wpt/web-platform-tests/xhr/getallresponseheaders.htm index 72e27a5947c..759d6b68a1f 100644 --- a/tests/wpt/web-platform-tests/xhr/getallresponseheaders.htm +++ b/tests/wpt/web-platform-tests/xhr/getallresponseheaders.htm @@ -7,7 +7,7 @@ async_test((t) => { const client = new XMLHttpRequest() client.onload = t.step_func_done(() => { - assert_equals(client.getAllResponseHeaders(), "also-here: Mr. PB\r\newok: lego\r\nfoo-test: 1, 2\r\n") + assert_equals(client.getAllResponseHeaders(), "also-here: Mr. PB\r\newok: lego\r\nfoo-test: 1, 2\r\n__custom: token\r\n") }) client.onerror = t.unreached_func("unexpected error") client.open("GET", "resources/headers.asis") diff --git a/tests/wpt/web-platform-tests/xhr/resources/headers.asis b/tests/wpt/web-platform-tests/xhr/resources/headers.asis index d25fe52efeb..69273ac87fe 100644 --- a/tests/wpt/web-platform-tests/xhr/resources/headers.asis +++ b/tests/wpt/web-platform-tests/xhr/resources/headers.asis @@ -1,5 +1,6 @@ HTTP/1.1 200 YAYAYAYA foo-TEST: 1 FOO-test: 2 +__Custom: token ALSO-here: Mr. PB ewok: lego